코딩 못 하는 디자이너가 7일 만에 커밋 900개 찍고 앱스토어에 올린 경험
지난 3월 9일, 저는 클로드(Claude)에게 “뭔가 새로운 아이디어 없니?”라고 물었습니다. 그리고 3월 16일, 앱스토어(App Store)에 심사를 넣었습니다. 앱스토어에 업로드하기 전까지 7일 동안 커밋(Commit)을 900개 달성한 것이죠. 저의 일상을 간단히 말씀드리면, 평일 오후 2시부터 9시까지는 회사에서 업무를 합니다. 영상 제작과 간단한 디자인 업무를 마친 뒤, 남은 주말과 출근 전 오전, 퇴근 후 밤 시간을 투자해 ‘문채(문장 채집 앱)’을 만들었습니다.

문채는 ‘문장 채집 앱’이라는 이름처럼, 일상에서 발견한 문장을 저장하고 다시 필사하며 나만의 패턴을 발견하도록 돕는 서비스입니다. 처음부터 방향이 명확했던 것은 아닙니다. 리드미, 이키가이 테스트 같은 아이디어를 떠올렸다가 여러 번 버렸고, 그 과정에서 “문장 발견 → 저장 → 필사 → 패턴 발견 → 나를 앎”이라는 문채의 방향성을 잡아갔습니다.
이번 글에서는 제가 바이브 코딩으로 문채를 만들며 겪은 기획과 문제 정의 과정, 3,800줄 코드와 42개 파일 동시 수정, 로그인 오류 같은 시행착오, 그리고 앱스토어·구글 플레이·크롬 확장 프로그램 출시까지의 과정을 소개하려고 합니다.

이번 글에서 소개할 ‘문채(문장 채집)’는 저의 두 번째 서비스고, 첫 번째는 ‘톡시그널(Toksignal)’이 있었습니다. 카카오톡 대화 분석 서비스로 1회 990원 소액결제까지 붙어 있었죠. 이것도 바이브 코딩으로 만들었습니다.
제가 톡시그널을 만들면서 깨달은 게 있는데요. 바로 제작자의 코딩 실력은 중요하지 않다는 겁니다. 중요한 것은 “내가 뭘 만들어야 하는지” 아는 것입니다. 다시 말해서 무언가를 만들 때는 기획이 가장 중요한데, “나는 이 서비스를 ‘왜?’ 만들고 싶은가?”를 고민해 봐야 합니다. 그런 의미에서 문채는 제가 필요해서 만든 앱이었고요.

사실 저는 문채를 개발하기 전에 다른 걸 먼저 시도했습니다.
그 외에도 여러 아이디어가 있었지만, 사용해야 할 이유를 따져보고, “내가 쓰고 싶은가”를 생각해 보면서 답이 나왔습니다. 여러 번의 아이디어를 버렸기 때문에 문채가 세상에 나올 수 있었죠.

문채는 유행을 따라가기보다, 제가 ‘불편함’을 느끼는 것에서 시작했어요. 그리고 클로드에게 자유롭게 말을 꺼냈죠.
몇 가지 자유롭게 말해볼게?
1. 필사 앱 있으면 좋겠다. 아이패드로 필사하는 중이라..
2. 나를 탐구하고 싶은 욕망, 내가 좋아하는 일을 찾고 싶다는 욕망이 있다.
3. 문장 수집하고 싶은데 노션(Notion) 불편함, 구글 킵(Google Keep) 뭔가 정리가 안 됨
그 다음 이렇게 물었어요.
2+3을 하는 과정은 어때? 내가 수집한 문장 필사도 할 수 있게
이런 식으로 작게 펼친 아이디어를 점점 구체화하며 확산해 나갔죠.
문장 발견 → 저장 → 필사 → 패턴 발견 → 나를 앎
기존 독서 앱은 책에서 문장을 모으는데, 저는 책에서만 문장을 채집하지 않습니다. 롱블랙, 유튜브 등 다양한 곳에서 문장을 채집하기 때문에, 기존 독서 앱과는 달라야 했죠.

