Step 258. HTB Easy 2대 (누적 6) — 시간 제한 훈련: 시계를 켜고 푼다
Level 3 — CTF 실전과 공격 스킬 심화 | 난이도 ★★★★☆ | 예상 소요 시간 12시간+ (머신당 최대 6시간 + 회고)
전제: Step 256~257(Easy 누적 4대, 입구 유형 표, 플레이북)을 마쳤다. 머신 로그 습관은 몸에 배 있다.
- 준비물: Step 257의 입구 유형 표와 시간 추이 데이터, 파이썬 3(시간 기록 스크립트용 — 실측: Python 3.12.14), 알람(폰 타이머).
- ⚠️ 이 챕터의 실습은 내 랩·합법 플랫폼 전용입니다. 허가 없는 시스템에 적용하면 범죄입니다. Hack The Box(
hackthebox.com)는 운영자가 공격 연습용으로 공식 개방한 합법 학습 플랫폼입니다 — 이 플랫폼의 머신 외에는 오늘의 기술을 쓰지 않습니다. - 실측 안내: 3-2의 시간 기록 스크립트와 그 출력은 내 PC에서의 실측(2026-09-09)입니다. HTB 머신 공략 화면은 전부 화면 예시입니다.
대회와 시험에는 시계가 돌아갑니다. OSCP 시험은 24시간이고, CTF 예선은 몇 시간이고, 그 안에서 "시간을 어디에 쓰는가"가 합격과 우승을 가릅니다. 지금까지 여러분은 정확성을 훈련했습니다 — 오늘부터는 거기에 시계를 얹습니다.
오늘의 구조는 단순합니다. 새 Easy 머신 두 대를, 각각 6시간 타임박스 안에서 풀되, 목표는 4시간 컷입니다. 그리고 매 단계의 시각을 기록해, 끝난 뒤 "시간이 어디로 갔는가"를 분석합니다. 시간 제한은 압박 장치이기 전에 측정 장치입니다 — 재 보면 보입니다. 어디서 늘어지는지가 곧 여러분의 약점 지도입니다.
1. 학습 목표
이 챕터를 끝내면 다음을 할 수 있습니다:
- 단계별 시간 배분(정찰/침투/상승)을 설정하고 알람으로 강제한다
- 단계 전환 시각을 기록하는 도구를 만들어 쓴다
- 30분 규칙을 시간 압박 상황에서도 이탈하지 않고 적용한다
- 시간 초과 머신을 "어느 단계에서 초과했는가"로 분석한다
- 누적 6대의 시간 회고 문서를 완성한다
2. 배경 지식 — 오늘의 도구와 개념
오늘의 도구 한눈에 보기
| 구분 | 내용 |
|---|---|
| 언어·환경 | HTB Easy 머신 2대 + 공격 머신 + 파이썬 타이머 + 폰 알람 |
| 오늘의 명령 | python htb_timer.py 머신명 (오늘 직접 만드는 도구) + 지금까지의 전부 |
| 필요한 개념 | 타임박스, 단계별 시간 배분, 페이스, 30분 규칙의 시간판, 회고 분석 |
| 오늘의 산출물 | 누적 6대 + 시간 배분 회고 문서 + htb_timer.py |
2-1. 왜 시계를 켜는가 — 측정이 곧 진단
Step 257에서 user까지의 시간을 기록했습니다. 오늘은 그 해상도를 올립니다 — "user까지 3시간"이 아니라 "정찰 50분, 열거 1시간 10분, 침투 1시간, 상승 40분"으로.
이 분해가 보여 주는 것: 대부분의 초과는 특정 단계의 반복에서 옵니다. 정찰이 두 번째로 길었다면 도구(워드리스트 선택, 스캔 속도) 문제이고, 침투에서 늘어졌다면 가설 우선순위 문제이며, 상승이 길었다면 패턴 노트의 구멍입니다. 총시간은 결과만 말하고, 단계별 시간은 원인을 말합니다.
2-2. 시간 배분 — 6시간 박스, 4시간 목표
기본 배분은 이렇게 시작합니다.
[운영 타임박스: 6시간]
정찰(풀스캔+경로+가설) 1시간 → 알람 1:00
침투(foothold → user) 3시간 → 알람 4:00
상승(user → root) 2시간 → 알람 6:00 (하드 종료)
[훈련 목표: 4시간 컷]
정찰 45분 / 침투 2시간 / 상승 1시간 15분
배분표의 진짜 기능은 "제한"이 아니라 "경고"입니다. 알람이 울렸는데 정찰이 안 끝났다 — 그것은 이번 판의 첫 번째 이상 신호입니다. 단, 정찰 시간을 줄이려고 풀스캔을 건너뛰는 것은 최악의 절약입니다(6번 섹션 벽 1). 정찰은 오히려 넓게 하고, 아끼는 것은 검증에서 — 안 될 가설을 빨리 버리는 쪽으로 절약합니다.
2-3. 30분 규칙의 시간판 — 압박 속의 절차
시계가 돌면 절차가 무너집니다. "시간 없는데 뭐 하러 로그를 써"라는 생각이 드는 순간이 반드시 옵니다. 그래서 규칙을 시간판 버전으로 강화합니다.
[30분 규칙 — 시간 제한판]
- 한 경로 30분 = 알람이 아니라 타이머 로그가 판정한다
- 회귀 절차는 5분 안에: 열거 결과 재열람 → 가설 목록 재정렬 → 다음 경로
- "시간이 없다"는 이유로 건너뛸 수 있는 것: 없음
(정찰 생략, 로그 생략은 절약이 아니라 지연의 예약)
역설적으로 보이지만, 시간 제한 훈련일수록 절차에 더 충실해야 합니다. 절차는 시간을 쓰는 것이 아니라 낭비를 막는 장치이기 때문입니다.
2-4. 초과 분석 프레임 — 시간이 간 곳의 지도
6시간을 넘긴 머신(또는 4시간 목표를 놓친 머신)은 실패가 아니라 최고의 데이터입니다. 판이 끝난 뒤 이 네 칸을 채웁니다.
① 어느 단계에서 초과했는가 (정찰/침투/상승)
② 그 단계 안에서 무엇이 시간을 먹었는가 (예: 같은 가설 반복, 도구 설정, 검색)
③ 그것은 지식 부족인가, 절차 이탈인가 (처방이 다르다)
④ 다음 판에서 바꿀 한 가지는 (한 가지만)
④가 "한 가지"인 이유: 한꺼번에 여러 개를 고치면 무엇이 효과였는지 알 수 없습니다. 한 판에 하나씩 고치는 것이 여섯 판 뒤에는 여섯 개입니다.
3. 따라 하기
3-1~3-2는 내 PC에서 직접 만드는 도구(실측), 3-3~3-5는 HTB 머신 위의 운영(화면 예시)입니다.
3-1. 시간 기록기 — htb_timer.py
손으로 시각을 적는 것은 전투 중에는 유지되지 않습니다. 단계가 바뀔 때 이름만 치면 타임스탬프가 찍히는 작은 도구를 만듭니다. htb_timer.py로 저장하세요 (실측: Python 3.12.14에서 작성·실행).
#!/usr/bin/env python3
"""htb_timer.py — HTB 머신 공략 단계별 시간 기록기"""
import sys
import time
from datetime import datetime
from pathlib import Path
PHASES = ["recon", "enum", "foothold", "user", "privesc", "root"]
def fmt(seconds: float) -> str:
m, s = divmod(int(seconds), 60)
h, m = divmod(m, 60)
return f"{h}h {m:02d}m {s:02d}s" if h else f"{m}m {s:02d}s"
def main() -> None:
if len(sys.argv) < 2:
print("사용법: python htb_timer.py <머신이름>")
sys.exit(1)
name = sys.argv[1]
log = Path(f"htb_timer_{name}.md")
start = time.time()
marks: list[tuple[str, float]] = []
with log.open("a", encoding="utf-8") as f:
f.write(f"\n# {name} — {datetime.now():%Y-%m-%d %H:%M} 시작\n")
print(f"[{name}] 타이머 시작. 단계 입력: {' / '.join(PHASES)} (q=종료)")
while True:
try:
phase = input("단계> ").strip().lower()
except EOFError:
break
if phase == "q":
break
if phase not in PHASES:
print(f" 알 수 없는 단계. {PHASES} 중 하나 또는 q")
continue
marks.append((phase, time.time()))
with log.open("a", encoding="utf-8") as f:
f.write(f"- {fmt(marks[-1][1] - start)} 경과 — {phase}\n")
print(f" 기록: {phase} ({fmt(marks[-1][1] - start)} 경과)")
total = time.time() - start
print(f"\n=== {name} 요약 ===")
prev = start
for phase, t in marks:
print(f" {phase:<9} +{fmt(t - prev):<10} (누적 {fmt(t - start)})")
prev = t
print(f" 총 소요 {fmt(total)}")
if __name__ == "__main__":
main()
읽는 법: 단계 전환 때마다 recon, foothold 같이 한 단어만 칩니다. 입력할 때마다 마크다운 로그 파일에 경과 시간이 누적되고, q로 끝내면 단계별 소요와 누적이 요약됩니다. 단계 이름을 잘못 치면 목록을 다시 보여 주고 무시합니다 — 판의 열기 속에서도 오타가 기록을 오염시키지 않게 하는 장치입니다.
3-2. 타이머 실측 — 짧은 시연
실제로 돌려 본 화면입니다 (실측, 2026-09-09 — 파이프로 단계를 연속 입력한 시연이라 시간이 0초로 찍힙니다. 실제 판에서는 입력 사이에 수십 분의 작업이 들어갑니다):
입력 (실측):
printf 'recon\nenum\nfoothold\nuser\nbogus\nprivesc\nroot\nq\n' | python htb_timer.py demo-machine
출력 (실측):
[demo-machine] 타이머 시작. 단계 입력: recon / enum / foothold / user / privesc / root (q=종료)
단계> 기록: recon (0m 00s 경과)
단계> 기록: enum (0m 00s 경과)
단계> 기록: foothold (0m 00s 경과)
단계> 기록: user (0m 00s 경과)
단계> 알 수 없는 단계. ['recon', 'enum', 'foothold', 'user', 'privesc', 'root'] 중 하나 또는 q
단계> 기록: privesc (0m 00s 경과)
단계> 기록: root (0m 00s 경과)
=== demo-machine 요약 ===
recon +0m 00s (누적 0m 00s)
enum +0m 00s (누적 0m 00s)
foothold +0m 00s (누적 0m 00s)
user +0m 00s (누적 0m 00s)
privesc +0m 00s (누적 0m 00s)
root +0m 00s (누적 0m 00s)
총 소요 0m 00s
읽는 법: bogus라는 오타를 입력했을 때 기록되지 않고 경고만 나온 것을 확인하세요. 요약의 +단계별 열이 2-4 분석 프레임의 원자료입니다. 로그 파일(htb_timer_demo-machine.md)도 함께 생성됩니다 — 머신 로그 폴더에 넣어 두면 Step 256의 로그 체계와 합쳐집니다.
3-3. 판 시작 — 알람 세팅과 개시
머신을 스폰하고, 타이머를 켜고, 폰 알람을 세 개 걸습니다 (화면 예시):
cd ~/htb/machinename
export TARGET=10.129.10.10
python ~/tools/htb_timer.py machinename &
# 폰 알람: 1:00(정찰 종료 예정) / 4:00(침투 목표) / 6:00(하드 종료)
읽는 법: 알람은 "시간 다 됐다"가 아니라 "지금 어디에 있어야 하는가"를 묻는 장치입니다. 1시간 알람이 울렸을 때 이미 foothold를 입력했다면 이번 판은 순항 중이고, 아직 enum에 있다면 배분표를 조정하라는 신호입니다.
3-4. 판 운영 — 단계 전환의 기록
판이 진행되면 전환점마다 한 단어씩 입력합니다 (화면 예시):
단계> 기록: recon (42m 10s 경과) ← 풀스캔+경로+가설 완료
단계> 기록: enum (1h 05m 경과) ← 깊은 열거까지
단계> 기록: foothold (2h 40m 경과) ← 첫 쉘
단계> 기록: user (2h 48m 경과)
단계> 기록: privesc (3h 55m 경과) ← 상승 경로 확정
단계> 기록: root (4h 12m 경과)
읽는 법: 이 판은 4시간 목표를 12분 넘겼고, 그 초과는 foothold까지의 2시간 40분 — 즉 침투 단계에 있습니다. 상승은 1시간 24분으로 배분 내입니다. 이 한 장면이 "어디서 시간이 갔는가"의 답입니다. 총 4시간 12분이라는 숫자만 있었다면 영원히 몰랐을 것입니다.
3-5. 회고 — 누적 6대의 시간 지도
두 대를 끝내면 Step 257의 표를 시간으로 확장합니다 (예시):
## 시간 회고 (누적 6대)
| 머신 | 정찰 | 침투(→user) | 상승(→root) | 총계 | 4h 목표 |
|------|------|------|------|------|------|
| Easy #1 | 1h 10m | 2h 10m | 0h 35m | 3h 55m | 달성 |
| Easy #2 | 0h 50m | 1h 15m | 1h 10m | 3h 15m | 달성 |
| Easy #3 | 0h 55m | 0h 55m | 1h 00m | 2h 50m | 달성 |
| Easy #4 | 0h 45m | 0h 55m | 0h 40m | 2h 20m | 달성 |
| Easy #5 | 0h 50m | 3h 20m | 1h 10m | 5h 20m | 초과 |
| Easy #6 | 0h 42m | 2h 00m | 1h 30m | 4h 12m | 근접 |
## 분석
① 초과 단계: #5, #6 모두 침투 — 정찰·상승은 이미 안정
② 시간을 먹은 것: #5는 죽은 가설 2회 반복(30분 규칙 이탈), #6은 낯선 서비스 조사
③ 성격: #5는 절차 이탈, #6은 지식 부족(플레이북 구멍)
④ 다음 판의 한 가지: 30분 알람을 물리 타이머로 분리
읽는 법: 표의 형태가 곧 결론입니다 — 정찰 열이 안정적으로 수렴하고 있다는 것은 루틴이 고정됐다는 뜻이고, 침투 열의 분산이 크다는 것은 거기가 아직 실력의 변수라는 뜻입니다.
4. 미션과 연습문제
미션 — 6시간 박스 2대와 시간 회고
- 새 Easy 머신 2대를 선정합니다 (Step 257 표의 빈 유형 — ⑤⑥이 남아 있다면 우선)
- 각 판의 시작에 htb_timer.py를 켜고, 폰 알람 세 개(1:00/4:00/6:00)를 겁니다
- 단계 전환마다 타이머에 입력하고, 목표는 4시간 컷, 하드 종료는 6시간입니다
- 30분 규칙은 시간판(2-3)으로 적용합니다 — 이탈했다면 그 시각을 로그에 남깁니다
- 시간 내 못 끝낸 머신은 타임박스 종료 후 별도 시간에 완주하되, 초과 분석 네 칸(2-4)을 반드시 채웁니다
- 누적 6대의 시간 회고 표(3-5)와 분석 네 줄을 완성합니다
연습문제
문제 1. "정찰은 오히려 넓게, 아끼는 것은 검증에서"라는 원칙의 뜻을 설명하고, 정찰을 줄이려는 시도가 왜 최악의 절약인지 써 보세요.
문제 2. 총소요 시간만 기록하는 것과 단계별 시간을 기록하는 것의 차이를, 2-4의 초과 분석 프레임과 연결해 설명해 보세요.
문제 3. 초과 원인이 "지식 부족"인 경우와 "절차 이탈"인 경우, 각각의 처방이 어떻게 다른지 써 보세요.
문제 4. 시간 제한 훈련에서 오히려 절차(로그, 30분 규칙)에 더 충실해야 하는 이유를 "절차는 시간을 쓰는 것이 아니라 낭비를 막는 장치"라는 문장을 풀어 설명해 보세요.
5. 모범 답안과 완료 기준
미션 모범 답안
초과 머신의 분석 형태 예시입니다:
# Easy #5 — 초과 분석
① 초과 단계: 침투 (배분 3h 대비 +20m, 총 5h 20m)
② 시간을 먹은 것: 웹 로그인 우회 가설에 1h 10m — 30분 시점의 새 사실이 없었는데 계속
③ 성격: 절차 이탈 (지식은 있었다 — 열거 재열람 5분 만에 답이 보였음)
④ 다음 판의 한 가지: 30분 타이머를 htb_timer와 별도로 물리 알람으로 분리
⑤ 타임박스 후 완주: +1h 05m, root까지 총 6h 25m — 완주 기록은 유지
검증하는 법: ① 두 대의 타이머 로그 파일(htb_timer_머신명.md)이 머신 폴더에 있는가. ② 알람 세 개의 설정과 실제 단계 시각이 로그로 대조되는가. ③ 초과 머신에 네 칸 분석이 있는가 — "다음에 잘하자"가 아니라 단계·원인·성격·한 가지로. ④ 누적 6대 표에서 정찰/침투/상승의 추이가 읽히는가. ⑤ 시간 내 미완 머신도 완주 기록이 남아 있는가(타임박스는 측정 장치이지 포기 장치가 아니다).
연습문제 해답
문제 1 해답. 정찰은 이후 모든 단계의 입력 데이터를 만드는 단계라서, 여기서 놓친 포트나 경로는 뒤 단계에서 "존재하지 않는 선택지"가 됩니다 — 풀스캔을 건너뛰어 30분을 아끼면, 없는 서비스를 찾아 두 시간을 헤매는 식으로 배로 돌아옵니다. 반면 검증 단계의 낭비는 "죽은 가설에 매달리는 시간"이고, 이것은 30분 규칙처럼 절차로 줄일 수 있습니다. 절약은 데이터 생산(정찰)이 아니라 데이터 소비(검증)의 효율에서 해야 합니다.
문제 2 해답. 총시간은 "초과했다"는 결과만 알려 주고, 단계별 시간은 "어느 단계에서"를 알려 줍니다. 2-4 프레임의 첫 칸(① 어느 단계에서 초과했는가)은 단계별 기록 없이는 채울 수 없고, 그래야 두 번째 칸(② 무엇이 시간을 먹었는가)의 조사 범위가 정해집니다. 총 5시간 20분이라는 숫자는 개선점을 가리키지 못하지만, "침투 3시간 20분, 그중 1시간 10분이 한 가설"이라는 분해는 처방으로 이어집니다.
문제 3 해답. 지식 부족의 처방은 채우기입니다 — 플레이북에 조항을 추가하고, 해당 기법을 문서와 랩에서 따로 연습합니다(예: 낯선 서비스의 열거법). 절차 이탈의 처방은 강제 장치입니다 — 알람 분리, 체크리스트 위치 변경처럼 "다음 판에서 이탈이 물리적으로 어렵게" 만드는 것입니다. 지식 문제를 절차로 고치려 하면(더 열심히) 재발하고, 절차 문제를 지식으로 고치려 하면(더 공부) 아무 변화가 없습니다 — 분석의 ③ 칸이 있는 이유입니다.
문제 4 해답. 로그와 30분 규칙은 각각 수 초와 5분의 비용으로, "같은 경로를 다시 두드리는 30분"과 "이미 확인한 사실을 다시 조사하는 시간"을 막습니다. 시간이 촉박할수록 인간은 반복과 망각의 함정에 빠지기 쉬운데, 절차는 바로 그 함정에 대한 보험입니다. 실제로 3-5의 예시에서 #5의 초과는 절차를 지킨 시간이 아니라 이탈한 1시간 10분에서 발생했습니다 — 절차를 생략해 아낀 시간은 수 분, 절차 이탈로 잃은 시간은 한 시간 이상이라는 것이 시간 기록이 보여 주는 정직한 결론입니다.
완료 기준 체크리스트
- [ ] htb_timer.py를 만들고 로컬에서 동작을 확인했다
- [ ] 2대 모두 타이머 로그와 알람 3개(1:00/4:00/6:00)로 진행했다
- [ ] 단계 전환 시각이 로그 파일에 남아 있다
- [ ] 30분 규칙의 발동/이탈이 기록됐다
- [ ] 초과 머신에 네 칸 분석을 채웠다
- [ ] 시간 내 미완 머신도 별도 시간에 완주했다
- [ ] 누적 6대의 시간 회고 표를 완성했다
- [ ] 표에서 읽힌 다음 개선 한 가지를 적었다
6. 흔한 실수와 해결
벽 1. 시간을 아끼려고 풀스캔을 생략했다가 두 배로 손해 봤다
증상: -p-를 빼고 빠른 스캔만 한 뒤, 두 시간을 헤매고 나서야 비표준 포트의 서비스를 발견했습니다.
원인: 최악의 절약입니다 — 정찰은 비용이 아니라 투자입니다.
해결: 타임박스 안에서도 nmap -sV -p-는 비협상 항목으로 둡니다. 시간이 걱정되면 스캔을 백그라운드로 돌리고(nmap ... &) 기본 스캔 결과로 조사를 시작하세요 — 풀스캔이 완료되면 다시 읽는 이중 구조가 절약과 완전성의 절충입니다.
벽 2. 알람이 울려도 무시하게 된다
증상: 1시간 알람이 울렸는데 "지금 이것만" 하다가 끄고, 결국 6시간이 흘렀습니다.
원인: 알람을 방해로 인식하기 시작한 것 — 판의 몰입이 시계를 이겼습니다.
해결: 알람의 의미를 바꾸세요 — "멈춰라"가 아니라 "지금 어느 단계에 있어야 하는지 대답하라"입니다. 알람이 울리면 타이머 로그를 보고 한 문장으로 현재 상태를 적습니다("1:00 — enum 진행 중, 정찰 초과"). 이 10초의 의식이 배분표를 되살립니다.
벽 3. 타이머 입력을 까먹어 로그가 뭉개진다
증상: 판이 끝나고 보니 recon만 찍혀 있습니다.
원인: 전투 중에는 기록이 제일 먼저 무너집니다 — 정상입니다.
해결: 트리거를 외부에 둡니다 — 플래그를 읽을 때(cat user.txt 직전)는 반드시 user 입력, TTY 업그레이드를 할 때는 foothold 입력처럼 "손이 가는 순간"과 묶으세요. 그래도 누락되면 판 후에 머신 로그의 타임스탬프(Step 256의 시도 기록)로 추정해 복기하세요 — 대략이라도 있는 기록이 없는 것보다 낫고, 누락 자체를 로그에 적으면 다음 판의 과제가 됩니다.
벽 4. 4시간이 다가오는데 조급해서 실수가 늘어난다
증상: 막판에 명령 오타가 늘고, 확인 없이 익스플로잇을 돌려 서비스를 죽입니다.
원인: 시계 압박이 판단력을 깎는 구간입니다 — 이것이 이 훈련의 본산입니다.
해결: 마지막 1시간의 규칙을 미리 정해 두세요 — "새로운 공격 시작 금지, 진행 중인 경로의 정리와 문서화만". 시험장에서도 같은 일이 일어납니다. 그리고 조급함 속의 실수는 반드시 로그에 적으세요 — "4h 50m, 서비스 다운시킴(미확인 익스플로잇)"은 다음 판의 리허설 자료입니다. 속도 훈련의 절반은 기술이고 절반은 이 멘탈 관리입니다.
벽 5. 6시간을 넘겼는데 완주를 포기하고 싶다
증상: 타임박스가 끝났고, 의욕도 끝났습니다.
원인: 타임박스를 "실패 선언"으로 오해한 것입니다.
해결: 타임박스는 측정의 끝이지 판의 끝이 아닙니다. 네 칸 분석을 쓰고, 자리를 떴다가, 별도 시간에 완주하세요 — 시간 제한 없이 끝까지 가는 것도 데이터입니다(어디가 막혔는지의 결론). 다만 완주 과정에서 write-up을 봤다면 그 판은 독립 해결이 아니므로 표기를 바꾸고 재풀이 목록에 올립니다(Step 256의 규칙은 시간 제한 속에서도 유효합니다).
7. 정리
오늘의 개념
| 개념 | 한 줄 설명 |
|---|---|
| 타임박스 | 판 전체에 거는 시간 상한 — 6시간 하드 종료 |
| 단계별 시간 배분 | 정찰 1h / 침투 3h / 상승 2h — 경고용 기준선 |
| 4시간 컷 | 수렴 목표 — 정찰 45m / 침투 2h / 상승 1h 15m |
| 페이스 | 단계 간 이동 속도 — 알람이 점검하는 것 |
| 초과 분석 네 칸 | 단계 → 원인 → 성격(지식/절차) → 다음 한 가지 |
| 시간 회고 표 | 누적 머신의 단계별 시간 — 실력의 지도 |
오늘의 명령어·도구
| 명령 | 하는 일 |
|---|---|
python htb_timer.py 머신명 |
단계별 시간 기록 시작 |
recon/enum/foothold/user/privesc/root 입력 |
단계 전환 기록 |
q |
종료와 요약 출력 |
| (외부) 폰 알람 1:00/4:00/6:00 | 배분 경고와 하드 종료 |
| (절차) 알람 울리면 상태 한 문장 기록 | 시계를 살아 있게 하는 10초 |
명령어보다 중요한 감각
시간 제한 훈련이 가르치는 것은 "빨리 치는 법"이 아닙니다. 여섯 판의 기록이 말해 주는 것은 그 반대입니다 — 빠른 사람은 정찰을 건너뛰는 사람이 아니라, 죽은 가설을 빨리 버리는 사람. 그리고 시계 압박 속에서도 절차를 지키는 사람. 누적 6대의 표를 펼쳐 보세요. 정찰 열의 시간이 수렴하고, 플레이북의 조항이 늘고, 막힘의 원인이 "몰라서"에서 "서둘러서"로 바뀌었다면, 그것이 이 구간의 졸업 증거입니다. 시계는 여러분을 재는 것이 아니라, 여러분의 성장을 보여 주는 거울이었습니다.
전부 체크되면 Step 258 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.