콘텐츠로 건너뛰기

좋은 분위기만

아이디어와 작동하는 결과물 사이의 거리가 갑자기 줄어들 때 찾아오는 특별한 느낌이 있습니다. 방금 전까지는 머릿속 잡동사니 서랍의 다음 이름표 아래 있던 무언가가 언젠가. 다음 순간에는 실제로 작동하고, 테스트를 거치고, 개선되어, 이상할 만큼 괜찮은 결과에 가까워집니다. 완벽하지는 않습니다. 최종본도 아닙니다. 하지만 실재합니다.

그 느낌이 바로 바이브입니다.

많은 사람은 아직도 ‘AI’와 ‘바이브 코딩’을 들으면 진지하지 않은 모습을 떠올립니다. 챗봇에 소원을 던지고 스파게티 코드를 받은 뒤 미래가 왔다고 선언하는 사람이죠. 우스운 그림이지만 핵심을 완전히 놓칩니다.

진짜 약속은 엔지니어링이 사라진다는 것이 아닙니다. 아이디어, 구현, 피드백, 수정 사이의 순환이 너무 짧아져서 중간에 추진력이 죽지 않게 된다는 것입니다.

그것은 코딩 이상의 것을 바꿉니다. 누가 만들고, 고치고, 출시하고, 복잡한 일을 이해할 수 있는지를 바꿉니다.

제게 바이브 라이프의 진짜 약속은 그것입니다.

만드는 사람을 대체하려는 것이 아닙니다. 상상할 수 있는 것과 실제로 구현할 수 있는 것 사이의 공백을 없애는 것입니다.

good-vibes-only.png
Codex가 방금 ‘모든 것’을 위한 앱으로 업데이트됐습니다

바이브는 ‘엔지니어링 없음’이 아닙니다. 압축된 반복 개선입니다.

사람들이 놓치는 부분입니다.

바이브 코딩은 터미널에 소원을 입력하고 기계가 우연히 유능함을 발명해 주길 바라는 일이 아닙니다. 더 촘촘한 협업의 순환입니다. 여전히 판단력이 필요하고 감각도 필요합니다. 히어로 애니메이션이 지루한지, 분석 이벤트가 두 번씩 실행되는지, AI가 음성에 자동 연결되면 안 되는지, 요청한 전투기가 군용기보다 비행선처럼 보이지는 않는지 알아차려야 합니다.

바이브는 장인정신의 부재가 아닙니다. 압축된 반복 개선입니다.

당신은 창작의 흐름에 계속 참여합니다. 모델은 구현 작업의 상당 부분을 맡습니다. 당신은 방향을 잡고, 비평하고, 수정 방향을 제시하고, 다듬습니다. 마법은 바로 거기에 있습니다. 창작의 주도권을 포기하는 것이 아니라, 주도권을 지키면서 추진력을 크게 높이는 데 있습니다.

그 순환이 맞물리는 느낌을 한 번 경험하면 돌아가기 어렵습니다.

이 사이트를 바이브 코딩으로 만들어 냈습니다

제게 이것이 현실이 된 순간은 OpenAI의 Codex로 이 사이트를 다시 만들 때였습니다.

저는 Codex를 챗봇처럼 쓰지 않았습니다. 참을성이 끝없는 빠른 기술 협업자처럼 썼습니다. 평범한 영어로 방향, 취향, 제약 조건을 제시했습니다. 그러면 즉시 시험해 볼 수 있는 작동하는 코드로 바꿔 주었습니다. 언젠가가 아닙니다. 3주 동안 설정의 늪에 빠진 뒤도 아닙니다. 바로 그 자리에서였습니다.

몇 개의 대화를 거치자 그것은 다음을 다시 만드는 일로 발전했습니다: moebis.com 기존 Ghost 환경에서 React, Vite, TypeScript 스택으로 옮겼습니다. 글과 태그를 이전하고, 편집과 업로드가 가능한 관리 화면을 추가하고, 페이지 애니메이션을 다듬고, Google Analytics의 중복 집계를 수정했습니다. 또 ‘Chat with Moebis’ 모달을 만들고 글과 페이지, 소셜 콘텐츠를 원본 context.md와 챗봇용 압축 메모리 파일로 모으는 컨텍스트 파이프라인을 연결했습니다.

재미있는 작업도 있었습니다. 1942 프로젝트는 임시 실험 같은 느낌을 벗어나 실제 아케이드 게임처럼 느껴지기 시작했습니다.

장난감 같은 시연이 아닙니다. 실제로 출시되는 프로젝트입니다.

