본문으로 건너뛰기

여러 사람이 함께 쓸 때 — 운영 규약과 도구의 결손

문서 목록으로


0. 이 문서가 적용되는 범위

혼자 한 기계에서 쓰는 구성에는 이 문서의 어느 항목도 적용되지 않습니다. recipe에 경로를 그대로 적고 tabbit --recipe recipe.jsonc로 끝이며, 산출물을 커밋하든 말든 충돌할 상대가 없고, 환경도 히스토리도 나눌 것이 없습니다.

아래의 모든 항목은 다른 사람이 함께 쓰거나 환경이 추가되는 시점부터 비용이 되는 것들입니다. 그 경계를 먼저 적는 것은, 규약을 필요하지 않은 곳에 적용하면 그 규약이 지켜지지 않기 때문입니다.

무엇이 생겼나그때부터 필요해지는 것
다른 사람§2 산출물의 기록 주체 · §3 원본의 소유와 브랜치 · §5 히스토리 · §6.1 조기 검출
추가 환경§4 환경 구분 — 키 분리 · recipe 매개변수화 · 승격
CI§2.3 전달 경로 · §5.3 기록 주체 · §6.5 서비스 계정

도구도 같은 경계로 만들었습니다 — ${NAME}--env는 쓰지 않으면 없는 것과 같고, 혼자 쓰는 recipe는 이 개정 전과 한 글자도 달라지지 않습니다.

1. 요약

사람이 늘어나는 순간 문제가 되는 것은 산출물의 공동 커밋 · 환경 구분의 부재 · 히스토리의 분산 3가지입니다. 셋 다 변환 자체의 결함이 아니라 쓰는 규약이 정해지지 않은 것이고, 그중 2가지는 규약만으로 해결되지 않아 도구에 자리가 필요합니다.

문제현재 상태처방도구 변경
산출물의 공동 커밋이 저장소는 시연 목적으로 커밋하고 있고, 소비 프로젝트가 그것을 관례로 오해할 여지가 있습니다커밋 주체를 CI 하나로 고정합니다 — 생성 코드는 CI가 커밋하고, 데이터는 매니페스트·업데이터가 전달합니다불필요
SchemaBaseline의 동시 갱신커밋 대상이며 실행마다 갱신됩니다CI만 갱신하고 사람은 AcceptSchemaChanges로 의도를 선언합니다불필요
환경 구분${NAME}이 recipe 전체에 적용되고 --env가 그 낱말을 정합니다recipe 하나 + 변수 두 벌, 그리고 키와 권한의 분리끝남 — §4.5
브랜치 운용엑셀은 파일이라 브랜치를 따라가지만, 구글 시트는 상태가 하나뿐이고 병합 수단이 없습니다시트는 trunk 전용, 릴리스 라인은 스냅샷 커밋이 담당합니다 — §3.3불필요
라이브 빌드의 재현성구글 스프레드시트는 조회 시점의 상태만 반환합니다승격 시점의 워크북 스냅샷을 커밋합니다불필요 (절차)
히스토리기록 주체가 규정되어 있지 않습니다CI 한 곳만 기록하고 조회는 --serve 1대불필요
구글 인증 — 서비스 계정으로 접속할 수 있습니다CI는 서비스 계정, 사람은 클라이언트 비밀끝남 — §6.5
도구 버전 드리프트summaryruntoolVersionenvironment가 함께 기록됩니다버전 고정 + summary를 데이터 옆에 냅니다불필요 — §6.2

단일 원칙 하나로 요약됩니다 — 하나의 산출물 트리에 쓰는 주체는 하나여야 합니다. 그 주체는 CI이고, 사람의 로컬 실행은 확인용이며 그 결과를 저장소에 반영하지 않습니다.


이 문서의 나머지

무엇어디
산출물과 원본을 함께 쓸 때생성물을 함께 커밋하는 것과, 시트를 동시에 고치는 것
환경과 히스토리사람마다 다른 환경을 가르는 법과, 히스토리의 단일 기록자 원칙
사람이 늘어날 때규모가 커지며 나오는 것, 오늘 할 수 있는 것, 도구가 바꾼 것