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

캄캄한인생님의 프로필 이미지
캄캄한인생

작성한 질문수

Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트

도메인과 영속성 객체 구분하기

영속성 객체 구분으로 인한 JPA와 Querydsl의 Projection 사용

작성

·

4

0

지금은 간단한 예제라 엔티티에서 JpaRepository를 사용하여 데이터를 가공해서 가져온 후 도메인 객체로 매핑시켜 controller에 넘겨 controller에서 response 객체로 변환시켰습니다.


만약 Projection을 사용하는 경우
Projection에서 바로 controller 패키지 안의 response 패키지 객체로 접근하는 것은 어떻게 생각하시나요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 캄캄한인생님.

Projection을 사용하여 JPA에서 데이터를 가져올 경우, 데이터를 바로 컨트롤러의 응답 객체로 매핑하는 것에 대해 질문하셨습니다.

직접적으로 Projection 결과를 Controller의 Response 객체로 변환하는 것은 가능합니다. Projection은 주로 필요한 필드만 선택적으로 가져올 때 사용하여 성능 최적화에 도움을 줍니다. 만약 Projection에서 데이터의 형식이 Controller의 Response 객체와 일치한다면, 중간 과정 없이 바로 변환하는 방법도 고려할 수 있습니다.

다만, 이런 경우에는 응답 객체와 Projection 객체가 강하게 결합될 수 있습니다. 만약 응답 객체의 구조가 바뀌게 되면, Projection 또한 변경해야 할 수 있으므로 이 결합을 주의하실 필요가 있습니다. 따라서 이러한 결합을 피하려면 객체의 독립성을 유지하는 것도 좋습니다.

즉, 성능과 구조적 결합 사이에서 적절한 균형을 맞추는 것이 중요합니다. 상황에 따라 적절한 방식을 선택하시길 권장드립니다.

Spring Data에서 Projection을 사용하는 방법에 대한 자세한 내용은 다음 문서를 참조하실 수 있습니다:
Spring Data JPA - Reference Documentation

캄캄한인생님의 프로필 이미지
캄캄한인생

작성한 질문수

질문하기