이번 주는 프로젝트에 TDD를 적용하며 테스트에 용이한 구조가 무엇일지 고민하며 진행했다. 특히 요구사항에 맞게 validation 을 추가하려다보니 어디에서 어떻게 책임을 나눠야하는지 고민이 되었다. 평소에는 그냥 서비스에서 다 처리했는데 막상 테스트를 하려니 테스트 조건을 일일이 수기로 맞춰주어야하는 등 꽤 번거로웠다. 그러다보니 유효성 검증을 테스트하기 좋은 구조가 어떤 것일지 고민하게 되었고 각 계층의 역할과 책임에 대해서도 다시한번 생각해보게 되었다.
전에는 도메인 객체를 그냥 DB에 매핑되는 객체로 다뤘었다면, 이번에는 도메인 내부에서 자체적으로 유효성 검증을 하게 함으로써 무결성을 보장할 수 있도록 해보았다. 단위테스트로도 분리할 수 있게되면서 테스트나 전체 코드 흐름이 깔끔해진 것을 느꼈다. 입력값 형식체크 등의 간단한 필터링은 DTO 내에서, 비즈니스 로직은 서비스에서 검증하도록 분리하니 의도가 더 명확해졌다고 생각한다.
물론 처음부터 전부 설계하고 시작한건 아니고.. TDD 방식으로 진행하면서 '이게 여기 있어도 되나?' 하는 생각이 많이 들면서 몇 번 구조를 갈아엎었다😂 그래도 덕분에 초반에 코드 흐름을 정리할 수 있었다고 생각한다. 다음주부터는 이번주에 정리한 내용을 바탕으로 더 의도와 책임이 명확한 코드를 작성하는걸 목표로 삼아야겠다
반응형
'Project > 회고' 카테고리의 다른 글
| [Loop:PAK] 마지막 회고 (0) | 2025.09.19 |
|---|---|
| [Loop:PAK] 5주차 회고 (1) | 2025.08.17 |
| [Loop:PAK] 4주차 회고 (4) | 2025.08.09 |
| [Loop:PAK] 3주차 회고 (0) | 2025.08.01 |
| [Loop:PAK] 2주차 회고 (0) | 2025.07.25 |