🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

[워밍업 클럽 4기 BE] 3주차 발자국

[워밍업 클럽 4기 BE] 3주차 발자국

강의

강의명: [Practical Testing: 실용적인 테스트 가이드]

학습 내용: 섹션6.

이번 주는 Spring을 통해 Layered Acrchitecture에서 단위 테스트와 통합 테스트를 어떻게 수행하는지를 확인할 수 있었다.

테스트를 작성하는 노하우 이외에도 트랜잭션 설정, CQRS 등 추가적으로 고민해볼 키워드도 많이 배웠다.

Persistence Layer

Data JPA 프레임워크 기반에서 테스트를 진행했다.

실제 DB 대신 local in-memory 환경을 활용해서 도메인 객체의 생명주기를 어떻게 다룰지 확인해봤다.

Business Layer

핵심 비즈니스 로직이 위치한 계층은 단위 테스트보다는 통합 테스트를 어떻게 진행하느냐가 중심이었다.

여러 레이어와 의존 관계를 맺고 있는 구조라서, 트랜잭션 전파나 데이터 정합성 같은 문제를 Persistence Layer와 함께 통합 테스트를 할 때 이런 부분들을 신경쓸 수 있었다.

미션

읽기 좋은 코드 강의를 수강하면서 실습을 따라하거나 이전 미션을 진행할 때마다, 변경사항이 생기면 수동으로 테스트를 해야 해서 불편함이 있었다. 이번 미션을 통해 그 불편함을 해소할 수 있었다.

단순히 강의를 듣고 예제를 따라하는 데서 그치는 게 아니라, 직접 내 생각을 코드로 옮겨보고, 그 과정에서 생긴 여러 의문들을 고민하고 해결하면서 즐겁게 미션을 수행할 수 있었다.

회고

요구사항이 추가되면서 코드에 변경이 생겼고, 그럴 때마다 테스트 코드가 얼마나 든든한지 느꼈다.

리팩토링할 때 불안하지 않았고, 테스트가 잘 돌아가는 걸 보면서 안심할 수 있었다.

읽기 좋은 코드와 단위 테스트를 지나 단순한 자바 프로젝트가 아니라, 실제 서비스와 비슷한 구조에서 테스트가 어떤 의미를 가지는지 배울 수 있었다.

테스트 코드는 단지 정상 작동을 확인하는 게 아니라, 프로덕션 코드가 의도한 대로 동작하는지, 예외 상황에서도 잘 처리하는지를 확인하는 수단이었다.

테스트를 “하는 것” 자체보다, 테스트라는 도구가 개발 전체에 어떤 영향을 주는지 생각하게 됐다.

이번 미션에서 예제가 두 개 중 하나를 택하여 그중 하나만 테스트를 진행하였는데 미션을 수행하다보니 "조금 더 여유 있게 시작했으면 나머지 예제도 테스트 코드를 작성해봤으면 좋았을텐데" 하는 아쉬움이 남는다.

댓글을 작성해보세요.

채널톡 아이콘