프로덕션 시스템을 만드는 백엔드 엔지니어입니다. 영화를 전공하다 엔지니어가 되었고, 지금은 Moba에서 백엔드를 리드하고 있어요. 이 블로그엔 그동안 배운 것들을 기록합니다.
- 동기화한 이벤트
- 7M
- 발행한 글
- 155
- 폴리글랏 서비스
- 6
- 이중 언어 기록
- EN/KR
프로젝트
Arch Calendar
레거시 백엔드를 퍼블릭 런칭까지 단독 유지보수 — 멀티 계정 캘린더 동기화, 결제, 실시간 업데이트로 700만 건의 이벤트 처리.
visit ↗3B 시스템
이 사이트 뒤의 3B 에이전트 하네스를 공개용으로 정제한 시스템 맵입니다. 레이어, 서브시스템, 결정 기록, 블로그 시리즈 진행 상황을 보여줍니다.
system map →Project Crucio
생성형 AI를 위한 Zero Trust 보안 — 6개 폴리글랏 마이크로서비스(Python + Go + Rust + TypeScript), Kafka 이벤트 스트리밍, 해시 체인 감사 로그, GCP + NAS 하이브리드 인프라 위 LGTM 풀 옵저버빌리티.
visit ↗
WAF Allowlist 패턴
라우트 allowlist를 사용한 block-by-default WAF 접근 방식. 알 수 없는 라우트가 자동 차단되어 blocklist보다 보안이 강해요.

updatedAt 기반 Staleness Guard
비동기 업데이트(웹훅, 메시지 큐)를 받을 때 소스의 updatedAt과 로컬 타임스탬프를 비교해서 stale 데이터가 최신 변경을 덮어쓰지 않도록 보호하는 패턴.

AI PR 리뷰 검증 패턴
AI 코드 리뷰어(Claude, Copilot, Codex)가 오탐을 만드는 14가지 패턴과, triage를 빠르게 유지하는 분류 프레임워크 + 보강 주석 템플릿.

스스로 고치고, 그 고침마저 정리하는 harness
agent가 저지르는 가장 비싼 실수는 극적인 실수가 아니에요.

포워드 링크만 저장하기: 백링크를 계산하는 Zettelkasten
3B는 작성자가 관리할 수 있는 링크만 저장하고, 역방향 연결은 나중에 계산해요. 그래서 노트에 담긴 고민의 흔적까지 지식의 일부로 남아요.

폴더가 곧 운명이다: 6계층 정보 생애주기
3B는 폴더 위치만으로 검색 가능 여부, 공개 범위, 노화 정도를 결정해요. 물리적 위치와 의미가 어긋나는 경우에만 frontmatter로 예외를 둬요.

충돌 없이 agent 병렬로 굴리기: Task, Worktree, Lock
agent 병렬 작업은 보통 Git 문제처럼 보여요. 두 session이 같은 repo를 건드리는 상황이죠.

스스로 길을 찾는 rule: 로더가 된 frontmatter
3B에서 YAML frontmatter는 장식용 메타데이터가 아니에요. 어떤 agent가 어떤 rule을 언제, 어떤 모습으로 보게 될지 정하는 라우팅 언어예요.

같은 skill, 세 가지 전달 방식
skill은 한 번만 작성해도 agent마다 다르게 전달돼요. Claude는 canonical 바이트를 symlink로 풀어서 읽고, Codex는 버전이 고정된 adapter를 읽고, AGY는 native 탐색과 plugin 실행 가능 여부를 따로 나눠요.

토큰 스택: 다시 스캔하지 않는 네 겹의 코드 인텔리전스
agent가 context를 태우는 문제에 흔히 나오는 답은 "memory를 붙이자"예요.