TDD란?
- Test Driven Development 는 테스트 주도 개발을 의미하는 소프트웨어 개발 방법론이다 아래와 같은 특징이 있다
- 코드 작성 전 테스트 케이스 작성
- 실제 코드를 작성하기 전에 먼저 테스트 케이스를 작성한다 - 반복적인 개발주기
- "Red-Green-Refactor"주기를 따른다- Red : 실패하는 테스트 코드
- Green : 테스트를 통과하는 최소한의 코드 구현
- Refactor : 코드 개선 및 중복 제거
- 작은 단위의 테스트
- 큰 기능을 작은 단위로 나누어 테스트한다 - 지속적인 테스트와 리팩토링
- 새로운 기능을 추가할 때마다 테스트를 수행하고 코드를 개선한다
- 코드 작성 전 테스트 케이스 작성
- TDD의 주요장점
- 코드 품질 향상: 초기부터 버그를 발견하고 수정할 수 있다
- 설계 개선 : 테스트 작성 과정에서 코드 구조와 설계가 자연스럽게 개선된다
- 유지보수 용이성 : 테스트 케이스가 있어 코드 변경시 영향을 쉽게 파악할수 있다.
- TDD의 단점
- 생산성 저하 : 초기 개발 속도가 10~30%정도 느려질 수 있다.
- 학습 곡선 : 기존 개발 방식에서 전환 하는데 어려움이 있을 수 있다.
DDD란?
- Domain-Driven-Design은 소프트웨어 개발 철학으로, 비즈니스 도메인을 중심으로 소프트웨어를 설계하고 개발하는 방법론
- 비즈니스 도메인 중심
- 소프트웨어 사용자의 지식 영역인 비즈니스 도메인을 이해하고 모델링하는 것에 중점을 둡니다. - 공통 언어 사용
- 개발자와 비즈니스 이해관계자 간의 소통을 위해' 유비쿼터스 언어'라고 불리는 공통언어를 사용합니다. 이를 통해 코등의 모든 요소가 비즈니스 현실을 반영하고 비즈니스 이해를 촉진합니다. - 모델 중심 설계
- 잘 정의된 도메인 모델이 비즈니스 도메인을 대표하고 소프트웨어 개발에서 정보를 제공 - 반복적 협업
- 개발자와 비즈니스 이해관계자 간의 지속적인 폅업을 통해 통찰력을 교환하고 피드백을 제공하여 소프트웨어를 지속적으로 개선 - 핵심 도메인 집중
- 비즈니스의 핵심 도메인에 가장 많은 주의,시간,자원을 할당
- 비즈니스 도메인 중심
- DDD는 객체 지향 프로그램(OOP)과 밀접한 관련이 있으며, 실제 비즈니스 요구사항과 모델에 맞는 애플리케이션을 만드는데 도움을 준다. 또한 모델 주도 개발(MDD),이벤트 소싱, 명령 쿼리 책임 분리(CQRS) 등 다른 개발 철학과도 결합하여 사용될 수 있다.
'개발일기 > CS(면접)' 카테고리의 다른 글
DOCKER? (0) | 2024.08.08 |
---|---|
OAuth 란? (0) | 2024.08.07 |
멀티프로세스와 멀티쓰레드의 특징은? (0) | 2024.08.05 |
프로세스와 쓰레드에 대해 설명하고 차이점을 설명해라 (0) | 2024.08.02 |
CI/CD란? (0) | 2024.08.01 |