「토스」 가치있는 테스트를 위한 전략과 구현
토스가 말하는 '가치 있는 테스트'의 기준(선택적·실용적·목적 중심)을 정리하고, 도메인 정책은 경계값 중심 단위 테스트로 좁혀 쓰는 전략과 그 테스트를 설계하는 순서를 따라가며 옮겨 적은 탐구 기록.
태그
7편 · 아카이브에서 필터로 보기
토스가 말하는 '가치 있는 테스트'의 기준(선택적·실용적·목적 중심)을 정리하고, 도메인 정책은 경계값 중심 단위 테스트로 좁혀 쓰는 전략과 그 테스트를 설계하는 순서를 따라가며 옮겨 적은 탐구 기록.
자바 Record를 코틀린 Data Class와 나란히 놓고, 계층 사이 데이터 전달(DTO) 지점에서 두 언어가 같은 문제를 어떻게 푸는지 비교한 정리.
컬렉션에 비즈니스 규칙을 붙일 때 자바처럼 일급 컬렉션으로 감쌀지 코틀린 확장 함수로 열어둘지를 코드로 비교하고, 어느 쪽이 레이어 구조에 더 잘 얹히는지 따져봤다.
설계한 주문 생성 API를 implement 레이어에 구현체를 두고 모든 흐름이 비즈니스 레이어로 향하도록 구현한 과정. 정합성을 맞추는 방법은 장기 트랜잭션과 개별 트랜잭션 조합 두 갈래를 놓고 저울질하는 데서 멈춘다.
주문번호처럼 그냥 문자열로 흘러다니던 값을 코틀린 value class로 감싸 도메인 값 객체임을 타입으로 드러내고, data class와 무엇이 다른지 비교했다.
계층 사이 DTO 변환 코드가 서비스에 흩어지는 걸 막으려고 코틀린 확장 함수로 Converter를 분리하고, 관심사 분리와 재사용 측면에서 얻은 효과를 주문 서비스 코드로 정리했다.
주문 생성 API가 재고와 배송 상태를 제대로 바꿨는지 검증하려고, Database Rider로 인메모리 DB에 데이터셋을 심고 기대 데이터셋과 비교하는 방식으로 통합 테스트를 짠 기록.