백엔드 엔지니어

문서에 적힌 것.코드가 한 것.

일치해야 할 두 가지가 어긋난 순간을 기록합니다 — 문서와 그 아래의 코드, 통과한 테스트와 깨져 있던 기능, 하나의 아키텍처와 그걸 제각기 다르게 읽은 다섯 개 언어. 주로 TypeScript, Go, Java, Kotlin, Python으로 하는 백엔드 작업입니다.

최근 기록 하나

이렇게 보였다페이지 80장은 제목도 URL도 머리글도 저마다 달랐다.
실제로는본문은 5가지뿐이었다. 모든 절이 값이 5가지뿐인 같은 필드를 키로 쓰고 있었다.

사이트의 절반은 사이트 자신의 복사본이었다읽기

다루는 기술

분산 시스템을 위한
실용적인 빌딩 블록.

기술을 문제 해결을 위한 도구로 보고, 운영과 확장성을 고려해 선택합니다.

최신 글

글쓰기와 실험.

설계 작업과 작은 실험들에서 배운 교훈을 기록합니다.

AI 에이전트마다 컨테이너 하나씩

머신 하나에서 코딩 에이전트 여러 개가 서로 밟지 않게 돌리는 설계를 정리했다. 에이전트마다 컨테이너를 줘서 격리 단위와 회수 단위를 맞추고, 에이전트끼리는 네트워크로 주고받고, 중첩 컨테이너는 필요할 때만 쓰고, 인증 정보는 이미지에 굽지 않고 나눠 준다. systemd로 시험해 본 cgroup만 쓰는 가벼운 방법도 같이 적었다.

사이트의 절반은 사이트 자신의 복사본이었다

모든 페이지가 분량 검사를 통과했고 제목도 URL도 숫자도 달랐다. 그런데도 사이트 전체 텍스트의 절반에 조금 못 미치는 양이 두 장 이상의 페이지에 똑같이 들어 있었다. 이걸 찾아낸 15줄짜리 측정 방법과, 아무도 정한 적 없는데 페이지가 옆 페이지를 베끼게 되는 세 가지 경우를 정리했다.

검사기 5개를 한꺼번에 무너뜨린 List

Kubernetes 안티패턴 검사기 5개가 모두 `---`로 구분한 문서를 가정하고 있었다. `kubectl get -o yaml` 한 번에 리소스를 2개 이상 대면 결과가 `kind: List`로 감싸진다. 그러자 모든 검사기가 아무 말 없이 리소스를 0개 찾았고, 겉보기에는 깨끗한 통과와 똑같았다.

모든 포스트 보기 →

Live

ascii-doom

글자로만 그리는 1인칭 슈팅 게임입니다. Freedoom의 맵 68개와 직접 만든 레벨 두 개를 브라우저에서 키보드나 터치로 플레이합니다.

Live

카르다 전선 (Karda)

브라우저에서 하는 3D 점령전입니다. 양쪽 병력은 봇이 맡고, 플레이어는 보병이나 공격 헬기(지금은 연합군만)로 출격해 거점을 빼앗습니다. 지금은 맵 하나의 빠른 점령전을 할 수 있고, 서버도 가입도 없습니다.

Live

Abyss

혼자 하는 멀티플레이 게임입니다. 레이드 보스와 전장을 AI 파티원과 함께 브라우저에서 혼자 합니다. 서버가 없습니다.

모든 사이드 프로젝트 보기 →