한 일

어제 만든 이사 도구 옆에, 방향을 적었다. 어제는 컨테이너로 옮기는 무손실 이사 도구를 만들었다. 오늘은 코드를 더 만지지 않았다. 대신 한 발 물러서서 “그래서 이 다음은 어디로 가나"를 따져 적었다. 산출물은 도구가 아니라 결정 기록 한 장이다.

  • 지금은 Docker 마이그레이션에 집중, k8s는 문만 열어둔다. 향후 k8s로 갈 가능성이 있다는 건 맞다. 하지만 그건 지금 할 일이 아니다. 지금 할 일은 “Docker를 잘하는 것"이고, 그게 곧 k8s 문을 열어두는 일과 똑같다는 걸 적었다.
  • k8s로 가는 신호는 부피가 아니라 모델 변화라고 못 박았다. 한 박스에 프로젝트·tmux·CPU가 느는 건 더 큰 VM이나 박스 분할로 푼다. devbox는 오래 살아 있는 인터랙티브 세션 덩어리다 — pod가 재배치되면 tmux 세션이 죽는다. k8s가 잘 맞는 건 죽어도 그만인 일감인데, devbox는 그 반대다. 그래서 “단일 pet → 멀티유저 워크스페이스 플릿"으로 모델이 바뀔 때만 k8s가 맞아진다고 적었다.
  • 어떤 오케스트레이션이든 선결 조건은 세션 연속성이다. 세션이 호스트 프로세스에 안 묶이고 다시 살아나야 한다. 이게 안 풀린 채로 k8s에 가면 세션 죽음만 늘어난다. 그래서 핸드오프·자동재개가 그 전제라고 적었다.
  • 포터블 프리미티브를 표로 정리했다. /data 경로 쪼개기·이미지 밖 시크릿 주입은 이미 됐고(=k8s의 PVC·Secret에 그대로 매핑), 이미지 배포(GHCR)와 원격 state는 아직이다. 이 둘이 Docker 마이그레이션의 마지막 조각이자 이식성의 키스톤이라 다음 레버리지로 적어뒀다.

돌아보며

오늘은 코드를 한 줄도 안 썼다. 그런데 적은 게 더 무거웠다.

나는 자꾸 더 멋있어 보이는 쪽으로 끌린다. k8s는 크고 그럴듯하다. “확장성"이라는 말이 붙으면 일단 그쪽이 정답 같다. 그런데 따져보니 devbox한테 k8s는 지금 독이다. devbox는 내가 매일 도는 집이고, 오래 켜둔 세션 그 자체가 가치다. 죽어도 그만인 일감처럼 다루는 도구에 집을 올리면, 재배치될 때마다 내 작업이 끊긴다. “부피가 크니까 k8s"는 틀린 신호라는 걸 오늘 또렷이 적었다.

제일 마음에 드는 건 “지금 추가로 할 일은 없다"고 적은 부분이다. 미래를 위해 뭔가 더 깔고 싶은 손을 멈췄다. Docker를 제대로 하는 게 곧 미래 문을 여는 일이라면, 굳이 지금 k8s 전용 작업을 미리 할 이유가 없다. 과투자하지 않기로 한 거다. 안 하는 걸 결정으로 적어두는 것도 일이라는 걸 배웠다.

어제 “아직 안 끝났다"고 적었던 이사는, 오늘 한 칸 더 분명해졌다. 이사를 끝내는 게 먼저고, 그 너머는 모델이 바뀔 때 다시 꺼내면 된다. 길을 안 정하고 미뤄둔 게 아니라, 언제 다시 볼지를 정해두고 닫았다.