헛소리꾼 – 너넨 새로운 무언가를 하고싶은 생각이 없어

이건 클라이언트와 그에 관련된 인간들의 이야기다.

과거에 엄청 유명했던 모 회사가 있다. 전세계적으로 호령했던 회사다. 지금도 특정 분야에서는 여전히 유명하다.

근데, 과거에 너무 잘나갔던 그 시절을 못잊어서 그런지, 그렇게 되기 위해서는 뭘 해야 하는지에 대해서 고객으로 찾아왔나보다. 그러면서 과거 이야기를 주구장창 이야기 하는데…. 나는 내가 일본에서 살지 않았던 사람이라는 걸 제대로 느꼈다. 일본 내수에서만 판매했던 기괴한 것들, 버블경제 시절에나 내놨던 것들 이야기나 하고 있다.

그걸 들으면서 든 생각이, 제목에 쓴 그대로이다. 새로운 무언가를 하고 싶은 생각이 없는… 과거만 보고 사는 그런 것들이라는 생각이 엄청나게 든다.

그러면서 뭐 새로운 거 해보려고 한다면서 떠드는 것들 쭉 이야기 하고는 이런 것들은 한국이랑 중국 기업들이랑 경쟁하면 무조건 지기 때문에 못한다고 그러는데…

생각이 아예 거기서 멈춰있으니깐 뭘 이야기해도 안되겠다 하는 그런 생각이 확 들더라.

그러면서 온갖 헛소리들이 나오는데… 지금 당장의 현황도 이해 못하는 거 같아서 미국과 중국에서 미친듯이 따라가려는 내용들을 설명하니 뭔 개소리냐 같은 표정으로 보고 있더라.

그냥 답이 없다. 이런 고객은 돈은 있을지언정, 보람있는 일 하지 못하는 그런 고객이다.

헛소리 하다가 좋은 아이디어 나오기도 하지만.. 과거에 너무 잡혀있다. 그러면 발전 제대로 하고 싶은 생각 있다고 보지 않는다. 회사도 그렇고, 사람도 그렇고 말이다.

헛소리꾼 – 니가 떠드는 기술이 반드시 써야하는 건 아니잖아

위에 좀 높은 상사가 있다. 그리고 그 상사는 여러모로 기술적으로 유명한 사람이라고 한다. 퀴타(Qiita, 일본의 기술 공유 사이트. 한국의 okky 같은 곳이라고 보면 된다.)에도 글 엄청나게 쓰고 하는 그런 사람이라고…

그래서 그런가 그분은 최신 트랜드도 잘 알고 대응하고 하는 사람이다. 스터디도 꾸리고 그러는 사람이니깐. 뭐, 이런 사람은 한국에서도 미국에서도 여럿 봤던 스타일이라서 여기까진 그러려니 하는데…

이런 인간도 헛소리를 한다는 걸 여러모로 깨닫는다.

내 경우에는, 솔직히 말해서 conda 좋아한다고 적을 정도로 conda 같은 환경 좋아한다. 이기종, 다종언어 환경으로 개발을 해와야 했던 경우를 너무 많이 봤기 때문이다. 좀 쉬운 환경에서는 vm이나 container 떠서 이용하는 것도 주저하지 않는다. 요즘 이런 거 안하는 개발자가 어디있겠냐 싶다.

근데 문제는 내가 요즘 해야 하는 게 또 임베디드다. (이짓도 10년 하니 그냥 듣기만 해도 머릿속으로 환경이 다 그려진다.) 환경에 별 여력도 없는 곳이다. 그래서 환경 구성하고 디바이스에 그대로 돌려서 해야 하는… 아직도 그런 식의 개발이 필요한 프로젝트를 검토하는데 이런 곳에다가 본인이 아는 지식으로 이런 식으로 하면 되는 거 아니냐 하는 그런 걸 이야기하더라.

