🌦️기존상황


- 간단하게 구조도를 그려봤다.
- 그리고 보니 querydsl을 사용한 메서드를 기준으로 보면 repository와 전혀 관계를 맺고 있지 않다.
- querydsl을 사용하니 JPA메소드도 사용하지 않기 때문이다.
- service에다가 querydsl을 적어놓은 이유는 service 단에 늘 함수들을 구성해 놓았기 때문이다!!
⛅과정
- 같은 백엔드 팀원에게 해당 구조에 대해 문제점을 제기받았다.
- 처음에는 굳이..? 싶었다. 괜히 복잡하게 클래스만 늘어나는 거 같아서 의문스러웠다.
- 그런데 알아보니 나처럼 service단에서 querydsl을 쓰는 경우는 거의 없는 거 같았다.^^ 더 나은 코드를 위해서라면 더 이상 고민할 이유가 없었다.
☀️해결


- schoolRepository가 JPARepository, SchoolRepositoryCustom을 상속받고, 이에 대한 구현체인 SchoolRepositoryImpl을 생성한다.
- 이 방법을 보편적으로 사용하고, 같은 팀원도 이 방법을 사용하고 있기 때문에 이 방식을 선택했다.
- 원래는 SchoolRepository 하나로 interface - impl 구조를 가져갈 수 없을까 했는데 그러면 JPA에서 재공 하는 메서드까지 싹 다 구현해야 하는 거 같았다.
Repository란
실제로 DB에 접근하여 연결다리 역할을 하는 기능을 한다. 한마디로 기존 DAO기능을 하는 부분이다.
기능구현에 급급하다보니 뭐가 뭔지 제대로 생각하고 구현하지 못했는데 각 정의, 기능들을 생각해 보니 레포쪽에 있는 게 맞다는 생각이 들었다.

'개발일지 > 2023_한이음' 카테고리의 다른 글
[개발] Querydsl을 사용하여 학교 좋아요 리스트 반환하기 (0) | 2023.07.19 |
---|---|
[개발] Querydsl를 사용하여 원하는 정보 조회/반환하기(Refactoring) (0) | 2023.07.18 |
[개발] Querydsl, DSL를 사용하여 원하는 정보 조회/반환하기(코드분석) (0) | 2023.07.13 |
[개발] spring boot - db 접속 정보 암호화, application.properties 암호화 (0) | 2023.07.11 |
[개발외]멘토링 진행 - 2023/07/10 (0) | 2023.07.11 |