BDD — Given-When-Then 으로 자연어가 설계가 되다
Entity (인물·조직)lectureverified2026-05-09

BDD — Given-When-Then 으로 자연어가 설계가 되다

#vch#lecture-intro#C-se-tool#se-g4

BDD — Given-When-Then 으로 자연어가 설계가 되다

1. 요약

BDD (Behavior-Driven Development) 는 2003년 Dan North 가 TDD를 명명했더니 사람들이 헷갈려 한다 는 깨달음에서 출발한 행동 중심 개발 방법론 이다. JBehave 라는 JUnit 대체재를 만들면서 test 라는 단어를 모두 behaviour 로 교체 했고, Given-When-Then 템플릿이 탄생. 자연어 명세 = 실행 가능한 코드 의 직접적 조상.

2. 배경 (이전 도구의 한계)

TDD 는 강력했지만 비개발자 (PM, QA, 고객) 가 테스트를 읽지 못했다. 비즈니스 가치기술 검증 이 끊어진 상태. North 의 통찰: test 대신 should, behaviour 를 쓰면 비개발자도 읽을 수 있다 → 결국 Given-When-Then 이라는 비개발자도 쓸 수 있는 형식 이 답.

3. 핵심 개념·표기법

Given-When-Then 템플릿:

Feature: 사용자 로그인
  Scenario: 올바른 비밀번호로 로그인
    Given 사용자가 가입되어 있고
    And 비밀번호 "Pass123" 으로 등록되어 있을 때
    When 사용자가 "Pass123" 으로 로그인하면
    Then 메인 페이지로 이동한다
    And 환영 메시지가 표시된다
단계의미
Given초기 상태·전제 조건
When트리거되는 행동
Then기대되는 결과

Gherkin 언어 — Given-When-Then 의 형식화, .feature 파일에 저장.

4. 언어·OS 매핑 (★ 강의 핵심)

시대언어·도구BDD 활용
2003~05Java + JBehaveNorth 의 첫 도구
2006~Ruby + Cucumber (Aslak Hellesøy)산업 표준화
2010s모든 언어Cucumber 다국어 지원
2010s~Domain-Driven DesignDDD 의 ubiquitous language 와 통합
2020sAI 에이전트★ 자연어 시나리오 → LLM 코드 자동 생성

★ BDD의 Gherkin 형식이 LLM 시대에 "이런 사용자가 이런 행동을 하면 이런 결과가 나와야 한다" 라는 자연어 프롬프트 의 표준이 됐다. Spec-driven Development 의 직계 조상.

5. 현대까지의 영향

  • Cucumber (2008) — Ruby BDD, 다국어 지원
  • SpecFlow — .NET BDD
  • Domain-Driven Design (Evans 2003)ubiquitous language 가 BDD 와 짝
  • Living Documentation — Gherkin 시나리오가 살아있는 문서
  • AI 에이전트 시나리오 — Cursor, Claude Code 의 spec 입력
  • GitHub Spec Kit (2024~) — Spec-driven Development 의 도구화

6. 주요 인물·사건

연도사건
2003Dan North, JBehave 작업 시작 — test → behaviour 교체
2003North, Introducing BDD 블로그 — BDD 명명
2004Chris Matts + Dan North, Given-When-Then 캔버스
2006Cucumber (Aslak Hellesøy) Ruby 출시
2008Eric Evans, Domain-Driven Design 와 결합
2010s산업 표준화
2024GitHub Spec Kit — BDD 의 LLM 시대 진화

7. 강의 활용

"2003년 Dan North 가 박은 Given-When-Then = 2024년 LLM 명세" 의 21년 일관성. 자연어 (그것도 형식 있는 자연어) 로 시스템 행동을 명세하면 그게 곧 설계 — 이것이 Spec-driven Development 의 본질이고, AI Native Vibe Coding 의 핵심. 언어가 설계다 의 가장 강력한 증거.

출처

그룹 시리즈

synthesis/group-se_g4 (시대 그룹 종합 카드)