그래, 당신 지식 많은 거 알겠는데… 지원 안하잖아. 웹 검색도, ai 검색도 아무리 해봐도 안되는 기술이야. 내가 아무리 봐도 안된다고. 근데 해보라고 우리 스탠다드라고 그러면서 난리 치다가 안되니깐 입다물고 자리 피하더라.

ㅎ 진짜… 꼭 이래야 한다는 정답 같은 건 없다라고는 알지만, 그렇다고 해서 그대로 먹이려고 좀 들지 마라 진짜… 망할. 이거 땜에 퇴원하고 나와서 일하는 시간 중에 귀중한 시간 2,3일을 날려먹었다. 진짜 짜증난다.

사업을 해도 되는 사람과 하면 안되는 사람이 있다고 봅니다.

요 근래에 몇 가지 일을 보고 좀 느낀 것이 있어서 적어보려고 합니다.

저는 원래 작은 곳에서부터 조금씩 계속 키워나가는 개발을 계속 하다보니 작은 회사가 어떻게 커가는지를 위주로 봤었습니다. 그러면서 좋은 일도 있었고, 안좋은 일도 있었죠.

근데, 전 일단 사업을 하면 안되겠다는 생각이 좀 많이 듭니다. 일단 제 몸이 안따라주네요. 사업은 계속해서 내가 미친듯 일해야 됩니다. 특히 초반 몇년은요. 이게 크는 사업이던 안크는 사업이던 본인이 초반에는 어느정도 다 할 수 있어야 합니다. 그게 안되면 일단 사업하면 안됩니다. it 기술 모르는데 내가 이런 건 써야 한다? 다 배워야 합니다. 다 익혀야 하고요. 특정 분야쪽 알아보고 싶다? 최소한의 지식은 사장이 다 꿰고 있어야 합니다. 그래야 해요.

근데 그런 거 없이 그냥 되는 사업들이 있습니다. 흔히들 사람하고 돈만 있으면 된다고 하는 그런 사업들이요. 동네 소매상 수준이라던가, 그냥 특정 자격만 있으면 작게 하는 부동산이라던가, 음식점이라던가 등등.. 이런 곳도 솔직히 제대로 하려고 하면 진짜 미친듯이 노력해야 되고, 알아야 할 것도 많고, 사장이 어느정도는 다 할 수 있어야 합니다. 그래서 궤도 잡고 나서 사람 뽑는 거죠.

근데 그것도 제대로 못하면서 사람 쓰는 거에 익숙해지고, 그걸로 사람 부리는 것만 배우는 그런 종족들이 있습니다. 그런 사람들은 솔직히 사업 하면 안됩니다. 쓸데없는 프라이드만 있는 사람들이 주로 그렇게 해서 나중에는 경영수완이니 뭐니 하는 그런 식의 헛소리를 늘어놓게 되는 거죠. 본인 자체는 동네 구멍가게 수준의 일밖에 못하는데, 정작 일은 그 안에 사람 중에 유능한 사람이 알아서 다 돌리고 있던 건데 말이죠. 이런 거 하나 둘 쌓이면 큰일납니다.

근데 이런 충고같은 이야기를 하게 되면, 진짜 밤새 블로그를 계속 적어도 모자랄 정도로 적어야 할 거 같은데… 적는 것보다 그런 걸 보고도 이해하려 하지도 않고 뭐라고 할 사람들만 많으니 적지 않으려고요. 인생은 실전이다 생각해야지 별 방법 없습니다. 라고 해드려야 합니다.

하여간 사업에 대해서 여러번 생각을 하게 만든 개인적인 일이 다 끝나서, 이제 다시 기술이나 본업에 집중할 수 있게 되었습니다. 그래서 다시 블로그로 인사드리게 되었습니다. 예정되어 있던 앱 개발도 계속해서 진행해보려고 합니다.

바이브 코딩…? 유용하게 하려면 최소한의 것은 알면서 써야 합니다.

