← 목록으로지식 공유

Warp + Obsidian + Claude + Codex로 개발하는 방법

이 글은 발표 하나에서 출발했습니다. 청중은 현업 개발자분들이었어요. 솔직히 말하면 "바이브코딩은 믿을 수 없고, 지금 배운다고 나한테 크게 바뀌는 게 있나? 잠깐 시간 때우고 가야지" 하는 분들이 대부분이었습니다. 그분들께 어떻게 설명드려야 와닿을지, 한 번쯤 자신만의 사이트를 만들어 보고 — 더 나아가 내 업무에 어떻게 적용할까 고민까지 하시게 만들 수 있을지. 흥미와 재미와 실용적인 이야기를 담으려고 애쓴 결과물이 이 글입니다.

미리 말씀드리면, 이 이야기는 철저히 저의 경험담 위주입니다. 참고만 하시고, 헛소리라고 생각되는 부분은 웃으며 넘어가 주시면 감사하겠습니다.

저는 AI적 사고를 가진 사람입니다

AI적 사고라는 말이 학술적으로 있는 말은 아니고요, 제가 친구들과 AI 이야기를 할 때 늘 나오는 단어 중 하나입니다. 실제로 있는 말인지 궁금해서 구글에 검색해 봤더니, 제미나이가 그럴싸한 답변을 줬습니다.

AI적 사고란 방대한 데이터를 바탕으로 작동하는 인공지능과 협업하여 생산성을 극대화하되, AI의 오류 가능성을 인지하고 검증하는 인간 중심의 판단력(프롬프트 작성, 확률적 결과 수용, 비판적 검토)을 의미한다.

'AI적 사고'를 검색했을 때 제미나이가 준 답

제가 추상적으로 생각하던 것이 명쾌하게 쓰여 있더라고요. 저는 어떤 작업을 하든 먼저 생각합니다. "AI와 이 작업을 시작해야겠다." 마케팅, 개발, 공부, 메일 작성, 전부요. AI가 실망시킨 적은 많습니다. 하지만 한 가지 확실한 건 — AI와 같이해서 시작은 할 수 있었다는 겁니다. 시작했으면 못해도 반은 갔다고 생각합니다.

여러분도 새로운 일이든 기존에 하던 일이든 AI와 공유해 보세요. 어느 순간 AI와 협업하는 데 거부감이 줄어 있을 것이고, 나에게 점점 맞춰지는 AI에 애착이 느껴질 수도 있습니다. 각설하고, 이제 실제 바이브 코딩 이야기를 하겠습니다.

저는 PM 마인드로 일합니다 — 코드를 보지 않습니다

저는 작업할 때 철저히 PM 마인드로 진행합니다. 코드를 보지 않는다는 거죠. "어떻게 코드를 안 보고 작업할 수 있냐!" — 네, 그래서 사전 작업이 필요합니다. 다음 도구들입니다.

  • Warp — AI가 잘 일하고 있나 쉽게 살펴볼 창
  • Claude Code — 저보다 코테를 잘하고, 빠르게 개발·검증하고, 지루한 작업을 무한 반복해 주는 실행자
  • ChatGPT(Codex) — 옆에서 겐세이 넣으면서 틀린 걸 지적해 주는 리뷰어
  • Obsidian — 저의 전문성을 올려 줄 장기 기억
바이브 코딩 4종 세트 장표 — Warp(관제탑), Claude Code(실행자), ChatGPT·Codex(겐세이), Obsidian(기억) 카드 4장
발표에서 쓴 장표. 코드를 보지 않고 일하려면, 대신 봐 주는 도구들이 필요합니다.

이 넷을 갖추었다면 바이브코딩을 시작할 모든 준비를 마친 겁니다. 이제 각각이 실제로 무슨 일을 하는지 하나씩 설명드릴게요.

Warp — 관제탑

Warp는 터미널입니다. 그런데 저한테는 터미널이라기보다 관제탑에 가깝습니다. 에이전트 세션 여러 개를 탭으로 띄워 놓고, 어떤 놈이 일을 잘하고 있고 어떤 놈이 멈춰서 저를 기다리는지 한눈에 봅니다. 바이브코딩에서 사람의 가장 큰 역할은 타이핑이 아니라 감독인데, 감독하려면 일단 잘 보여야 하거든요. 명령어 블록 단위로 출력이 정리되니까 "아까 그 빌드 에러가 뭐였지" 하고 스크롤 지옥에 빠지는 일도 줄었습니다.

