AI 코딩 도구를 활용한 실전 개발 실험기
Spec Kit과 Claude Code로 근태관리 시스템 구축하기 AI 시대에 가장 뜨거운 격전지는 단연 AI 코딩 분야입니다. Cursor, GitHub Copilot, Claude Code 등 수많은 도구들이 쏟아지며 개발자들의 업무 방식을 근본적으로 바꾸고 있습니다. 그동안 이런 도구들을 미뤄왔던 저는 이번 연휴를 활용해 본격적으로 AI 코딩의 세계에 뛰어들어 보기로 했습니다. 시작: GitHub Spec Kit과의 만남 여러 도구를 살펴보던 중 GitHub에서 공개한 Spec Kit이 눈에 들어왔습니다. 공식 문서를 읽어보니 이 도구의 핵심 아이디어는 명확했습니다. AI가 코딩할 때 필요한 컨텍스트를 체계적으로 작성하고 관리하는 것, 즉 'Spec-Driven Development'를 지원하는 프레임워크였습니다. Spec Kit의 작동 방식은 다섯 가지 핵심 명령어로 구성됩니다. 먼저 /constitution은 개발의 헌법이라 할 수 있는 가이드라인과 정책을 정의합니다. 프롬프트 엔지니어링으로 비유하자면 시스템 프롬프트와 같은 역할입니다. 다음으로 /specify는 사용자 스토리와 제품 요구사항을 입력하는 단계입니다. /plan에서는 기술 스택과 아키텍처를 정의하고, /tasks로 구체적인 할 일 목록을 생성합니다. 마지막으로 /implement가 실제 코딩을 실행하는 명령어입니다. 준비: 개발 환경 구축 VS Code를 열고 Spec Kit을 설치하면서 동시에 오랜만에 Node.js도 다시 설치했습니다. 무엇을 만들지 고민하다가 회사에서 실제로 사용할 수 있는 근태 및 휴가 관리 웹 앱을 Flutter로 개발하기로 결정했습니다. 기술 스택은 4~5년 전 Firebase를 사용해본 경험은 있지만 이번에는 Supabase를 선택했고, 최근 출시된 Claude Code 2.0도 함께 활용해보기로 했습니다. GitHub Copilot도 보조 도구로 옆에 띄워두었습니다. 실전: Constitution부터 Implementation까지 첫 단계인 /constitution 작성부터 막막했습니다. 무엇을 어떻게 적어야 할지 감이 잡히지 않아 ChatGPT에게 Spec Kit 링크와 제가 사용할 스택, 만들려는 기능을 설명하고 도움을 받았습니다. "Use Dart best practices", "Follow Flutter material design guidelines" 같은 Do와 Don't 항목들로 구성된 constitution을 완성할 수 있었습니다. 다음은 /specify 단계였습니다. 제가 생각하는 근태 및 휴가 관리 시스템의 요구사항을 입력했습니다. 여기서 인상 깊었던 점은 Spec Kit이 자동으로 /research를 실행하며 필요한 정보를 조사하고 계획을 수립하는 과정이었습니다. 시스템이 모호한 부분에 대해 clarify를 요청하면서 정책에 대한 명확화를 요구했고, 제가 답변을 제공하자 마일스톤과 태스크들이 체계적으로 생성되었습니다. 마치 바이브 코딩에서 강조하는 PRD(Product Requirements Document)가 자동으로 만들어지는 느낌이었습니다. 개발 과정: 순탄함과 도전 재미를 붙이고 집중하기 시작했습니다. Claude Code를 실행하고 생성된 태스크 목록을 살펴보니 Supabase 계정 생성, API 키 발급, 환경 설정 등 사전 작업이 필요했습니다. 이 부분에서 상당한 시간이 소요되었지만, 막히는 부분은 GitHub Copilot에게 물어가며 하나씩 해결해 나갔습니다. 환경 설정을 마치고 Claude Code에 /tasks milestone 2를 지시하자 본격적인 코딩이 시작되었습니다. 처음에는 최소 배포 버전(MVP)을 목표로 하고 관찰 위주로 진행했습니다. 로컬 환경에서 배포가 가능한지 확인하고 실행해봤는데, 놀랍게도 바로 작동했습니다. 더 나아가기 전에 GitHub 리포지토리를 생성하고 브랜치 전략을 세워 GitHub Actions와 GitHub Pages까지 설정하도록 지시했습니다. 제가 직접 설정하지 못한 일부 부분을 제외하고는 모든 과정이 부드럽게 진행되었습니다. 데이터베이스 연결, 비즈니스 로직 구현, 그리고 인증 시스템까지 예상보다 훨씬 빠르게 완성되어 가는 모습에 점점 더 흥미가 생겼습니다. 한계와 배움 하지만 개발을 진행할수록 Spec Kit이 자동으로 생성한 태스크 목록의 한계도 드러나기 시작했습니다. 특히 작지만 사용자 경험에 중요한 디테일한 요소들이 누락되는 경우가 많았습니다. 완성도를 높이기 위해서는 Spec Kit의 자동 태스크 생성에 의존하기보다는, 비즈니스 로직을 구체적으로 설명하고 계산 방식과 프로세스를 상세히 기술해야 했습니다. 언어 설정(한글/영문), 데이터 검증 규칙, 예외 처리 같은 부분들은 수동으로 명확히 지정해줘야 했고, 후반부로 갈수록 더 많은 시간을 프롬프트 작성에 투자하게 되었습니다.
- SangYeon_LeeS

2