
백엔드
TypeORM QueryBuilder 활용 사례: 재사용성을 높이는 방법과 테스트 작성하기
두줄요약
TypeORM QueryBuilder를 빌더 패턴으로 분리해 재사용성과 가독성을 높인 사례를 소개했습니다. 또한 필터별 유닛테스트로 복잡한 조건 조합의 검증을 쉽게 만든 방법을 설명했습니다.
문제 상황
- TypeORM QueryBuilder 사용 시 조건 조합이 복잡해져 가독성 저하, 재사용성 저하, 테스트 작성 난이도 상승
- 필터가 많아질수록 findByOOO 형태의 조회 메소드가 무수히 늘어나는 구조적 문제
해결 방법
- 매물 조회 옵션을 담는
ItemFindOptions와 조건 적용용ItemFindQueryBuilder로 쿼리 구성 분리 - 필터별 조건을 메소드로 나눠
andWhere,orWhere,Brackets로 조합 - Repository는 빌더 결과에
skip,take만 더해 조회 실행
적용해볼 점
- 쿼리 조건과 조회 실행을 분리해 공통 조회 로직 재사용
- 빌더 단위 유닛테스트로 필터 조건 추가 여부 검증
- 복잡한 AND, OR, 괄호 조건을 별도 테스트로 보호