그런 재구축을 바라보던 예전의 방식은 이렇습니다: 아마 한 달쯤 시간을 따로 내고 일정을 비운 뒤 스택의 모든 계층을 다시 깊이 익혀야 할 것 같습니다. 그러고 나면 시작할지도 모르죠. 새로운 방식은 이렇습니다. 제가 스레드를 열고, 방향을 정하고, 결정을 내리기 시작할 수 있게 해 주세요.

그 변화는 중요합니다.

좋은 아이디어를 가장 많이 죽이는 것은 완전한 능력 부족이 아닙니다. 마찰입니다. 맥락을 바꾸는 일입니다. 시작에 따르는 정신적 세금입니다. 바이브 코딩은 그 세금을 낮춰 더 많은 아이디어가 결승선에 닿게 합니다.

바이브 코딩으로 NAS를 되살렸습니다

여기서 정말 배울 만한 일이 벌어졌습니다.

대부분의 사람은 ‘바이브 코딩’이라는 말을 들으면 오후 한나절 만에 작은 앱을 만들어 내는 모습을 떠올립니다. 제 경험은 훨씬 더 복잡했습니다. Codex를 부조종사 삼아 실제 집안 인프라를 수리했습니다.

HomeKit에 mDNS가 필요해서 Home Assistant는 TrueNAS VM 안에서 돌아가고 있었습니다. 그 작은 불편이 홈랩 전체를 수술하는 일로 번졌습니다. Docker 네트워킹, Zigbee USB 패스스루, Cloudflare 터널, 오래된 Home Assistant 레지스트리, SMART 오류, 이상한 ZFS 캐시 동작, 그리고 유난히 변덕스러운 LG 에어컨까지 말이죠.

다시 말해 평범한 홈랩 생활입니다.

Codex가 정말 쓸모 있었던 이유는 코드 조각이나 셸 명령을 작성할 수 있어서만은 아니었습니다. 제가 한 번에 한 층씩 살펴보는 동안에도 전체 문제에 계속 집중할 수 있었습니다. Home Assistant를 가상 머신에서 꺼내 자체 LAN IP가 있는 TrueNAS 사용자 지정 앱으로 옮겼고, SkyConnect Zigbee 동글을 컨테이너에 연결했으며, Home Assistant가 실제로 의존하는 숨겨진 .storage 상태를 복구했습니다. Cloudflare 터널도 일반 LAN 호스트인 척하는 대신 컨테이너 서비스로 향하도록 고쳤고, UI만으로는 깔끔하게 정리할 수 없던 오래된 HACS, SmartThinQ, hassio 잔재도 치웠습니다.

가장 많은 것을 드러낸 부분은 답이 ‘Docker가 고장 났다’가 아닌 경우가 얼마나 많았느냐였습니다.

이전이 안정된 뒤 남은 문제들은 홈랩을 그토록 교육적이면서도 황당하게 만드는 현실의 골칫거리였습니다. Wi-Fi 연결이 끊기는 낡은 LG 기기, 라우터 재부팅으로 무선 동작이 조금 달라졌을 뿐인데 민감한 클라이언트가 오작동하는 일, 서비스 자체는 멀쩡한데 웹 버튼이 사라진 Plex 앱, 그리고 SMART 자체 테스트에 실패하면서도 여전히 믿음직한 캐시 장치인 척하려는 NVMe 드라이브까지 말입니다.

Codex는 컨테이너 문제와 네트워크 문제를 나누고, 다시 네트워크 문제와 하드웨어 문제를 나누도록 도왔습니다. 차고 선반이 어느새 운영체제가 된 것처럼 온갖 역할을 떠안은 NAS를 디버깅할 때, 사실 핵심은 바로 그것입니다.

제가 가장 흥미롭게 생각하는 바이브 코딩은 이런 모습입니다. ‘AI에게 코드를 부탁하고 기도하기’가 아닙니다. 실제 시스템 작업을 하는 동안 함께하는 빠르고 인내심 많고 기술에 깊이 밝은 두 번째 두뇌에 가깝습니다. 일부는 러버덕, 일부는 연구 보조자, 일부는 셸에 능숙한 팀 동료입니다.

눈속임이 아닙니다. 역량을 키우는 힘입니다.

생각의 속도로 Atlas를 바이브 코딩했습니다

Codex로 Atlas를 만들면서 또 하나 배웠습니다. 최고의 AI 협업은 하나의 거대한 영웅적 프롬프트처럼 느껴지지 않습니다. 지연 시간을 걷어 낸 제품 개발처럼 느껴집니다.

어떤 대화에서는 밝은 모드에서 전송 버튼의 느낌을 다듬었습니다. 다른 대화에서는 Omni 대화 기록을 앱의 나머지 부분과 분리했습니다. 그 밖에도 Markdown 렌더링, 팟캐스트 세션 복구, 용어집을 활용한 맥락 제공, 음성 동작, 그리고 마침내 대화 기록 안에서 작동하는 CopilotKit 기반 도구를 다뤘습니다.

