Step 302. ★ CTF #12: 목표 달성 대회 — 상위 30%, 시즌 피날레
Level 3 — CTF 실전과 공격 스킬 심화 | 난이도 ★★★★★ | 예상 소요 시간 2일 (대회 참가 + 종료 후 회고)
전제: Step 300에서 확정한 예선 최종 전략 문서, Step 301에서 완성한 전투 패키지. 이 챕터는 Level 3의 수료 시험입니다.
- 준비물: 전투 패키지, 전략 문서, 확장 로그 양식, 그리고 평소의 루틴. 이 챕터의 대회 장면은 화면 예시로 표기합니다.
- 주의: 마지막 대회라는 중압감이 올 것입니다. 해소법은 하나 — 평소 루틴 그대로. 대회 당일의 나는 훈련의 평균입니다.
- ⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다. 대회 규칙을 시작 전에 읽고 지킵니다.
열두 번째 대회입니다. Step 279의 첫 대회에서 손에 땀이 났던 화면이, 오늘은 익숙한 작업 화면입니다. 이 대회는 Level 3의 피날레이자 수료 시험 — 목표는 상위 30%. 지난 열한 대회의 복기와 특훈, 속도 훈련과 봉인이 만든 현재 실력을, 있는 그대로 측정합니다.
그리고 하나를 미리 말해 둡니다. 이 챕터는 달성 시나리오와 미달성 시나리오 둘 다를 준비합니다. 상위 30%는 목표이지 졸업 조건이 아닙니다 — 결과와 무관하게 성장을 측정하는 법이 이 챕터의 절반입니다. 시계를 거세요. 마지막 판입니다.
1. 학습 목표
이 챕터를 끝내면 다음을 할 수 있습니다:
- 확정된 전략을 실험 없이 그대로 실행한다 — 대회 중 전략 수정의 유혹을 차단한다
- 전투 패키지를 풀가동해 아는 것의 정확도로 점수를 환산한다
- 4시간마다 중간 점검(순위·목표 대비 진척)을 수행하고 조정한다
- 종료 후 최종 순위·분야별 득점·목표 달성 여부를 양식에 확정한다
- 달성/미달성 어느 쪽이든 정해진 회고 프레임으로 성장을 측정한다
2. 배경 지식 — 오늘의 도구와 개념
오늘의 도구 한눈에 보기
| 구분 | 내용 |
|---|---|
| 언어·환경 | CTFtime 주말 대회, 전투 패키지(Step 301), 전략 문서(Step 300), 팀 채널 |
| 오늘의 명령어 | 새 명령어 없음 — 전투 패키지 안의 것만 씁니다 |
| 필요한 개념 | 전략 실행(실험 금지), 중간 점검 주기, 결과-과정 분리, 성장 지표, 훈련의 평균 |
| 오늘의 산출물 | 완결된 대회 로그 + 최종 결과 양식 + 회고 문서(달성 또는 갭 분석) |
2-1. 왜 실험 금지인가 — 확정된 것을 지키는 것이 마지막 훈련
대회 중에는 유혹이 옵니다. "이 문제, 새로 본 기법으로 하면 빠를 것 같은데." 그러나 검증되지 않은 기법의 기대값은 음수일 때가 많고, 무엇보다 오늘은 전략 자체가 시험 대상입니다. 전략을 바꾸며 뛰면, 결과가 나와도 전략 탓인지 실력 탓인지 영원히 모릅니다.
Step 300에서 근거와 함께 확정한 문서를, 오늘은 그대로 실행합니다. 잘되면 전략이 입증되고, 안 되면 전략의 어떤 조항이 무너졌는지가 데이터로 남습니다. 어느 쪽이든 다음 시즌의 자산이 됩니다 — 실험은 그 둘을 섞어 버립니다.
2-2. 4시간 중간 점검 — 멀리 보는 습관
Step 299의 3시간 재평가를 대회 규모로 확장합니다. 4시간마다 10분씩, 세 질문에 답합니다.
- 순위: 현재 순위와 목표(상위 30%)선까지의 점수 차는?
- 진척: 예산표 대비 어느 구간에 있는가 — 저배점 회수는 끝났는가?
- 조정: 남은 시간에 배점 기대값이 가장 큰 행동은 무엇인가?
화면 예시 (중간 점검 로그):
[중간 점검 1 — 대회 4:00] (화면 예시)
순위: 412팀 중 118위 (상위 29% 경계선) — 30%선까지 +150점 필요
진척: 저배점 5/6 회수, 예산표 대비 20분 지연
조정: 미회수 저배점 1개를 다음 순번으로, 고배점 Pwn은 2차 점검까지 보류
읽는 법: 중간 점검은 순위 확인이 아니라 다음 4시간의 재설계입니다. 순위에 일희비하지 않고 "다음 행동 하나"를 확정하는 것으로 점검을 닫으세요. 그리고 기억하세요 — 다이내믹 스코어링 대회에서 순위는 문제가 열리고 풀릴 때마다 흔들립니다. 4시간 단위의 숫자는 경향으로만 읽습니다.
2-3. 결과와 성장의 분리 — 두 개의 채점표
이 대회에는 두 개의 채점표가 있습니다.
| 채점표 | 내용 | 성격 |
|---|---|---|
| 결과 | 최종 순위, 상위 30% 달성 여부 | 운과 출제 경향의 영향을 받는다 |
| 성장 | 12회 대회의 궤적 — 득점, 해결 문제 수, 복기 완결률, Write-up 누적 | 시간이 지나면 우상향해야 한다 |
결과표는 한 판의 숫자이고, 성장표는 열두 판의 궤적입니다. 상위 30%를 달성해도 성장표가 정체돼 있다면 다음 시즌은 위태롭고, 미달이어도 성장표가 우상향이라면 그 30%는 시간문제입니다. 이 챕터의 회고는 반드시 두 표를 함께 봅니다 — 하나만 보면 어느 쪽이든 오판합니다.
2-4. 중압감의 물리학 — 평소 루틴이 답이다
"마지막 대회"라는 무게는 호흡을 얕게 하고 손을 빠르게(조급하게) 만듭니다. 대응책은 의지가 아니라 물리입니다 — Step 300에서 리허설한 시작 루틴, 식사 시각, 10초 제출 루틴을 그대로 실행하는 것. 몸이 평소대로 움직이면 마음은 따라옵니다.
그리고 이 문장을 로그 첫 줄에 적어 두세요 — "대회 당일의 나는 훈련의 평균이다." 기적을 바라는 마음이 실수를 만들고, 평균을 믿는 마음이 평균을 지킵니다. 열두 대회의 평균이면, 그것은 이미 단단한 숫자입니다.
3. 따라 하기
3-1. 대회 전날과 당일 아침 — 리허설의 재방송
전날에는 Step 300의 세 축 점검 목록을 다시 실행합니다 — 전투 패키지가 완성됐으므로 이번에는 30분이면 끝납니다. 일찍 잡니다. 당일 아침에는 시작 루틴을 리허설과 같은 순서로 수행하고, 채널에 접속해 역할을 구두 확인합니다.
[당일 시작 루틴] (화면 예시)
-2:00 기상, 식사, 자리 세팅 (리허설과 동일)
-0:30 채널 집결, 역할 구두 확인: "나 Web 1차, 막히면 한 줄 공유"
-0:10 로그 양식 열기, 첫 줄에 오늘의 문장: "대회 당일의 나는 훈련의 평균이다"
0:00 전수 스캔 시작
3-2. 대회 중 — 전략의 실행과 중간 점검
전수 스캔 20분, 저배점 전수, 문제당 상한, 4시간 중간 점검 — 전부 Step 299~300에서 확정한 그대로입니다. 오늘의 유일한 추가 항목은 순위판 확인을 중간 점검으로 제한하는 것입니다. 수시로 순위를 새로고침하는 행위는 점수를 올리지 못하고 심박만 올립니다.
막힐 때의 순서도 전략 문서대로입니다 — 치트시트 절차 확인 → 채널에 진행 상황 한 줄 공유 → 상한 도달 시 보류 전환. 전투 패키지 밖의 것을 찾기 시작했다면, 그것은 조급함의 신호입니다. 멈추고 물을 한 잔 마시세요.
3-3. 종료 — 결과의 확정
종료가 선언되면 손을 떼고, 결과를 양식에 확정합니다. 확정은 대화가 아니라 기록입니다. 화면 예시:
[CTF #12 최종 결과] (화면 예시)
참가팀: 438 최종 순위: 121위 상위 27.6% 목표(상위 30%) 달성
총 득점: 2000점 해결: 8문제 오답 제출: 4회
분야별: Web 600/800 Pwn 400/600 Rev 400/400 Crypto 200/500 Forensics 400/400
중간 점검 준수: 2/2회 전략 이탈: 0건 (또는 N건 — 이탈 시 조항 번호 기록)
읽는 법: 마지막 두 줄이 이 챕터의 독자 항목입니다. 중간 점검을 규칙대로 했는가, 전략 이탈이 몇 건이었는가 — 이것이 "전략 실행력"이라는, 이번 대회가 측정하려던 진짜 변수입니다. 순위는 출제 경향이 만들지만, 이 두 줄은 온전히 여러분이 만듭니다.
3-4. 시나리오 A — 목표 달성의 회고
상위 30% 안에 들었다면, 회고의 첫 질문은 "뭐가 잘됐지"가 아니라 "어느 조항이 먹혔지" 입니다. 화면 예시:
[회고 A — 달성] (화면 예시)
결과: 상위 27.6% — 목표 달성
먹힌 조항: ① 저배점 전수 스캔 (회수율 5/6, 평균 22분 — 훈련 평균 재현)
② 착수 전 문제명 선언 (중복 착수 0건 — #11 대비 -2건)
③ 10초 제출 루틴 (오답 4회 — 시즌 평균 대비 절반)
복불복: Forensics 400/400은 운 좋은 출제 (정확히 치트시트 범위)
성장표: 득점 궤적 #10 1400 → #11 1700 → #12 2000 — 우상향 확인
다음 시즌 숙제: Crypto 득점률 40% — 유일한 50% 미만 분야
읽는 법: "복불복" 줄을 반드시 적으세요. 달성의 일부가 운이었다는 것을 인정해야, 다음 대회에서 그 운이 빠져도 무너지지 않는 계획을 세울 수 있습니다. 달성의 회고가 축하로만 끝나면, 그 대회는 데이터를 남기지 않고 사라집니다.
3-5. 시나리오 B — 미달성의 갭 분석
30%를 넘지 못했다면, 회고는 감정 정리가 아니라 갭의 분해입니다. 목표선과의 점수 차를 세 갈래로 나눕니다.
[회고 B — 미달] (화면 예시)
결과: 상위 34% — 목표선까지 210점 부족
갭의 분해:
① 전략 실행의 손실 — 보류한 Crypto 문제를 끝까지 붙잡음 (-약 120점 상당)
→ 조항 위반: 문제당 상한 90분 초과 (이탈 1건)
② 실력의 한계 — Rev 고배점 문제는 시간이 아니라 지식 부족
→ 다음 시즌 학습 과제로 이동
③ 운·경향 — 주력 분야 출제 비중이 시즌 평균보다 낮음 (통제 불가)
성장표: 순위는 미달이나 득점·해결 수는 시즌 최고 — 궤적은 우상향
판정: ①은 즉시 수정 가능, ②는 과제, ③은 수용. 다음 대회 목표 유지.
읽는 법: 이 분해가 미달을 "패배"에서 "보고서"로 바꿉니다. ①은 규칙을 지키는 훈련으로, ②는 학습으로, ③은 받아들임으로 — 세 갭은 각각 다른 처방이 있고, 섞여 있으면 "부족하다"는 뭉개진 자책만 남습니다. 그리고 성장표 줄을 보세요 — 미달인데 시즌 최고 득점이라면, 그것은 후퇴가 아니라 목표가 앞서 간 것입니다.
3-6. 팀 기념 회고 — 열두 대회를 닫는다
마지막은 분석이 아니라 의식입니다. 팀이 모여 열두 대회의 로그를 처음부터 훑습니다. 각자 "나를 바꾼 순간" 하나를 말하고, 다음 시즌의 첫 대회 일정을 캘린더에 넣습니다.
[기념 회고 메모] (화면 예시)
- 첫 대회(#1) 득점 300 → 마지막(#12) 2000
- 우리 팀을 만든 대회: #3 (첫 역할 분담)
- 가장 아팠던 대회: #6 (중간 평가, 상위 50% 간신히)
- 가장 성장한 대회: #9 (첫 상위 30%권 진입)
- 다음 시즌 첫 대회: 3주 후 — 그 전까지 각자 Step 303의 종합 평가 완료
읽는 법: 이 자리의 목적은 마무리의 감각입니다. 열두 번을 함께 뛴 팀이 "끝났다"를 함께 선언하지 않으면, 각자의 머릿속에서 시즌은 흐릿하게 끝나고 회고록은 쓰이지 않습니다. 종이 위의 성장과 마음속의 마무리 — 둘 다 오늘의 산출물입니다.
4. 미션과 연습문제
미션 — CTF #12 완주와 회고
- 전날 점검과 당일 시작 루틴을 리허설대로 실행하고, 로그 첫 줄에 오늘의 문장을 적습니다.
- 확정된 전략을 이탈 없이 실행합니다 — 이탈이 발생하면 조항 번호와 사유를 기록합니다.
- 4시간 중간 점검을 수행하고 각 점검의 "다음 행동 하나"를 로그에 남깁니다.
- 종료 후 3-3의 결과 양식을 완결합니다 — 순위, 분야별 득점, 중간 점검 준수, 전략 이탈까지.
- 시나리오 A(달성) 또는 B(미달)의 회고 프레임으로 회고 문서를 작성하고, 팀 기념 회고를 가집니다.
연습문제
문제 1. 대회 중 새 기법 실험이 금지인 이유를, "측정의 관점"에서 설명해 보세요.
문제 2. 중간 점검에서 순위를 "경향"으로만 읽어야 하는 이유는 무엇인가요? 다이내믹 스코어링과 연결해 보세요.
문제 3. 결과표와 성장표를 분리해서 봐야 하는 이유를, "미달인데 시즌 최고 득점"인 경우를 예로 설명해 보세요.
문제 4. 시나리오 B의 갭 분해에서 ③(운·경향)을 굳이 적는 이유는 무엇인가요? 생략하면 어떤 오류가 생기나요?
5. 모범 답안과 완료 기준
미션 모범 답안
검증 기준으로 확인하세요.
- 실행의 충실성: 중간 점검 2/2회, 전략 이탈 0건(또는 이탈 건의 사유 기록)이 로그에 남아 있는가. 순위보다 이 줄이 먼저입니다 — 이 대회의 1차 시험 과목은 실행력입니다.
- 결과 양식의 완결: 분야별 득점이 만점 대비로 적혀 있고, 중간 점검 준수와 이탈 건수가 포함됐는가.
- 회고의 구조: 달성이면 "먹힌 조항"과 "복불복"이, 미달이면 갭의 세 갈래 분해(실행/실력/운)가 있는가. 감상만 있는 회고는 미완입니다.
- 성장표의 포함: 어느 시나리오든 12회 대회의 궤적(득점 또는 해결 수)이 회고 문서에 포함됐는가.
- 기념 회고의 개최: 팀이 모여 시즌을 닫았는가 — 다음 시즌 첫 대회가 캘린더에 있는가.
연습문제 해답
문제 1 해답. 이 대회는 전략의 유효성을 측정하는 시험이기 때문입니다. 중간에 변수(새 기법)를 넣으면 결과의 원인을 전략과 실험에 귀속시킬 수 없어 — 성공해도 실패해도 아무것도 배울 수 없는 데이터가 됩니다. 실험은 특훈 시간의 일이고, 대회는 확정된 것의 실행과 측정의 시간입니다. 둘을 섞으면 측정이 죽습니다.
문제 2 해답. 다이내믹 스코어링에서는 다른 팀들의 풀이가 실시간으로 배점을 바꾸므로, 순위는 여러분이 아무것도 안 하는 동안에도 움직입니다. 즉 특정 시점의 순위에는 여러분의 행동이 아닌 외부 요인이 크게 섞여 있습니다. 그래서 순위는 4시간 단위의 경향으로만 읽고, 점검의 산출물은 순위 해석이 아니라 "다음 행동 하나"로 제한해야 합니다.
문제 3 해답. 결과표만 보면 "미달 = 실패"로 읽히지만, 성장표에 시즌 최고 득점이 찍혀 있다면 그 해석은 틀립니다 — 실력은 오르는데 목표선이 더 빨리 올랐거나 출제 경향이 불리했을 뿐이고, 이 상태에서 전략을 갈아엎는 것은 최악의 오판입니다. 반대로 결과만 좋고 성장이 정체돼 있어도 착시가 생깁니다. 두 표는 서로의 오독을 막는 교차 검증 장치입니다.
문제 4 해답. ③을 적지 않으면 통제 불가능한 손실을 ①이나 ②로 오인해, 멀쩡한 전략을 수정하거나 필요 없는 자책 학습을 계획하게 되기 때문입니다. 운의 항목을 명시하는 것은 변명이 아니라 — 수정 가능한 갭(①②)과 수용해야 할 변동(③)을 분리해, 다음 시즌의 노력이 바른 곳에 들어가게 하는 절차입니다. ③에 적힌 것은 다음 시즌 계획의 대상이 아닙니다.
완료 기준 체크리스트
- [ ] 전날 점검과 당일 시작 루틴을 리허설대로 실행했다
- [ ] 로그 첫 줄에 "대회 당일의 나는 훈련의 평균이다"를 적고 시작했다
- [ ] 4시간 중간 점검을 2회 수행하고 각각의 "다음 행동"을 기록했다
- [ ] 전략 이탈 0건, 또는 이탈 건의 조항 번호와 사유를 기록했다
- [ ] 최종 결과 양식(순위·분야별 득점·점검 준수·이탈)을 완결했다
- [ ] 달성/미달에 맞는 회고 프레임으로 회고 문서를 작성했다
- [ ] 회고에 12회 궤적의 성장표가 포함됐다
- [ ] 팀 기념 회고를 갖고 다음 시즌 첫 대회를 캘린더에 넣었다
6. 흔한 실수와 해결
벽 1. 시작 전부터 손이 떨려요
증상: 마지막 대회라는 생각에 평소 같지 않습니다.
원인: 중압감은 정상 생리 반응입니다 — 없애는 것이 아니라 통과하는 것입니다.
해결: 루틴을 믿으세요. 시작 루틴의 첫 동작(자리 세팅, 로그 양식 열기, 오늘의 문장 쓰기)을 기계적으로 실행하면, 전수 스캔 20분쯤에 손은 이미 평소의 손입니다. 몸이 먼저 가면 마음이 따라옵니다 — 그래서 리허설(Step 300)이 있었습니다.
벽 2. 중간 점검에서 목표와 크게 벌어져 있어 멘탈이 흔들려요
증상: 4시간째 상위 45% — 30%가 멀어 보입니다.
원인: 전반부 순위는 후반부의 예측 변수가 아닙니다. 고배점 문제가 늦게 풀리는 전략이라면 전반부 순위는 원래 낮게 나옵니다.
해결: 점검의 세 질문으로 돌아가세요 — 필요한 것은 "다음 행동 하나"뿐입니다. 그리고 로그를 확인하세요. 예산표 대비 지연인가, 전략대로인데 점수가 안 쌓인 것인가. 후자라면 계획된 후반전을 믿고 진행합니다 — 계획을 믿는 것도 훈련된 실행입니다.
벽 3. 전략 이탈을 하고 나서 자책하며 연속 실수를 해요
증상: 상한을 넘긴 걸 깨닫고, 만회하려다 다음 문제에서 오답 연발.
원인: 이탈의 비용은 이탈 자체보다 그 뒤의 조급함이 더 큽니다.
해결: 이탈은 기록하고 흘려보내세요 — 로그에 조항 번호와 사유를 적는 순간, 그 사건은 회고의 재료가 되어 현재 경기에서 나옵니다. "이미 흘린 점수는 회고에서 회수한다" — 그 한 문장으로 다음 문제로 넘어가세요.
벽 4. 종료 직전에 무리해서 새 문제를 잡았어요
증상: 마감 30분을 남기고 "하나라도 더"의 유혹.
원인: 마감 구간의 과제는 새 득점이 아니라 확보한 점수의 마무리입니다 — 미제출 플래그 제출, 형식 재확인.
해결: 예산표의 마감 구간(Step 299)을 다시 보세요 — "새 문제 착수 금지" 조항이 이미 있습니다. 종료 직전의 급한 착수가 성공하는 경우보다, 풀린 문제의 플래그 오타를 놓치는 경우가 훨씬 많습니다. 마지막 30분의 승부는 공격이 아니라 검수입니다.
벽 5. 결과가 목표에 못 미쳐 회고를 쓰기 싫어요
증상: 로그도 다시 보기 싫고, 회고를 미루고 싶습니다.
원인: 감정은 정상입니다 — 단, 회고는 감정이 가라앉기를 기다리는 것이 아니라 감정과 무관하게 수행하는 공정입니다.
해결: 24시간 규칙을 쓰세요 — 하루 쉬고, 정확히 다음 날 같은 시각에 시나리오 B의 양식을 엽니다. 양식이 있다는 것이 이 순간의 구원입니다 — 갭의 분해는 첫 줄을 쓰는 순간부터 감정이 아니라 숫자를 다루게 합니다. 그리고 성장표 줄에서, 열두 대회의 궤적이 여러분을 다시 세울 것입니다.
7. 정리
오늘의 개념
| 개념 | 한 줄 설명 |
|---|---|
| 전략 실행(실험 금지) | 대회는 확정된 것의 측정 시간 — 변수를 넣으면 데이터가 죽는다 |
| 4시간 중간 점검 | 순위·진척·조정의 세 질문 — 산출물은 "다음 행동 하나" |
| 결과표와 성장표 | 한 판의 숫자와 열두 판의 궤적 — 둘을 봐야 오판이 없다 |
| 갭의 분해 | 미달을 실행/실력/운 세 갈래로 — 각각 처방이 다르다 |
| 복불복의 명시 | 달성 속의 운을 인정해야 다음 계획이 단단하다 |
| 훈련의 평균 | 대회 당일의 나는 훈련의 평균이다 — 기적이 아니라 루틴을 믿는다 |
오늘의 도구·서식
| 도구·서식 | 하는 일 |
|---|---|
| 시작 루틴 체크 | 중압감을 몸의 순서로 통과하는 장치 |
| 중간 점검 로그 | 4시간 단위의 재설계 기록 |
| 최종 결과 양식 | 순위·분야별 득점·점검 준수·이탈의 확정 |
| 회고 프레임 A/B | 달성의 조항 분석 / 미달의 갭 분해 |
| 기념 회고 | 시즌을 함께 닫는 의식 — 다음 첫 대회까지 |
명령어보다 중요한 감각
열두 번째 대회가 끝났습니다. 결과가 어느 쪽이든, 여러분은 이제 대회를 "치르는" 사람이 아니라 "운영하는" 사람입니다 — 전략을 세우고, 실행하고, 측정하고, 분해하는 사이클 전체를 돌릴 수 있습니다. 그 사이클이야말로 어떤 단일 기법보다 오래 가는 실력입니다.
잠시 쉬세요. 시즌의 종합 평가는 이 대회의 결과 양식과 열두 대회의 로그를 책상 위에 펼쳐 놓는 데서 시작합니다 — 오늘의 기록이 그 평가의 원료입니다.
전부 체크되면 Step 302 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.