인프런 커뮤니티 질문&답변

김규현님의 프로필 이미지

작성한 질문수

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

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

해결된 질문

24.07.12 21:38 작성

·

102

0

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

답변 1

0

박우빈님의 프로필 이미지
박우빈
지식공유자

2024. 07. 13. 16:43

안녕하세요, 김규현 님!

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

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

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

감사합니다. 🙂