1. 프로젝트 개요
- 프로젝트명: HR Bank 인사 관리 시스템
- 목적: 기업의 직원 정보를 효율적으로 관리하고, 데이터 백업 및 복원을 자동화하는 시스템 개발
- 핵심 기능: 직원 등록, 수정, 삭제, 부서 관리, 백업 및 복원 기능
2. 담당한 작업
- 직원 등록, 수정, 삭제, 목록 조회, 상세 조회 기능 구현
- QueryDSL 기반 동적 필터링 및 정렬 구현
- 직원 통계 API 구현: 입사 추이, 분포, 수 조회
3. 기술적 성과
- 기술 스택: Spring Boot, JPA, PostgreSQL, QueryDSL
- 기술 스택: Spring Boot, Spring Data JPA, QueryDSL, PostgreSQL
- 동적 쿼리 설계를 위한 QueryDSL 도입 및 적용
- 정렬 기준에 따라 유연하게 쿼리를 조립할 수 있도록
OrderSpecifier
및 PathBuilder
활용
4. 문제점 및 해결 과정
- 직원 목록을 다양한 조건에 따라 조회해야 하는 요구사항이 있었습니다.
- 상태(Status) 및 입사일 범위에 따라 필터링하며, 정렬 기준도 유동적으로 변경 가능한 기능을 구현해야 했습니다.
- JPQL과 네이티브 쿼리로는 한계가 있어 QueryDSL 도입
BooleanBuilder
로 조건 필터링
PathBuilder
와 OrderSpecifier
로 동적 정렬 구현
leftJoin().fetchJoin()
을 통해 부서 정보까지 함께 조회
- Result:
- 유지보수성과 재사용성 높은 동적 쿼리 구현 성공
- 성능 향상 및 가독성 개선
5. 협업 및 피드백
- 기능 구현 중 발생하는 이슈를 팀원들과 빠르게 공유하며 해결