피드로 돌아가기
Build a Movie Watchlist with Node.js, TypeScript, and MongoDB
Dev.toDev.to
Database

MongoDB Search 기반의 Zero-Join Movie Watchlist API 설계

Build a Movie Watchlist with Node.js, TypeScript, and MongoDB

Nic Raboy2026년 4월 13일24beginner

Context

전통적인 RDBMS 기반 API에서 발생하는 데이터 변환 오버헤드와 복잡한 JOIN 연산으로 인한 성능 저하 문제 발생. 검색 기능 구현을 위해 별도의 검색 엔진을 추가 도입함에 따른 인프라 복잡도 증가라는 제약 사항 존재.

Technical Solution

  • End-to-End JSON 파이프라인 구성을 통한 데이터 변환 계층 제거 및 개발 생산성 향상
  • MongoDB Search의 $search 스테이지 활용으로 별도의 Search Engine 없이 단일 클러스터 내 Full-text Search 구현
  • Movie와 Watchlist 컬렉션 간의 의도적 데이터 중복(Denormalization)을 통한 JOIN 연산 제거 및 읽기 성능 최적화
  • TypeScript의 엄격한 Type 정의와 Config 모듈화를 통한 환경 변수 유효성 검증 및 런타임 안정성 확보
  • BSON-JSON 간의 자연스러운 매핑을 활용한 MongoDB Driver 기반의 효율적인 Document 처리

1. 검색 요구사항이 단순할 경우 별도 엔진 대신 DB 내장 Full-text Search 기능 검토

2. 읽기 빈도가 높은 API 설계 시 JOIN 비용을 줄이기 위한 데이터 중복 저장 전략 고려

3. 환경 변수 접근 시 전역 process.env 사용 대신 유효성 검증 로직이 포함된 Config 모듈 적용

원문 읽기