AI 에이전트마다 컨테이너 하나씩
머신 하나에서 코딩 에이전트 여러 개가 서로 밟지 않게 돌리는 설계를 정리했다. 에이전트마다 컨테이너를 줘서 격리 단위와 회수 단위를 맞추고, 에이전트끼리는 네트워크로 주고받고, 중첩 컨테이너는 필요할 때만 쓰고, 인증 정보는 이미지에 굽지 않고 나눠 준다. systemd로 시험해 본 cgroup만 쓰는 가벼운 방법도 같이 적었다.
백엔드 엔지니어
일치해야 할 두 가지가 어긋난 순간을 기록합니다 — 문서와 그 아래의 코드, 통과한 테스트와 깨져 있던 기능, 하나의 아키텍처와 그걸 제각기 다르게 읽은 다섯 개 언어. 주로 TypeScript, Go, Java, Kotlin, Python으로 하는 백엔드 작업입니다.
최근 기록 하나
사이트의 절반은 사이트 자신의 복사본이었다읽기
다루는 기술
기술을 문제 해결을 위한 도구로 보고, 운영과 확장성을 고려해 선택합니다.
최신 글
설계 작업과 작은 실험들에서 배운 교훈을 기록합니다.
머신 하나에서 코딩 에이전트 여러 개가 서로 밟지 않게 돌리는 설계를 정리했다. 에이전트마다 컨테이너를 줘서 격리 단위와 회수 단위를 맞추고, 에이전트끼리는 네트워크로 주고받고, 중첩 컨테이너는 필요할 때만 쓰고, 인증 정보는 이미지에 굽지 않고 나눠 준다. systemd로 시험해 본 cgroup만 쓰는 가벼운 방법도 같이 적었다.
모든 페이지가 분량 검사를 통과했고 제목도 URL도 숫자도 달랐다. 그런데도 사이트 전체 텍스트의 절반에 조금 못 미치는 양이 두 장 이상의 페이지에 똑같이 들어 있었다. 이걸 찾아낸 15줄짜리 측정 방법과, 아무도 정한 적 없는데 페이지가 옆 페이지를 베끼게 되는 세 가지 경우를 정리했다.
Kubernetes 안티패턴 검사기 5개가 모두 `---`로 구분한 문서를 가정하고 있었다. `kubectl get -o yaml` 한 번에 리소스를 2개 이상 대면 결과가 `kind: List`로 감싸진다. 그러자 모든 검사기가 아무 말 없이 리소스를 0개 찾았고, 겉보기에는 깨끗한 통과와 똑같았다.
Live
브라우저에서 하는 3D 점령전입니다. 양쪽 병력은 봇이 맡고, 플레이어는 보병이나 공격 헬기(지금은 연합군만)로 출격해 거점을 빼앗습니다. 지금은 맵 하나의 빠른 점령전을 할 수 있고, 서버도 가입도 없습니다.