실제 제품은 그렇게 성장합니다. 한 번의 극적인 발명이 아니라, 지극히 구체적인 수천 번의 결정과 번복, 개선과 수정을 통해서입니다.

이곳에서 바이브 코딩은 그런 모습이었습니다. 마법도, ‘AI가 엔지니어링을 대체했다’는 것도 아닙니다. 무언가를 알아차린 순간과 실제로 내놓는 순간 사이의 순환이 더 촘촘해진 것에 가까웠습니다.

‘마이크를 입력창 옆으로 다시 옮겨 줘’, ‘실제로 사용한 경우가 아니면 어조 변경을 기록하지 마’, ‘모든 대화에서 용어집의 용어를 사용할 수 있게 해 줘’라고 말하면, Codex는 React 컴포넌트, 상태 흐름, 서버 로직, Netlify 함수까지 요청을 따라가면서도 맥락을 놓치지 않았습니다.

마지막 부분이 중요합니다.

화려한 기능 개발은 일의 절반일 뿐입니다. 제품이 제 속도에 무너지지 않게 하는 것은 눈에 띄지 않는 작업입니다. TypeScript 이전. 테스트 확대. 리팩터링. 훅 분리. 세션 유지 수정. 변경 이력 관리. 재미있는 일과 경쟁하다 대개 밀려나는, 지루하지만 필수적인 구조 작업입니다.

거기서도 Codex가 유용했습니다.

Atlas는 발전하면서 동시에 더 깔끔해졌습니다. 건강한 속도란 그런 모습입니다. 빠르다고 취약해야 하는 것은 아닙니다. 바이브 코딩은 계속 출시할 수 있는 충분한 구조가 속도와 함께할 때 비로소 제대로 작동합니다.

그래서 저는 늘 같은 결론으로 돌아옵니다. 모델은 신탁이 아닙니다. 협업자입니다. 판단과 우선순위, 취향은 여전히 제가 가져옵니다. Codex는 아이디어가 떠오르는 즉시 구현의 세부 사항을 끝까지 처리하는 속도와 맥락 유지 능력, 인내심을 가져옵니다.

결과는 ‘AI가 제 앱을 대신 만들어 줬다’가 아닙니다.

실제에 더 가까운 설명은 이렇습니다. 저는 창작의 순환 안에 계속 머물렀고, 그 순환이 충분히 빨라져 생각의 속도로 만드는 듯한 느낌을 주었습니다.

세금 신고서를 바이브 코딩했습니다. 어쩌면 가장 좋은 시연일지도 모릅니다

여기에 반전이 있습니다. 바이브 코딩의 가장 인상적인 시연 중 하나는 앱을 출시하는 일과는 전혀 관계가 없었습니다.

세금이었습니다.

급여 명세서, 증권사 명세서, 1099 서류, 분기별 추정 세금 납부 확인서, 해외 근로 서류가 가득한 폴더를 Codex에 보여 주고 사실상 이렇게 말했습니다. 이 난장판을 체계적인 세금 신고서로 정리하도록 도와줘.

그다음에 벌어진 일은 자동 완성처럼 느껴지지 않았습니다. 끈기 있게 참아 주는 운영자가 곁에 앉아 모든 PDF를 읽고, 숫자를 대조하고, 규칙을 확인하며, 혼란스러운 문서 더미를 쓸 만한 작업 문서로 천천히 바꾸는 느낌이었습니다.

그래서 ‘바이브 코딩은 장난감 앱에나 쓸모 있다’는 비판은 무너집니다.

진짜 마법은 지루하고 마찰이 많고 문서가 넘쳐나는 삶의 영역에서 나타납니다. 누구도 신나게 시작하고 싶어 하지 않는 곳, 복잡성이 파일과 서식, 가정과 예외 상황에 흩어져 있는 곳, 앞으로 나아갈 수 있을 만큼 오래 문제 전체를 작업 기억 안에 붙들어 두는 것만으로도 싸움의 절반을 치르는 곳입니다.

과정은 대화하듯 유연했지만 실제 작업은 체계적이었습니다. 먼저 문서를 파악했습니다. 그다음 해외 급여와 미국 자영업 소득을 분리했습니다. 주식 보상 제도의 매도를 추적했습니다. 분기별 추정 세금 납부액을 찾았습니다. 그런 다음 외국납부세액공제, 해외근로소득공제, 사회보장협정이 관련되는지 알아냈습니다.

분위기는 자유로웠습니다. 회계는 그렇지 않았습니다.

