HR Bank는 기업의 인사 데이터를 체계적으로 관리할 수 있는 Open EMS(Enterprise Management System)입니다.
대량의 데이터를 안정적으로 처리할 수 있는 Batch 시스템을 기반으로,
부서 및 직원 정보 관리, 이력 관리, 파일 관리, 데이터 백업, 대시보드 제공 등의 기능을 제공합니다.
이를 통해 기업의 인적 자산을 안전하고 효율적으로 운영할 수 있도록 지원합니다.
프로젝트 진행 중, 직원 이력 조회 기능에서 동적 쿼리 작성이 필요했는데, 처음에는 JPQL을 사용하여 조건별 쿼리를 처리하려 했습니다. 하지만 JPQL에서는 복잡한 조건 조합 처리 시 코드가 지나치게 복잡해지고, 특히 동작하지 않는 쿼리 오류가 반복되어 효율적인 구현이 어려웠습니다.
이를 해결하기 위해, 동적 쿼리 작성에 최적화된 QueryDSL을 적용하기로 결정하였고, 기존 로직을 QueryDSL 기반으로 리팩토링하여, 필요한 4가지 조건 조합을 모두 처리할 수 있는 동적 쿼리를 안정적으로 구현하였습니다. 그 결과, 코드의 가독성 및 유지보수성이 개선되었고, 이후에도 다양한 조건 조합에 유연하게 대응 가능한 구조를 완성할 수 있었습니다.