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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

scrcpy – 안드로이드 화면 미러 프로그램

회사에서 사전 단계의 기술 검증을 위한 개발을 진행하느라, 안드로이드 네이티브를 만지고 있다.

그 와중에, 지금 이용하려는 산업 기기는 usb 포트가 너무 부족하다. 그래서 이걸 무선 미러로 보려고 하는데… 당연히 유료 프로그램 안쓴다 난. 될 수 있으면 오픈소스 선에서 해결되면 좋다.

그럴 때 찾아낸 것이 바로 scrcpy 

github에 자세한 사용법이 나와있고, adb로 원격 연결 하는 방법 안다면 금방 쓸 수 있다.

네트워크를 당연하게 이용하는 솔루션이라서 당연히 tcp/ip 되는 환경이고, 나처럼 특정한 기기에서 디버그용 usb나 다른 버스 포트가 모자랄 경우에 쓰면 좋다.

안드로이드 네이티브는 너무 오랜만이라 이거 되게 기억 안나서 힘들어 죽겠다. ㅠㅠ

미니PC는 점점 더 많이 나오고 있구나…

나도 집에서 미니PC를 쓰고 있다.

웹이랑 개발 외에는 별로 하는 것도 없고, 게임은 플스로만 하고 있으니깐.

그리고 다른 곳에서도 여러 곳에서 미니 PC를 이용하는 분들도 많고, it 기기 리뷰하는 유튜버들도 많이 다룰 정도로 이젠 그냥 당연하게 리뷰 하고 있다.

예전에도 나왔던 말이기도 하지만, 점점 PC는 거의 끝판왕 만드는 거 아닌 이상 미니PC쪽으로 가려나 하는 생각을 좀 많이 하게 된다. 특히 중국쪽 미니PC들 나오는 거랑 가격 보면 진짜 그냥 넘사벽이 되어가고 있기도 하고…

아니면 그냥 처음부터 타블렛이나 노트북으로 시작하거나…

이렇게만 이야기 하면 그냥 그러려니 하는 소리겠지만, 점점 검증된 브랜드들이 많이 발견되고 있다는 걸 무시하면 안된다. 몇년 전까지만 해도 이 브랜드 써도 되나 하는 것들을 찾아보면서 리뷰하고, 그 후속작들 보면서 이렇게 발전했나 하는 그런 리뷰들이 많지만

요즘 리뷰들 보면 그냥 제품 나왔습니다. 리뷰하겠습니다. 하는 식으로 해서 그냥 나왔으니 리뷰하는… 일반 다른 기기들처럼 당연한 듯이 제품 나왔으니 리뷰합니다 하는 수준이다.

그만큼 이미 유명한 브랜드들은 어느정도 유명해졌다고 보고, 사용기도 충분히 검증되었다고 봐도 될 정도이기 때문에 그렇게 된 거 같다. 그리고 지금도 계속해서 나오고 있고,미니PC에 외장 그래픽 연결하는 것도 계속해서 나오고 있고… 점점 더 다양하게는 되어도 그전의 조립PC와 같은 건 진짜 찾는 사람들 외에는 얼마나 찾을까 하는 생각이 들게 되었다.

근데 이거 보면서도 든 추가적인 생각이 있는데… 점점 컴덕질 하기 힘들어질 것이란 생각도 든다. 이런 완제품만 나오는 거는 덕질 하는 거 힘들다. 특히 컴덕들 이것저것 조합하고 뭐 조금씩 손대고 그러는 건 거의 불가능해질 정도라서…

Cursor AI가 있어도, 내가 코드 검증을 할 수 없으면 안된다 진짜로…

LLM이 점점 코딩 짜는 실력 늘어서 그냥 잘 짜주는 거 붙여넣기도 하고, Cursor AI를 쓰면 그게 더더욱 심해지고 그럴 수 있는데…

그래도 꼭 확인해야 한다. 반드시 정확한 코드 짜준다는 보장 없다. 진짜로. 똑같은 걸로 물어도 이거 진짜야? 이러면 점토 없이 그냥 아닌가보네요 하면서 코드 바꾸기고 한다.

그러니 이런 거 제대로 쓰려면, 본인도 만들어진 코드에 대해서 코드 검증 할 수 있을 정도의 수준이 되어야 정말 좋은 도구가 된다. 안그러면 진짜 피곤하다.

어떤 이상한 넘의 코드가 코드 동작이 이상해서 같이 하나하나 보는데 코드 검증을 하질 못하더라. 그래서 이거 코드 어디서 가져온 거냐고 계속 물으니 그제서야 chatgpt가 만들 거라고 하던….

만들 때에는 이렇게 고맙다고 했겠지…?

후…. 그래서 일일이 뭣땜에 이렇게 짰는지 다 확인하면서 이상한 부분 수정하는데 시간만 더 걸리고 그랬네…ㅠㅠ

제발 그걸 쓸 수 있을 정도의 실력이 되어줘. ㅠㅠ

개발자와 건강 – 07. 잠이 보약입니다.

개발자 분들 뭐…. 잠 제대로 안자는 분들 많은 거 압니다. 개발자 되겠다는 학생분들도 그런 거 알고요. 이게 PC앞에만 앉아있으면 참 오랫동안 잘 쓰게 되는 것도 신기하고 그렇습니다.

