Step 288. CTF 복기 블록 A + 약점 집중: 틀린 유형 10문제 훈련 — 고질병은 집중 반복으로 끊는다

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. 대회 #1~#5의 실패 목록을 유형으로 분류해 빈도를 세고, TOP 1~2개를 선정합니다 (나머지는 "예약" 기록).
  2. 플랫폼에서 같은 유형 10문제를 수집합니다 — 난이도 계단(쉬움 3/중간 5/어려움 2), 대회에서 틀린 문제 본인은 제외.
  3. 사흘 동안 하루 3~4문제를 풀고, 매 문제 특훈 로그 다섯 칸(신호/대조/새 지식/함정/요약 후보)을 채웁니다.
  4. 매일 마무리로 공통 구조 문장을 다듬습니다.
  5. 유형 치트시트 4칸(개념/신호/도구·명령/함정)을 완성합니다.
  6. 목록 밖의 새 문제 1개로 60분 자가 테스트를 하고, 절차 기준으로 채점합니다.

연습문제

문제 1. 문제 단위 복습과 유형 단위 특훈의 차이를 "뿌리"라는 표현을 써서 설명해 보세요.

문제 2. 답 암기 함정에 빠졌는지 판별하는 신호를 세 가지의 표(2-3)에서 골라 각각 설명해 보세요.

문제 3. 대회에서 틀린 바로 그 문제를 특훈 목록에서 제외하는 이유는 무엇인가요? 그 문제는 어떻게 처리해야 하나요?

문제 4. 특훈의 완료 조건이 "10개 완료"가 아니라 "공통 구조의 문장 요약"인 이유는 무엇인가요?


5. 모범 답안과 완료 기준

미션 모범 답안

검증 기준으로 확인하세요.

  1. 선정의 근거: 유형 빈도 집계 표가 있고, TOP 선정이 그 표에서 나왔는가 — 감으로 고른 유형은 특훈의 방향이 틀어질 수 있습니다.
  2. 목록의 규칙 준수: 난이도 계단이 지켜졌고, 대회 실패 문제 본인이 빠져 있는가.
  3. 로그의 핵심 칸: 열 문제 모두에 "이전 실패와의 대조"가 있는가 — 이 칸이 비어 있는 로그는 특훈이 아니라 그냥 문제 풀이입니다.
  4. 문장의 성장: 공통 구조 문장이 1일차→3일차로 다듬어진 흔적이 있는가 — 처음부터 완성된 문장은 특훈 전에 이미 알았다는 뜻이고, 그 유형은 애초에 특훈 대상이 아니었습니다.
  5. 자가 테스트의 정직성: 새 문제의 절차 전개 여부가 기록됐고, 실패 시 재훈련 결정이 내려졌는가.

연습문제 해답

문제 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 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.