02 계획과 설계
계획 모듈에 대한 진행자 가이드 — 이 모듈을 건너뛰면 이후 모든 것이 무너지는 이유, 그리고 90분짜리 워크시트 블록을 일정대로 유지하는 방법.
학습자 레슨 02 Plan and design에 대응하는 진행자용 안내입니다.
타이밍
약 90분이며, 그중 자동으로 진행되는 부분은 거의 없습니다. 이 모듈은 백그라운드에서 돌아가는
스크립트가 아니라 개인 또는 짝 단위 워크시트 작업을 중심으로 구성된 유일한 모듈입니다.
Step 1(프로파일링 스크립트)만이 자동화된 부분이고 몇 분 안에 끝납니다. 나머지 전부 —
Step 2의 다섯 개 워크시트와 Step 3의 migration-plan.md — 가 실제로 90분을 쓰는
곳입니다. 이 모듈 안에 휴식을 배치하지 마세요. 강의실에 휴식이 필요하면 워크시트 중간이
아니라 모듈 03과의 경계에서 가지세요.
강의 흐름
- 이 모듈이 무엇이 아닌지부터 시작하세요. 모듈 03의 "실제" 마이그레이션 전에 끼어 있는 지연 구간이 아닙니다. ClickHouse 마이그레이션이 기대에 못 미치는 가장 흔한 이유는 튜닝 문제가 아니라 아키텍처 문제입니다 — 팀들이 데이터를 먼저 옮기고 설계를 나중에 합니다.
- 이 점을 직접적으로 짚으세요. 90분을 쓰는 데 대한 가장 강력한 논거이기 때문입니다.
이 모듈은 파트너가 가장 건너뛰고 싶어 하는 모듈입니다. 모듈 03의
setup.sh는migration-plan.md가 없거나 미완성이면 경고만 하고 — 절대 차단하지 않기 때문입니다. - 파트너가 그래도 건너뛰면 어떻게 되는지 따라가 보세요. 모듈 03에서 기계적으로는 여전히
성공합니다 —
fact_trips는 여전히ReplacingMergeTree로 올라오고 데이터도 옮겨집니다 — 하지만 왜 평범한MergeTree가 아니라 그 엔진인지 모르고,ORDER BY키가 쿼리 워크로드에서 어떻게 도출되었는지 모르며, dbt 설정의delete_insert와FINAL을 알아보지 못하고, 모듈 05의 벤치마크 속도 향상을 고객에게 설명하거나 재현할 수도 없습니다. - Worked Example 참고 페이지는 파트너가 자기 계획을 먼저 시도한 뒤에만 알려주세요 — 그것은 검산 수단이지, 스스로 생각하기 전에 베껴 쓸 템플릿이 아닙니다.
흔한 실패 사례
- Step 1의 프로파일링 스크립트가 실행될 때
ACCOUNT_USAGE를 사용할 수 없습니다. Snowflake 계정 생성 후 1-3시간의 전파 지연이 지나야 하거나,ACCOUNTADMIN역할이 필요합니다. 스크립트는 자동으로INFORMATION_SCHEMA로 폴백하고 측정할 수 없었던 항목을 기록합니다 — 크래시가 아니라 우아한 성능 저하이지만, 파트너가 폴백이 일어난 것을 알아채지 못할 수 있습니다. 자동 프로파일 결과가 빈약해 보이면 Snowflake UI에서 직접 실행할 수 있는scripts/02_query_history.sql을 알려주세요. - 파트너가
migration-plan.md의 Completion Checklist를 선택 사항으로 취급합니다. 선택 사항이 아닙니다 — 모듈 03의setup.sh가 이를 읽으며, 체크되지 않은 항목은 파일 자체는 존재하더라도 이 모듈이 실질적으로 건너뛰어졌다는 신호입니다. - TODO: 모듈 01과 03과 달리 이 모듈의 자체 README에는 Troubleshooting 섹션이 없습니다. 워크시트 부분을 실제 강의실에서 운영해 본 뒤 리허설 결과로 채우세요.
초기화 절차
profile_report.md(Step 1의 출력물)는 gitignore되어 있고 실행할 때마다 파트너 자신의 라이브 Snowflake 계정에서 새로 생성됩니다 — 오래되거나 잘못된 것처럼 보이면./scripts/01_profile_snowflake.sh를 다시 실행하면 됩니다. 정리할 것은 없습니다.- 다섯 개의 워크시트는 사이트에서 작성하며, 답안은 즉시 채점되어 리포지터리가 아니라
참가자의 브라우저(localStorage)에 저장됩니다.
migration-plan.md는 여전히 리포지터리 안에서 직접 편집합니다 — 이 모듈은 어느 클라우드에도 아무것도 프로비저닝하지 않으므로, 꺼내 들teardown.sh나 setup 플래그도 없습니다. - 참가자가 워크시트를 잘못된 상태로 만들었다면, git checkout이 아니라 해당 워크시트의 "Clear answers" 컨트롤을 알려주세요 — 그들의 답안은 git에 닿은 적이 없으므로 checkout은 도움이 되지 않습니다.