로그의 숲
← 숲으로 돌아가기

두 개의 경계

longblack-mcp, longblack-csbot

에세이 문체 — 작업을 배경으로, 생각을 전경으로

CSBot의 에이전트와 데이터 사이에는 서버가 하나 끼어 있었다. 요청을 받아 조회하고 돌려주는 것이 전부인 중간자. 그 역할을 패키지 안으로 흡수하면 서버째 없앨 수 있다. longblack-mcp를 함께 설계하면서 가장 오래 고민한 것은 코드를 어떻게 옮기느냐가 아니라, 옮긴 코드를 어떻게 시험하느냐였다.

라이브러리가 프로덕션 환경에 묶여 있으면 격리된 시험은 불가능하다. 데이터베이스를 바꿔 끼울 수 있는 자리 하나, 현재 시각을 외부에서 정해줄 수 있는 자리 하나. 이 두 개의 경계만 열어두면 같은 코드가 실서비스에서도 시험 환경에서도 돌아간다.

중간자 서버를 지웠다. 3,558줄이 빠졌다. PR 리뷰 봇이 시험 환경의 격리가 깨졌다고 알려왔고, 미리 열어둔 두 경계가 거기서 제 역할을 했다. 데이터를 통제하고 시간을 고정하니 시험은 다시 결정적이 되었다.

서비스 두 개가 하나가 되었고, 별도 프로세스로 띄우던 시험 서버도 사라졌다.