근데 잠은 진짜 충분히 자두시는 것이 좋습니다. 뭐 유명한 분들이 잠을 3,4시간씩 자면서 일했다 그러는 거, 진짜 좋지 않은 소리입니다. 그게 그렇게 삘받아서 그럴 수는 있어도, 1년 365일 내내 그렇게 살 수 있는 건 말도 안되는 짓입니다.

일단, 졸린 상태에서 어리버리한 채로 짜는 코딩은 나중에 유지보수면에서 문제가 되는 코드가 만들어질 가능성이 높으니 일단 하지 마세요.

그리고, 졸린 상태로 일하다가 생긴 건 나중에 기억해도 짜증만 납니다. 생각 외로 졸릴 때 기분 좋게 코딩 하고 그럴리가 없잖아요. 그럴 때 작성한 로직에도 짜증이 묻어나요.

이런 것들은 좀 정신적인 마인드 문제인데, 사람이 컨트롤 불가능한 마인드 문제입니다. 이런 걸로 본인이 더 일을 할 수 있니 마니가 결정되고 그러면 결과적으로 본인한테도 엄청난 손해입니다.

머, 수명 줄어든다 그런 거는 다른 데에서도 많이 이야기 할 것입니다. 치매 확률 올리니 뭐 그런 것도요.

거기에 하나 더 붙인다면, 자면서 몸이랑 머리가 회복되면, 그게 그만큼 오랫동안 일할 수 있게 해주는 원동력이 됩니다. 그만큼 체력 뺏긴 채로 살아가면서 빼앗긴 수명도 그렇고, 그만큼의 건강 이상도 그렇고…

그런 것들 잘 지키는 사람들이 건강하게 살고, 건강하게 결혼하고 그러더군요. 그리고 개발자 빨리 그만두고요. (..)

쓸데없는 소리가 좀 있었습니다만, 잠에 대해서는 나중에 한번 더 자세하게 써보겠습니다. (저도 지금 이거 일 끝나고 나서 새벽에 적네요.)

지금의 ai는 툴, 그 이상도 아니다. 거기에 이상한 희망 갖지 마라.

클라이언트들한테도, 몇몇 무지한 인간들한테도 말하고 싶은 내용입니다.

너무 큰 환상을 가지고 있네요 다들.

ai 쓰면 쓸수록 일이 편해지긴 합니다. 내가 짜고 싶은 형태의 엑셀 함수를 짠다던가, 노가다 코드를 좀 더 간단하게 만들어준다던가, 뭔가 그냥 대충 조합 가능한 아이디어를 만들어 준다던가(누구나 생각할 수 있을수도 있는), 학습된 것 안에서 뭔가 내가 알지 못했던 걸 찾아준다던가….

근데, 0 -> 1이 되는 게 아니라 1 -> 2,3,4 … 이런 식으로 이미 있는 거에서 늘어나는 거고, 그걸 그렇게 만들기 위한 것도 사람인데…

사람이 지금까지 안해왔던 일을 ai한테 시킨다고 그게 그대로 되는 케이스는 진짜 극소수일껍니다. 지금도 극소수고요.

근데 이상하게 기대를 갖고, 무슨 공상과학 sf 소설 쓰는 이야기들을 엄청 하면서 이런 거 가능하냐고 의뢰를 계속 받으니깐… 머리아프네요.

특히나 사람 대체를 위해서 고려하는 분들 많던데… 뭐, 고객이 뭔 생각하던 상관은 없습니다만…..

생각 이상으로 실체적인…

현 상황을 좀 잘 파악하시는 분들이 제대로 써먹고 제대로 투자합니다.

요즘 한국에서는 어떻게 다뤄지는지 모르겠는데, 지금 저 있는 이넘의 나라는 기발하다 해야 할지… 머리아프네요.

사업을 한 게 아닙니다.

https://medium.com/@thetateman/im-tired-of-fixing-customers-ai-generated-code-94816bde4ceb

타이틀을 한국어로 번역하면 “고객이 생성한 AI 코드를 수정하는 데 지쳤어요” 라고 쯤 되겠다. geeknews를 보다가 발견한 것인데…

결론부터 말하면, 멍청한 짓 하셨다.

고객들이 요청하는 내용에 대해, 고객들은 자기들만의 솔루션에 맞춰서 이용할 수 있는 것을 전제로 이용하려고 한다. 그렇기 때문에 저런 api나 SaaS 같은 수준의 경우, 어느정도 커뮤니케이션에 제약을 두지 않을 경우에는 해당 고객 하나하나마다 해야 하는 멍청한 짓을 하게 된다.

물론 이게 내가 돈을 팍팍 불러서 이정도 돈이면 저희가 해결해드립니다 하면서 제시를 할 수 있을 수준이고, 그에 따라서 개발자를 파견 혹은 할당하여 만들어 줄 수 있고 그런 BM을 갖고 있으면 모를까… 그러지 않았다는 것이다. 그냥 편한 툴 중 하나일 뿐이었는데, 그 툴에 대해서 리스닝을 너무 훌륭하게 해서 저렇게 된 것이다. (좋은 거 아님)

저렇게 되면 사업 단계가 안된다. 저 기술만을 팔면서, 기술 자체가 업데이트가 되는 게 아니라 고객 따라 끌려다니면서 서비스 기능만 늘어나는데, 그걸 필요로 없어하는 곳에서는 그걸 보고는 “아, 우리는 그런 것까지는 과하니 필요없다.” 라고 하면서 외면당하는 일도 벌어진다. 어이가 없을 상황이 발생한다.

참 여러모로 어려운 게 개발 이후의 문제 아닐까 하는 걸 생각해봅니다.