영속성 객체 구분으로 인한 JPA와 Querydsl의 Projection 사용
224
6 asked
지금은 간단한 예제라 엔티티에서 JpaRepository를 사용하여 데이터를 가공해서 가져온 후 도메인 객체로 매핑시켜 controller에 넘겨 controller에서 response 객체로 변환시켰습니다.
만약 Projection을 사용하는 경우
Projection에서 바로 controller 패키지 안의 response 패키지 객체로 접근하는 것은 어떻게 생각하시나요?
Answer 1
0
안녕하세요, 인프런 AI 인턴입니다. 캄캄한인생님.
Projection을 사용하여 JPA에서 데이터를 가져올 경우, 데이터를 바로 컨트롤러의 응답 객체로 매핑하는 것에 대해 질문하셨습니다.
직접적으로 Projection 결과를 Controller의 Response 객체로 변환하는 것은 가능합니다. Projection은 주로 필요한 필드만 선택적으로 가져올 때 사용하여 성능 최적화에 도움을 줍니다. 만약 Projection에서 데이터의 형식이 Controller의 Response 객체와 일치한다면, 중간 과정 없이 바로 변환하는 방법도 고려할 수 있습니다.
다만, 이런 경우에는 응답 객체와 Projection 객체가 강하게 결합될 수 있습니다. 만약 응답 객체의 구조가 바뀌게 되면, Projection 또한 변경해야 할 수 있으므로 이 결합을 주의하실 필요가 있습니다. 따라서 이러한 결합을 피하려면 객체의 독립성을 유지하는 것도 좋습니다.
즉, 성능과 구조적 결합 사이에서 적절한 균형을 맞추는 것이 중요합니다. 상황에 따라 적절한 방식을 선택하시길 권장드립니다.
Spring Data에서 Projection을 사용하는 방법에 대한 자세한 내용은 다음 문서를 참조하실 수 있습니다:
Spring Data JPA - Reference Documentation
UserService, CertificationService 책임 분리 기준 질문
0
26
1
service.port 패키지로 이동한 UserRepository가 infrastructure에 있는 UserEntity에 의존
0
58
1
Service 소형 테스트 질문
0
81
1
조회 시 엔티티를 조회하는 것이 아닌QueryDSL을 많이 사용 시 Dto는 어떻게 하나요?
0
116
1
controller 의 port 패키지의 service 인터페이스 사용
0
72
1
빌드 문제
0
92
1
빌드 안 되시는 분들 참고
0
102
1
update에서 Repository.save
0
105
1
최종 완성된 코드를 받아 볼 수 있을까요?
0
156
1
의존성 역전으로 해결한 외부의존성?
0
162
1
좋은 설계
0
180
1
Controller에 테스트
0
138
1
JPA가 아닌 Mapper 아키텍처 기반 테스트 코드 작성
0
242
0
인프라계층 구현체와 테스트 구현체에 대한 질문
0
222
1
실습 코드 커밋
0
372
1
UserEntity 메서드
0
293
2
CertificationServiceTest에서 MailSender 인터페이스가 아닌 FakeMailSender를 이용하는 것
0
217
1
레이어드 아키텍처 개발에 대하여
0
231
1
BDDMockito의 when을 사용한 코드가 given 절에 있는 이유가 궁금합니다.
0
223
1
테스트에서 주입과 생성
0
198
1
프로젝트 코드는 제공해주시지 않는건가요?
0
382
2
개선된 아키텍처의 구조
0
277
1
서비스 레이어의 단위 테스트 범위 고민
0
188
1
도메인 객체 / entity 객체 / requset, response 객체 간 mapping 시 mapper 사용
1
343
1

