상세 컨텐츠

본문 제목

230129 TIL

IT/TIL

by lemontiger 2023. 1. 29. 20:06

본문

오늘 한 일

1. TDD, BDD, DDD

 

1. TDD, BDD, DDD

1_TDD(Test driven development)

테스트 주도 개발

매우 짧은 개발 서클의 반복을 갖는 소프트웨어 개발 프로세스

새로운 기능에 대한 자동화된 테스트케이스를 작성하고 해당 케이스를 통과하는 가장 짧고 가독성이 좋고 유지보수성이 뛰어난 코드를 작성 -> 실패하는 테스트 케이스를 먼저 작성한 후에 개발을 진행

 일단 테스트를 통과하는 코드를 작성하고 상황에 맞게 리팩토링

 

장단점

장) 개발하다 문제가 생겨도 테스팅을 돌려봄으로써 안심하고 진행할 수 있음

장) 보다 객체지향적이고 확장 가능이 용이한 코드, 재설계의 시간을 단축시킬 수 있는 코드, 디버깅 시간이 단축되는 코드

단) 코드량이 늘기 때문에 빠른 생산성이 요구될 때 TDD는 큰 걸림돌일 수 있음

 

테스트 주도 개발 진행과정

1) 테스트 코드 작성하기

앞서 말했던 것처럼 TDD는 테스트 주도 개발이기 때문에 구현해야할 부분을 코드를 먼저 작성해야 한다.

2) 테스트 코드를 실행하기

먼저 작성한 테스트 코드가 실패하는 지 확인.

만약 이 테스트가 성공했을 경우 원하는대로 로직이 짜여지지 않았거나 구현하지 않은 부분의 코드의 테스트가 성공했다는 뜻이므로 버그가 발생한 경우이기 때문에 버그를 찾아야함.

3) 실패한 테스트 코드를 성공시키기 위한 최소한의 코드 구현하기

먼저 작성한 테스트 코드에 따라서 코드를 작성

4) 코드 리팩토링하기

필요에 따라서 구조적으로 잘못된 부분을 수정

 

2_BDD(Behavior driven development)

행동 주도 개발

TDD를 근간으로 파생된 개발 프로세스

TDD와 거의 유사하긴 하지만. 차이가 있다면 TDD는 테스트 자체에 집중해 개발하는 방면, BDD는 비즈니스 요구사항에 집중하여 테스트 케이스를 개발한다

테스트 케이스 자체가 요구사양이 되도록 하는 개발 방식

TDD 를 결합해 시나리오 테스트까지 하는것

시나리오는 어디서부터 테스트를 시작할지, 어떤 것을 테스트하고 어떤 것을 하지 않을지, 한 번에 얼마만큼을 테스트할지, 테스트에 어떤 이름을 붙일지, 테스트가 왜 실패했는지 등에 대한 고민을 해결해줌

메소드 이름을 "이 클래스가 어떤 행위를 해야한다(should do something)" 라는 식의 문장으로 작성해 "행위"를 위한 테스트에 집중

3_DDD(Domain driven development)

도메인 주도 개발

일반적으로 많이 사용하는 데이터 중심의 접근법이 아니라 순수한 도메인의 모델과 로직에 집중하는것

보편적인 언어의 사용을 추구 (유비쿼터스 언어)

상호가 이해할 수 있고 모든 문서와 코드가 동일한 표현과 단어로 구성되게!

분석 작업과 설계 그리고 구현까지 통일된 방식으로 커뮤니케이션 가능

도메인 모델부터 코드까지 항상 함께 움직이는 구조의 모델을 지향

 

유비쿼터스 언어

도메인에서 사용하는 용어를 코드에 반영하지 않으면, 개발자는 코드의 의미를 해석해야 하는 부담을 가지게 됨.

유비쿼터스 언어는 이런 부담을 줄여주고, 프로젝트 관계자(개발자와 비개발자)가 모두 이해하는 공통된 용어를 사용할 수 있도록 함.

번역에 따라 유비쿼터스 언어를 보편적 언어라고 부르기도 한다

 

참고자료:

https://m.blog.naver.com/rkdudwl/221973507455

 

TDD, BDD, DDD, 테스트 주도 개발 개념 및 차이

| TDD (Test-Driven-Development) - 테스트 주도 개발 - 매우 짧은 개발 서클의 반복을 갖는 소프트...

blog.naver.com

https://loopstudy.tistory.com/334

 

유비쿼터스 언어(UBIQUITOUS LANGUAGE)

프로젝트를 진행하다보면 다음과 같은 상황을 겪어볼 수 있다. 첫번째 - 회원 관련 사용자A : 신규 회원을 등록하겠습니다. 사용자B : 신규 회원을 추가하겠습니다. 사용자가 말하는 등록과 추가

loopstudy.tistory.com

 

'IT > TIL' 카테고리의 다른 글

230131 TIL  (0) 2023.01.31
230130 TIL  (0) 2023.01.31
230128 TIL  (0) 2023.01.28
220127 TIL  (0) 2023.01.27
220126 TIL  (0) 2023.01.26

관련글 더보기

댓글 영역