본문 바로가기
IT 정보/용어

BDD란? 사용자 관점에서 개발을 이끄는 행동 주도 개발

by 희품 2025. 6. 18.
반응형

BDD란? 사용자 관점에서 개발을 이끄는 행동 주도 개발 썸네일 이미지

소프트웨어는 결국 사람을 위한 도구다. 그렇다면 개발도 사용자 중심으로 이루어져야 하지 않을까? BDD(Behavior-Driven Development, 행동 주도 개발)는 이러한 생각에서 출발한 개발 방법론이다.
BDD는 테스트 주도 개발(TDD)을 확장하여, 비즈니스 요구사항과 개발을 효과적으로 연결하려는 시도를 담고 있다.

BDD의 정의, 핵심 개념, 문법 구조, TDD와의 차이점, 도구, 실무 적용 방안 등을 알아보자.

 

BDD란?

시나리오 중심의 개발 설계를 아날로그 적으로 표현한 사진. TDD와 대조되는 BDD

BDD(Behavior-Driven Development)는 개발자가 아닌 사용자와 비즈니스 관점에서 시스템의 동작을 정의하고, 이를 테스트 기반으로 구현하는 소프트웨어 개발 방법론이다. 2003년경 댄 노스(Dan North)가 TDD를 개선하고자 제안하였다.

 

핵심은 모든 이해관계자(개발자, 테스터, 기획자)가 공통 언어로 소통하며 기대하는 동작(behavior)을 명확히 정의하는 데 있다.

 

BDD의 핵심 개념

BDD는 다음과 같이 행동을 중심으로 이해하면 된다.

표시된 코드를 시나리오로 작성하고 공유한다면 BDD의 핵심 개념을 이해할 수 있는 것.

  • 행동 중심(Behavior): 기능이 아닌, 사용자나 시스템의 "행동"에 초점
  • 공통 언어(Ubiquitous Language): 기술자와 비기술자가 모두 이해 가능한 언어로 명세 작성
  • 시나리오 기반 테스트: 요구사항을 예제로 표현하여 가독성과 추적성 향상
  • 예제 주도 개발(Example-Driven): 구체적인 상황을 예제로 정의하고 검증

 

 

BDD의 문법 구조 : Given-When-Then

BDD의 시나리오는 자연어에 가까운 구조로 작성된다. 대표적으로 Given-When-Then 형식을 사용한다.

로그인 기능의 예시를 보여주는 사진

  • Given(주어진): 테스트 전제 조건
  • When(언제): 동작 또는 이벤트
  • Then(그러면): 기대 결과

기능 개발 예시를 하나 살펴보자.

기능: 로그인 기능
  시나리오: 등록된 사용자는 로그인할 수 있다
    주어진 사용자가 이메일과 비밀번호를 가지고 있을 때
    그리고 사용자가 로그인 화면에 접속했을 때
    만약 올바른 정보를 입력하면
    그러면 로그인에 성공해야 한다

 

 

 

TDD와 BDD의 차이

테스트 주도 개발인 TDD와 행동 주도 개발인 BDD는 주체에 큰 차이가 있다.

개발자 중심인지, 개발자, 운영, 고객 모든 이해 관계자 중심인지에 따라 어떤 차이가 있는지 살펴보자.

  TDD BDD
중심 코드/단위 중심 행동/비즈니스 중심
커뮤니케이션 대상 개발자 중심 모든 이해관계자
문법 스타일 assertEquals(), isTrue() 등 Given-When-Then 자연어 기반
명세 역할 테스트 코드가 명세 시나리오가 명세
예제 표현 코드 내부 시나리오와 예제 파일로 표현

 

 

 

BDD의 장점

BDD는 사용자와 비즈니스 중심의 접근을 통해 개발 효율성과 품질을 동시에 높이고자 한다.

개발자 외에 비즈니스 소통을 아날로그로 보여주는 사진. 시나리오를 공유하는 모습으로 보여질 수 있음.

  • 비즈니스와 개발 간 소통 원활
  • 명확한 요구사항 정의 가능
  • 자동화 테스트와 문서화 동시 달성
  • 사용자 중심의 개발 유도
BDD의 단점

BDD는 TDD의 상위 호환처럼 보이지만, 꼭 그렇지는 않다. BDD를 위한 학습이 필요하며, 단순히 코드로 이루어진 개발 단위가 아니라, 시나리오를 작성해야 하는 번거로움과 복잡성 때문에 효율성이 떨어질 가능성도 높다.

하나의 아이디어에서 나오는 복잡성을 표시한 이미지. 선이 꼬여있는 모습과 전구.

  • 초기 설정 및 학습 곡선 존재
  • 시나리오 관리가 많아질 경우 복잡성 증가
  • 기술·업무 모두 이해하는 중재자 필요

 

BDD 적용 시 유의 사항

BDD를 현업에 적용하려면 조금씩, 전문가의 도움으로 시작하는 것이 좋다.

전문가의 도움을 받는 것 같은 사진. 하나의 노트를 같이 보고 있다.

  • 도메인 전문가와 협업: 명세 작성은 반드시 실 사용자 관점에서 진행
  • 작은 단위부터 도입: 전체 프로젝트보단 핵심 기능부터 적용
  • Gherkin 문법 활용: 일관된 시나리오 작성으로 가독성과 재사용성 확보
  • 자동화 도구 통합: Cucumber, SpecFlow, Behave 등으로 CI 파이프라인에 연결

BDD는 테스트 기법을 넘어, 요구사항과 개발을 자연스럽게 연결해 주는 커뮤니케이션 도구이기도 하다.

특히 기술과 비즈니스의 간극을 줄이고자 할 때 효과적인 전략이다.

팀 내 협업과 사용자 중심 사고를 강화하고자 한다면, BDD는 매우 유용한 선택지가 될 수 있다.

궁금하신 내용이 있으면 댓글 남겨주세요. 꼬리말 이미지.

#BDD #행동주도개발 #TDD #GivenWhenThen #소프트웨어테스트 #요구사항정의 #테스트자동화 #Cucumber #시나리오기반개발 #사용자중심개발

반응형