
1일 차: Spec-Driven Development (SDD): 주택 담보 대출 비교기 구축하기
요약
GitHub Spec Kit을 활용한 Spec-Driven Development(SDD) 방식으로 주택 담보 대출 비교기를 구축하는 개발 일지입니다. 모델에 종속되지 않는 표준화된 워크플로우를 통해 사양 기반의 체계적인 웹 애플리케이션 개발 과정을 소개합니다.
핵심 포인트
- GitHub Spec Kit을 이용한 사양 기반 개발(SDD) 방법론 적용
- 특정 AI 모델에 종속되지 않는 모델 독립적(Model-Agnostic) 개발 환경 구축
- 금융 결합 상품의 실질적 가치를 계산하는 지능형 로직 구현
- 표준화된 명령어와 Git 네이티브 구조를 통한 개발 라이프사이클 관리
안녕하세요 여러분! 이 개발 일지의 1일 차에 오신 것을 환영합니다. 앞으로 몇 주 동안 저는 실제 웹 애플리케이션을 처음부터 구축하는 과정을 단계별로 기록할 예정입니다.
하지만 눈을 감고 무작정 진행하지는 않을 것입니다. 이 프로젝트를 위해 전통적인 방식으로 프로그래밍하거나 즉흥적으로 임하지 않을 것입니다. 저는 생태계에서 가장 강력한 오픈 표준 도구인 GitHub Spec Kit에 의지하여 **Spec-Driven Development (SDD)**를 사용할 것입니다.
🎯 프로젝트: 지능형 주택 담보 대출 비교기
우리가 구축할 애플리케이션은 매우 명확한 목적을 가지고 있으며, 사양 기반 개발(Spec-Driven Development)에 완벽하게 적합한 비즈니스 로직을 가지고 있습니다:
- 다중 주택 담보 대출 비교기: 각각의 이자율(고정, 변동 또는 혼합), 기간 및 개설 수수료를 포함하여 최대 3개의 주택 담보 대출을 동시에 입력하고 비교할 수 있습니다.
- 결합 상품(부가 서비스) 시뮬레이터: 은행이 주택 담보 대출 금리 차이를 낮추기 위해 통상적으로 제안하는 추가 결합 상품(생명 보험, 주택 보험, 급여 이체, 연금 계획, 보안 알람 등)을 추가할 수 있습니다.
- 실질적 타당성 계산 (금융 중재자): 은행의 결합 상품이 실제로 가치가 있는지 평가합니다.
- 예시: 은행의 생명 보험에 가입하면 대출 금리가 0.1% 낮아져(월 납입금에서 15€ 절약) 하지만, 해당 은행의 보험료가 연간 300€(월 25€)이고 외부에서 독립적으로 가입할 경우 연간 200€(월 16.6€)라면... 금리 우대 혜택을 받을 가치가 있을까요? 시스템은 결합 상품을 통해 돈을 잃고 있는지 아니면 벌고 있는지를 수학적으로 계산할 것입니다.
🛠️ 왜 GitHub Spec Kit을 선택했나요?
이 개발의 라이프사이클 (lifecycle)을 관리하기 위해, 저는 GitHub Spec Kit을 선택했습니다. 이유는 매우 간단합니다:
- 모델 독립성 (Model-Agnostic): Spec Kit은 저를 단일 AI 제공업체에 종속시키지 않습니다. 이는 CLI (
specify)와 표준 템플릿을 통해 작동합니다. 이를 통해 로컬 (예: qwen3.5:9b) 및 클라우드 (예: Claude, OpenAI, Gemini의 최상위 모델...)의 모든 LLM을 사용하여 사양 (specification)을 오케스트레이션할 수 있습니다. - 표준화된 구조 및 명령어: Spec Kit은 명확한 명령어 (
/constitution,/specify,/plan,/tasks,/implement)를 통해 구조화된 흐름을 제공합니다. 폴더 구조를 직접 고안할 필요가 없습니다. 프레임워크가 사양과 코드가 조화롭게 공존하도록 관리합니다. - Git 네이티브 동기화: 사양 (OpenSpec 기반의 YAML 메타데이터를 포함한 Markdown 형식)은 리포지토리의
.specify/폴더에 직접 저장됩니다. 따라서 생명 보험 계산기의 동작을 수정해야 하는 경우, 먼저 사양.md파일을 편집하면 Spec Kit이 제어된 방식으로 코드를 재생성합니다.
🥊 비교 표: 2026년의 개발 생태계
우리가 하려는 작업의 가치를 이해하기 위해, SDD가 다른 접근 방식과 어떻게 비교되는지 살펴보겠습니다.
1. SDD vs. 설계 및 개발 방법론 (TDD 및 BDD)
| 기준 | TDD (Test-Driven) | BDD (Behavior-Driven) | SDD (Spec-Driven / Spec Kit) |
|---|---|---|---|
| 주요 산출물 (Artifact) | 코드 단위 테스트 (예: Jest, PyTest). | 비즈니스 언어로 작성된 사용자 시나리오 (Gherkin: Given/When/Then). | 구조화된 실행 가능한 사양 (아키텍처, EARS 규칙, API, 수학 공식). |
| ... |
2. SDD vs. Vibe Coding (AI를 이용한 즉흥적 코딩)
| 측면 (Aspect) | Vibe Coding (즉흥적 코딩) | Spec Kit을 이용한 SDD (명세 기반) |
|---|---|---|
| 접근 방식 | 빠르고 모호한 프롬프트 (예: "보험이 포함된 주택 담보 대출 비교기를 만들어줘") | EARS 구문을 사용하여 표준화된 논리 규칙에 기반한 제한된 명세 (Specifications) |
| ... |
⚙️ 공격 계획: 4단계 흐름
내일부터 각 기능(주택 담보 대출 로드 모듈, 보험 시뮬레이터, 그래픽 비교 인터페이스 등)에 대해 Spec Kit을 지원하는 다음 사이클을 반복할 것입니다:
- 명세화 (Specify): OpenSpec 표준에 따라
calculator.md파일을 작성하며, EARS 규칙을 사용하여 정확한 금융 공식을 상세히 기술합니다 (예: "사용자가 주택 보험을 활성화하면(WHEN), 시스템은 금리 차이를 0.20% 줄이고(THEN) 프로필의 연간 지출에 250€를 추가한다"). - 계획 (Plan): AI 에이전트가 명세를 기술적인
plan.md로 변환합니다 (날짜 계산을 위해 어떤 라이브러리를 사용할지, 로컬 데이터베이스 사용 여부 등). - 태스크 생성 (Tasks): 부수적인 오류 없이 실행될 수 있도록 계획을 원자적(Atomic)인 프로그래밍 태스크로 나눕니다.
- 구현 (Implement): 프로그래머 또는 AI가 각 태스크를 완료하며, 계산 결과가 초기 명세(Spec)에 대한 검증을 통과하는지 확인합니다.
🚀 다음 단계는?
Spec Kit을 사용하면 우리의 금융 시뮬레이터가 수학적으로 정확하며, 더 많은 결합 조건(연금 계획 또는 보안 알람 등)을 추가함에 따라 완벽하게 확장(Scalable)될 수 있음을 보장할 수 있습니다.
이 일지의 다음 포스트에서는 우리 앱의 기술적 **"헌법 (Constitution)"**과 그 이상의 내용을 정의할 것입니다.
Day 2에서 만나요! 비교기에 어떤 기능이 포함되길 원하는지 댓글로 알려주세요!
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기