Step 40. Level 0 종합 테스트 — 스스로에게 시험을 보다
Level 0 — 컴퓨터와 친해지기 | 난이도 ★★★☆☆ | 예상 소요 시간 4시간(이틀에 나눠도 좋음)
전제: Step 1~39를 전부 마쳤습니다. 이 챕터는 새로 배우는 내용이 없는 종합 시험입니다.
- 준비물: 노트, 펜, 여러분의 컴퓨터와 가상머신, 그리고 반나절의 시간.
- 주의: 오늘은 새 명령어를 배우지 않습니다. 이미 배운 것들을 꺼내서 스스로에게 시험을 봅니다. 채점은 엄격하게, 기록은 솔직하게 — "모름"이라고 적는 것도 훌륭한 답입니다.
운전 학원을 떠올려 봅시다. 기능 시험 전날, 강사는 새 기술을 가르치지 않습니다. "지금까지 배운 것을 혼자 힘으로 할 수 있는지" 확인합니다. 오늘이 바로 그날입니다. 지난 39개의 스텝에서 여러분은 파워쉘을 처음 연 날부터, 파일과 권한, 프로세스, 스크립트, 원격 접속, 그리고 네트워크의 주소·배달·규약·지도까지 지나왔습니다. 하지만 자기 평가는 스스로 내리지 않습니다. 시험이 내립니다.
1. 학습 목표
이 챕터를 끝내면 다음을 할 수 있습니다:
- Level 0 전체에서 무엇을 알고 무엇을 모르는지 정확히 파악한다
- 필기(설명문), 실기(CLI 하루), 구술(지도 그리며 말하기) 세 과목으로 실력을 측정한다
- 약한 부분을 찾아 해당 스텝으로 돌아가 보완하는 "자기 진단 능력"을 갖는다
- 약점의 종류(개념/명령어)를 구분해 재학습 방법을 다르게 적용한다
- A4 한 장의 치트시트를 완성해 Level 0의 졸업 작품으로 삼는다
2. 배경 지식 — 오늘의 도구와 개념
오늘의 도구 한눈에 보기
| 구분 | 내용 |
|---|---|
| 언어·환경 | 파워쉘 + bash(우분투) + 노트와 펜 — 지금까지 배운 것 전부 |
| 오늘의 명령어 | 새 명령어 없음. 기억에서 꺼내는 것이 오늘의 과제입니다 |
| 필요한 개념 | 산출물로 확인하는 공부법, 오답 노트, 개념/명령어 약점의 구분 |
| 오늘의 산출물 | 필기 답안지, 실기 결과물, 성적표 표, A4 치트시트 한 장 |
2-1. 왜 스스로 시험을 보는가
공부가 덜 된 사람의 가장 큰 특징은 "모른다는 사실을 모른다"는 것입니다. 책을 펴고 읽으면 다 아는 것 같고, 막상 책을 덮으면 설명이 안 나옵니다. 그래서 실력의 확인은 언제나 산출물로 합니다. 써 본다, 해 본다, 설명해 본다. 안 되는 것이 나오면 그것이 빈 곳이고, 빈 곳을 찾았으면 시험은 이미 절반 성공입니다.
2-2. 오늘 시험의 세 과목
- 설명문 쓰기(필기): 배운 개념을 책 없이 설명해 봅니다. 막히는 부분 = 모르는 부분.
- CLI 하루 생활(실기): 파일 정리, 정보 수집, 문서 작성을 마우스 없이 합니다. 손이 기억하는지 확인합니다.
- 그림 그리며 말하기(구술): 네트워크 지도를 그리며 소리 내어 설명합니다. 개념이 구조화되어 있는지 확인합니다.
각 과목에는 합격 기준이 있습니다. 그리고 떨어져도 괜찮습니다. 이 시험의 낙제는 벌이 아니라 "돌아갈 스텝 번호"를 알려 주는 것이 전부이니까요.
2-3. 채점 원칙 — 엄격하되, 기록하라
스스로 채점할 때 가장 흔한 함정은 관대함입니다. "어렴풋이 알긴 아는데"는 틀린 것으로 칩니다. 대신 틀린 것마다 노트 구석에 스텝 번호를 적습니다. 그 번호 목록이 오늘의 진짜 성적표입니다.
개념은 아는데 명령어가 기억 안 나는 것과, 개념 자체가 흔들리는 것은 다릅니다. 전자는 치트시트 복습으로 충분하고, 후자는 그 스텝을 다시 읽어야 합니다. 둘을 구분해 적어 두세요.
3. 따라 하기
3-1. 제1과목: 설명문 쓰기 (60분)
책과 노트를 덮습니다. 빈 노트에 아래 여덟 문항에 답을 써 봅니다. 각 문항 5문장 이상. 모르면 억지로 채우지 말고 "모름"이라고 적으세요. 그것이 정직한 데이터입니다.
- 절대경로와 상대경로의 차이를 예를 들어 설명하시오.
- 리눅스에서
-rw-r--r--가 뜻하는 것을 풀이하시오. - 프로세스와 프로그램의 차이를 설명하고, 떠 있는 프로세스를 확인하는 명령어를 하나 쓰시오.
- SSH로 원격 접속할 때 비밀번호 대신 열쇠 파일을 쓰는 이유를 설명하시오.
- MAC 주소와 IP 주소의 역할 차이를 "동네 배달" 비유로 설명하시오.
- 포트 번호가 필요한 이유를 설명하고, 대표 포트 다섯 개를 서비스와 함께 쓰시오.
- TCP의 3-way handshake를 그림 없이 문장으로만 설명하시오.
- NAT가 하는 일을 네 단계로 설명하시오.
채점 기준: 여덟 문항 중 6문항 이상을 막힘없이 썼다면 필기 합격입니다. "모름" 또는 얼버무린 문항이 있다면 해당 스텝 번호를 노트에 적으세요 (각 문항의 스텝 번호와 모범 답안 요지는 5절에 있습니다).
예측: 쓰기 전에, 여덟 문항 중 가장 자신 있는 것과 가장 불안한 것에 미리 표시해 두세요. 결과와 비교하면 "내가 아는 줄 알았던 것"과 "실제로 아는 것"의 오차가 보입니다. 이 오차를 아는 것도 실력입니다.
3-2. 제2과목: CLI 하루 생활 (반나절)
지금부터 반나절, 파일 관련 작업은 전부 명령어로만 합니다. 마우스로 탐색기를 여는 것은 허용하지 않습니다. 시험 과제는 세 가지입니다.
과제 A. 정리 프로젝트: 바탕화면(또는 다운로드 폴더)의 파일들을 확장자별 폴더로 분류합니다. 윈도우라면 파워쉘, 우분투라면 bash:
cd ~/Downloads
mkdir -p images docs archives others
mv *.png *.jpg images/ 2>/dev/null
mv *.pdf *.md *.txt docs/ 2>/dev/null
mv *.zip *.tar.gz archives/ 2>/dev/null
ls -R
읽는 법: 2>/dev/null은 "그 확장자의 파일이 없으면 나는 오류 메시지를 조용히 숨기라"는 뜻입니다. 각 명령이 무슨 일을 하는지 하나하나 설명할 수 있어야 합니다. 설명할 수 없는 명령어를 복사해 쓰는 것은 시험에서 감점입니다.
과제 B. 정보 수집: 명령어만으로 아래 다섯 가지를 찾아 노트에 적습니다:
- 오늘 날짜와 현재 시각
- 내 컴퓨터의 IP 주소와 기본 게이트웨이
- 현재 열린 포트 중 LISTENING 상태 두 개
- 메모리를 가장 많이 쓰는 프로세스
- 디스크 남은 용량
과제 C. 문서 작성: 오늘 시험의 소감을 텍스트 파일로 작성합니다. 에디터는 터미널 안의 것(nano, vim, 또는 파워쉘 리디렉션)을 씁니다:
nano level0_reflection.txt
읽는 법: 저장과 종료 단축키를 기억에서 꺼내세요. nano는 Ctrl+O(저장), Ctrl+X(종료). 몸이 기억하지 못하면 Step 22가 부른 것입니다.
채점 기준: 세 과제를 탐색기 없이 완수했다면 실기 합격. 중간에 마우스에 손이 갔다면, 어떤 작업에서 갔는지를 기록합니다. 그 작업이 약한 근육입니다.
3-3. 제3과목: 그림 그리며 말하기 (30분)
노트 한 페이지에 편지 한 장의 여행 지도를 그립니다. 책 없이, 기억만으로.
그려야 할 것: 내 컴퓨터 → 공유기(NAT, 게이트웨이) → 라우터들(홉) → 목적지 서버. 그리고 각 구간에 붙는 꼬리표: MAC 주소(동네 안), IP 주소(세계 주소), 포트 번호(호수), TCP 악수 또는 UDP.
그리는 동안 소리 내어 설명합니다. "여기서 MAC이 붙고, 공유기에서 보내는 사람이 바뀌고…" 설명이 멈추는 지점이 있으면 그곳에 동그라미. 그 동그라미가 구술 시험의 오답 노트입니다.
채점 기준: 그림을 완성하고 멈춤 없이 3분 이상 설명했다면 구술 합격입니다.
3-4. 성적표 정리 (20분)
세 과목의 결과를 한 표로 정리합니다:
| 과목 | 결과 | 약점 스텝 번호 | 약점의 종류(개념/명령어) |
|---|---|---|---|
| 필기 | 합/불합 | 예: 35 | 개념 |
| 실기 | 합/불합 | 예: 22 | 명령어 |
| 구술 | 합/불합 | 예: 39 | 개념 |
약점 스텝이 세 개 이하라면, 그 스텝들만 골라 이번 주에 다시 읽고 재시험을 봅니다. 세 개를 넘는다면 네트워크 구간(Step 31~39)을 통째로 한 번 더 훑는 것이 효율적입니다. 그 구간은 하나의 이야기로 이어져 있어서, 함께 다시 볼 때 가장 빨리 굳습니다.
3-5. 약점 스텝 재학습법 — 돌아가는 것도 기술이다
같은 방식으로 다시 읽으면 같은 결과가 나올 가능성이 높습니다. 종류별로 방법이 다릅니다:
- 개념 약점: 그 스텝의 ‘## 2. 배경 지식’을 소리 내어 읽고, 책을 덮고 비유를 내 말로 바꿔 봅니다. 책이 "택배"라고 했다면 나는 "학교 급식 배식"으로. 비유를 새로 지을 수 있다는 것은 구조를 이해했다는 뜻입니다.
- 명령어 약점: 그 스텝의 ‘## 3. 따라 하기’만 다시 합니다. 단, 이번에는 출력 예시를 가리고 먼저 예측을 적은 뒤 실행합니다. 예측과 출력이 다르면 그 차이가 배울 것입니다.
- 손 약점(타이핑이 느린 경우): 그 스텝의 명령어를 하루에 한 번씩 사흘간 쳐 봅니다. 이틀째부터 속도가 붙는 것이 느껴질 것입니다.
재학습이 끝나면 해당 문항만 다시 시험을 봅니다. 통과하면 성적표의 그 칸에 "재시험 합격"이라고 적어 두세요. 그 낙서가 쌓이는 것이 이 책의 진짜 진행도입니다.
3-6. 보관함 만들기 — 39개의 흔적 정리
시험이 끝났으니 전리품을 정리합니다:
mkdir -p ~/level0_archive
cp ~/level0_reflection.txt ~/level0_archive/
ls ~/level0_archive
읽는 법: 보관함 폴드(폴더)를 만들고 오늘의 소감문을 넣었습니다. 여기에 지금까지 만든 스크립트들, 실습 노트 사진, 치트시트 사진을 차곡차곡 모으세요. 이 보관함은 지치는 날 "내가 이만큼 했지"를 확인하는 증거이자, 나중에 포트폴리오가 될 원료입니다.
4. 미션과 연습문제
미션 — 치트시트 한 장 만들기
Level 0에서 배운 명령어와 개념을 A4 한 장에 압축해 정리합니다. 규칙은 두 가지:
- 모든 것을 담으려 하지 말 것 — "시험장에 딱 한 장 가져갈 수 있다면?"의 기준으로 고릅니다
- 인쇄하지 말고 손으로 쓸 것 — 손으로 쓰는 과정 자체가 마지막 복습입니다
구성은 스스로 정하되, 완성한 뒤 3-4의 성적표와 함께 보관함(3-6)에 넣으세요.
연습문제
아래 네 문항은 Level 0 전체를 가로지르는 셀프 점검입니다. 책을 덮고 답해 보세요:
문제 1. 악성코드가 재부팅을 살아남기 위해 등록하는 "자동 실행 지점" 네 곳을 열거하시오.
문제 2. 작업 관리자에서 수상한 프로세스를 발견했을 때, "누가 실행했는가"를 추적하는 데 쓰는 두 가지 번호(PID와 그 짝)는 무엇이며, 어느 명령으로 함께 볼 수 있나요?
문제 3. ipconfig 결과 내 IP가 169.254.x.x로 시작합니다. 무슨 상황이며, 어느 장비를 먼저 의심해야 하나요?
문제 4. "사이트가 안 열려요"라는 신고를 받았습니다. ping 공유기 → ping 8.8.8.8 → nslookup → Test-NetConnection의 순서로 진단할 때, 각 단계가 실패하면 어느 구간을 의심하나요?
5. 모범 답안과 완료 기준
미션 모범 답안
치트시트 추천 구성 (이 배치 그대로일 필요는 없고, 목적별 묶음이 핵심입니다):
- 왼쪽 칸 — 파일/디렉토리:
ls,cd,cp,mv,mkdir,rm,find,grep… - 가운데 칸 — 시스템: 권한(
chmod), 사용자, 프로세스(Get-Process/ps), 서비스, SSH… - 오른쪽 칸 — 네트워크:
ipconfig/ip addr,ping,nslookup,tracert,Test-NetConnection+ 일곱 층 미니 지도 - 맨 아래 — 막히면 묻는 질문: "ping 되나? 포트 열리나? 이름 풀리나?"
검증하는 법: ① 한 장에 들어갔는가(넘치면 버리는 것도 실력입니다). ② 명령어가 가나다순이 아니라 용도별로 묶였는가 — 도구는 용도로 기억해야 꺼내집니다. ③ 손으로 썼는가. 이 한 장이 Level 0의 졸업 작품입니다.
제1과목(필기) 모범 답안 요지
- 절대경로 vs 상대경로 (Step 2, 18): 절대경로는 루트부터 전체를 적는 주소(
C:\Users\...,/home/...), 상대경로는 "지금 서 있는 곳"을 기준으로 적는 주소(..,./docs). 같은 파일도 현재 위치에 따라 상대경로가 달라집니다. -rw-r--r--(Step 23): 첫-는 일반 파일, 이후 세 자리씩 소유자(rw- = 읽기+쓰기), 그룹(r– = 읽기), 기타(r– = 읽기)의 권한입니다.- 프로세스 vs 프로그램 (Step 13, 26): 프로그램은 디스크에 저장된 파일, 프로세스는 그것이 실행되어 메모리에 떠 있는 실체. 확인 명령:
Get-Process(윈도우) 또는ps(리눅스). - SSH 열쇠 파일 (Step 29): 비밀번호는 추측·무차별 대입·유출에 약하지만, 열쇠 파일은 "가진 사람"만 통과하는 소유 증명이라 원격 무차별 대입 공격에 훨씬 강합니다.
- MAC vs IP (Step 31, 32): IP는 세계 어디서든 통하는 주소(안쪽 봉투), MAC은 같은 동네 이웃에게 직접 전달할 때 쓰는 주소(바깥 봉투). 먼 곳으로 갈수록 바깥 봉투의 MAC은 다음 이정표 것으로 계속 갈아입습니다.
- 포트 (Step 34): 한 컴퓨터(한 IP) 안에서 여러 서비스를 구분하는 "호수". 예: 22 SSH, 53 DNS, 80 HTTP, 443 HTTPS, 25 SMTP.
- 3-way handshake (Step 35): 클라이언트가 SYN(연결하고 싶습니다) → 서버가 SYN-ACK(좋습니다, 저도 준비됐어요) → 클라이언트가 ACK(확인했습니다). 세 마디가 끝나야 데이터가 오갑니다.
- NAT 네 단계 (Step 38): 안쪽 기기가 사설 IP로 편지 발송 → 공유기가 보내는 사람을 공인 IP로 바꿔치기 → 장부에 "몇 호의 대화" 기록 → 답장이 오면 장부를 보고 올바른 기기에 배달.
연습문제 해답
문제 1 해답. 레지스트리 Run 키, 시작 폴드, 예약 작업, 자동 시작 서비스 (Step 15). 공격자는 새로운 문을 만들지 않고 원래 있는 문에 섞여 들어간다는 점까지 말할 수 있으면 만점입니다.
문제 2 해답. PID(Process ID)와 ParentProcessId(부모 PID)입니다. Get-CimInstance Win32_Process로 둘을 함께 볼 수 있습니다 (Step 13). 부모가 이미 종료되어 번호의 주인이 없는 "끊긴 고리"는 정상 상황이라는 것도 함께 기억하세요.
문제 3 해답. DHCP 배정 실패 신호입니다. 공유기가 주소를 내주지 못했을 때 운영체제가 스스로 임시로 붙이는 주소입니다 (Step 38 벽 3). 먼저 의심할 것은 공유기(DHCP 서버)와 그 사이의 연결입니다 — Step 36의 사다리 1단계(ping 공유기)부터 시작하세요.
문제 4 해답. ① ping 공유기 실패 → 내 기기~공유기 구간(케이블·와이파이), ② ping 8.8.8.8 실패 → 공유기~통신사 회선, ③ nslookup 실패 → DNS, ④ Test-NetConnection 실패 → 상대 서버나 중간 방화벽. 아래층부터, 가까운 곳부터 묻는 것이 원칙입니다 (Step 36).
완료 기준 체크리스트
- [ ] 설명문 8문항을 책 없이 써 보고 약점 스텝을 기록했다
- [ ] CLI 하루 생활(정리·수집·작성 3과제)을 탐색기 없이 완수했다
- [ ] 네트워크 여행 지도를 그리며 3분 이상 소리 내어 설명했다
- [ ] 성적표 표를 작성하고 약점의 종류(개념/명령어)를 구분했다
- [ ] 약점 스텝의 재학습 계획을 세웠다
- [ ] A4 한 장의 치트시트를 손으로 완성했다
- [ ] level0_archive 보관함에 오늘의 산출물을 정리했다
6. 흔한 실수와 해결
벽 1. 설명문이 하나도 안 써진다
증상: 아는 것 같은데 문장이 안 나옵니다.
원인: 읽기와 쓰기는 다른 근육입니다. 읽기만 해 온 사람은 첫 쓰기에서 누구나 굳습니다. 실력 부족이 아니라 훈련 부족입니다.
해결: "모름"이라고 적는 용기를 먼저 냅니다. 그다음 해당 스텝을 다시 읽고, 읽으면서 다섯 줄 요약을 직접 씁니다. 요약본을 보지 않고 다시 써 보세요. 이 순환이 쓰기 근육을 만듭니다.
벽 2. 명령어는 아는데 상황에 못 맞춘다
증상: 개별 명령어는 기억나는데, "메모리 많이 먹는 프로세스 찾기" 같은 과제를 받으면 어떤 명령어를 꺼낼지 몰라 멈춥니다.
원인: 명령어를 외운 것이지 "도구 상자에 정리"하지 않은 것입니다.
해결: 치트시트를 가나다순이 아니라 목적별로 다시 정리하세요. "찾고 싶을 때", "지우고 싶을 때", "상태를 보고 싶을 때" 식으로. 도구는 용도로 기억해야 꺼내집니다.
벽 3. CLI 하루 생활이 너무 느려서 포기하고 싶다
증상: 탐색기면 3초인 일을 명령어로 3분 걸려 하며 자괴감이 듭니다.
원인: 정상입니다. 익숙한 도구가 새 도구보다 빠른 것은 당연합니다. 지금 느린 것은 실력이 없어서가 아니라 반복이 부족해서입니다.
해결: 속도는 결과가 아니라 부산물입니다. "느려도 끝까지 한다"가 오늘의 합격 조건이고, 속도는 같은 작업을 열 번쯤 더 하면 저절로 따라옵니다. 애초에 목적은 속도가 아니라 "마우스 없이도 할 수 있다는 자유"입니다.
벽 4. 시험 결과가 생각보다 나쁘다
증상: 약점 스텝이 다섯 개가 넘어 의욕이 꺾입니다.
원인: 잊는 것은 인간의 기본 사양입니다. 39개 스텝을 한 번에 완벽히 기억하는 사람은 없습니다.
해결: 시험이 아니라 복습 계획표를 얻었다고 생각하세요. 오늘의 성적표는 실패 목록이 아니라 "다음에 읽을 스텝 목록"입니다. 배우기 → 시험 → 빈 곳 → 재학습, 이 주기가 이 책 전체의 공부 엔진이고, 오늘 그 엔진의 사용법을 익혔으니 결과와 무관하게 오늘은 이득입니다.
벽 5. 가상머신이 꺼져 있어서 실기 과제 A가 bash로 안 된다
증상: 우분투를 켤 수 없거나, 가상머신이 없는 환경입니다.
원인: 과제의 예시가 bash라 윈도우만 있는 환경에서 막힌 것입니다.
해결: 같은 과제는 파워쉘로도 충분히 할 수 있습니다. 대응 명령은 이렇습니다:
cd ~\Downloads
mkdir images, docs, archives, others
Move-Item *.png, *.jpg images\ -ErrorAction SilentlyContinue
Move-Item *.pdf, *.md, *.txt docs\ -ErrorAction SilentlyContinue
Get-ChildItem -Recurse
-ErrorAction SilentlyContinue가 bash의 2>/dev/null에 해당합니다 — "오류가 나도 조용히 넘어가 줘." 어느 쪽으로 했든, 각 명령을 설명할 수 있어야 합격이라는 기준은 같습니다.
7. 정리
오늘의 개념
| 개념 | 한 줄 설명 |
|---|---|
| 산출물 확인 | 실력은 써 보고, 해 보고, 설명해 봐야 안다 |
| 세 과목 시험 | 필기(설명문) · 실기(CLI 하루) · 구술(지도 말하기) |
| 오답 노트 | 틀린 것은 벌이 아니라 돌아갈 스텝 번호 |
| 개념/명령어 구분 | 재학습 방법이 달라지는 약점의 두 종류 |
| 치트시트 | 목적별로 압축한 A4 한 장 — Level 0의 졸업 작품 |
Level 0 핵심 명령어 요약 (진단용 발췌)
| 상황 | 명령 |
|---|---|
| "안 돼요" 신고 접수 | ping 공유기 → ping 8.8.8.8 → nslookup → Test-NetConnection -Port |
| 내 주소 확인 | ipconfig / ip addr |
| 누가 실행했나 | Get-CimInstance Win32_Process(PID + ParentProcessId) |
| 자동 실행 점검 | Run 키 / shell:startup / Get-ScheduledTask / Get-Service |
명령어보다 중요한 감각
오늘의 시험이 사실은 보안 실무의 축소판입니다. 보안 담당자의 일상은 "안전하다고 믿는 것을 스스로 시험하는 일"의 반복입니다 — 방화벽이 막는지 확인하고, 백업이 복구되는지 확인하고. "믿지 말고 확인하라", 이 한 문장이 오늘 시험의 규칙이자 이 바닥의 첫 번째 계명입니다. 그리고 확인의 범위는 언제나 내 것입니다. 모든 공격 실습은 내 랩·합법 플랫폼에서만. 실서비스 무단 공격은 범죄입니다.
공부법으로도 하나 더 — 가장 효율 높은 복습은 다시 읽기가 아니라 떠올려 보기(테스트)입니다. 기억에서 꺼낼 때 실패하면, 그 실패 자체가 기억을 강하게 새깁니다. 오늘 "모름"이라고 적은 문항들이 오히려 가장 많이 성장한 지점입니다. 자기 전 삼십 초, "오늘 배운 것 세 가지"를 떠올리는 습관으로 이어 가세요.
파워쉘을 처음 열어 까만 창이 두려웠던 여러분이, 오늘은 까만 창으로 하루를 살아내고 네트워크 지도를 그리며 스스로를 시험했습니다. 이 변화는 누가 선물한 것이 아닙니다. 마흔 번의 스텝을 한 번씩 넘은 여러분의 발이 만든 것입니다. 앞으로 배울 것은 더 깊어지겠지만 방법은 바뀌지 않습니다 — 배우고, 손으로 하고, 책을 덮고, 시험 보고, 빈 곳으로 돌아가고. 이 다섯 박자를 여러분은 이미 마흔 번 돌려 봤습니다.
Level 0, 졸업을 진심으로 축하합니다. 여러분은 해냈습니다.
전부 체크되면 Step 40 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.