Production Experience · 2024.09–2026.01

COUT

채용·커뮤니티·DM 기능을 제공하는 출시 제품에서 API·실시간 대화·비동기 작업의 완료 조건을 분리해 구현했습니다. 이 페이지는 경력 기술서이며, 공개 증거가 확인하는 범위와 본인의 역할 진술을 구분합니다.

㈜플랫 공동창업자 · 백엔드 개발 총괄 · TypeScript / NestJS

4실행 책임 경계API · Admin · Chat · Worker
3상태 입력REST · Socket · local cache
1제3자 매체 출시 보도2025 · 현재 HTTP 200
0공개 성능 KPI검증 불가 수치는 사용하지 않음

Evidence Boundary

출시 사실과 구현 주장을 같은 근거로 만들지 않습니다.

2025년 제3자 매체의 공개 보도는 ㈜플랫이 COUT 서비스를 출시했다는 사실과 제품 목적만 확인합니다. 취재·편집 독립성은 주장하지 않습니다. 아래 아키텍처와 담당 범위는 재직 경험에 대한 본인 진술이며, 공개 코드·운영 console·성능 benchmark로 검증되는 항목은 아닙니다.

따라서 이전 회사의 비공개 자료, 퇴사 후 화면 capture, 원본 귀속이나 공개 권한을 증명할 수 없는 aggregate를 지원 패키지에서 제외했습니다.

Decision 01 · Realtime State

빠른 반응과 서버 확정 상태를 분리했습니다.

Problem & Alternative

서버 응답 뒤 메시지를 그리면 단순하지만 네트워크 지연이 그대로 입력 경험이 됩니다. 먼저 그리면 임시 상태를 수렴시켜야 합니다.

Mechanism

temp UUID로 선반영하고 저장 응답의 server UUID로 치환했습니다. REST cursor·Socket 신규 이벤트·MMKV cache를 ID 기준으로 병합했습니다.

Failure Path

실패한 전송은 낙관적 항목을 rollback하고, 재접속 뒤 cursor 구간과 cache를 대조해 누락·중복을 정리했습니다.

Trade-off & Limit

응답 전 상호작용을 얻는 대신 ID 대응·정렬·rollback 규칙이 늘었습니다. 공개 latency·중복률 측정은 남아 있지 않아 성능 성과로 주장하지 않습니다.

Decision 02 · Async Boundary

후속 알림을 사용자 요청 완료 조건에서 분리했습니다.

Problem & Alternative

알림 저장·push 전송을 API 안에서 기다리면 구현은 직선적이지만 외부 FCM 지연과 오류가 사용자 응답에 전파됩니다.

Mechanism

NestJS API·Chat은 도메인 쓰기와 실시간 전달을 담당하고, Redis·Bull 기반 Worker가 설정 확인·알림센터 저장·FCM 전송을 이어받았습니다.

Failure Semantics

Redis TTL 기반 최근 발송 확인은 best-effort 중복 억제입니다. 조회와 기록이 하나의 원자적 연산이 아니므로 exactly-once로 표현하지 않습니다.

Trade-off & Limit

요청 격리를 얻는 대신 queue backlog·재처리·전달 관측을 운영해야 합니다. 공개 전달 성공률·지연·SLO는 없어 정량 성과로 사용하지 않습니다.

Responsibility Map

실패와 배포 생명주기를 기준으로 실행 단위를 나눴습니다.

HTTPAPI

사용자 요청과 도메인 쓰기의 완료 조건을 관리했습니다.

OperationsAdmin

모더레이션·예약 발행 등 운영 작업을 사용자 요청 경로와 분리했습니다.

RealtimeChat

Socket.IO 이벤트, PostgreSQL 영속화, Redis transport의 책임을 구분했습니다.

BackgroundWorker

Bull 작업을 소비해 알림 저장과 외부 push 전송을 요청 밖에서 처리했습니다.

What This Evidence Does Not Say

공개 프로젝트의 재현 결과와 별도 층위로 읽어야 합니다.

확인 가능

제3자 매체 공개 보도의 제품명·개발사·출시 사실과 제품 목적.

경력 진술

담당 역할, NestJS 실행 경계, 실시간 상태 수렴, Redis·Bull 후속 작업 설계.

확인 불가

비공개 source의 구체적 품질, production throughput, uptime, 사용자 수, 개선 인과.

보완 근거

코드 품질과 실험 재현성은 공개 Leetdash·Spring 사례에서 고정 커밋과 테스트로 확인합니다.