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

kim님의 프로필 이미지

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

기본값 타입

DTO관련 질뮨드립니다

해결된 질문

19.09.27 06:28 작성

·

421

0

Member란 엔터티에 컬럼 a, b, c, d가 있습니다

selectA 는 a,b 를 보여주고

selectB 는 b, a를 불러주고

selectC는 a,b,c를 불러온다고 가정하였을 때

1. select A, B, C 에 대해서 다 DTO객체를 만들어주는 것이 괜찮을까요?

2. select A, B는 컬럼 순서만 다를뿐인데 하나의 DTO로 리턴해줄 때 순서를 바꿔줄 수 있나요?

3. 아님 a, b, c를 포함한 DTO를 만들어서 사용하는것이 나을까요? 이렇게하면 라턴해줄 때 null값( selectA를 호출한다면 필드c 가 null값) 생기어서요(프론트엔드 입장에서는 사용할 필드만 보고 싶어질수도 있을거같아서요

답변 4

2

김영한님의 프로필 이미지
김영한
지식공유자

2019. 09. 27. 19:21

아 감사합니다 어느정도 갯수의 차이에서는 dto로 다 채워서 주는것도 괜찮다는 말씀이시죠? 

-> 네 어느정도 갯수 차이는 dto로 다 채워서 주어도 됩니다^^

그리고 전 dto로만 생성해서 매핑할 생각을 했는데 api로도 분리는 잘 이해가 안갑니다

-> api로 분리는 안드로이드 같은 APP에서 REST API를 요구할 때 이야기 이야기입니다^^

제가 궁금증이 많아서 ^^; 혼자서 토이프로젝트를 만들어보는데 단순 기능 구현보다는 몬가 최적화를 해가면서 만들어보고 싶어서요. 답변 항상 감드립니다~

-> 단순히 이론적인 내용을 머리로 익히는 것 보다는 토이프로젝트 같은걸로 고민하면서 코드를 짜보는게 확실히 더 남더라구요^^

좋은하루 되세요 :)

1

kim님의 프로필 이미지
kim
질문자

2019. 09. 27. 19:33

감사합니다 ^^

1

김영한님의 프로필 이미지
김영한
지식공유자

2019. 09. 27. 08:35

안녕하세요. kim님

2번 먼저 말씀드리면, 컬럼의 순서를 변경하든 안하든, 순서를 기반으로 동작하는 것이 아니라, 이름을 기반으로 동작하니 순서를 변경하는 것은 의미가 없습니다.

1번과 3번은 같이 말씀드릴께요.

이게 상황에 따라서 다른데, 차이나는 필드가 정말 몇게 안될 수 도 있고, 차이나는 필드가 수십개가 될 수 있는 등등...

저는 보통 단순한 상황에서는 실용적인 관점에서 a,b,c 모두를 제공하는 DTO 하나로 표준 API를 만들어서 제공합니다. 단! 이렇게 제공할 때는 그 값이 항상 모두 있어야 합니다.

그런데 실무에서 정말 복잡한 상황이되면, 필드가 수십개가 넘어가고... 그 차이고 너무 많고...

이 경우 보통 어느정도 함께 사용할 수 있는 공용 API, DTO를 하나 만들고, 차이가 많이 나는 것은 따로 API, DTO를 만들어서 정리합니다.

마지막으로

API는 사용자가 클라이언트이므로 클라이언트가 원하는 스펙을 제공하는게 맞다고 생각합니다. 그런데 API를 너무 잘게 쪼개면 클라이언트도, API를 제공하는 서버도 둘다 관리해야할 API가 너무 많아지기 때문에, 어느정도는 공통 API를 제공하는 식으로 같이 협의해서 풀어가는게 중요하다 생각합니다.

감사합니다.

0

kim님의 프로필 이미지
kim
질문자

2019. 09. 27. 09:45

아 감사합니다 어느정도 갯수의 차이에서는 dto로 다 채워서 주는것도 괜찮다는 말씀이시죠? 

그리고 전 dto로만 생성해서 매핑할 생각을 했는데 api로도 분리는 잘 이해가 안갑니다

제가 궁금증이 많아서 ^^; 혼자서 토이프로젝트를 만들어보는데 단순 기능 구현보다는 몬가 최적화를 해가면서 만들어보고 싶어서요. 답변 항상 감드립니다~

kim님의 프로필 이미지

작성한 질문수

질문하기