• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

로그인한 유저의 데이터만 조회

21.10.13 17:15 작성 조회수 86

0

[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)

[인사말]

안녕하세요. 김영한 선생님.
현재 IT회사에서 근무하는 주니어-시니어 사이의 개발자입니다.
최근 회사에서 프로젝트를 리더급 개발자로 진행하게 되었고 이에 JPA를 부서내에서 처음으로 도입하며,
공통 기능 및 관련 편의 기능들을 담당하게 되어 개발하고 있습니다.
 
먼저 하기 기능을 구글링과 스택오버플로우도 계속해서 찾아봤습니다.
아래와 같은 기능을 현재 개발자들이 JPA개발자측에 계속해서 요청하는 기능이라고 확인이 되나,
이 기능을 편법으로라도 적용할 수 있는 방법이 없는지 궁금해서 질의드립니다.
 
-------------------------------------------------------------------
 
[질문 내용]
 
SELECT문에서 각각의 개발자가 직접 코드를 작성하지 않아도,
로그인한 유저의 데이터만 기본적으로 조건절에 대입하여 제공하는 방법이 존재하는지 확인하고 싶습니다.
 
해당 조회기능이 단편적으로 일부 테이블에서만 사용한다면 Query를 직접 작성하거나, QueryDSL을 통해서 where절에 user관련 조건절을 각각 집어넣어도 상관없다고 생각합니다.
 
그러나 로그인한 유저관련 조건절을 거의 대부분의 조회문에 넣고싶을 경우,
간단한 쿼리조차도 Query를 직접 작성하거나 QueryDSL을 써야하는 것으로 알고 있습니다.
 
반복적인 코드라 굉장히 비효율적이라 생각하여, 해당 기능을 공통으로 사용하고 싶으나, 어떻게 작성해야하는 지 떠오르지가 않았기에, 일단 생각나는 만큼 아래와 같은 방법을 생각하거나 작성해봤습니다.
 
1. 디자인 패턴이나 Functional Interface을 적용해서 감싸봐도 결국은 각각의 개발자가 QueryDSL을 통해 기본적인 쿼리는 작성해야했습니다.
2. 먼저 데이터를 전부 들고온 뒤, API에서 사용자 관련으로 필터링하는 방법은 성능적으로 굉장히 안 좋은 것 같아서 시도하지 않았습니다.
3. 사용자 테이블을 조회하여 해당 사용자에 연관된 매핑을 타고 내려가야하는 방법은 필요 데이터를 내포하는 테이블에 닿기까지 많은 테이블을 조회해야하고, 데이터가 많은 경우 이도 성능적으로 좋지 않아 결국은 QueryDSL를 사용해야 한다고 생각합니다.
 
Q. 가변적으로 변하는 유저의 값을 원하는 JPA 쿼리에 고정적으로 조건절에 집어넣을 수 있는 방법과 관련하여 문의드립니다.
 
반복적인 작업을 조금이라도 덜어주고자 노력하고 있는데 쉽지가 않네요.

답변 1

답변을 작성해보세요.

1

안녕하세요. 김태국님

저도 좋은 방법이 떠오르지 않네요.

혹시 관련해서 좋은 방법을 알고 계신분은 답변 부탁드립니다.

감사합니다.