복슬이
1k
2021-03-17 16:37:55 작성 2021-03-17 16:42:44 수정됨
4
354

RESTFul API 개발시 Entity 객체를 직접 반환 하나요? 아니면 반환용 객체를 만드나요?


1. 상황

- 게시판 프로그램에 관한 백엔드 API를 개발

- 게시판 필드는 제목, 본문, 작성자 이름, 작성일, 조회수 등 일반적임


2. 개발자 A

- DB 테이블과 맴핑된 BoardArticleEntity 클래스를 만듦(JPA 사용)

- 목록, 조회, 작성, 수정 API에서 BoardArticleEntity 클래스를 활용해 request, response를 제공


3. 개발자 B

개발자 A가 만든 코드를 보고 한숨을 쉰다.

- BoardArticleEntity는 DB Layer에 의존된 클래스이다. 해당 클래스가 Controller 까지 사용된다는 건 문제다.

- 게시판 REST API의 request, response서 사용할 별도의 클래스를 만들어야 된다.


4. 다시 개발자 A

- 그래 BoardArticleResponse 클래스를 만들었다고 치자.

- 제목, 본문등 거의 대부분의 필드가 BoardArticleEntity클래스와 겹친다. 코드 중복이다.

-----------------------------

여기서 질문

여러분들은 어떤 개발자의 말이 맞다고 생각하시나요?


0
  • 답변 4

  • 도각도각
    4k
    2021-03-17 16:39:03
    저는 나눕니다.
  • 장독깨기
    3k
    2021-03-17 16:41:32

    ㅎㅎㅎ 저는 Map 으로 합니다.


  • 오후
    3k
    2021-03-17 17:17:29

    @Jsonignore

  • cube8540
    106
    2021-03-18 09:30:35

    나눕니다.


    요청과 응답은 클라이언트에 의존적이고 클라이언트에 의존적이면 UI의 변경등으로 꾀 자주 변경이 일어나는 레이어 입니다.


    이를 엔티티가 요청과 응답을 받는 역할까지 하게 된다면 UI의 변경이 곧 데이터베이스의 변경까지 연결됩니다.


    코드의 중복이 아니라 한 클래스가 너무 많은 역할을 하고 있습니다. 각 클래스는 한가지 이유에서만 변경 되어야 합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.