inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Practical Testing: 실용적인 테스트 가이드

객체 생성 시 검증 로직에 대해 질문드립니다.

해결된 질문

215

김규현

작성한 질문수 5

0

객체를 생성할 때 입력 받는 데이터를 전부 검증하고 객체 필드를 업데이트할 때도 그 데이터가 유효한지 검증하는 방식을 사용한다면, 다른 레이어에서 검증된 데이터를 넣어 객체를 생성할 때도 해당 데이터를 객체 내부에서도 검증하게 되어서 중복으로 체크하는데, 이런 방식이 괜찮을지 아니면 객체에서 데이터 검증을 적당히 처리하고 레이어 별로 검증 책임을 중복되지 않게 처리하는 방식이 괜찮을지 질문드립니다!

spring tdd jpa mockito 소프트웨어-테스트 junit5

답변 1

0

박우빈

안녕하세요, 김규현 님!

검증 로직은 시스템의 안정성 측면에서 보자면 다다익선이겠지만, 이 또한 역시 비용이기 때문에 고민이 필요한데요.
먼저 강의 중에는, 클라이언트(외부 요청)로부터 들어오는 값의 유효성을 보장하는 검증을 먼저 진행하고, (type check 등) 이후 도메인 단에서는 도메인 로직과 직접적으로 관련된 검증을 진행하는 것이 좋다고 소개드렸습니다.

질문 주신 내용은 도메인 객체에서 공통적으로 검증의 책임을 가지는 것이 좋을지, 아니면 객체를 생성하는 바깥 레이어에서도 검증하고, 객체 내에서도 검증할지에 대한 내용인 것 같은데요.

검증 내용이 해당 도메인 객체에 밀접한 내용이라면, 도메인 객체에서 검증하는 것이 좋을 것 같고요.
반대로, 검증 시 외부의 어떤 요소를 가져와서 검증해야 한다거나, 혹은 비슷한 검증이어도 처리하는 방식이 서로 달라야 한다거나 하면 해당 객체를 사용하는 바깥 레이어에서 검증하는 것도 고려해볼 수 있겠습니다.

감사합니다. 🙂

private 상수 테스트 관련 질문

0

87

1

void는 어떻게 테스트하나요..? void로 애초에 코딩하면 안되나요??

0

128

2

커버리지는 어떻게 활용하시는지 궁금합니다.

0

163

2

테스트 문서화 질문입니다

0

107

2

단위테스트 질문이 있습니다

0

96

2

컨트롤러는 모킹을 한 이유가 궁금합니다.

0

106

2

ERD 가장자리에 있는 도메인 테스트 질문

0

90

2

DTO 검증 필드에 대한 테스트 코드 작성은 어디까지?

0

136

2

OrderCreateRequest DTO에 대해서 궁금한점

0

104

2

고전파의 테스트 대역 사용 대상, 공유 의존성

0

157

2

계층 관련 질문이 있습니다.

0

140

3

'코틀린'에서는 빌더를 따로 쓰지 않는데, 이 때는 어떻게 test fixture를 만드시는지 궁금합니다

1

124

2

혹시 update 로직은 어떻게 테스트하나요? (@Setter?)

0

135

2

단위테스트와 통합테스트의 경계가 궁금합니다.

0

235

2

Service+Repository 통합테스트 관련 질문입니다.

0

151

2

OrderControllerDocsTest 작성 해봤는데요. 날짜 형식이 이상하게 나와요

0

186

2

test 용 .yml

0

91

2

throws Exception

0

81

2

카페키오스크 클래스 문의 ,,

0

90

2

Rest docs 문서용 테스트코드를 따로 작성해야 되나요?

0

176

2

테스트 코드에서 필요한 생성자

0

139

1

tearDown 순서

0

116

2

@Builder 생성자 private

0

137

2

@DisplayName gradle / intellJ

0

94

2