그 구분은 중요합니다. 중요한 결과가 걸린 일은 여전히 검토해야 합니다. 판단은 여전히 중요합니다. 하지만 Codex는 판단을 위한 훨씬 더 나은 토대를 제공했습니다. 작업 명세를 계속 갱신하고, 자신이 세운 가정을 드러내고, 추정이 확실한 곳과 아직 잠정적인 곳을 보여 주며, 세액을 바꾸는 항목과 신고에만 영향을 주는 항목을 구분했습니다.

사람들이 생각하는 것보다 더 큰 일입니다.

AI는 새로운 것을 발명하도록 도울 때만 유용한 게 아닙니다. 혼돈에 구조를 부여하도록 도울 때도 유용합니다.

때로 모델이 할 수 있는 가장 강력한 일은 거대하고 모호한 난장판을 이해할 수 있는 다음 단계의 연속으로 바꾸는 것입니다.

이것이 진정한 깨달음의 순간입니다

깨달음의 순간은 ‘와, AI가 코딩을 하네’가 아닙니다.

핵심은 이것입니다. 시간이나 기술적 부담, 혹은 그저 너무 복잡하다는 이유로 막혀 있다고 느꼈던 많은 일이 갑자기 손에 닿는 곳으로 들어왔습니다.

병목이 옮겨 갔습니다.

오랫동안 질문은 ‘이것을 실행하는 데 필요한 정확한 기술을 내가 갖추고 있는가?’였습니다. 이제 점점 더 나은 질문은 ‘내가 원하는 것을 설명하고, 돌아온 결과를 검토하고, 그것이 좋은 방향으로 가도록 이끌 수 있는가?’가 되고 있습니다.

훨씬 더 많은 사람이 갖출 수 있는 기술입니다.

여기서 중요한 것은 신기함이 아닙니다. 역량을 키우는 힘입니다. AI는 모든 문법 규칙을 외운 사람에게 있던 힘을 문제를 명확히 정의하고 결과를 판단하며 영리하게 반복 개선할 수 있는 사람에게 나눠 줍니다.

이점을 얻기 위해 세계 최고의 엔지니어일 필요는 없습니다. 필요한 것은 감각과 호기심, 반복해서 다듬으려는 의지입니다. 무언가 잘못됐거나 불완전하거나 위험하거나 보기 흉한 때를 알아볼 판단력도 필요합니다.

다시 말해 운전대를 잡은 채 정신을 바짝 차리고 있어야 합니다.

바이브 라이프를 한 문장으로 말하면 인간의 의도, 기계의 추진력입니다.

AI를 그런 식으로 보기 시작하면 활용 범위는 빠르게 넓어집니다.

앱만을 위한 것이 아닙니다. 인프라, 연구, 운영, 서류 작업, 유지보수에도 쓰입니다. 몇 달째 반쯤 만든 채 놓여 있는 사이드 프로젝트에도 쓰입니다. 누구도 기조연설에서 다루지는 않지만 누구나 실제로 겪으며 살아가는, 평범한 화요일의 묘한 문제들에도 쓰입니다.

그래서 이것이 중요합니다.

AI가 모두를 마술사로 만들기 때문이 아닙니다. 평범하게 만드는 사람, 이것저것 고치는 사람, 운영자, 호기심 많은 사람이 훨씬 더 주도적으로 행동할 수 있게 해 주기 때문입니다.

더 많은 사람이 시작할 수 있게 해 줍니다.

더 많은 사람이 계속할 수 있게 해 줍니다.

더 많은 사람이 끝낼 수 있게 해 줍니다.

좋은 분위기만

그러니 바이브 코딩은 엄밀함을 버리고 자동 생성된 낙관의 구름을 타고 인생을 떠다니는 일이 아닙니다.

주눅 드는 마음보다 추진력이 앞서는 방식으로 일한다는 뜻입니다. 아이디어가 완벽한 조건을 기다리다가 죽지 않고, 망가진 시스템은 해결할 수 있는 문제가 되며, ‘언젠가 해야지’와 ‘출시했다’ 사이의 거리가 계속 짧아지는 방식입니다.

AI가 저를 만드는 사람의 자리에서 밀어낸 것은 아닙니다.

만드는 사람이 쉽게 멈춰 서지 않도록 해 주었습니다.

그래서 저는 바이브 코딩을 낙관적으로 봅니다. 그래서 더 많은 사람이 스스로에게 시도할 기회를 줘야 한다고 생각합니다. 그래서 미래는 대체보다 역량의 증폭에 더 가깝게 느껴집니다.

안목을 가져오세요.

판단력을 가져오세요.

이상한 아이디어, 고장 난 NAS, 만들다 만 제품, 세금 서류 더미, 반년째 조용히 어깨를 두드리는 그 일을 가져오세요.

그런 다음 움직이세요.

이제 기계가 따라올 수 있습니다.

좋은 분위기만.


계속 탐색하기

Instagram