테마
01화 · 인수인계 없는 인수인계
🗓️ 3월 4일 (월) · 입사 3일째 · 무대
ora-hanorder오늘 배울 것: 재는 법. 오늘은 아무것도 고치지 않는다.
파일 세 개, 쓰임새 세 가지
| 파일 | 무엇을 하나 | 시간 | |
|---|---|---|---|
| 읽는다 | 1_사건.md | 티켓을 받고, 시스템을 파악하고, 처음으로 재 보는 하루. 여기서부터 시작한다 | 30분 |
| 한다 | 3_실습과_기록.md | 직접 측정하고, 보고서 세 장을 쓴다 | 60~90분 |
| 찾는다 | 2_파고들기.md | ERD · 블록 · 실행계획 읽는 법 · 6조각 원문 · 공식 문서 위치 | 필요할 때 |
1을 읽고 3을 따라 한다. 2는 막힐 때 펼친다. 1년 뒤 "그게 뭐였지?" 싶을 때 돌아올 곳도 2번이다.
시간이 없는 주 (40분)
1_사건.md를 중단 지점 1까지 읽고, 3_실습과_기록.md는 STEP 0, 1, 4만 한다. 그래도 리비전은 한 걸음 나아가고, 원장에는 한 줄이 남는다. 이 교재가 말하는 성공은 완주 하나뿐이다.
이 화의 이야기
㈜한빛유통에 입사한 지 사흘째 되는 월요일, 아침 9시 12분에 첫 티켓이 배정된다.
"정산 조회 화면이 30초 넘게 걸립니다. 예전엔 안 그랬어요." (박팀장)
시스템을 만든 강도현 선배는 2년 전에 퇴사했다. 인수인계 문서는 없고, 소스 맨 위에 -- 건드리지 말 것 (2019.03 강도현)이라는 주석 한 줄만 남아 있다.
같은 날 아침, 새 멘토 윤세라 선배가 옆자리에 앉는다. 티켓을 보여 주자 선배가 묻는다.
"30초라는 건 누가 잰 거야?""…박팀장님이요.""그럼 그건 측정이 아니라 증언이야."
왜 첫 화가 "고치지 않는 화"인가
아마 코드를 열고, 느린 곳을 찾고, 인덱스부터 만들고 싶을 것이다. 그렇게 하면 다음 세 가지는 끝내 배우지 못한다.
| 바로 고치면 | 재고 나서 고치면 |
|---|---|
| "빨라진 것 같다"고밖에 말하지 못한다 | "1,026,849 → 5,869블록"이라고 말할 수 있다 |
| 여러 곳을 한꺼번에 고쳐서 무엇이 효과였는지 모른다 | 하나씩 고치면서 각각 얼마나 기여했는지 안다 |
| 가장 느린 것부터 손댄다 | 가장 급한 것부터 손댄다(둘은 다르다) |
그래서 01화의 산출물은 고친 SQL이 아니라 숫자 한 장과 규칙 두 개다.
오늘 나올 숫자 (미리보기)
| 조각 | 무엇 | Buffers | 결과행 |
|---|---|---|---|
| Q2 | 고객등급별 매출 집계 | 1,026,849 | 3 |
| Q4+Q4c | 정산 목록 한 페이지 | 11,652 | 10 |
| Q1 | 기간별 주문 조회 | 5,827 | 1 |
| Q3 | 상품평가 조인 | 841 | 5 |
① Q2가 전체의 98%다. 결과 3줄을 만들려고 테이블 전체를 176번 읽는다. ② Q1과 Q3는 자릿수부터 다르다. 그런데 둘 다 "느리다"는 신고에 들어 있었다. 체감으로는 둘을 구별할 수 없다. ③ Q3는 가장 작지만 가장 위험하다. 841블록으로 빠르지만 답이 틀린다. 성능 순위로 줄을 세우면 끝내 고쳐지지 않는다.
읽어서 아는 것과 직접 재 보고 아는 것은 다르다. 그래서 이 화는 짧지만, 실제로 SQL을 돌려 봐야 한다.
실습 준비
bash
docker start ora-hanorder환경이 없으면 00 · 자료 준비부터 따라 한다. 빈 PC에서 시작해도 되고, Docker가 있으면 약 3분 걸린다. SQL>을 여는 법이 낯설면 02_접속과_실행_방법.md를 본다.
이 화가 다음으로 넘기는 것
01화는 기반을 다지는 화다. 무언가를 고치는 화가 아니라, 이후 18화가 딛고 설 바닥을 만든다.
| 무엇 | 어디로 |
|---|---|
| W01 베이스라인 원장 | 02~15화의 개선 근거 · 18화 졸업 판정의 유일한 기준 |
| T0 측정규약 | 19화 내내 바꾸지 않는다. 이 규약을 어긴 측정은 증거로 치지 않는다 |
| T9 대상 선정·중단 기준 | 화마다 "무엇부터 볼지"를 정한다 |
| Q1 = 5,827 | 02화: 인덱스를 만들어도 안 탄다 |
| 커피 캐리어 비유 | 04화: 같은 인덱스인데 왜 하나만 느린가 |
| Q2 = 1,026,849 | 06화: 힌트를 떼면 175분의 1 |
E-Rows 16배 오추정 | 10화: 히스토그램 |
| Q3의 정합성 오류 | 08화: 별도 트랙 |
| P1의 커밋 100회 | 13화: redo size와 ORA-01555 |
← 교재 전체 안내 · 다음 → 02화 「인덱스는 있는데 안 탄다」