Claude Code × AI-DLC 핸즈온 튜토리얼
레벨 2 · classic11

구현: 유닛 u1

유닛마다 기능 설계 → 품질 요구 → 코드 계획 승인 → 테스트 먼저 → 검증 명령 → 체크포인트를 반복합니다. 첫 유닛 u1(검색 서비스)의 산출물이 어떻게 이어지는지 봅니다. 사용량 한도로 이번 실행은 u1까지 진행했습니다.

무엇을 · 왜#

순서 하는 일 산출물 사람
기능 설계 엔티티·규칙·워크플로 entities.md, rules.md, functional-spec.md 따로 멈추지 않음
품질 요구(NFR) 성능·보안·신뢰성과 측정 방법 nfr-requirements/*, nfr-design/* 따로 멈추지 않음
코드 계획 팀 규칙대로 Red → Green → Refactor 단계 code-generation-plan.md 승인
구현 테스트 먼저, 그다음 코드 코드, traceability.json, code-summary.md 명령 실행 허가
검증 사람이 승인한 명령으로 확인 상태 파일·감사 기록의 체크포인트 첫 유닛에서 명령 승인

시작할 때 한 번, 누가 만들지(이 세션 혼자 / 여러 팀이 유닛을 나눠 맡기)와 진행 방식(일반 체크포인트 자동 / 단계마다 확인)을 정합니다. 이번에는 혼자, 자동 진행을 골랐습니다. 자동 진행이어도 코드 계획과 검증 명령은 사람이 승인하며, 실패하면 사람에게 확인을 요청합니다.

산출물과 바뀐 점#

모든 파일은 construction/u1-search-service/ 아래에 있습니다.

① 기능 명세 functional-design/functional-spec.md: "강남역 근처 2시간" 요청의 점수 계산 예시가 테스트 기준값으로 들어갑니다.

passId 총액 거리 종합 순위
gangnam-public-1 6,000 120 62 BEST
yeoksam-bldg-1 7,000 80 60 CANDIDATE
teheran-1 5,000 300 50 CANDIDATE

② 품질 요구 nfr-requirements/performance-requirements.md: 측정 방법이 함께 적힙니다. NFR3.1은 추천 요청을 100회 반복했을 때 응답 시간의 최댓값이 2초 이하여야 한다는 요구입니다.

③ 코드 계획 code-generation/code-generation-plan.md: 팀 규칙(TDD)대로 계층마다 실패하는 테스트를 먼저 작성합니다. 아래 스토리 추적 표는 인수 조건과 코드 계획을 연결합니다.

- [ ] Step 9: 비즈니스 로직 - Red. 시험을 먼저 쓴다: QueryParser(…), 점수 계산(AC2.2.1의 92·72·0 입력 예시, 계산 예시 표의 62·60·50·40과 순위, …)
- [ ] Step 10: 비즈니스 로직 - Green. QueryParser, RecommendationService, ReasonFormatter, PassLookupService를 구현한다.

④ 결과 code-generation/code-summary.md: 테스트 65개가 통과했고, 라인 커버리지는 95.8%입니다(313줄 중 300줄, 하한 80%). traceability.json에는 u1이 맡은 ID 44개(AC·NFR·BR)마다 구현·테스트 파일이 기록됩니다.

⑤ 검증 명령 aidlc-state.md: 사람이 승인한 mvn -q verify가 기록되고, 유닛마다 이 명령으로 체크포인트를 기록합니다(감사 기록 CHECKPOINT_VERIFICATION_RECORDED, 종료 코드 0).

다음 유닛과 마지막 빌드·테스트#

남은 유닛 u2 → u5도 같은 순서로 이어지고, 모든 유닛이 끝나면 전체 빌드와 테스트로 한 번 확인합니다. 실패하면 정해진 순서로 처리합니다.

  1. 단계 안에서 수정합니다(테스트 설정·스크립트·환경). 최대 2번 시도합니다.
  2. 원인을 분류하고 영향을 추정합니다.
  3. 자동 진행이면 원인 유닛의 코드 생성 단계부터 다시 실행합니다. 최대 3번 시도합니다.
  4. 그래도 해결되지 않으면 멈추고 사람에게 후보와 영향을 제시하며 묻습니다

품질 목표(커버리지 하한 등)를 낮춰 통과시키는 것은 수정으로 인정하지 않습니다. 이번 실행은 u1에서 주간 사용량의 약 3%를 사용하고 u2 직전에 멈췄습니다. 같은 폴더에서 claude → /aidlc로 이어 갈 수 있습니다.

© uEngine Solutions · 문의하기 · 이 튜토리얼의 화면과 결과는 2026년 11월 5일 Claude Code 2.1.318(Sonnet 5.5)과 AI-DLC 2.11.2로 실제로 실행해 얻었습니다. 모델이 쓰는 문장은 실행할 때마다 달라질 수 있습니다.