Warp 터미널의 실제 작업 화면 — 왼쪽 세션에서는 Claude Code가 블로그 글을 커밋하고, 오른쪽 세션에서는 다른 에이전트가 옵시디언 지식 폴더를 리뷰하며, 사이드바에는 Codex 세션들이 대기 중
실제 개발하는 모습입니다. 왼쪽 세션은 Claude Code가 지금 이 글을 쓰는 중이고, 오른쪽 세션은 다른 에이전트가 옵시디언 볼트를 정리하는 중입니다. 저는 이 창을 흘끔거리기만 합니다.

Claude Code — 실행자

실제 손발은 Claude Code입니다. 저보다 코딩 테스트를 잘하고, 저라면 하루 종일 걸릴 리팩터링을 커피 한 잔 사이에 끝내고, 무엇보다 지루한 작업을 지루해하지 않습니다. 파일 서른 개에 같은 패턴을 적용하는 일, 테스트 돌리고 고치고 다시 돌리는 일. 사람이 하면 여덟 번째쯤에서 실수가 나오는데, 얘는 여든 번째에도 똑같이 합니다.

다만 그냥 시키면 그냥 하는 수준에서 끝납니다. 그래서 저는 역할을 나눠 줬습니다. PM 역할이 요구사항을 정리하고, 개발 역할이 구현하고, QA 역할이 구현한 놈의 말을 믿지 않고 독립적으로 검증하는 구조 — 이걸 S-Skills라는 하네스로 만들어 쓰고 있습니다. 회사에서 사람들이 일하는 방식을 그대로 에이전트에 옮긴 거라고 보시면 됩니다.

ChatGPT(Codex) — 겐세이 전문

같은 모델한테 "네가 짠 코드 검토해 봐" 하면 대체로 후하게 줍니다. 팔이 안으로 굽어요. 그래서 저는 검토를 다른 모델에게 시킵니다. Codex를 읽기 전용으로 붙여 놓고 "이 저장소 diff를 보고 재현 가능한 결함을 찾아서 반박해 봐"라고 시키면, Claude가 놓친 걸 종종 잡아냅니다. 훈련된 분포가 다르니까 맹점도 다르거든요. 같은 모델 리뷰어 셋보다 다른 모델 하나가 나을 때가 있습니다.

발표에서는 이걸 "옆에서 겐세이 넣는 친구"라고 표현했는데요, 사실 이 겐세이가 제일 값집니다. 저 대신 코드를 의심해 주는 존재니까요. 코드를 안 본다는 건 검증을 안 한다는 게 아니라, 의심하는 일을 AI끼리 시키고 저는 그 결과만 본다는 뜻입니다.

Obsidian — 세션은 끝나도 기억은 남는다

AI와 일하다 보면 제일 아까운 게 대화가 끝나면 사라지는 맥락입니다. 왜 그 설계를 골랐는지, 어떤 디자인을 거부했는지, 삽질 끝에 알아낸 함정이 뭔지. 그래서 저는 작업 전에 에이전트가 옵시디언 볼트의 지식을 읽고, 작업 후에 보고서를 다시 볼트에 남기게 했습니다. 하네스가 실행하고, 옵시디언이 기억하는 구조인데, 이 얘기는 별도의 글에 자세히 썼습니다. 중요한 건 이겁니다 — 이 볼트가 쌓일수록 AI가 아니라 제가 똑똑해집니다. 반년 전의 저와 지금의 저는 같은 질문을 두 번 하지 않거든요.

옵시디언 볼트 화면 — 지식 폴더 아래 AI에이전트·기획·설계·디자인·프론트엔드·백엔드 등 도메인별 폴더가 정리되어 있고, 지식 폴더에만 1,453개 파일이 쌓여 있으며, 발표 자료 노트가 열려 있는 모습
제 옵시디언 볼트입니다. 지식 폴더에만 파일 1,453개 — 에이전트가 읽고 쓰는 지식이 이렇게 쌓입니다. 발표 자료도 여기서 만들어졌습니다.

그래서 하루가 어떻게 돌아가냐면

