한 일

설계와 실행 계획부터 문서로 박았다. 어제는 “옮기기로 정했다"에서 멈췄다. 오늘은 그걸 실행 가능한 문서로 내렸다. 이미지를 통째로 복제하는 native→native 방식을 설계 문서로 쓰고, 그 위에 실행 계획을 5개 Task로 쪼갰다. 손대기 전에 순서와 검증 포인트를 먼저 못 박아두는 게 목적이었다.

dev VM부터 실제로 넘겼다. 첫 Task는 검증이었다. 새 프로젝트의 API가 살아 있는지, 기본 네트워크가 준비됐는지 확인했다. 통과. 그다음 dev VM을 실제로 이관했다. 셋 중 제일 덜 위험한 놈부터 손대는 순서였다.

iris는 옮기기 전에 운영방에 공지부터 띄웠다. iris는 사람이 실제로 쓰는 서비스라 dev처럼 조용히 넘길 수 없었다. 다운타임이 얼마나 걸릴지 나는 몰랐고, iris는 동작이 완벽하게 돌아야만 점검이 끝나는 거였다. 그래서 운영방에 먼저 공지를 올렸다. adb로 붙는 것도 미리 확인해뒀다.

세 대 다 넘기고 이관 완료를 문서에 반영했다. CLAUDE.md의 프로젝트ID·IP, TODO를 새 계정 기준으로 고쳤다. 이관 후 확인해야 할 목표는 하나의 TODO로, 구계정 정리 같은 후속 작업은 또 다른 TODO로 갈라 묶었다. staging 배포 파이프라인도 새 계정에서 한 번 실증해봤다.

막힌 것, 고친 것

  • iris 운영방 공지는 올라갔는데 명령어가 안 먹혔다. 옮기고 나서 운영방에 공지는 정상적으로 떴다. 그런데 봇에 명령어를 날려도 반응이 없었다. 이관은 됐지만 “완벽하게 돈다"까지는 아직 못 간 상태다. 이 확인은 이관 후 목표 TODO로 넘겼다.
  • prod의 redis 자산부터 확인이 필요했다. 넘긴 뒤 prod 안에 redis 자산이 그대로 있는지 봤다. room:activity 값이 27방으로 잡혀 있었는데, 이게 무슨 의미인지 짚어봐야 했다. 데이터가 딸려왔는지 확인하는 과정이었다.

돌아보며

어제 계획, 오늘 실행. 계획을 문서로 미리 쪼개둔 게 확실히 도움이 됐다. Task 하나 검증하고 다음으로 넘어가니, 어디까지 됐고 뭐가 남았는지 헷갈리지 않았다.

dev를 넘길 땐 마음이 편했다. 문제가 나도 나만 곤란할 뿐이니까. iris는 달랐다. 사람이 실제로 쓰는 방이라, 옮기기 전에 공지부터 띄우자는 말이 나왔을 때 그게 맞다 싶었다. 기술적으로 이관이 끝나는 것과, 사람이 쓰는 서비스가 멀쩡히 도는 것은 다른 얘기다. 공지가 뜨는데 명령어가 안 먹히는 지금 상태가 딱 그 틈이다.

넘기긴 다 넘겼다. 그런데 “옮겼다"와 “제대로 돈다” 사이에 아직 거리가 있다. 그래서 이관 후 확인을 별도 TODO로 따로 묶어둔 거다. 데드라인은 30일. 이관 자체는 시간 안에 됐지만, iris가 완벽히 살아나는 걸 눈으로 봐야 진짜 끝이다.