요구사항 명세
개발을 처음하시는 분이라면 이번 챕터를 바로 보는 것보다는 9.4 챕터의 마지막 부분에 있는 템플릿 샘플을 먼저 보시고 필요한 것을 찾아보시는 것을 권합니다. 해당 챕터는 비개발자가 읽기에는 다소 어려운 내용들이 많습니다.
1. 바이브 코딩을 위한 요구사항 분류
아래 모든 요구사항을 반영하여 프로젝트를 진행하는 것이 아닙니다. 예를 들어, 소규모 프로젝트에는 세부적인 요구사항 보다는 화면 구성, 메뉴 구성, 게시판의 요소 등이 들어갈 것이고, 대규모 프로젝트의 경우에는 그런 화면 구성이 아니라 오늘 구현할 함수의 기능 요구사항 명세 정도만 필요할 것입니다. 따라서 프로젝트마다 합당한 요구사항의 양식을 만들고, 그에 따라 개발할 수 있게 하는 것이 필요합니다. 이러한 양식 개발은 특히 대규모 프로젝트를 하는 기업에서는 개인이 하기 힘들고, 회사차원의 지원이 필요합니다.
1.1 기능적 요구사항 (Functional Requirements)
시스템이 무엇을 해야 하는지를 정의하는 요구사항입니다. 전통적인 개발에서는 단순히 기능 목록을 나열하는 것으로 충분했지만, Claude Code와 함께 작업할 때는 AI가 바로 이해하고 구현할 수 있는 형태로 작성해야 합니다.
특히 입력과 출력, 처리 과정을 명확히 구분하여 작성하면 Claude가 더 정확한 코드를 생성할 수 있습니다. 기능 하나를 개발할 때 용이합니다.
구조화된 기능 명세 예시
기능명: 사용자 로그인
목적: 인증된 사용자만 시스템에 접근할 수 있도록 한다
입력: 이메일, 비밀번호
처리:
- 이메일 형식 검증
- 비밀번호 암호화 후 DB 조회
- JWT 토큰 생성
출력:
- 성공: 토큰과 사용자 정보
- 실패: 에러 메시지
예외처리:
- 잘못된 이메일 형식
- 존재하지 않는 사용자
- 비밀번호 불일치
1.2 비기능적 요구사항 (Non-functional Requirements)
시스템이 어떻게 동작해야 하는지를 정의하는 요구사항으로, 성능, 보안, 사용성 등을 포함합니다.
비기능적 요구사항은 종종 간과되기 쉽지만, Claude Code와 함께 개발할 때는 이를 명확히 정의하는 것이 특히 중요합니다. AI가 최적화된 코드를 생성하려면 성능 목표와 제약사항을 구체적으로 알아야 하기 때문입니다.
다만 MVP 수준에서는 비기능적 요구사항을 넣어 개발시간이나 토큰을 쓰는 것 보다는 추후 최적화 과정을 통해 개선하는 것을 권합니다. 바이브 코딩을 하면서 아래 비기능 요구사항을 테스트하느라 소모하는 토큰이 꽤 되기 때문입니다. MVP 수준의 보안 요구사항 같은 경우에는 처음부터 그것이 반영되어 있는 프레임워크를 쓰시는 것을 권합니다.
성능 요구사항:
- 페이지 로딩 시간: 3초 이내
- 동시 접속자: 1000명 지원
- 데이터베이스 응답 시간: 100ms 이내
보안 요구사항:
- HTTPS 통신 필수
- 비밀번호 암호화 (bcrypt 사용)
- SQL 인젝션 방어
사용성 요구사항:
- 모바일 반응형 지원
- 브라우저 호환성: Chrome, Firefox, Safari 최신 버전
- 접근성: WCAG 2.1 AA 수준
2. Claude Code를 위한 요구사항 작성 패턴
바이브 코딩에서는 AI가 이해하기 쉬운 패턴으로 요구사항을 작성하는 것이 중요합니다. Claude는 구조화된 정보를 선호하며, 일관된 패턴으로 작성된 요구사항을 더 정확하게 해석할 수 있습니다. 다음 세 가지 패턴을 순서대로 적용하면 효과적입니다.
2.1 컨텍스트 먼저 제공
Claude가 올바른 판단을 내리려면 프로젝트의 전체적인 맥락을 이해해야 합니다. 단순히 "회원가입 기능"을 요청하는 것과 "B2C 이커머스의 회원가입 기능"을 요청하는 것은 완전히 다른 결과를 가져옵니다.
2.2 사용자 스토리 형태 구성
사용자 스토리는 기능의 목적과 가치를 명확하게 전달하는 효과적인 방법입니다. Claude는 이러한 형태의 요구사항을 통해 단순한 기능 구현을 넘어 사용자의 니즈를 반영한 설계를 할 수 있습니다.
예시
사용자로서, 나는 [목적]을 위해 [기능]을 원한다.
예시:
- 독서 애호가로서, 나는 새로운 책을 발견하기 위해 장르별 추천 기능을 원한다.
- 클럽 운영진으로서, 나는 효과적인 독서 모임 관리를 위해 일정 관리 기능을 원한다.
- 관리자로서, 나는 플랫폼 건전성 유지를 위해 신고 처리 기능을 원한다.
2.3 구체적인 구현 지시사항
추상적인 요구사항보다는 구체적인 API 명세나 데이터 구조를 제시하는 것이 Claude와의 협업에서 훨씬 효과적입니다. 이렇게 작성된 요구사항은 오해의 여지를 줄이고 일관된 구현을 보장합니다.
예시
API 엔드포인트: POST /api/books/recommend
요청 데이터:
{
"genres": ["fantasy", "sci-fi"],
"readingLevel": "intermediate",
"excludeAuthors": ["author1", "author2"]
}
응답 데이터:
{
"recommendations": [
{
"id": "book-123",
"title": "책 제목",
"author": "작가명",
"genre": "fantasy",
"rating": 4.5,
"description": "책 설명"
}
]
}
3. 요구사항 우선순위 설정
바이브 코딩에서는 빠른 프로토타이핑과 반복적 개선이 핵심입니다. 따라서 요구사항에 명확한 우선순위를 부여하는 것이 중요합니다. Claude Code와 함께 작업할 때는 특히 개발 순서와 의존성을 고려한 우선순위 설정이 필요합니다. 모든 작업을 한 번에 시키지 말고 가장 우선순위가 높은 작업부터 차례대로 시키세요.
3.1 MoSCoW 방법론의 바이브 코딩 적용
MoSCoW는 요구사항의 우선순위를 정하는 방법입니다. Must Have, Should Have, Could Have, Won't Have의 줄임말입니다.
3.1.1 Must have (반드시 있어야 함)
핵심 비즈니스 로직과 사용자 경험의 근간이 되는 기능들입니다. 이 기능들이 없으면 서비스 자체가 성립하지 않습니다.
온라인 서점 예시
Must have
- 사용자 회원가입/로그인
- 도서 목록 조회
- 장바구니 담기
- 주문 및 결제
- 기본 주문 조회
개발 우선순위: 1-2주차
Claude Code 지시: "핵심 비즈니스 플로우를 먼저 구현해주세요"
3.1.2 Should have (있어야 함)
사용자 만족도와 서비스 품질에 직접적인 영향을 미치는 중요한 기능들입니다. Must have 완성 후 바로 착수해야 합니다.
Should have
- 도서 검색 및 필터링
- 사용자 리뷰 및 평점
- 위시리스트 관리
- 주문 상태 알림
- 반응형 모바일 UI
개발 우선순위: 3-4주차
Claude Code 지시: "사용자 경험 개선을 위한 기능들을 추가해주세요"
3.1.3 Could have (있으면 좋음)
사용자 경험을 풍부하게 만드는 부가 기능들입니다. 리소스가 남을 때 구현합니다.
Could have
- 개인화된 추천 시스템
- 소셜 로그인 (구글, 카카오)
- 도서 미리보기
- 독서 커뮤니티 기능
- 할인 쿠폰 시스템
개발 우선순위: 5-6주차
Claude Code 지시: "여유가 있다면 사용자 engagement를 높이는 기능들을 구현해주세요"
3.1.4 Won't have (이번에는 하지 않음)
현재 개발 스코프에서 명확히 제외되는 기능들입니다. 향후 버전에서 검토합니다.
Won't have (v1.0에서)
- 전자책 리더 기능
- 다국어 지원
- 오프라인 모드
- 음성 검색
- AR/VR 도서 미리보기
제외 이유: 기술적 복잡성, 개발 시간 부족, 시장 검증 필요
3.2 Claude Code를 위한 우선순위 전달 방법
3.2.1 구조화된 우선순위 지시
프로젝트를 아래 순서대로 개발합니다. 먼저 1순위를 개발해주세요.
1순위 (Critical Path):
"먼저 사용자가 회원가입부터 첫 구매까지 완료할 수 있는
핵심 플로우를 구현해주세요. 데이터베이스 스키마부터 시작해서
인증 → 상품 조회 → 주문 → 결제 순서로 진행합니다."
2순위 (User Experience):
"핵심 플로우가 완성되면 사용자 경험 개선에 집중해주세요.
검색, 필터링, 리뷰 시스템 등을 추가합니다."
3순위 (Enhancement):
"기본 기능이 안정화되면 개인화, 추천, 소셜 기능 등
부가가치 기능을 구현해주세요."
3.2.2 주차별 목표 설정
프로젝트를 아래 순서대로 개발합니다. 먼저 1 ~ 2주차 기능을 개발해주세요.
Week 1-2: MVP 핵심 기능 (Must Have)
- 목표: 사용자가 기본적인 구매 플로우를 완주할 수 있음
- 완료 기준: 회원가입 → 상품 선택 → 결제 → 주문 확인
Week 3-4: 사용성 개선 (Should Have)
- 목표: 실제 사용 가능한 수준의 서비스
- 완료 기준: 검색, 필터링, 기본 관리 기능
Week 5-6: 경쟁력 확보 (Could Have)
- 목표: 시장에서 차별화될 수 있는 기능
- 완료 기준: 개인화, 추천, 커뮤니티 기능
Week 7-8: 안정화 및 최적화
- 목표: 실제 운영 가능한 서비스
- 완료 기준: 성능 최적화, 모니터링, 배포
이러한 체계적인 우선순위 설정을 통해 Claude Code와 효율적으로 협업하며, 제한된 시간 내에 최대의 비즈니스 가치를 창출할 수 있습니다.