Step 288. CTF 복기 블록 A + 약점 집중: 틀린 유형 10문제 훈련 — 고질병은 집중 반복으로 끊는다
Level 3 — CTF 대회 사이클 | 난이도 ★★★☆☆ | 예상 소요 시간 3일 (하루 3~4문제 특훈 + 치트시트 + 자가 테스트)
전제: Step 280의 복기 블록 A 절차, Step 284의 약점 분석, Step 285~287의 대회 복기 기록 — 다섯 대회의 "실패 목록"이 쌓여 있어야 합니다.
- 준비물: 대회 #1~#5의 복기 노트(틀린 문제 목록), 유형별 문제를 고를 플랫폼(드림핵
dreamhack.io, webhacking.kr, pwnable.kr 등), 특훈 로그용 노트. 플랫폼 문제 풀이 장면은 화면 예시입니다. - ⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다. 오늘 쓰는 플랫폼들은 운영자가 학습용으로 공식 개방한 합법 연습장이며, 연습장 밖에서 기법을 쓰지 않습니다.
- 이 챕터는 훈련 챕터입니다 — 새 개념은 없고, "자꾸 틀리는 유형"을 고르고 10문제로 몰아 훈련하는 설계법이 전부입니다.
다섯 대회의 복기 데이터를 겹쳐 보면 패턴이 보입니다. 힙 문제만 나오면 0점, SSTI를 매번 놓침, 암호 오라클 문제는 손도 못 댐 — 한 번의 실패는 운이지만, 세 번 반복된 실패는 고질병입니다. 고질병은 대회 사이에 흘려내면 다음 대회에서도 같은 자리에서 무너집니다.
오늘의 처방은 단순하고 거칩니다 — 그 유형만 10문제 모아 사흘 동안 몰아서 풉니다. 산발적인 "언젠가 공부"로는 안 고쳐지는 것이, 같은 유형의 연속 노출로는 고쳐집니다. 다만 이 훈련에는 고유의 함정이 하나 있습니다 — 답 암기. 그 함정을 피하는 장치까지가 오늘의 설계입니다.
1. 학습 목표
이 챕터를 끝내면 다음을 할 수 있습니다:
- 복기 기록에서 실패 빈도 TOP 유형을 데이터로 선정한다
- 플랫폼의 유형별 필터로 훈련 문제 10개를 난이도 순으로 수집한다
- "왜 이전엔 못 풀었나" 대조를 매 문제에 적용해 3일 특훈을 운영한다
- 답 암기 함정을 피하는 검증 장치(자가 테스트)를 설계한다
- 유형별 공략 치트시트(개념→도구→명령→함정)와 공통 구조 요약 문장을 만든다
2. 배경 지식 — 오늘의 도구와 개념
오늘의 도구 한눈에 보기
| 구분 | 내용 |
|---|---|
| 언어·환경 | 드림핵/webhacking.kr/pwnable.kr 등 유형별 필터를 제공하는 플랫폼, 마크다운(로그·치트시트) |
| 오늘의 명령 | 없음 — 플랫폼 문제 풀이가 실습. 도구는 특훈 유형의 것을 복습 |
| 필요한 개념 | 실패 빈도, 유형 특훈, 패턴 인식, 답 암기 함정, 자가 테스트 |
| 오늘의 산출물 | 특훈 로그(10문제) + 유형 치트시트 + 공통 구조 요약 문장 + 자가 테스트 결과 |
2-1. 왜 "유형" 단위인가 — 실패는 문제가 아니라 유형으로 반복된다
복기 노트를 쭉 훑으면 실패한 문제들이 유형 단위로 묶입니다. CTF#1의 ssti-note, CTF#2의 ssrf-internal, CTF#3의 race-condition — 문제는 매번 달랐지만 "서버 사이드의 입력 처리"라는 뿌리가 같습니다. 문제 단위로 복습하면 그 문제만 풀 수 있게 되고, 유형 단위로 훈련해야 그 뿌리의 문제 전부를 풀 수 있게 됩니다.
유형 선정은 데이터로 합니다. 다섯 대회의 실패 목록을 유형 태그로 분류해 빈도를 세면 TOP가 자동으로 정해집니다. 감으로 "나 SSTI 약한 것 같아"가 아니라 — "서버 사이드 유형 실패 4회, 최다"로 정하세요. Step 286의 태그 통계가 여기서도 재료가 됩니다.
2-2. 유형 특훈의 원리 — 패턴 인식은 연속 노출에서 생긴다
같은 유형의 문제 10개를 사흘에 몰아 풀면, 첫 2~3문제는 "공부"이고 그 다음부터는 다른 것이 일어납니다. 네 번째 문제쯤에서 문제 설명을 읽다가 "아, 이거 그 유형이네"가 먼저 뜹니다 — 이것이 패턴 인식입니다. 개별 지식(문법·도구·명령)은 첫 문제들에서 배우지만, 대회에서 진짜 필요한 것은 "이 문제가 그 유형이라는 것을 알아보는 눈"이고, 그 눈은 연속 노출에서만 생깁니다.
그래서 특훈의 완료 조건은 "10개를 풀었다"가 아닙니다 — 10개를 관통하는 공통 구조를 문장으로 요약할 수 있는 것입니다. 요약이 안 되면 열 개를 풀었지만 열 번 따로 푼 것입니다.
시간 배치에도 이유가 있습니다. 사흘에 나누는 것은 진도 관리가 아니라 간격 효과를 노리는 것입니다 — 하루에 10개를 다 풀면 뇌가 "오늘의 절차"로 처리하지만, 밤을 사이에 두고 다시 마주하면 뇌가 "어제 배운 것의 재호출"을 강제합니다. 이 재호출이 일어나야 패턴이 단기 기억에서 장기 기억으로 옮겨갑니다. 특훈의 사흘은 빡빡한 일정이 아니라, 기억이 굳는 시간을 사이에 끼워 넣은 설계입니다.
2-3. 답 암기 함정 — 특훈 최대의 적
같은 유형을 연속으로 풀면 중반부터 묘한 일이 생깁니다. 문제를 푸는 것이 아니라 직전 문제의 답을 재배열해서 제출하게 됩니다. 점수는 나오는데 패턴 인식이 생기지 않는 상태 — 이것이 답 암기 함정입니다.
| 신호 | 정상 훈련 | 답 암기 |
|---|---|---|
| 착수 | 문제의 신호를 읽고 유형 판정 | 유형을 이미 알고 절차 재생 |
| 막힘 | 가설을 바꾼다 | 직전 풀이와 다른 부분만 고친다 |
| 통과 후 | 왜 통했는지 설명 가능 | "아까랑 비슷해서" |
방지 장치는 세 가지입니다. ① Write-up에 그 문제만의 신호를 적는다(직전 문제에도 똑같이 적히는 문장은 신호가 아님), ② 문제 사이에 다른 일을 끼운다(연속 몰입은 암기를 부추김 — 문제 간 30분 공백), ③ 특훈 마지막에 새 문제 1개를 시간 제한으로 푼다(자가 테스트 — 암기로는 새 문제가 안 풀림).
세 장치 모두 같은 원리에서 나옵니다 — 재생의 경로를 끊는 것. 신호 기록은 "판정 없이 풀기"를, 문제 간 공백은 "직전 답의 잔상"을, 자가 테스트는 "목록의 기억으로 풀기"를 각각 차단합니다. 특훈이 훈련으로 남으려면, 푸는 동안 내내 문제가 낯설어야 합니다.
2-4. 문제 수집과 배치 — 난이도는 계단으로
10문제를 아무렇게나 모으면 안 됩니다. 배치에 규칙이 있습니다.
수집 규칙:
- 같은 유형, 다른 변형 10개 (드림핵 유형 필터, webhacking.kr 연관 문제, pwnable 시리즈)
- 난이도 배치: 쉬움 3 / 중간 5 / 어려움 2 — 앞에서 성공을 만들어야 뒤가 풀린다
- 대회에서 틀린 바로 그 문제는 제외 — 그것은 복기 블록 A의 몫 (이미 분석을 봤으므로 암기 오염)
마지막 규칙이 중요합니다. 대회에서 틀린 문제의 답을 이미 알고 있다면 특훈 문제로 쓸 수 없습니다 — 그 문제로는 패턴 인식을 검증할 수 없습니다. 그 문제는 Step 280 절차(끝까지 파기)로 따로 처리하고, 특훈은 처음 보는 같은 유형으로 채웁니다.
수집처가 마땅치 않은 유형도 있습니다 — 예를 들어 드물게 나오는 포렌식 변형은 10개를 못 모을 수 있습니다. 이때는 가까운 사촌 유형으로 채우세요 — "디스크 이미지 타임라인"이 3개밖에 없다면 "로그 타임라인 재구성" 문제를 같은 칸에 넣습니다. 특훈의 목적은 그 문제 열 개가 아니라 그 뿌리의 판정력이므로, 사촌 유형의 섞임은 오염이 아니라 일반화 훈련입니다.
3. 따라 하기
3-1. 0일차 — 유형 선정과 문제 수집
복기 노트와 Step 286의 태그 통계를 펼치고 실패 유형의 빈도를 셉니다.
화면 예시 (실패 유형 집계):
대회 #1~#5 실패 문제의 유형 분류:
- 서버 사이드(SSTI/SSRF/역직렬화): 4회 ← TOP 1
- 힙 익스플로잇: 3회 ← TOP 2
- 암호 오라클: 2회
- 기타 1회성: 4회
→ 특훈 대상: 서버 사이드 (TOP 1). 힙은 다음 특훈으로 예약
TOP 1~2개를 고릅니다 — 셋 이상을 한 번에 하면 특훈이 산발 학습으로 희석됩니다. 고르지 않은 유형은 "예약"으로 기록해 두세요. 특훈은 사이클로 돌아오니, 이번에 안 하는 것은 버리는 것이 아니라 순서를 정하는 것입니다.
플랫폼에서 같은 유형 10문제를 수집해 목록을 만듭니다 — 문제명, 플랫폼, 예상 난이도, 순서까지 미리 정합니다.
3-2. 1~3일차 — 하루 3~4문제, 매 문제 "대조 문장"
하루의 운영은 이렇습니다. 문제당 60~90분 상한, 풀 때마다 특훈 로그에 다섯 칸을 채웁니다.
화면 예시 (특훈 로그, 유형 = SSTI):
[문제 3/10] 드림핵 ssti-basic-2 — 45분, 해결
- 신호: 템플릿 엔진명(Jinja2)이 에러 페이지에 노출
- 이전 실패와의 대조: CTF#1 ssti-note에서는 엔진 특정을 못 해 0단계에서 정체
→ 이번엔 에러 유도 → 엔진 특정 → 페이로드 결정의 절차가 바로 나옴
- 새로 배운 것: {{7*7}} 진단 페이로드는 엔진별 응답이 다르다 (Twig는 49 대신 수식 그대로)
- 함정: 필터가 {{}} 를 막는 변형 존재 — {% %} 구문 우회는 문제 7에서 등장 예정
- 한 줄 요약 후보: "SSTI의 절반은 엔진 특정이다"
핵심 칸은 두 번째 — "이전 실패와의 대조" 입니다. 대회에서 못 푼 그 순간과 오늘의 풀이를 나란히 놓으면, 무엇이 채워졌는지가 정확히 보입니다. 이 대조 없이 10문제를 풀면 실력이 올랐는지 원래 알았는지 구분이 안 됩니다.
시간 상한(문제당 60~90분)도 규칙입니다. 상한이 없으면 한 문제에 사흘을 다 쓰는 함정이 생깁니다 — 상한에 걸려 못 푼 문제는 "미완"으로 표시하고 다음으로 넘어갑니다. 미완 문제는 특훈 마지막 날에 Write-up을 보고 마저 파는 복기 블록 A의 재료가 됩니다. 특훈의 리듬 — 몰아치되, 한 문제에 짓눌리지 않는 것 — 를 지키는 장치가 이 상한입니다.
3-3. 매일 마무리 — 공통 구조 문장을 다듬는다
하루가 끝날 때 그날 푼 문제들의 공통점을 한 문장으로 써 봅니다. 어설퍼도 됩니다 — 사흘에 걸쳐 다듬는 것이 목적입니다.
공통 구조 문장의 성장 (화면 예시):
1일차: "SSTI는 템플릿에 코드가 실행되는 것" → 정의일 뿐, 공략 문장이 아님
2일차: "에러를 유도해 엔진을 특정하고, 엔진별 페이로드로 간다" → 절차가 보임
3일차: "입력이 템플릿에 꽂히는 지점을 찾고 → 진단 페이로드로 엔진 특정 →
필터가 있으면 구문 우회 → 읽기 목표(config/flag)로 수렴" → 재사용 가능한 절차
3일차의 문장이 특훈의 진짜 산출물입니다. 이 문장이 다음 대회에서 "이 문제 SSTI네"라는 판정과 동시에 전개되는 공략 순서입니다.
3-4. 치트시트 작성 — 개념 → 도구 → 명령 → 함정
특훈이 끝나면 Step 285의 4칸 형식으로 유형 치트시트를 완성합니다. 특훈 로그의 열 문제가 재료이므로, 이 치트시트는 "교과서의 요약"이 아니라 "내가 겪은 열 번의 압축" 이 됩니다.
화면 예시 (SSTI 치트시트):
[SSTI 치트시트] — 특훈 10문제에서 압축
- 개념: 사용자 입력이 템플릿 엔진의 코드로 실행되는 취약점
- 신호: 입력이 응답에 재표현되는 폼 + 에러 페이지의 엔진 흔적(Jinja2/Twig/Tornado)
- 도구·명령: 진단 {{7*7}} / {{7*'7'}} → 엔진 특정 → tplmap 또는 수동 페이로드
- 함정: ① {{}} 필터 → {% %} 우회 ② 샌드박스 제거 우회는 서브클래스 탐색 필요
③ "안 되는 엔진"은 없고 "모르는 문법"만 있다 — 엔진 문서를 먼저 연다
3-5. 자가 테스트 — 새 문제 1개, 시간 제한
마지막 날, 특훈 목록에 넣지 않은 같은 유형의 새 문제 1개를 60분 제한으로 풉니다. 이것이 답 암기 함정의 검증 장치입니다 — 10문제를 "재생"한 것이라면 새 문제는 못 풀고, 패턴 인식이 생겼다면 풀거나 최소한 공략 절차가 전개됩니다.
채점은 이분법이 아니라 절차로 합니다. 60분 안에 치트시트의 절차 — 신호 판독 → 엔진 특정 → 페이로드 → 함정 확인 — 가 막힘 없이 전개됐다면, 시간 부족으로 못 풀었어도 특훈은 성공입니다. 반대로 첫 단계에서 헤맸다면, 10문제의 절반은 암기였던 것이고 — 절반은 다시 합니다. 억울하겠지만, 지금 발견한 것이 다행입니다. 다음 대회에서 발견하는 것보다 훨씬 싸게 치렀습니다.
자가 테스트의 문제는 팀원에게 부탁해 고르게 하는 것이 가장 좋습니다 — 스스로 고르면 무의식적으로 자신 있는 변형을 고릅니다. 팀 특훈이라면 서로의 테스트 문제를 골라 주는 것이 서로에게 주는 선물입니다.
4. 미션과 연습문제
미션 — 틀린 유형 10문제 특훈 완주
- 대회 #1~#5의 실패 목록을 유형으로 분류해 빈도를 세고, TOP 1~2개를 선정합니다 (나머지는 "예약" 기록).
- 플랫폼에서 같은 유형 10문제를 수집합니다 — 난이도 계단(쉬움 3/중간 5/어려움 2), 대회에서 틀린 문제 본인은 제외.
- 사흘 동안 하루 3~4문제를 풀고, 매 문제 특훈 로그 다섯 칸(신호/대조/새 지식/함정/요약 후보)을 채웁니다.
- 매일 마무리로 공통 구조 문장을 다듬습니다.
- 유형 치트시트 4칸(개념/신호/도구·명령/함정)을 완성합니다.
- 목록 밖의 새 문제 1개로 60분 자가 테스트를 하고, 절차 기준으로 채점합니다.
연습문제
문제 1. 문제 단위 복습과 유형 단위 특훈의 차이를 "뿌리"라는 표현을 써서 설명해 보세요.
문제 2. 답 암기 함정에 빠졌는지 판별하는 신호를 세 가지의 표(2-3)에서 골라 각각 설명해 보세요.
문제 3. 대회에서 틀린 바로 그 문제를 특훈 목록에서 제외하는 이유는 무엇인가요? 그 문제는 어떻게 처리해야 하나요?
문제 4. 특훈의 완료 조건이 "10개 완료"가 아니라 "공통 구조의 문장 요약"인 이유는 무엇인가요?
5. 모범 답안과 완료 기준
미션 모범 답안
검증 기준으로 확인하세요.
- 선정의 근거: 유형 빈도 집계 표가 있고, TOP 선정이 그 표에서 나왔는가 — 감으로 고른 유형은 특훈의 방향이 틀어질 수 있습니다.
- 목록의 규칙 준수: 난이도 계단이 지켜졌고, 대회 실패 문제 본인이 빠져 있는가.
- 로그의 핵심 칸: 열 문제 모두에 "이전 실패와의 대조"가 있는가 — 이 칸이 비어 있는 로그는 특훈이 아니라 그냥 문제 풀이입니다.
- 문장의 성장: 공통 구조 문장이 1일차→3일차로 다듬어진 흔적이 있는가 — 처음부터 완성된 문장은 특훈 전에 이미 알았다는 뜻이고, 그 유형은 애초에 특훈 대상이 아니었습니다.
- 자가 테스트의 정직성: 새 문제의 절차 전개 여부가 기록됐고, 실패 시 재훈련 결정이 내려졌는가.
연습문제 해답
문제 1 해답. 문제 단위 복습은 그 문제 하나만 고치지만, 반복되는 실패는 문제가 아니라 유형이라는 뿌리에서 나오기 때문입니다. ssti-note를 복습하면 ssti-note는 풀 수 있게 되지만 ssrf-internal은 여전히 새 문제입니다. 유형 단위 특훈은 "서버 사이드 입력 처리"라는 뿌리를 통째로 훈련하므로, 다음 대회에서 그 뿌리의 어떤 변형이 나와도 판정과 공략이 됩니다. 고질병은 증상(문제)이 아니라 병소(유형)를 치료해야 낫습니다.
문제 2 해답. 첫째, 착수 단계 — 문제의 신호를 읽고 유형을 판정하는 것이 아니라, 유형을 이미 알고 절차를 재생하기 시작하면 암기입니다. 둘째, 막힘 대응 — 가설을 바꾸는 대신 직전 풀이와 다른 부분만 고치면 그것은 탐색이 아니라 재배열입니다. 셋째, 통과 후 — "왜 통했는가"를 설명하지 못하고 "아까랑 비슷해서"가 나오면 패턴 인식이 아니라 답의 기억입니다. 세 신호 모두 대회에서는 통하지 않습니다 — 대회의 문제는 언제나 처음 보는 변형이니까요.
문제 3 해답. 그 문제는 이미 복기에서 답의 구조를 봤으므로, 그것으로는 패턴 인식을 검증할 수 없기 때문입니다 — 답을 아는 문제를 푸는 것은 재생이지 판정이 아닙니다. 그 문제의 처리는 Step 280의 복기 블록 A(끝까지 파기)로 합니다 — 왜 못 풀었는가를 분석하고 필요한 지식을 메우는 자리. 특훈은 그 분석이 끝난 뒤, 처음 보는 같은 유형 열 개로 진행해야 검증 장치로서 작동합니다.
문제 4 해답. 특훈의 목적이 지식 축적이 아니라 패턴 인식이기 때문입니다. 열 문제를 따로따로 풀고 끝나면 각 문제의 지식만 남고, 대회에서 필요한 "이 문제가 그 유형임을 알아보는 눈"은 생기지 않습니다. 공통 구조 문장은 열 번의 경험이 하나의 판정 절차로 압축됐다는 증거이고, 그 문장이 있어야 열 번째 문제와 열한 번째(대회의 새 변형) 사이에 다리가 놓입니다. 문장으로 못 쓰는 것은 아직 몸에 안 붙은 것입니다.
완료 기준 체크리스트
- [ ] 대회 #1~#5 실패 목록을 유형별 빈도로 집계했다
- [ ] 특훈 유형 TOP 1~2개를 데이터로 선정했다 (나머지는 예약 기록)
- [ ] 같은 유형 10문제를 난이도 계단(3/5/2)으로 수집했다
- [ ] 대회 실패 문제 본인은 목록에서 제외했다
- [ ] 사흘간 하루 3~4문제를 풀고 특훈 로그 다섯 칸을 채웠다
- [ ] 공통 구조 문장을 3일에 걸쳐 다듬었다
- [ ] 유형 치트시트 4칸을 완성했다
- [ ] 새 문제 1개로 60분 자가 테스트를 하고 절차 기준으로 채점했다
6. 흔한 실수와 해결
벽 1. 10문제를 모았는데 절반은 사실 다른 유형이었어요
증상: 풀다 보니 SSTI인 줄 알았던 문제가 템플릿 없는 커맨드 인젝션이었습니다.
원인: 수집 단계에서 문제 설명만 보고 분류했습니다 — 플랫폼의 유형 태그는 대략적이라, 경계선의 문제들이 섞여 들어옵니다.
해결: 버리지 말고 로그에 "유형 이탈"로 표시하고 계속 푸세요 — 이탈 문제는 오히려 귀한 재료입니다. "이 문제가 왜 SSTI가 아닌가"를 문장으로 쓸 수 있게 되면, 그 유형의 경계를 아는 것이고, 경계를 아는 판정이 대회의 변형에서 흔들리지 않습니다. 목표는 "순수한 10개"가 아니라 "판정력"입니다.
벽 2. 4번째 문제부터 너무 쉬워져서 시들해요
증상: 쉬움 계단의 문제들이 비슷하게 풀리기 시작했고 지루합니다.
원인: 패턴 인식이 형성되기 시작한 정상적인 신호입니다 — 지루함이 곧 성장의 증거입니다. 다만 이때가 답 암기 함정이 시작되는 지점이기도 합니다.
해결: 시들해지는 순간부터 각 문제에 제한 시간을 절반으로 줄이세요. 쉬운 구간의 남은 가치는 속도입니다 — 대회에서 Easy를 15분에 처리하는 팀과 60분에 처리하는 팀의 Hard 도전 시간은 다릅니다. 그리고 문제 사이 공백(2-3의 ②)을 지켜 암기 재생이 아니라 판정 연습이 되게 하세요.
벽 3. 어려움 2문제에서 완전히 막혀 특훈이 깨졌어요
증상: 9~10번째 문제를 못 풀어서 "특훈 실패"라는 기분입니다.
원인: 계단의 꼭대기는 원래 넘지 못할 수 있는 자리입니다. 어려움 2개는 훈련이 아니라 측정을 위해 넣은 것입니다.
해결: 도달 지점을 기록하고(Step 287의 문서 양식) Write-up 또는 복기 노트로 넘기세요. 특훈의 성패는 쉬움·중간 8개의 절차 전개와 공통 구조 문장으로 판가름납니다. 꼭대기의 벽은 "다음 특훈의 사전 학습 목록"이라는 이름으로 예약됩니다 — 이번에 못 넘은 벽의 좌표가 정확히 기록된 것도 수확입니다.
벽 4. 치트시트가 특훈 로그의 복사본이 됐어요
증상: 치트시트의 "함정" 칸에 문제별 에피소드가 열 줄로 적혀 대회에서 못 읽을 분량입니다.
원인: 압축을 건너뛰었습니다. 로그는 열 번의 기록, 치트시트는 그 기록의 결정집입니다 — 같은 형태로 옮기면 안 됩니다.
해결: 치트시트 각 칸을 "60초 안에 읽히는가"로 검사하세요. 넘는 칸은 묻습니다 — "대회 중 이 문장이 판단을 바꾸는가?" 바꾸지 않는 문장은 로그에 남기고 치트시트에서는 지웁니다. 삭제의 기준은 Step 278의 "청중의 3가지"와 같습니다 — 이번 청중은 대회 중의 자기 자신입니다.
벽 5. 자가 테스트에서 절차가 안 나왔어요 — 특훈이 물거품 같아요
증상: 새 문제 앞에서 엔진 특정부터 헤맸습니다. 10문제를 풀었는데.
원인: 10문제 중 상당수가 답 암기로 통과됐을 가능성이 높습니다 — 아프지만 자가 테스트가 제 일을 한 것입니다.
해결: 좌절 대신 재진단을 하세요. 특훈 로그를 훑으며 세 신호(2-3)로 암기 의심 문제를 표시하고, 그 문제들만 조건을 바꿔 다시 풉니다 — 다른 날, 다른 순서, 로그를 보지 않고. 절차가 몸에 붙는 데 원래 반복이 필요합니다. 첫 특훈에서 반은 암기였다는 발견은 실패가 아니라, 두 번째 특훈의 정확한 설계도입니다.
7. 정리
오늘의 개념
| 개념 | 한 줄 설명 |
|---|---|
| 실패 빈도 집계 | 다섯 대회의 실패를 유형으로 묶어 TOP를 데이터로 정하는 절차 |
| 유형 특훈 | 같은 유형 10문제를 사흘에 몰아 푸는 집중 반복 — 패턴 인식의 제조법 |
| 패턴 인식 | "이 문제가 그 유형이네"가 풀이보다 먼저 뜨는 상태 — 연속 노출의 산물 |
| 답 암기 함정 | 직전 풀이를 재배열해 제출하는 상태 — 점수는 나오는데 눈은 안 생긴다 |
| 공통 구조 문장 | 10문제를 관통하는 한 문장 — 특훈의 진짜 완료 조건 |
| 자가 테스트 | 목록 밖 새 문제 1개, 시간 제한 — 암기 여부의 검증 장치 |
오늘의 도구·서식
| 도구·서식 | 하는 일 |
|---|---|
| 실패 유형 집계 표 | 복기 노트에서 특훈 대상을 뽑는 자 |
| 난이도 계단 (3/5/2) | 성공 경험을 앞에 쌓아 뒤의 벽을 넘게 하는 배치 |
| 특훈 로그 5칸 | 신호/대조/새 지식/함정/요약 후보 — 매 문제의 압축 |
| 치트시트 4칸 | 특훈의 결정집 — 대회 중 60초에 읽히는 분량으로 |
| 자가 테스트 채점 | 절차 전개 기준 — 이분법이 아니라 과정으로 채점 |
명령어보다 중요한 감각
고질병의 무서움은 반복 자체가 아니라 "이번엔 다르겠지"라는 기대로 다음 대회를 맞는 것입니다. 특훈은 그 기대를 끊는 절차입니다 — 데이터로 유형을 정하고, 열 번 몰아 풀고, 문장으로 압축하고, 새 문제로 검증합니다. 이 사이클을 한 번 돌려 본 유형은, 다음 대회에서 문제를 여는 순간 먼저 인사를 겁니다 — "나 그 유형이지."
그리고 특훈의 부산물이 팀에 남습니다. 여러분이 다듬은 치트시트는 팀의 자산이 되고(Step 285), 자가 테스트의 절차 채점은 다음 대회의 도달 깊이 기록을 정확하게 만듭니다. 개인의 고질병 치료가 팀의 무기고 정비로 이어지는 것 — 그것이 대회 사이클의 복리입니다.
전부 체크되면 Step 288 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.