처음에 이 앱의 이름을 ‘AI 문장수집’이라고 지어봤는데, AI가 문장을 긁어모으는 느낌이었습니다. 하지만 이 앱은 제가 직접 마음에 드는 문장을 채집하는 서비스에 가까웠죠. 클로드에게 작명을 부탁했더니 다양한 이름이 나왔습니다. 글결, 글린(Glean), 글숲... 그런데 글결은 발음이 너무 어렵고, 나머지는 크게 와닿지 않았습니다. 그러다가 발견한 것이 바로 “문채(문장 채집)”였는데요. 보자마자 ‘아, 이거다’라고 생각할 정도로, 제가 느끼기에 찰떡같은 이름이었습니다.
1년 반 전, 저는 꽤 힘든 시기를 보내고 있었습니다. 취업도 되지 않았고, 매일이 공허했죠. 어디로 나아가야 할지 아무런 방향도 보이지 않았습니다. 그때 저를 붙잡아준 건 제가 써 내려간 문장이었습니다. 책에서, 롱블랙에서, 유튜브에서, 제가 쓴 글까지. 제 마음에 닿은 문장을 하나씩 적어 나갔는데요. 그 문장들이 점점 쌓이자, 제가 어떤 것에서 행복을 느끼는지, 무엇을 좋아하는지, 무엇을 하고 싶은 사람인지 보이기 시작했습니다. 문채는 바로 거기서 씨앗이 생겨나고 있었습니다.

시작은 매우 단순했습니다. 한 페이지에 모든 것이 다 보였고, 디자인은 그저 그랬죠. 클로드에게 이것저것 설명하면서 하나씩 고쳐달라고 했습니다. 출처별 태그, 감정 태그, 메모 필드처럼 필요한 요소를 하나씩 더해갔는데요. 제가 직접 써보고 싶은 앱을 만들고 싶었기에 ‘이 버튼은 여기 있어야 해’, ‘여기 간격 너무 좁아’라고 바로 말할 수 있었습니다. 제 눈에 일단 예뻐야 계속 쓰고 싶을 테니까요.
앱의 디자인은 이후에도 계속 클로드와 함께 수정해 나갔습니다. 그렇게 이틀 만에 기본적인 문장 채집이 가능한 웹이 탄생했습니다.
앱이 만들어지니까 너무 신기해서, 다양한 기능을 신나게 넣기 시작했습니다. 그러다 보니 엄청난 문제가 생겼죠. 코드가 파일 하나에 3,800줄이나 들어가 있었던 거예요. 저는 코드를 나눠야 하는지 몰랐던 비개발자라서, 코드가 엄청나게 길어졌던 거죠. 이 때문에 하나를 고치면 다른 하나가 안 되는 문제가 반복됐습니다. 덕분에 풍성한 머리가 줄줄이 빠질 것 같았습니다.
카카오 로그인이 안 됐던 적도 있고, 이모지(Emoji)가 제대로 뜨지 않아 화면이 물음표 박스투성이였던 적도 있습니다. 이건 너무 충격을 받아서 미처 캡처도 하지 못했죠. 개발자가 보면 소제목부터 비웃을 만한 일일지도 모르지만, 비개발자에게 이런 문제는 하나하나가 모두 벽이었습니다. 처음 겪는 데다, 당연히 아무것도 모르니까 말이죠.
가장 끔찍했던 건 42개 파일을 동시에 수정했을 때였습니다. 결과는 완전한 까만 화면이었죠. 아무것도 뜨지 않는, 말도 안 나오는 상황이었습니다. 지금까지 만든 게 다 날아간 걸까 생각했는데, 다행히 깃(Git)으로 이전 커밋으로 되돌려서 살았습니다. 이때부터 저에게는 철칙이 생겼습니다. ‘str_replace로 최소한만 수정해.’ 여러 매뉴얼이나 명령어가 있지만, 저는 최대한 간단하게 하고 싶었습니다. 성격상 복잡하면 하기 힘들어하기 때문이죠.
결국 클로드 코드로 대규모 코드 나누기를 시작했고, 한 단계씩 꼬이지 않도록 클로드 코드에게 명령어를 주었습니다. 이때부터 ‘바로 수정하지 말고 일단 진단부터’라는 말을 달고 살았죠. 3,800줄이었던 코드를 나누는 과정은 매우 고통스러웠지만, 점차 파일은 나눠지기 시작했습니다. 그리고 조금씩 안정적인 코드가 되어가고 있었습니다.

