

MongoDB CQRS 성능 개선기: 예상치 못한 Tomcat NDJSON 병목 해결
CQRS와 MongoDB 도입 후에도 엑셀 다운로드가 느린 원인을 Tomcat의 NDJSON flush 병목에서 찾았습니다. 1000개씩 버퍼링해 직접 write하도록 바꿔 성능 개선을 이끌었습니다.
새로운 기술 블로그가 추가되었어요


CQRS와 MongoDB 도입 후에도 엑셀 다운로드가 느린 원인을 Tomcat의 NDJSON flush 병목에서 찾았습니다. 1000개씩 버퍼링해 직접 write하도록 바꿔 성능 개선을 이끌었습니다.
AI 피처 스토어를 MongoDB와 Spring Cloud Stream으로 새롭게 구축한 사례를 소개했습니다. 기존 레거시 피처 스토어를 재구성한 과정과 기술 조합을 공유했습니다.

네이버페이 검색 서비스를 OpenSearch로 구축하며 색인 구조와 한글 검색 품질 개선 과정을 소개했습니다. 또한 무중단 패치, 최근 검색어 저장, 특수문자 예외 처리까지 운영 경험을 정리했습니다.

Amazon DocumentDB의 문서 압축 기능으로 저장 공간과 I/O 비용을 줄이는 방법을 소개했습니다. 샘플 데이터셋 기준 최대 34% 절감 사례와 적용 시 유의점을 함께 설명했습니다.

분산 환경에서 로컬 캐시와 Redis Pub/Sub을 함께 사용해 조회 성능을 높이고 데이터 정합성을 맞추는 방법을 설명했습니다. 서버별 캐시 불일치와 오래된 데이터 문제를 줄이기 위한 설계와 구현 경험을 공유했습니다.


리멤버 커뮤니티 새 글 피드 개인화 추천에 SimCSE와 OpenSearch k-NN을 적용한 과정을 소개했습니다. MongoDB 병목을 줄여 평균 0.2초 응답의 추천 API를 구성했습니다.
이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.


똑닥의 유료 멤버십 전환 과정에서 MongoDB 트랜잭션과 Write Conflict 대응 사례를 정리했습니다. 공통 키 기반 Lock과 모니터링으로 이중 결제를 방지한 방법을 소개했습니다.

MongoDB 트랜잭션 도입 과정에서 멤버십 결제와 해지 로직이 충돌하며 이중 결제가 발생했습니다. 공통 키 기반 Lock과 모니터링으로 동시 접근을 제어해 문제를 줄였습니다.


MongoDB 트랜잭션의 동작 조건과 Snapshot Isolation, Write Conflict를 설명했습니다. 또한 복제 지연과 이벤트 발행 타이밍 문제를 PRIMARY 설정과 AFTER_COMMIT 이벤트로 해결했습니다.


광고 업체 유효성 검사 시스템을 직접 API 호출에서 캐시와 Kafka 기반 실시간 처리로 개선한 과정을 정리했습니다. gRPC와 표준화된 필드로 성능, 확장성, 유지보수성을 높였습니다.

다양한 데이터베이스 쿼리를 하나의 구조로 통합하는 QSI를 소개했습니다. 이를 통해 일관된 접근 제어, 마스킹, 민감 데이터 모니터링을 강화하는 방법을 설명했습니다.

다양한 데이터베이스 쿼리를 하나의 구조로 통합해 분석하는 QSI를 소개했습니다. 실시간 쿼리 분석과 세밀한 접근 제어로 데이터 보안과 컴플라이언스 대응을 강화하는 방법을 설명했습니다.
상품 상세 페이지의 실시간 뷰어 수 집계를 위해 Redis와 MongoDB를 비교했습니다. 성능은 Redis가 유리했지만 비용과 운영 복잡성까지 함께 검토해야 했습니다.
상품 상세에서 몇 명이 보고 있는지 실시간 집계하는 기능의 설계를 Redis와 MongoDB로 비교했습니다. 성능, 만료 처리, 운영 복잡도와 비용을 함께 고려해 선택 기준을 정리했습니다.