inflearn logo
강의

Khóa học

Chia sẻ kiến thức

Xây dựng bảng tin RestAPI với Springboot + React - Học nhanh hơn ai hết

2. CRUD trong đó R - Springboot (Kotlin)

안녕하세요 질문있습니다.

2

qheogus773782

1 câu hỏi đã được viết

0

강의에서는 BoardDto로 요청을 다 받고 있는데 요청값은 CRUD마다 다를거라고 생각하는데

Request 객체의 변경이 Service 계층에 영향을 미칠 수 있기 때문에 컨트롤러랑 서비스 DTO를 다르게 준다고 알고있습니다.

컨트롤러

서비스

근데 api 하나 만들때마다 너무 많은 변환과 객체 생성이 이루어질거같은데 강사님은 실무에서 어떤 방법을 사용하시나요?!..

궁금합니다

react java kotlin spring-boot jpa

Câu trả lời 1

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다. 정인호님.
풀스택 개발 강의를 열심히 진행 중이시군요! REST API 설계에서 객체 변환 및 사용에 관한 중요한 질문을 주셨네요.

Springboot 프로젝트에서 Controller와 Service 계층 사이에 DTO(Data Transfer Objects)를 다르게 사용하는 것이 일반적입니다. 이렇게 계층을 분리하면 각 계층의 책임을 명확히 할 수 있고, 데이터의 캡슐화를 이룰 수 있습니다. 이를 통해 하나의 계층에서의 변경이 다른 계층에 영향을 미치지 않도록 하여 유연성과 유지보수성을 확보할 수 있습니다.

다만, 말씀하신 것처럼 DTO와 결과 객체를 매번 새로 정의하면 많은 변환 작업이 필요하기 때문에, 이는 실무에서 과도한 복잡성을 초래할 수 있습니다. 이 문제를 해결하기 위해 몇 가지 실무에서 자주 사용하는 방법이 있습니다:

  1. 공통 DTO 사용: 가능하다면, 여러 API에서 공통으로 사용할 수 있는 DTO를 정의하여 중복을 최소화하는 방법이 있습니다. 이렇게 하면 불필요한 객체 증가를 방지할 수 있습니다.

  2. MapStruct 등 Mapper 활용: 객체 간 변환 작업을 보다 쉽게 할 수 있도록 다양한 라이브러리(MapStruct, ModelMapper 등)를 활용하여 변환 과정을 자동화할 수 있습니다. 이는 코드의 간결함을 유지하며, 변경이 있을 때 쉽게 대응할 수 있는 장점이 있습니다.

  3. 객체의 재사용: 비슷한 필드를 가지는 객체들은 재사용하거나 필요에 따라 조합해서 사용할 수 있도록 설계합니다.

유사한 주제에 대한 기존의 입장을 참고하실 수 있는 게시물을 소개합니다:

이 링크에서는 DTO와 엔티티 설계에 관한 다양한 논의가 이루어져 있으니 참고하시면 도움이 될 것입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

스킬과 서브에이전트

0

3

1

커밋 변경사항/그래프에서 이전 프로젝트의 내역이 보입니다

0

3

1

useReducer와 커스텀훅

0

8

1

프로젝트 의존 관계

0

5

1

기술스택 버전까지 입력할 경우 참고할 만한 사이트

0

5

1

미션 14에서 StockButton의 memo는 어떤 역할인가요

0

8

2

안녕하세요 문의남깁니다

0

5

1

안녕하세요 문의드립니다

0

7

1

실습 가이드: 16강 에서 useMemo의 역할은 무엇인가요?

0

10

3

노션 링크 문의

0

10

2

Shrimp Task Manager 설치 관련 문의

0

11

1

github에 저장한 브랜치 삭제하는법

0

21

1

에러 질문드립니다

0

18

2

클로드 verification code

0

15

1

리포지토리 초기화 실수

0

20

0

문제 풀이 접속 오류

0

13

2

강의 동영상이 중간중간 버벅거리면서 멈추네요.

0

23

1

application.properties가 적용되지 않아요

1

11

2

새 프로젝트 속 제너레이터에 SpringBoot가 없습니다.

0

13

1

shadcn 설치 관련

0

35

2

질문있습니다.

1

18

2

151강 클로드 스킬 관련 질문

0

23

2

'디스패처(Dispatcher)' 훅 패턴 적용이 다 안되

0

19

1

강의자료문의

1

64

2