저는 회사에서 퇴근하면 9시가 됩니다. 집에 도착하면 10시가 되죠. 그러면 씻고 바로 맥북 앞에 앉습니다. 그리고 클로드와 함께 필요한 모든 프로그램을 띄우고, 서비스 화면까지 열어두면 오늘의 밤 작업이 시작됩니다. 원래 저는 12시 전에 자는 새나라의 어른이예요. 그런데 코드 작업을 하다 보니 하나를 수정하는 즐거움이 너무 좋았습니다. 계속 더, 더, 더 하게 되면서, 코드를 한창 수정할 때는 2시 넘어서 자는 일이 잦아졌죠. 물론 지금은 다시 12시 전에 자는 새나라의 어른이가 되었지만요.
잠을 늦게 자던 기간에 넣은 기능도 아주 많습니다. 카카오 로그인, 애플 로그인, 데이터 연동, 양방향 친구 시스템, AI 취향 분석 리포트, 책 표지 자동 검색, 디바이스 간 동기화, 보안 정책 등이었죠. 적어 놓고 보니 저도 제가 무엇을 했는지 전부 다는 기억이 잘 나지 않는데, 당시에는 정신없이 도파민에 중독되어 다음 거, 다음 거를 계속해 나갔습니다.
저는 당연하게도 개발 보안을 모릅니다. 그래서 클로드에게 ‘보안 전문가 역할 해줘’라고 했습니다. UX/UI 전문가, QA 전문가 역할도 시켰고, 정말 많이 호출했습니다. 한 번으로 끝내지 않고 여러 번 수정 작업을 거쳐 나갔죠.
테스터는 여러 명에게 부탁했는데, 결과적으로 2명만 해줬습니다. 그게 현실인 거죠. 그런데 참 소중하게도 그 2명이 다양한 수정 사항을 이야기해 줘서 너무 고마웠습니다. ‘A 친구의 친구 추가 코드를 B가 추가했는데 A한테 B가 안 뜸.’ 이런 건 혼자서는 절대 찾을 수 없으니까요.
문채는 원래 앱이 아닌 웹 버전으로 제작하려고 했습니다. 그런데 PG 심사가 문제였습니다. 톡시그널에 결제를 붙이려고 토스 페이먼츠(Toss Payments)에 심사를 넣었는데, 거의 2주 만에 처리가 완료되었거든요. 문채도 PG 심사를 붙이면 이렇게 오래 걸릴 것 같다는 생각에, 결국 앱으로 방향을 틀어 만들기로 했죠.
여기서부터 웹이 아닌 다른 종류의 고통이 시작됐습니다. 저는 터미널(Terminal)이 무엇인지 몰랐거든요. ‘npm run cap:sync 이걸 어디에 적는 거지?’ 프로젝트 경로를 찾지 못해, 폴더 찾기 명령어로 맥북 파일 전체를 뒤져봤습니다. 한 번은 엑스 코드(Xcode)가 계속 적용되지 않아 클로드가 재시작하라고 하길래, 엑스 코드 자체를 지워버린 경험도 있습니다. 클로드는 시뮬레이터를 재시작하라는 뜻이었죠. 이 정도 읽다 보면 필자가 바보인가 생각해도 좋습니다. 그래도 시뮬레이터를 돌려보니, 제 앱이 핸드폰에서 돌아가는 걸 보자마자 제 입에서 한마디가 나왔습니다.

