처음 겪은 벽
터미널 창에 한국어를 쳤다. "이 프로젝트 구조 설명해줘." Claude Code가 답했다. 영어로. 읽을 수는 있었다. 그런데 내 언어가 아니었다.
나는 코드를 짜는 사람이 아니었다. Claude Code라는 AI 코딩 도구를 쓰기 시작한건 불과 4-5개월도 되지 않았다. 문제는 이 도구가 영어로 일할 때 가장 잘 돌아간다는 것이었다. 한국어로 입력하면 AI가 번역에 토큰을 쓰느라 정작 추론에 쓸 자원이 줄어든다. 영어로 쓰면? 내가 하고 싶은 말의 절반도 못 전한다.
그때 하나의 생각이 떠올랐다. 중간에 번역을 끼워넣으면 어떨까. 내가 한국어로 치면 싸고 빠른 AI가 영어로 바꿔주고, Claude Code가 영어로 작업한 뒤, 결과를 다시 한국어로 돌려받는 구조. 단순한 아이디어였다. 문제는 이걸 만들 줄 모른다는 것이었다.
만들 줄 모른다고 했지만, 답은 의외로 빨리 나왔다.
AI에게 설명했다. "사용자가 한국어로 입력하면 → Haiku(작고 빠른 AI)가 영어로 번역 → Claude Code가 영어로 작업 → Haiku가 결과를 다시 한국어로 번역. 이 흐름을 CLI로 만들어줘." Claude가 코드를 짰다. 나는 그게 맞는지 확인했다. 이상하면 "이거 안 되는데"라고 말했고, Claude가 고쳤다. 이걸 반복했다.
subprocess, stream parsing, 터미널 escape sequence. 처음 듣는 단어들이었다. 하지만 이해할 필요는 없었다. (정확히 말하면, 완전히 이해하진 못했다.) 내가 해야 할 일은 "이렇게 되면 좋겠다"를 말하는 것이었고, 그걸 코드로 만드는 건 AI의 몫이었다.
나중에 알게 된 건데, 이런 방식에 이름이 있었다. Andrej Karpathy가 2025년 2월에 '바이브 코딩'이라고 불렀다. 자연어로 의도를 전달하면 AI가 코드를 구현하는 방식. 내가 하고 있던 게 정확히 그거였다. Y Combinator의 2025년 겨울 배치에서는 25%의 스타트업이 코드베이스의 95%를 AI로 만들었다고 한다[2]. 비개발자가 코드를 짜는 건 더 이상 신기한 일이 아니었다.
흥미로운 건, 개발을 모르기 때문에 오히려 보이는 것들이 있었다는 점이다. AI가 에이전트를 실행할 때 내부에서 무슨 도구를 쓰는지 실시간으로 보여주면 좋겠다고 생각했다. 개발자라면 로그를 읽으면 되니까 굳이 시각화할 이유가 없었을 것이다. 나는 로그를 읽을 줄 몰랐고, 그래서 에이전트 트리라는 걸 만들었다. 각 도구 실행이 트리 구조로 표시되고, 스피너가 돌고, 소요 시간이 나오는 시각화. 코드를 모르는 사람의 불안감이 만든 기능이었다.
결과적으로 번역 엔진, 실시간 스트리밍 파서, 슬래시 커맨드 메뉴, 이미지 분석 기능까지 들어간 도구가 만들어졌다. 16개의 Python 파일, 8개의 언어 설정 파일. 나는 이 중 어떤 코드도 한 줄 직접 쳐본 적이 없다. 전부 AI에게 말해서 만든 것이다.
원래 나만 쓸 생각이었다. 그런데 Python 패키지로 만들 수 있다는 걸 알게 됐다.
pip install
로 설치할 수 있다는 건, 누군가에게 줄 수 있다는 뜻이었다.
라이선스를 골라야 했다. 검색했다. MIT 라이선스라는 게 있었다. 누구나 가져다 쓸 수 있고, 수정할 수 있고, 재배포할 수 있다. 조건은 딱 하나, 원작자 표시. GitHub에서 라이선스를 명시한 리포지토리 중 MIT가 가장 많이 쓰인다. 상용 소프트웨어의 97%에 오픈소스 코드가 포함되어 있다는 통계를 보고, 이 세계의 규모를 어렴풋이 감잡았다.
작가나 다른 창작자 입장에서 원고를 쓰면 저작권을 주장하고 무단 복제를 금지하는 것이 당연하다. 그런데 이 세계에서는 "가져가세요, 고쳐 쓰세요, 마음대로 하세요"가 기본값이었다. 좀 이상했다. (솔직히 지금도 약간 이상하다.)
PyPI에 패키지를 등록했다. 이제 전 세계 누구나 터미널에
pip install claude-ts
를 치면 내가 만든 (정확히는 AI가 짜고 내가 검수한) 도구를 설치할 수 있었다. PyPI에는 2025년 3월 기준 61만 개가 넘는 프로젝트가 등록되어 있다. 그중 하나가 됐다.
README를 쓰는 건 편했다. 기능 설명, 설치 방법, 사용법. 기술 문서지만 본질은 글쓰기다. 이건 내 영역이었다. 코드를 짜는 건 AI에게 맡겨야 했지만, 그 코드가 뭘 하는지 설명하는 건 내가 더 잘할 수 있었다.
첫 star가 찍혔을 때의 감각은 기억한다. 첫 글 리뷰를 받았을 때와 비슷했다. 누군가가 이걸 봤구나. 봤을 뿐 아니라, 쓸 만하다고 생각했구나. 올려놓으면 끝인 줄 알았는데, 그게 시작이었다. 코드를 공개한다는 건 단순히 파일을 올리는 게 아니라, 관계를 여는 행위였다.
GitHub를 둘러보기 시작했다. 리포지토리가 6억 3,000만 개라고 했다. 분당 230개가 새로 생기고, 1억 8,000만 명이 이 안에서 코드를 쓰고 고치고 있다고. 숫자만으로는 실감이 안 났다.
실감이 난 건 구체적인 장면에서였다. 어떤 사람이 자신이 5년간 유지해온 라이브러리의 이슈 탭에서, 모르는 사용자의 버그 리포트에 답을 달고 있었다. 무급으로. 주말에. 이 사람은 왜 이러고 있을까. 이걸 보면서 오픈소스 문화의 핵심이 코드가 아니라는 걸 알았다. 핵심은 신뢰였다. 이슈를 남기는 행위는 모르는 사람에게 시간을 맡기는 것이다. 답을 다는 행위는 그 신뢰에 응하는 것이다.
Issue, Pull Request, Fork. 처음에는 낯선 용어였다. 알고 보니 협업의 문법이었다. "여기 문제가 있어요"(Issue). "이렇게 고쳤는데 확인해 주세요"(Pull Request). "당신 코드를 가져다가 내 방식으로 발전시키겠습니다"(Fork). 이 구조가 수십 년째 작동하고 있다는 게 놀라웠다.
물론 어두운 면도 있다. 유지보수 피로, 무급 노동, 기대와 압박 사이의 번아웃. 그걸 모르는 건 아니다. 그럼에도, 만든 것을 내놓고 다른 사람이 그 위에 쌓도록 허락하는 이 태도는 내가 사는 세상에서 좀처럼 보기 어려운 것이었다.
나는 이 구조를 보면서 글쓰기와 비교하게 됐다. 작가의 세계에서 원고를 통째로 공개하고 "고쳐 쓰세요"라고 하는 건 상상하기 어려운 일이다. 심지어 출판사에 보내기 전까지 아무에게도 보여주지 않는 사람도 많다. 그런데 개발자들은 미완성인 코드조차 올린다. 버전 0.1부터 공개한다. 완성이 아니라 과정을 공유하는 문화. 그게 나에겐 충격이었다.
claude-ts는 현재 8개 언어를 지원한다. 한국어, 일본어, 중국어, 태국어, 힌디어, 아랍어, 벵골어, 러시아어. 처음에 내가 겪었던 그 벽 — 터미널에 내 언어를 쳤는데 내 언어가 아닌 답이 돌아오던 그 감각 — 을 다른 나라 사람들도 겪고 있었을 것이다. 그 벽을 조금이라도 낮출 수 있다면, 코드를 공개한 보람이 있다.
개발자 84%가 AI 코딩 도구를 사용하고 있다. AI 시대에 '만드는 사람'의 경계가 달라지고 있다. 코드를 짤 줄 몰라도 무언가를 만들 수 있는 시대가 왔다. 그런데 더 흥미로운 건, 그 결과물을 세상과 나눌 수 있는 문화가 이미 있었다는 것이다.
AI가 바꾸는 건 '누가 만들 수 있는가'다. 오픈소스가 바꾸는 건 '만든 것으로 무엇을 하는가'다. 이 두 가지가 동시에 일어나고 있다.
나는 여전히 비개발자다. subprocess가 정확히 뭔지 아직도 잘 모른다. (사실 그걸 알 필요도 없었다.) 여전히 "이렇게 되면 좋겠다"고 말하는 쪽이고, 코드로 만드는 건 AI의 몫이다. 다만 이제는 안다. 코드를 짤 줄 모른다는 게 무언가를 만들지 못한다는 뜻은 아니라는 걸. 그리고 만든 것을 세상에 내놓으면, 생각지도 못한 곳에서 누군가가 쓰고 있다는 걸.
그게 이 동네의 문법이었다.