자기 환경이 없어
작업장엔 의존성 명세도 없고 격리된 환경도 없어. host 형제가 이미 정의해둔 환경 안에서 돌면서, 그 백엔드가 깔아둔 걸 빌려 써. 저장소 입장에선 거의 이단이야. 격리된 환경은 대부분의 프로젝트가 제일 먼저 만드는 거고, 그럴 만한 이유도 충분하니까.
근거는 작업장이 그 백엔드의 클라이언트라는 거야. 실행할 때마다 그 서비스를 부르거든. 같은 환경에 살면 클라이언트랑 호출 대상이 서로 멀어지지 않고, 작업장이 이미지 합성이랑 네트워크 호출에 필요한 라이브러리는 백엔드가 먼저 필요로 했다는 이유로 이미 깔려 있어.
이빨 달린 규칙
이걸 게으름 이상으로 만드는 건 붙어 있는 조항이야. 작업장이 host 에 없는 패키지가 필요해지면, 그건 다시 생각하라는 신호지 환경을 포크할 이유가 아니다.
이게 뭘 하는지 좀 앉아서 봐. 의존성 하나가 없는 건 소프트웨어에서 제일 일상적인 사건이야. 추가하고 가던 길 가면 돼. 여기선 그게 증거로 재정의됐어. host 에 없는 게 갖고 싶다는 건 작업장이 host 가 정의한 능력의 테두리 밖으로 손을 뻗고 있다는 뜻이고, 그건 보통 둘 중 하나야. 형제 몫인 관심사를 흡수하고 있거나, 가족이 이미 어딘가에 가진 능력을 새로 키우려는 참이거나.
이건 일반적인데 잘 안 쓰이는 기법이야. 평범하게는 순수한 마찰일 제약이, 위반이 무슨 뜻인지를 미리 정해두는 것만으로 탐지기가 돼. 마찰은 어차피 있었을 거야. 그 뜻을 지명하는 게 그걸 정보로 바꿔.
이게 먹히는 건 시점 때문이야. 해석은 사건이 벌어지기 전에 적혀 있어야 해. 그 순간엔 항상 편한 읽기가 준비돼 있거든. 패키지는 필요하고, 일은 하던 중이고, "이번 건은 다르다"는 공학에서 자기 사례에 대해 제일 믿기 쉬운 문장이야. 미리 적어둔 규칙은 마감이 없던 시절의 너랑 논쟁하는 거고, 들을 값어치가 있는 건 딱 그 버전이지.