WRITING
운영에서 내린 판단을 기록합니다.
실제로 돌아가는 시스템에서 내린 기술 판단과 그 이유를 씁니다. 모든 수치와 코드는 운영 중인 코드베이스 기준입니다.
PERFORMANCE · GEO DASHBOARD
75만 멘션 집계를 2.5GB 컨테이너 안에 넣기
CPU 100%와 OOM으로 반복 재시작하던 대시보드를 정규식 컴파일, 겹치는 계산, 멘션 객체 복제로 나눠 풀었습니다. 같은 계산이 1.97GB에서 0.59GB로 줄었고, 운영 DB로 결과가 같은지 대조했습니다.
읽기 ↗AD ATTRIBUTION · FORCLETTER
광고가 데려온 가입자를 서버 기준으로 다시 세기
광고 플랫폼의 전환과 서버의 가입은 기준이 달라 더할 수 없습니다. 가입 채널을 서버에서 판정하고, 숫자가 부족하면 결론을 보류하고, 운영 데이터에서 찾은 오귀속을 막은 과정입니다.
읽기 ↗INCIDENT RESPONSE · TODARI OPS
새벽 3시의 OOM을 시스템으로 되돌리기
복구는 재부팅 한 줄이었습니다. 진짜 작업은 스왑과 경보, CloudWatch 자동 복구까지, 같은 장애가 사람 없이 끝나게 만드는 일이었습니다.
읽기 ↗EXTERNAL API AT SCALE · FORCLETTER
토큰 4,800개의 수명주기
토큰 값이 아니라 상태가 진실입니다. 외부 장애가 사용자의 의도를 덮어쓰지 못하게 만든 상태 머신과 서킷 브레이커 이야기.
읽기 ↗ZERO-DOWNTIME OPS · FORCLETTER
단일 EC2에서 blue-green 무중단 배포 직접 만들기
실패한 배포의 기본값을 무해로 만드는 헬스체크 게이트, Nginx upstream 스위치, 태그 기반 롤백으로 구성했습니다.
읽기 ↗DATA AT SCALE · FORCLETTER
5,000만 행 시계열을 일상 조회가 가능한 상태로 유지하기
계정 4,800여 개의 메트릭이 5,000만 행으로 자라는 동안 스키마와 인덱스, JSON 컬럼 백필에서 내린 판단들을 정리했습니다.
읽기 ↗REALTIME SYNC · 메트로놈들
떨어져 있는 기기들의 박자를 하나로 맞추기
시계 세 개와 네트워크 지연 위에서 같은 클릭을 재생하기. RTT 중앙값으로 오프셋을 추정하고 Web Audio에 50ms 앞서 예약합니다.
읽기 ↗