요즘 다들 말을 하는 바이브 코딩… ai가 코드 짜주는 걸로 코딩이라고 하면서 바이브 코딩이니 뭐니 하고, 그걸로 그냥 누구나 개발할 수 있어요 하는데….

좀 낚였으면 좋겠습니다. 그래서 ai가 짜준 걸로 하다가 삽질 엄청하고 결국은 그냥 개발하는 거랑 같거나 더 많은 시간 낭비해서 개발 어렵다는 소리 좀 나와줬으면 좋겠어요. 저걸로 헛소리 하는 분들을 많이 봐서 요즘 좀 스트레스네요.

유튜브 같은데서 이렇게 하는 겁니다 하면서 하는 것들 보면, 진짜 작은… 작디 작은… 발톱의 때만한 거 자동으로 만들어주고 오~ 하는 거 많이 보입니다. 근데 그걸로 제대로 된 서비스 하나 둘 만들려고 하면 그게 감당이 되지 않게 되겠다는 걸 보면서 알겠는데, 주변에서도 요즘 자꾸 떠드네요. 그러면서 개발 쉽네 하는 분들도 있고요. 여러모로 긁는군요. 요즘은 개발이 아니라 컨설이 주 업무이지만, 저런 분들 보면 좀 많이 열받습니다.

바이브 코딩을 해서 좋은 사람은… 제 생각에는 없습니다. 시니어 이상인 분들은 바이브 코딩 보다는 페어 프로그래밍 상대가 ai가 되어줘서 더 빠르고 명확한 개발이 된다는 것은 확실합니다. 그만큼 ai가 작성한 코드 읽을 줄도, 그거 보고 논리 오류 있으면 바로 알아챌 수준의 시니어들이라면야 뭐, 그냥 키보드로 코드 노가다 하던 부분들 많이 줄어들어서 확실하게 좋죠. 경력이 오랜 분들도 마찬가지고요. 그나마 좋은 분들이라면 이정도의 분들이 자기 자리 유지하면서, 자기 실력 늘려가면서 계속 이용할껍니다.

근데 주니어 이하의 개발자들? 평생 주니어로 살래요 하시면 그냥 그렇게 바이브 코딩 잡고 사시면 됩니다. 진짜 본인 실력 죽을 껍니다. 이분들이 착각하시면 안되는 게, 그렇다고 ai 아예 쓰지 말라는 게 아니에요. 써서 생산성이 올라가는 건 좋은겁니다. 근데, 그렇다고 해서 문제 해결, 디버깅, 테스팅, 검증 이런 것들까지 해서 죄다 맡겨버리는 짓을 하게 되면 금방 까먹을껍니다. 여러분은 아직 자기 전공 내용조차 왜 중요한지도 모르는 분들이 많습니다. (중요한지 제대로 알면 솔직히 주니어 치고는 상위 1% 아닐까요..) 그런 상태에서 어느정도 문제를 해결하면서 확립해나가는 과정이 있어야 하는데, 그걸 ai한테 맡겨버리면 그냥 평생 그 자리에서만 계속 있게 될 겁니다. 시니어분들이라고 해서 더 잘 알뿐 시니어들도 거기서 만족하면 주니어 레벨로 나가리 되고 그렇게 치우되는게 일상인데 주니어 분들이 ai로 벌써 그러고 있을까봐 그럽니다.

자, 이제 마지막. 비전공자 출신 개발자들. 여러분 중에도 직업으로 개발자나 it 관련자분들이 계신 분들 많이 계십니다. 그런 거 알아요. 그런 분들껜, 계속해서 상기하라고 말씀드리고 싶어요. 이건 주니어분들에게도 통하는 내용인지라 그냥 같이 말할께요. 개발자들 계속 스터디 하는 거 놓치고 하면 그냥 그자리에서 머물고 올라가지도 않고 그러다가 그냥 개발자 때려치는 분들 너무 많이 봤습니다. 앞 문단의 나가리 된다는 거요. 여러분이 그렇게 되지 않기 위한 노력 많이 하는 거 압니다. 근데, 그런 상황을 ai가 더 가속화 시키네요. 안주하진 마세요.

