목록 보기
TypeORM QueryBuilder 활용 사례: 재사용성을 높이는 방법과 테스트 작성하기
백엔드

TypeORM QueryBuilder 활용 사례: 재사용성을 높이는 방법과 테스트 작성하기

직방
직방
2023년 12월 18일

두줄요약

TypeORM QueryBuilder를 빌더 패턴으로 분리해 재사용성과 가독성을 높인 사례를 소개했습니다. 또한 필터별 유닛테스트로 복잡한 조건 조합의 검증을 쉽게 만든 방법을 설명했습니다.

문제 상황

  • TypeORM QueryBuilder 사용 시 조건 조합이 복잡해져 가독성 저하, 재사용성 저하, 테스트 작성 난이도 상승
  • 필터가 많아질수록 findByOOO 형태의 조회 메소드가 무수히 늘어나는 구조적 문제

해결 방법

  • 매물 조회 옵션을 담는 ItemFindOptions와 조건 적용용 ItemFindQueryBuilder로 쿼리 구성 분리
  • 필터별 조건을 메소드로 나눠 andWhere, orWhere, Brackets로 조합
  • Repository는 빌더 결과에 skip, take만 더해 조회 실행

적용해볼 점

  • 쿼리 조건과 조회 실행을 분리해 공통 조회 로직 재사용
  • 빌더 단위 유닛테스트로 필터 조건 추가 여부 검증
  • 복잡한 AND, OR, 괄호 조건을 별도 테스트로 보호

댓글 0

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...