GG FACTORY 개발팀의 기술 경험과 노하우를 공유합니다.
여러 웹 서비스를 하나의 MongoDB Atlas 클러스터에서 운영하다 보면 트래픽이 증가할 때 서비스별 클러스터 분리나 멀티 리전 구성을 고민하게 됩니다. 특히 해외 사용자의 콘텐츠 조회가 늘어나면 데이터베이스를 사용자와 가까운 국가에 추가해야 하는지 판단하기 어려울...
MongoDB Atlas를 운영하다 보면 Performance Advisor에서 Drop Indexes, Unused Indexes, Redundant Indexes 같은 권고를 발견할 수 있습니다. 이때 권고된 인덱스를 Atlas 화면이나 MongoDB Shell에서...
Next.js force-dynamic 탈출 가이드! ISR 캐싱 주기 설정, revalidatePath 무효화 및 Redis 연동으로 Vercel 비용과 DB 부하를 90% 절감하는 실전 아키텍처. 매 요청마다 렌더링하는 force-dynamic이 지갑을 갉아먹는 이...
Next.js와 MongoDB 환경에서 목록 페이지 조회 성능을 극대화하는 방법을 소개합니다. Mongoose의 .select() 최적화와 Excerpt 필드 도입을 통해 무거운 본문 데이터 파싱 부하와 DB 네트워크 비용을 드라마틱하게 절감한 실무 엔지니어링 경험을...
Vercel Image Optimization 요금 폭탄 원인과 확실한 해결책을 제시합니다. Next.js unoptimized 전역 설정법부터 AWS S3 저장소 고아 이미지 청소 자동화 구현까지 인프라 비용 절감 노하우를 확인해보세요. 브레이크 없는 Vercel 이...
트래픽이 늘 때 페이지 응답이 느려지고 MongoDB 커넥션 사용량이 비정상적으로 높아지는 현상이 있었습니다. 이상한 건 읽기 페이지(글 목록이나 상세 화면)인데도 유저 관련 DB 쿼리가 계속 찍혔다는 점입니다. 글을 읽는 데 왜 유저 컬렉션을 조회하고 있었을까요? 범...
Next.js와 MongoDB 환경에서 레거시 수동 URL 필드를 YouTube API 자동화 및 다국어(Locale) 확장 구조로 리팩토링하는 개발 가이드입니다. search API 대신 playlistItems를 활용해 하루 10,000 유닛의 API 쿼터 비용을...
존재하지 않는 유령 인덱스 조회와 불필요한 다국어 루프, 레거시 데이터를 제거하여 API 호출 비용과 레이턴시를 대폭 줄인 생생한 백엔드 리팩토링 최적화 사례를 공유합니다. 분명 기능은 정상적으로 잘 도는데, 이상하게 제품 상세 조회 API의 레이턴시가 데이터 규모에...
최근 MongoDB에서 특정 컬렉션의 응답 시간이 간헐적으로 튀는 현상을 확인했습니다. 평균 지연 시간만 보면 아주 심각한 수준은 아니었습니다. 대부분의 요청은 빠르게 처리되고 있었지만, 일부 요청에서 평균보다 훨씬 높은 지연 시간이 발생하고 있었습니다. 처음에는 단순...
MongoDB 및 Mongoose 환경에서 조회 속도가 느려지는 원인인 In-Memory Sort(메모리 정렬) 해결법과 .select(), populate 프로젝션을 통한 쿼리 성능 최적화 실무 사례를 소개합니다. 다른 페이지보다 5배 느린 조회 서비스 서비스를 운영...