“오호.”
뭔가 감격스러울 정도로 뿌듯했습니다. 제가 진짜 이걸 만들어 낸 건가 싶어 신기했죠. 그런데 앱스토어(App Store) 개발자 등록비가 129,000원이랍니다. 한 번만 내면 되냐고요? 아니요, 매년입니다. 클로드 맥스(Claude Max) 구독료만 해도 어마어마한데, 데이터베이스를 관리하는 곳과 배포하는 곳도 전부 돈이 들었습니다. ‘클로드 맥스 30만 원 값 하고 있나?’ 진지하게 고민했죠. 지금은 개발을 어느 정도 끝낸 상태이기 때문에 클로드 프로를 구독 중입니다.
앱을 만드는 건 쉽지 않습니다. 앱스토어 메타데이터도 직접 다 채웠고, 앱 이름, 부제목, 스크린샷 5장처럼 앱을 만드는 것 말고도 해야 할 일이 산더미였습니다.

그 와중에 앱 만드는 것도 힘든데, 크롬 확장 프로그램(Chrome Extension)까지 만들었습니다. 웹사이트에서 우클릭으로 문장을 바로 채집할 수 있게 하는 기능이죠. 이 아이디어는 감사하게도 지인이 알려줬습니다. 저도 아주 유용하게 쓰고 있는 확장 프로그램 중 하나입니다.
7일, 900커밋. 그렇게 많은 수정과 오류, 버그를 개선하고 방법을 꾸역꾸역 찾아가며 3월 16일에 앱 심사를 넣게 되었습니다. 지금 커밋 횟수는 900을 훌쩍 넘어 1,100을 넘겼고요.
코드는 AI가 써줍니다. 어떤 화면이 필요하고, 유저가 어디서 불편해할지 아는 게 진짜 무기라고 할 수 있죠. 오히려 비개발자가 더 잘 아는 영역이라고도 말할 수 있습니다.
42개 파일을 동시에 수정한 결과는 까만 화면이었습니다. 그래서 나만의 수정 공식을 만들어두면 도움이 됩니다. 저처럼 성격이 급하더라도, 한 번에 많은 것을 절대로 수정하지 마세요.
3,800줄짜리 코드를 파일 하나에 다 넣고, 나중에 쪼개는 건 고통입니다. 처음부터 클로드에게 파일을 분리해서 만들어 달라고 해야 하죠. 저는 처음에 한 파일에 계속 쌓았고, 지금 생각하니 아찔합니다.
보안 전문가, UX 전문가, QA 전문가. 한 번으로는 안 되고, 여러 번 다른 역할을 시켜야 합니다. 한 번 질문하고 끝내지 않고 반복해서 검토를 요청하면, 점점 더 촘촘한 결과물이 나오죠.
운영하는 커뮤니티에 올렸는데, 아무도 안 해줬습니다. 그래서 친한 지인 2명에게 부탁했죠. 흔쾌히 해줘서 너무 고마웠습니다. 혼자서는 절대 못 찾는 버그를 잡아줬거든요. (쟁님 지구님 고마워요.)
저는 리드미도 버리고, 이키가이 테스트도 버렸습니다. 아니다 싶으면 아까워하지 말고 버려야 합니다. 그 두 번의 실패가 있었기에 지금의 문채가 태어날 수 있었습니다.

지금은 앱스토어 승인, 크롬 확장 프로그램 승인, 구글 플레이 스토어 승인이 모두 완료되어 정식 출시가 시작됐습니다. ‘별로 안 한 것 같은데’ 하고 돌아보면, 생각보다 많은 걸 해냈죠. 핸드폰 홈 화면에 문채 아이콘이 다른 앱들 사이에 떡하니 있는 걸 봤을 때, 그 순간만큼은 현실 같지 않았습니다. 내가 만든 앱이 거기 있다는 것이 말이죠.
물론 바이브 코딩이 마법의 ‘딸깍’은 아닙니다. 900커밋 이상의 수정과 반복, 새벽까지 이어진 버그 잡기, 129,000원에 떨리는 손… 그런데 그 끝에는 나의 홈 화면에서 내 앱 아이콘을 보는 순간이 찾아옵니다. 무엇보다 뿌듯한 시간이죠. 이게 제가 느낀 바이브 코딩의 진짜 맛입니다.
<참고>
©️요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.