학생은 논외입니다. 당장은 과제 만들기 쉽고 뭐 그럴 수 있겠습니다만, 제대로 공부하세요. 학생때 짜는 프로그램들 학생때는 어려워도 그렇게 어려운 거 아닙니다. 생각하면서 계속 생각하는 사고를 기르세요. 그게 ai를 잘 활용할 때 도움이 됩니다. 그걸 주니어때 잘 파악하면서 경험치도 계속 먹고 그러다가 시니어 되고 하시면 됩니다.

학생도, 전공자도, 직업이 개발자도 아닌 분들은 그냥 알아서 하세요. 제 선에서는 이렇게 하세요 할 수 있는 건 없습니다.

이렇게 적으니 꼰대같은 생각이네 하겠지만… 금방 훅하고 넘어가기 쉽겠다는 생각은 많이 합니다. 잘 쓰면서 본인 실력 올리는 베스트 같은 일이 계속해서 일어날 거라고는 생각하진 않습니다.

어느 세계던 간에 살아남기 위한 자기 단련을 게으르게 하면 그 순간 나가리됩니다.

p.s. 팀장 이상의 분들에게는 굳이 이야기 드리진 않겠습니다. 저보다도 보는 안목들이 더 있으실 분들도 많으시니 제가 더 뭐라 이야기 드리기 조심스럽군요. 근데 그분들도 왜 어떻게 좋은지와 안좋은지를 알지 못하면 그걸 자기네 팀에서 자기네 조직에서 잘 활용하도록 유도하는 게 어려울 수는 있습니다. 그러니 저런 이야기의 배경 정도는 알아두시는 게 좋습니다.

개인적으로는 conda 환경을 엄청 좋아합니다.

vitualenv나 pipenv를 이용하면 가볍고 편하게 이용할 수도 있지만, conda만큼의 유연성이 있냐고 물어보면…

그래서 그런가, 여러 언어나 라이브러리 조합을 짤 수 있는 conda를 개인적으로 좀 많이 좋아합니다.

회사에서 쓰기 힘들다 하면 conda-forge를 이용해서 커뮤니티 repo를 이용하면 pc에서 돌리는 것들 정도야 얼마든지 anaconda랑 겹치니깐 문제 없기도 하고요.

갑자기 든 잡담이었습니다.

PowerShell에서도 심볼릭 링크를 만들고 이용할 수 있습니다.

PowerShell에서 홈 폴더(C:\Users\kyuling)에 C:\Users\kyuling\Documents\work\project 폴더로 이동할 수 있는 방법으로 심볼릭 링크를 만들고 이용할 수 있습니다. 그렇게 하고싶다면, 다음과 같은 명령어를 사용하시면 됩니다.

단계별 방법:

  1. 심볼릭 링크 만들기: 홈 폴더인 C:\Users\kyuling에 심볼릭 링크를 만들고, 이 링크가 C:\Users\kyuling\Documents\work\project 폴더를 가리키도록 합니다. 예를 들어 forge라는 이름의 심볼릭 링크를 만들고 싶다면 아래와 같이 명령을 입력합니다.

    New-Item -ItemType SymbolicLink -Path "C:\Users\kyuling\project" -Target "C:\Users\kyuling\Documents\work\project"
  2. 심볼릭 링크로 바로 이동하기: 이제 C:\Users\kyuling\project라는 이름의 링크가 생성되었으면, PowerShell에서 다음 명령어로 해당 폴더로 바로 이동할 수 있습니다.


    cd C:\Users\kyuling\project

이렇게 하면, C:\Users\kyuling 폴더에서 project라는 이름으로 C:\Users\kyuling\Documents\work\project 폴더에 쉽게 접근할 수 있게 됩니다.

