테마
06 — 원서와 공식문서 지도
매 화 끝의
9_공식문서_읽을_곳과7_파인만_자가설명3단(원천 복귀)에서는 좌표를 적어야 한다. 이 교재의 모든 주장에는 좌표가 두 개 붙는다. 하나는[성능고도화 권-장-절 + PDF페이지], 다른 하나는[오라클 공식문서 매뉴얼-장]좌표다. "다시 읽었다"는 기록으로 치지 않는다. 좌표를 적어야 기록이 된다. 이 문서는 그 좌표를 어디서 찾는지 정리한 것이다.
1. 원서 — 무엇을 사야 하나
원서_PDF/ 폴더는 저장소에 없다(저작권 · .gitignore). 각자 소장본으로 채운다. 이 교재가 실제로 쓰는 책은 다음과 같다.
| 책 | 이 교재에서 | 필요도 |
|---|---|---|
| 『오라클 성능 고도화 원리와 해법 I』 (조시형) | 주 원천. 내부 구조(버퍼캐시·Redo/Undo·Lock/Latch·Shared Pool·트레이스)를 다룬다. 01·05·07·11·12·13·15·16·17화의 3_내부_원리가 여기서 나온다 | 필수 |
| 『오라클 성능 고도화 원리와 해법 II』 (조시형) | 주 원천. 인덱스·조인·옵티마이저·쿼리변환·소트·파티션·병렬. 02~04·06·08~10·14화 | 필수 |
| 『SQL BOOSTER』 (유일환) | ora-hanorder 신 시스템의 테이블 구조 원천 · ora-newshop의 ORA_SQL_TEST 책 원본 SQL | 선택 (스크립트가 다 만든다) |
| 『오라클 튜닝 에센셜』 | ora-burger 데이터 생성기 원천 (CF 대조군·파티션) | 선택 |
| 『오라클 SQL 파워업』 (유일환) | ora-dist 데이터 CSV 원천 · 연습쿼리 167개 | 선택 |
| 『친절한 SQL 튜닝』 (조시형) | 구 교재(1_시험준비 · 2_딥다이브)의 뼈대. 본편에서는 성능고도화 I·II로 대체 | 구 교재용 |
| 『SQLP 자격검정 핵심노트 I·II』 | 구 교재의 시험 대비 원천. 본편 범위 아님 | 구 교재용 |
성능고도화 I·II 두 권이면 본편 19화가 성립한다. 나머지는 데이터셋의 출처이고, 데이터는 스크립트가 만들어 주므로 책이 없어도 실습할 수 있다.
2. 원천지도 — 책과 문서의 좌표 체계
원천지도/에 파일 세 개가 있다. 이 파일들은 저장소에 들어 있다(장·절·페이지 번호만 담고 본문은 없다).
| 파일 | 무엇 | 언제 |
|---|---|---|
성능고도화I_목차색인.md (공개 사이트에는 없음) | I권 장·절 ↔ 책 페이지 ↔ PDF 페이지 | 3_내부_원리와 9_공식문서에서 "I권 Ch1 (책 p.23 / PDF p.21)" 같은 좌표를 만들 때 |
성능고도화II_목차색인.md (공개 사이트에는 없음) | II권 〃 | 〃 |
오라클공식문서_지도.md | 필독 매뉴얼 9종의 약칭·역할·장 구성. 19c와 26ai 두 벌 병기. 파인만 태그 → 매뉴얼 라우팅 표 | #용어 #인과 #절차 태그가 붙을 때마다 |
책 페이지 ↔ PDF 페이지
PDF 페이지 = 책 페이지 − 2 (I·II 양권 공통. 표본 113건의 최빈값으로 확정)
목차 색인은 스캔 텍스트에서 자동으로 만든 것이라 제목에 OCR 잡음이 남아 있을 수 있다. 페이지 번호가 1차 키이고 제목은 보조다.
공식문서 — 약칭이 곧 URL 조각이다
https://docs.oracle.com/en/database/oracle/oracle-database/{19|26}/{약칭}/{페이지}.html| 약칭 | 제목 | 언제 펴나 |
|---|---|---|
cncpt | Database Concepts | #용어: "왜 이렇게 설계됐나"의 1차 출처. 가장 먼저 편다 |
tgsql | SQL Tuning Guide | 02~11 · 15b화: 옵티마이저·통계·인덱스·조인·힌트 |
tgdba | Database Performance Tuning Guide | 01화(방법론) · 16~18화. 이 교재 커리큘럼의 뼈대다(3장 → 5장 → 6장 → 9장 → 7장 → 10장) |
refrn | Database Reference | #절차: V$/DBA_ 뷰 정의 · 파라미터. 계기판을 켤 때마다 |
arpls | PL/SQL Packages and Types Reference | DBMS_XPLAN DBMS_STATS DBMS_WORKLOAD_REPOSITORY … 거의 매 화 |
lnpls | PL/SQL Language Reference | 15 · 15b화 |
admin | Administrator's Guide | 05 · 14 · 18화 |
adfns | Development Guide | 12 · 13화 |
dblic | Licensing Information | 팩·옵션 가용성의 유일한 정본. 05_Free와_EE_트랙G.md의 근거 |
19c와 26ai를 병기하는 이유: 19c는 장기 지원 릴리스이자 현장 점유율 1위이고, 26ai는 로컬 실습 환경이자 최신 버전이다. 2025-10부로
23ai가26ai로 이름이 바뀌어,/23/경로로 들어가도/26/내용이 나온다. 장 번호보다 장 제목을 앞세워 적는다. 번호는 개정판에서 바뀌지만 제목은 잘 바뀌지 않는다.
3. 파인만 3단 — 좌표는 이렇게 생겼다
7_파인만_자가설명에서 막힌 문장에 태그를 붙이고, 원천으로 돌아가 좌표를 적는다. 형식은 다음과 같이 정해져 있다.
#인과 CR 블록이 왜 재생성되나
→ 성능고도화 I권 Ch1 「Consistent 모드 읽기」 (책 p.__ / PDF p.__) ← 목차색인에서
→ cncpt 「Data Concurrency and Consistency > Multiversion Read Consistency」 ← 공식문서 지도에서| 태그 | 뜻 | → 되돌아갈 원천 |
|---|---|---|
#용어 | 단어를 모른다 | 성능고도화 해당 절 + cncpt |
#인과 | A 다음 B는 아는데 왜인지 모른다 | 성능고도화 해당 장 + 원리 레퍼런스 앵커 |
#수치 | 크기 감각이 없다 | 실습 재측정 (수치를 직접 만든다) |
#절차 | 어떻게 확인하는지 모른다 | refrn 매뉴얼의 V$ 정의 + tgdba 해당 장 |
이 좌표들이 _막힘로그.md에 쌓이고, 같은 항목이 3회 이상 나오면 재학습 큐로 올라간다. 좌표가 쌓일수록 원천지도도 자란다.
4. (선택) 소장본에서 텍스트를 꺼내 두기
본문을 검색하고 싶으면 자기 소장본에서 텍스트를 추출해 OCR_원천/ 아래에 둔다. 그 폴더는 .gitignore로 막혀 있어 공개 저장소로 새어 나가지 않는다. 이것이 저작물이 밖으로 나가지 않게 막는 유일한 방어선이므로, 출력 폴더를 다른 곳으로 바꾸면 안 된다.
스크립트는 두 개이고 용도가 다르다. 헷갈려서 잘못 쓰면 원천 품질이 망가진다.
| 스크립트 | 대상 | 방식 |
|---|---|---|
OCR_원천/_extract_textlayer.py (공개 사이트에는 없음) | 텍스트 레이어가 있는 PDF. 『성능고도화 I·II』가 여기에 해당한다 | pypdfium2로 원문을 그대로 꺼낸다. 무손실·초고속 |
OCR_원천/_ocr.py (공개 사이트에는 없음) | 텍스트 레이어가 없는 스캔 PDF | 렌더 + EasyOCR. 느리고 기술 용어 손상률이 높다(핵심노트 실측 98~99% 파손) |
bash
cd 10_본편_튜너의_1년/00_자료준비/OCR_원천
pip install pypdfium2
python _extract_textlayer.py "../원서_PDF/오라클 성능 고도화 1권.pdf" "성능고도화I" 성능고도화I
python _extract_textlayer.py "../원서_PDF/오라클 성능고도화2권.pdf" "성능고도화II" 성능고도화II산출물은 OCR_원천/성능고도화I/pages/성능고도화I_pNNNN.txt(페이지별)와 성능고도화I.md(합본)이다.
목차 색인을 다시 만들어야 할 때(책이 개정됐거나 색인이 깨졌을 때)는 다음을 실행한다.
bash
cd ../원천지도
python _build_toc_index.py I ../OCR_원천/성능고도화I 7 9
python _build_toc_index.py II ../OCR_원천/성능고도화II 4 7(마지막 두 인자는 세부 목차가 있는 PDF 페이지 범위다.)
텍스트를 꺼내지 않아도 교재는 진행할 수 있다. 좌표(책 페이지)를 들고 종이책을 펴는 것이 원래 방식이다.