회원 조회 API
Entity를 그대로 반환하면 Entity 내용이 외부에 다 노출된다.
화면에 뿌리기 위한 프레젠테이션 로직이 Entity에 추가되면 안된다.
특정 필드에
@JsonIgnore
를 넣을 수도 있지만 다양한 api가 Entity를 사용하기 때문에 사용하면 안된다.Entity가 변경되면 API 스펙이 바뀌어버린다.
Entity 외부 노출
Entity 대신에 API 스펙에 맞는 별도의 DTO를 노출해야 한다.
어떤 API는 name 필드가 필요하지만, 어떤 API는 name 필드가 필요 없을 수 있다.
내가 노출할 데이터만 별도의 DTO로 만든다.
Result로 한 번 감싸줘서 향후 필요한 필드를 추가할 수 있게 한다.
감싸주지 않으면 바로 json 배열 타입으로 나가면서 수정에 대한 유연성이 떨어진다.
수정 사항이 생기면 이렇게 추가할 수 있다.
Last updated