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

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

직방
직방
2023년 12월 18일

두줄요약

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

문제 상황

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

해결 방법

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

적용해볼 점

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

다음 읽기

#Repository 주제를 다룬 다른 회사 글

테이블링 오피스의 Layered Architecture

테이블링 오피스의 Layered Architecture 설계와 UseCase 레이어 도입 배경을 소개했습니다. 책임 분리와 재사용성 향상 효과와 함께 싱크홀 안티패턴 같은 주의점도 정리했습니다.

테이블링
테이블링
아키텍처

댓글 0

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

댓글을 불러오는 중...