레거시 코드, 빈약한 모델 구조의 프로젝트를 파악하기란 무척이나 어렵다.
레거시 코드를 리팩토링하는 건 더 어렵다.
어떻게 리팩토링을 시작해야 할까?
최선의 방법은 테스트 코드다.
테스트 코드란?
기능을 검증하는 코드를 테스트 코드라 한다.
테스트에는 단위 테스트, 통합 테스트, 인수 테스트가 있다.
- 단위 테스트 : 기능 별로 테스트 진행, 필요한 부분만 따로 진행할 수 있다.
- 통합 테스트 : 외부 모듈을 묶어서 진행, 단위 테스트에서 발견하지 못한 에러를 발견할 수 있다.
- 인수 테스트 : 시스템을 대상으로 검증, 최대한 운영과 흡사한 환경에서 진행한다.
레거시에 테스트 코드를 작성하는 이유?
테스트 코드를 통해 레거시의 여러 가지를 파악할 수 있다.
- 도메인 파악 : 레거시 코드를 통해 무엇을 얻고자 하는지 파악한다.
- 모듈화 단서 : 거대한 덩어리를 어떻게 분해할지 단서가 보인다.
- 변경의 여파 파악 : 작성된 테스트 코드를 통해 어디까지 영향을 끼치는지 알 수 있다.
테스트 도구
테스트 코드를 작성하기 위해선 JUnit과 Mockito를 사용한다.
- JUnit : 단위 테스트를 지원하는 프레임워크, 기능 검증에 사용된다.
- Mockito : Mock을 지원하는 프레임워크, 행위 검증에 사용된다.
간단히 테스트 코드 개념을 알아봤다.
다음에는 JUnit, Mockito 사용방법을 알아보자.
* 주관적인 글이니 잘못된 내용이 있으면 댓글 부탁드립니다.
참고자료
'개발 & 방법론 > DDD' 카테고리의 다른 글
이벤트 스토밍(Event Storming) (0) | 2022.11.04 |
---|---|
바운디드 컨텍스트(BOUNDED CONTEXT) (0) | 2021.12.16 |
유비쿼터스 언어(UBIQUITOUS LANGUAGE) (0) | 2021.12.15 |
레거시 코드, 빈약한 도메인 모델(Anemic Domain Model) (0) | 2021.10.06 |
도메인 주도 설계(Domain Driven Design)란? (0) | 2021.10.05 |