참고 사항:

  • 관리자 권한: 심볼릭 링크를 만들 때는 관리자 권한이 필요할 수 있으므로, PowerShell을 관리자 권한으로 실행해야 할 수도 있습니다.
  • 링크 이름: 원하는 이름으로 링크를 만들 수 있습니다. 예를 들어 project 대신 다른 이름을 사용할 수도 있습니다.

파워쉘을 이용하는 방법에 대해서는 생각보다 모르는 분들도 많고 해서 제가 가끔 이용하는 방식을 공유해봅니다.

8비트 마이크로 컨트롤러 1. 개요

최근 전자공학과 임베디드 시스템에 관심이 높아지면서 8비트 마이크로컨트롤러의 기본 개념과 활용법을 배우고자 하는 분들이 많아졌습니다. 오늘은 1일차 강의에서 다루는 개요 및 이론 내용을 중심으로, 가상 실습 환경(오픈소스 시뮬레이터)을 통해 배우게 될 핵심 포인트들을 소개합니다.

강의 개요

이 강의는 총 1주일 동안 진행되며, 실제 하드웨어 없이도 오픈소스 시뮬레이터를 통해 8비트 마이크로컨트롤러의 기본 원리와 프로그래밍 기법을 익힐 수 있도록 설계되었습니다. 오늘은 강의의 첫 날로, 기본적인 이론과 개념을 다루며 앞으로의 실습에 필요한 기초 지식을 마련하는 시간입니다.

8비트 마이크로컨트롤러란?

역사와 응용 사례

  • 역사적 배경:
    8비트 마이크로컨트롤러는 1970~80년대에 시작되어, 오늘날까지 다양한 전자제품에 널리 사용되고 있습니다. 간단하면서도 효율적인 구조 덕분에 가전제품, 자동차, 산업 기기 등 여러 분야에서 응용되고 있습니다.
  • 응용 분야:
    • 가전제품 제어 (예: 리모컨, 전자레인지)
    • 산업 자동화 시스템
    • 소형 로봇 및 DIY 프로젝트

장단점 및 활용

  • 장점:
    • 경제성: 비용 효율적이고 저전력 소모로 다양한 응용이 가능합니다.
    • 단순성: 학습이 용이하며, 기본 제어 로직 구현에 적합합니다.
  • 단점:
    • 연산 능력 제한: 복잡한 연산이나 대용량 데이터 처리에는 한계가 있습니다.
    • 메모리 제한: 제한된 메모리와 주변장치 지원으로 인해 고급 기능 구현에 제약이 있을 수 있습니다.

마이크로컨트롤러 아키텍처 기초

주요 구성 요소

  • CPU:
    모든 데이터 처리와 명령 실행을 담당하는 핵심 부품입니다.
  • 메모리:
    프로그램 저장용 플래시 메모리와 데이터 저장용 RAM이 포함됩니다.
  • I/O 포트:
    센서, 액추에이터 등 외부 장치와 데이터를 주고받는 역할을 합니다.

이러한 기본 요소들을 이해하는 것은 이후 실습과 프로젝트 진행 시 매우 중요한 기반이 됩니다.

시뮬레이터의 설치 및 간단한 예제는 다음 글에 계속합니다.

8비트 마이크로 컨트롤러 0. 시작

내가 아는 범위내에서 가장 기본적인 내용들을 적어보려고 합니다. 정말 간단하게. 그것도 개발자들이 쉽게 할 수 있도록….

왜? 이걸 안해본 사람들이 너무 많아요. ㅠㅠ

임베디드 관련 이야기 할 수도 없는 사람들이 많고, 이런 베이스도 없이 임베디드 한다는 게 말이 안되는 거 같습니다. 그래서 정리 할 겸 간단하게 해보려고 합니다.

하드웨어도 될 수 있으면 이용 안하고 시뮬레이터를 이용하는 방식으로 가려고 합니다. 오픈소스 시뮬레이터로 실습할 건데, 그건 제가 실습 내용도 다 찍어서 조금씩 올릴 예정입니다.