본문 바로가기
C.W.K.
Stream
Lesson 03 of 04 · published

리마스터가 아니라 리메이크

~12 min · remake, decommission, legacy, posture

Level 0식은 부싯돌
0 XP0/34 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"정신은 남기고 기계는 버려. 좋은 버전을 지금 사실에 맞춰 한 번에 만들어."

대장간엔 뭐가 있었나

Flint 전엔 TextForge 가 있었어. 로컬에서 모델을 돌리고, 브라우저 관리 화면을 한 포트에, API 허브를 다른 포트에 띄우고, 단축키는 바깥 자동화 앱으로 엮어 쓰던 명령줄 도구였지. 제 일은 했어. 그런데 시간이 가면서 기계가 계속 붙었어. 모델 캐싱, 신선도 검사, 웹 화면 하나, 계속 떠 있는 서버 둘. 그중 뭐 하나도 원래 목적이 아니었어. 목적은 처음부터 끝까지 '글 긁어서 바꾼다' 였고. 나머지는 어느새 건물이 되어버린 비계였지.

접는다는 것

다시 만들면서 그 기계를 옮겨오지 않았어. 접었지. 서버도, 뒤에서 돌던 작업도, 포트도, 래퍼도, 전용 환경도 전부 내리고 그대로 뒀어. 그리고 중요한 건, 서버 쪽에 뭘 대신 세우지도 않았다는 거야. 옛 소스는 읽기 전용 창고로 보냈어. 증거로는 남기되 심링크를 걷어내서 실행도, 서비스로 되살리는 것도, 뭔가 고장 났을 때 몰래 갖다 쓰는 것도 안 되게. 접는다는 건 옛것이 돌아가는 물건으로서 사라졌다는 뜻이지, 주석에 'deprecated' 한 줄 다는 게 아니야.

남긴 것 (정신)                 접은 것 (기계)
---------------------          -----------------------
고쳐 쓸 수 있는 동작들          모델 캐싱
순서, 켜고 끄기                신선도 / 카나리 점수
동작마다 실행 설정              관리 웹 화면
키보드 단축키                  API 허브 서버
클립보드 호환                  서버 포트 둘
                               자동화 앱 단축키

왜 접었냐면, cwkPippa 가 이미 모델 쪽을 다 맡고 있어서
Flint 한테는 자기 모델 런타임이 아예 필요 없거든.

리마스터가 아니라 리메이크

이 구분은 꽤 정확해. 리마스터 는 겉을 손봐. 텍스처가 좋아지고 해상도가 올라가고, 속 내용은 그대로 있지. 리메이크 는 원작의 정신만 갖고 지금 사실에 맞춰 다시 지어. 더 나은 구조, 더 깨끗한 경계, 정직한 이름을 한 번에. TextForge 에서 Flint 로 온 건 리메이크야. 이만큼 덜어낼 수 있었던 건 둘러싼 세상이 바뀌었기 때문이고. 이제 cwkPippa 가 브레인, 소울, 모델 라우팅, 추론을 다 갖고 있거든. 옛 도구가 모델 런타임을 이고 있던 건 그럴 수밖에 없어서였지. 새 도구는 그럴 필요가 없으니까 안 이고 있는 거고.

지금 사실에서 다시 만들어. 옛 데이터를 앞으로 끌고 오지 마. 뭔가를 다시 만들 때 함정은 옛 버전을 꼭 지켜야 할 원본으로 여기는 거야. 대신 지금 뭐가 사실인지부터 물어봐. 다른 시스템이 이미 뭘 맡고 있는지, 어떤 경계가 이미 서 있는지. 거기 맞춰 좋은 버전을 한 번에 지어. 옮겨오기만 하면 어제의 가정이 오늘 코드 안에서 계속 살아 있게 돼.
접은 건 폴백이 아니야. '혹시 모르니 옛것 남겨두자' 의 제일 위험한 형태가 몰래 그리로 떨어지는 폴백이야. Flint 의 레거시를 심링크까지 걷어내 보관한 건 어떤 코드 경로도 그걸 되살릴 수 없게 하려고야. 새 게 실패하면 정직하게 실패해야지, 리메이크로 없앤 기계를 조용히 깨우면 안 되거든.

Code

레거시는 아무 데서도 안 돈다 — 접었는지 확인하는 법·bash
# 다시 만든 뒤엔 아래가 전부 아무것도 안 뱉어야 한다. 하나라도 살아 있는
# 프로세스나 포트나 작업이 나오면, 옛 기계가 그림자처럼 되살아난 것이고
# 접었다는 말이 거짓이 된다.

pgrep -f 'textforge|8510|8520'      # 남은 프로세스 없음
launchctl list | grep -i textforge  # 남은 실행 등록 없음
lsof -i :8510 -i :8520              # 열려 있는 옛 포트 없음

# 보관해둔 소스는 읽기 전용에 실행 불가. 증거로만 두고 서비스로는 절대
# 안 쓴다. '돌아가는 물건으로서 사라졌다' 가 요점 전부다.

External links

Exercise

작은 알맹이 하나 둘레에 기계가 붙어버린 도구를 떠올려 봐. 이제 딱히 안 쓰는 설정이나 서비스, 대시보드, 플러그인 같은 거. 다시 만든다면 뭐가 살아남고(정신) 뭘 접을지(기계) 적어봐. 그다음이 진짜 어려운 질문이야. '혹시 몰라서'로만 붙들고 있는 게 있어? 그걸 아예 지우면 뭐가 깨져?
Hint
정신은 대개 의도 한두 문장이고, 기계는 이제 안 맞을 수도 있는 가정을 떠받치려고 지은 전부야. 진짜 시험은 '혹시 몰라서' 쪽이지. 그게 못 지워지면 다시 만들기를 끝낸 게 아니라 옛것 위에 한 겹 더 얹은 것뿐이거든.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.