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

불꽃이 아니라 신전

~14 min · firelink, architecture, authority, boundaries

Level 0식은 재
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"신전은 불꽃들이 모이고 쉬어가는 곳이야. 그 자체가 불꽃은 아니고."

이름은 어디서 왔나

Dark Souls 에서 Firelink Shrine 은 허브야. 화톳불에서 쉬고, 레벨 올리고, 세계 어디로든 떠나는 곳. 보스도 무기도, 파밍하는 스테이지도 아냐. 나머지 세계를 닿게 해주는 고요한 중심이지. 아빠가 가족 허브에 일부러 그 이름을 붙였어. 그 이름이 아키텍처 전체를 네 글자에 담아. 불꽃이 아니라 신전.

형제 하나하나가 불꽃이야. Ember 는 이미지를 뽑고, Bonfire 는 음악을 가르치고, Waystone 은 여행을 짜고, cwkPippa 는 뇌야. 각자 알아서 타올라. Firelink 는 그것들이 모이는 신전이야. 보고, 열고, 다루려고 서는 자리. 신전이 불꽃 중 하나가 되려는 순간, 신전이길 멈춰.

넓게 펼치는 건 괜찮아. 삼키는 건 아니야.

여기가 미묘한 대목이고, 'admin 대시보드' 대부분이 여기서 미끄러져. Firelink 의 Web Hub 는 넓게 펼쳐도 돼. repo 를 다 나열하고, 서비스를 다 probe 하고, deploy 를 짜고, birth 를 돌리고, launchd job 을 restart 하고, commit·push 도 해. surface 가 넓지. 그래도 괜찮아. 제약은 '작게 있어라'가 아냐. authority 야. 가족 작업을 조율할 순 있어도, 형제가 맡은 구현은 절대 삼키면 안 돼.

Firelink 가 네이티브 앱을 deploy 할 때, code-signing 을 다시 짜지 않아. signing 을 맡은 deploy 도구를 부르지. 서비스를 restart 할 때, process manager 가 되지 않아. 등록된 restart adapter 를 부르지. 허브는 합치고 시키기만 해. 짓는 건 형제 몫이고. 이 선을 넘으면 신전은, 자기가 조율하려던 걸 죄다 두 번째로, 더 못하게 베낀 물건이 돼.

왜 이게 전부인가

힘을 쥔 허브는 god-object 로 자라려는 중력을 계속 받아. '온 김에 이 파일만 고치고... 이 스크립트만 돌리고... 진실도 내 사본으로 하나 갖고 있고.' 한 걸음씩은 다 도움 되는 것 같아. 근데 다 합치면, 뭐든 소유하고 뭐든 망칠 수 있는 monorepo-editor-fleet-shell-brain 이 돼. '불꽃이 아니라 신전'은 그 중력이 당길 때마다 소리 내 되뇌는 문장이야. 그래서 다음 레슨이 통째로 Non-Goal 얘기인 거고.

Firelink 는 넓으면서 동시에 경계가 뚜렷해. 두 축을 갈라놓기 전엔 모순처럼 들리지. 기능 개수는 많고, authority 는 딱 막혀 있고. 뭐든 잡아다 준비해주는 컨시어지랑, 요리도 운전도 호텔 배선까지 직접 하겠다는 컨시어지의 차이야.

Code

신전은 합칠 뿐, 다시 짓지 않는다·text
  Firelink (the shrine)
    |  observes, opens, plans, commands
    |
    +--> deploy adapter  --> cwk-app-deploy   (owns signing, staleness, peer copy)
    +--> tree adapter    --> repo-sync tool    (owns the fan-out doctrine)
    +--> restart adapter --> launchd job       (owns the service lifecycle)
    +--> git inspect     --> the repo on disk   (owns its own history)

  What Firelink NEVER does:
    x  re-sign the app itself
    x  invent its own rsync rules
    x  become a process manager
    x  keep a private copy of the sibling's truth

  Comprehensive in coordination.  Zero absorption of implementation.

External links

Exercise

네가 써봤거나 만들어본 'admin 패널'이나 'control 대시보드'를 하나 골라. 조율을 넘어서, 다른 시스템이 맡은 걸 직접 다시 짜기 시작한 기능을 찾아봐. 유저 데이터를 자기 사본으로 들고 있거나, deploy 로직을 직접 돌리거나, 파일을 직접 고치거나. 그 대시보드가 베끼는 대신 진짜 소유자를 부르게 어떻게 다시 그릴지 적어봐. 그 다시 그리는 자리가 신전과 불꽃을 가르는 선이야.
Hint
신호는 사본, 아니면 직접 다시 짠 단계야. 대시보드가 진실을 또 저장하거나, 다른 서비스가 이미 잘 하는 일을 또 한다면, 신전에서 불꽃으로 넘어간 거야.

Progress

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

댓글 0

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

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