본문 바로가기

Backend/질문 시리즈

[질문-시리즈] Data에게 TDA(Tell Don’t Ask)를 적용해야 할까?

[질문 시리즈]는 주변 개발자 분들께 제가 생각하는 내용을 질문 후 답변받은 내용입니다.
답변엔 여러 사람들의 관점이 섞여있어 최대한 정리하여 작성하였습니다.
해당 포스팅은 질문에 대한 정답을 명확히 하는 것이 목표가 아닙니다.
프로젝트를 바라보는 관점에 따라 의견이 다양해질 수 있고, 이 글 또한 그중 하나의 관점 정도로 생각하고 읽어주세요.

질문

Request를 검증하는 RequestValidator는 알맞은 방법인가요?

사용자의 요청문인 Request를 검증하기 위해 RequestValidator를 만들어서 검증 처리를 해결했습니다.

그런데 TDA 원칙에 따르면 자신의 정보를 남에게 전달하지 말고 직접 행동(검증)을 하는 방법을 제시하는데,

이럴 경우 구현한 내용인 RequestValidator가 Request정보를 갖고 와서 대신 검증하는 것이 원칙 위배가 되는 것 아닌가요?

답변

단순 Data이므로 TDA 고려 대상이 아닙니다.

Request는 단순한 데이터에 불과합니다.

TDA의 대상이 되는 것은 내부적으로 로직을 구현해야 하는 Entity입니다.

그러므로, RequestValidator를 구현하여 Request정보를 검증하는 것은 원칙을 위배하는 것이 아닙니다.