더북(TheBook)

클라이언트에게 필요한 것만 제공하지 않고 엔터티 전체를 제공하면 몇 가지 단점이 있다. 첫째, 엔터티의 모든 변경 사항이 클라이언트에게 전파된다. 이 변경이 클라이언트를 깨뜨릴 수도 있을까? 보안 문제도 있을 수 있다. 클라이언트가 보거나 알지 않아야 할 필드를 추가하면 어떻게 될까? 가장 큰 문제는 개발자가 그때그때 변경의 영향을 분석하고 엔터티 변경이 클라이언트에 영향을 미칠지 판단하기 어렵다는 점이다.

이 문제에 대한 좋은 해결책은 클라이언트가 요청한 것과 엔터티를 분리하는 것이다. 클라이언트의 필요를 표현하는 더 구체적인 데이터 구조를 생성하고, 클라이언트에 데이터를 보내기 전에 엔터티를 이 데이터 구조로 변환한다. 이렇게 하면 엔터티 변경이 클라이언트에 미칠 영향을 걱정하지 않아도 된다.

여기서 우리가 하는 것은 정보를 추상화하는 것이다. 우리는 행동을 추상화하는 데 익숙하지만, 정보도 추상화할 수 있다!

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.