PM 마인드 루프 장표 — 나(PM)의 지시 → Claude Code 구현 → Codex 교차 리뷰 → Warp에서 결과 확인 → Obsidian 기록, 그리고 기록이 다음 지시로 이어지는 루프
사람은 방향과 판정만 합니다. 구현·지적·기록은 각자 잘하는 도구의 몫입니다.
  • ① 지시 — 무엇을 왜 만드는지, 그리고 "이게 되면 끝"이라는 완료 조건을 정합니다. 제일 머리 쓰는 단계입니다.
  • ② 구현 — Claude Code가 만듭니다. 저는 Warp 창을 흘끔거리며 다른 일을 합니다.
  • ③ 겐세이 — Codex가 틀린 걸 찾아냅니다. 못 찾으면 통과, 찾으면 Claude가 고칩니다.
  • ④ 판정 — 저는 빌드 결과, 테스트, 스크린샷을 보고 승인만 합니다. 코드는 안 봅니다.
  • ⑤ 기록 — 결정과 교훈이 옵시디언에 남고, 다음 지시의 출발점이 됩니다.

실제 사례 하나만 들게요. 이 사이트 오른쪽 아래에 떠 있는 챗봇도 이 루프로 만들었습니다. 저는 "나에 대해서만 답하는 챗봇을 넣어라, 개인정보는 말하지 마라"라고 지시하고 완료 조건을 정했을 뿐입니다. 구현은 Claude가, 보안 검토는 교차 리뷰가, 최종 확인은 회귀 평가 스크립트 10케이스가 했습니다. 프롬프트 인젝션을 시도하면 거절하는지, 없는 연락처를 지어내지 않는지 같은 걸 기계가 검사합니다. 저는 10/10이라는 숫자만 봤어요. 이게 코드를 안 본다의 실체입니다. 안 보는 게 아니라, 더 집요한 눈들에게 외주를 준 겁니다.

claude.ai Design에서 챗봇 플로팅 버튼용 3D 말풍선과 스파클 모델을 만드는 화면 — 왼쪽은 '채팅과 어울리는 3D 모델링으로 다시 만들어줘'라는 대화, 오른쪽은 3D 뷰어와 GLB 다운로드 버튼
심지어 그 챗봇 버튼에 들어간 3D 모델도 클로드로 만들었습니다. "채팅과 어울리는 3D 모델링으로 다시 만들어줘, 추상적인 거 말고"라고 말하면 말풍선이 나옵니다. 모델링 툴은 열지도 않았어요.
코드를 안 보는 대신 반드시 보는 것완료 조건(시작 전에 정한 것), 빌드·테스트 결과, 실행 화면, 그리고 교차 리뷰의 반박. 이 넷 중 하나라도 없으면 그때는 코드를 열어 봅니다. 바이브코딩이 무너지는 순간은 AI가 틀렸을 때가 아니라, 사람이 검증 없이 믿었을 때더라고요.

그래서 여러분은 뭘 하시면 되냐면

거창하게 시작하지 마세요. 제 추천은 자신만의 사이트 하나입니다. 이력서든 블로그든 상관없습니다. 망해도 아무도 안 다치고, 잘되면 포트폴리오가 되고, 무엇보다 위의 루프를 처음부터 끝까지 한 바퀴 돌아볼 수 있는 가장 싼 놀이터거든요. 이 사이트도 그렇게 만들어졌습니다.

한 바퀴 돌아보고 나면 자연스럽게 다음 생각이 듭니다. "어? 이거 회사에서 매주 하는 그 반복 작업에 쓰면 되겠는데?" — 그 순간이 오면 성공입니다. 도구 이름은 중요하지 않습니다. Warp가 아니어도, Codex가 아니어도 됩니다. 중요한 건 실행하는 놈, 의심하는 놈, 기억하는 곳을 분리해 두는 구조입니다.

다시 한번, 여기까지 전부 저의 경험담입니다. 헛소리라고 생각되는 부분은 웃으며 넘어가 주시고 — 다만 한 가지만 가져가신다면 이걸 가져가세요. AI와 같이하면, 못해도 반은 갑니다.

#바이브코딩#Warp#ClaudeCode#Codex#옵시디언#AI적사고
승주

AI와 작업 일기