들어가며"이거 그냥 Docker 이미지 주면 되는 거 아니에요?"금융권 납품 프로젝트를 처음 전달받았을 때, 솔직히 이렇게 생각했다. 클라우드에서 잘 돌아가는 NMT(Neural Machine Translation) 서비스가 있고, 고객사 서버에 올리면 되니까. Docker라는 좋은 도구도 있고.결론부터 말하면, 8개월이 걸렸다. 그리고 그 8개월 동안 배운 것은 "클라우드에서 돌아간다"와 "고객 서버에서 돌아간다"는 완전히 다른 문제라는 것이었다.배경: 왜 설치형이어야 했는가당시 재직 중이던 회사는 AI 기반 번역 플랫폼을 운영하고 있었다. 핵심은 자체 개발한 NMT 엔진인데, 이걸 SaaS로만 제공하다가 B2B/B2G 시장으로 확장하면서 설치형(On-Premise) 수요가 생겼다.특히 금융권 고객은 ..
푸시 한 번에 수십만 명 — 메시지 유실 없는 알림 시스템을 어떻게 만들었나RabbitMQ + BullMQ + NestJS로 구현한 분산 알림 파이프라인 설계기문제는 이렇게 시작됐다서비스가 성장하면서 알림 요구사항이 복잡해졌습니다.마케팅팀이 보내는 수십만 명 대상 일괄 앱푸시 or 이메일사용자 행동에 반응하는 실시간 서비스 푸시날짜와 시간을 지정하는 예약 발송FCM, APNs, 웹 푸시, 이메일, SMS를 모두 커버하는 멀티채널 전송처음에는 각 서비스가 직접 FCM API를 호출했습니다. 그러다 문제가 터지기 시작했습니다."마케팅 배치 발송이 시작되면 일반 알림이 수십 분씩 밀린다."이유는 단순했습니다. 하나의 Queue를 모든 서비스가 공유했기 때문입니다. 100만 건의 배치 Job이 쌓이면 그 뒤에 ..
예전에 했던 DynamoDB 로 DB를 구성할때 했던 세미나 내용과 사용햇던 경험을 적어본다. 우선 간단하게 핵심만 알고 들어가보도록 하자 🚩 DynamoDB란? Amazon DynamoDB는 Amazon Web Services(AWS)가 제공하는 완전 관리형 NoSQL 데이터베이스 서비스입니다. 주요 특징 확장성: DynamoDB는 자동으로 데이터를 여러 서버에 분산 저장하므로 테이블 크기를 미리 정의할 필요가 없으며, 사용자는 데이터베이스를 수평으로 확장할 수 있으며, 어떤 크기의 데이터에도 대응 가능 고성능과 저지연: DynamoDB는 밀리초 이하의 지연을 제공하며. 이는 캐싱, 백엔드 속도 개선, 데이터 동기화 등에 도움 키-값 데이터 모델: DynamoDB는 유연한 데이터 모델을 지원하여 다양한..