1. 아이디어 구상 및 기획 단계
저자는 Honeybadger 고객들에게 Docker 이미지를 안전하게 배포할 방법을 고민하다가, 이를 별도의 제품인 ‘Breakwater’로 발전시키기로 결정했습니다. 초기 기획 단계에서는 ChatGPT를 활용하여 제품의 핵심 기능과 아키텍처를 정의했습니다.
- 기술 스택 제안: ChatGPT는 Harbor와 같은 기존 OCI 레지스트리를 활용하거나 커스텀 토큰 인증 레이어를 구축하는 방안을 제시했습니다.
- 브랜딩 및 디자인: 서비스 명칭인 ‘Breakwater’ 선정부터 Tailwind CSS 기반의 랜딩 페이지 코드, 브랜드 가이드라인(색상 팔레트, 타이포그래피)까지 ChatGPT의 도움으로 완성했습니다.
2. Claude를 통한 본격적인 개발 프로세스
실제 구현 단계에서는 Claude와 Claude Code를 주력으로 사용했습니다.
- Rails 8 애플리케이션 구축: 브랜드 가이드라인을 입력하여 단 몇 시간 만에 Rails 8 기반의 골격을 완성하고 Harbor API와의 연동을 마쳤습니다.
- 반복적인 문서화와 컨텍스트 유지: 각 개발 세션이 끝날 때마다 Claude에게 프로젝트 계획서를 업데이트하게 하여 다음 세션에서도 일관된 맥락을 유지할 수 있도록 관리했습니다.
- 유연한 아키텍처 전환: 초기에는 Harbor를 사용했으나, 요구사항과의 불일치를 발견하자 즉시 커스텀 인증 레이어 방식으로 방향을 선회했습니다. 이 과정에서도 AI는 새로운 구현 계획을 신속하게 수립해 주었습니다.
3. 기술적 난관 극복: Go 프록시 도입
Docker 태그 기반의 세밀한 라이선싱 제어를 위해 기존 레지스트리 구조만으로는 한계가 있음을 발견했습니다. 저자는 이를 해결하기 위해 아키텍처를 변경했습니다.
- Go 언어 활용: 저자는 익숙하지 않은 영역일 수 있는 Go 언어로 인증 프록시를 구축하는 작업을 Claude에게 맡겼습니다.
- 생산성 극대화: 단 몇 시간 만에 Go 기반 프록시 서버를 완성하여 Rails 앱과 연동함으로써, 복잡한 기술적 문제를 빠르게 해결했습니다.
4. AI 기반의 협업 시스템 (Team of AI)
저자는 혼자 개발하지만 마치 팀처럼 일하는 구조를 만들었습니다.
- Codex와 Copilot의 활용: Claude가 작성한 코드를 Codex에게 리뷰하게 하고, GitHub PR 단계에서는 Copilot의 피드백을 받아 다시 Claude에게 수정을 지시하는 선순환 구조를 구축했습니다.
- 전문가의 역할: 저자는 코드를 직접 타이핑하는 대신, 높은 수준에서 기능을 정의하고 결과물의 품질을 검증하는 ‘디렉터’ 역할에 집중했습니다.
5. AI가 개발자에게 주는 이점
- 실행 에너지(Activation Energy) 절감: 빈 화면에서 시작하는 부담을 줄여주어 프론트엔드 작업 등 기피하던 작업도 쉽게 시작할 수 있게 합니다.
- 비동기적 작업 수행: Claude에게 작업을 맡겨두고 다른 일을 처리한 뒤 결과물을 검토하는 방식으로 멀티태스킹이 가능해졌습니다.
- 도메인 지식의 결합: 숙련된 개발자는 AI의 제안이 올바른지 즉각 판단할 수 있으므로, AI의 속도와 전문가의 판단력이 결합되어 최상의 효율을 냅니다.