Step 40. Level 0 종합 테스트 — 스스로에게 시험을 보다

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. 오늘 시험의 세 과목

  1. 설명문 쓰기(필기): 배운 개념을 책 없이 설명해 봅니다. 막히는 부분 = 모르는 부분.
  2. CLI 하루 생활(실기): 파일 정리, 정보 수집, 문서 작성을 마우스 없이 합니다. 손이 기억하는지 확인합니다.
  3. 그림 그리며 말하기(구술): 네트워크 지도를 그리며 소리 내어 설명합니다. 개념이 구조화되어 있는지 확인합니다.

각 과목에는 합격 기준이 있습니다. 그리고 떨어져도 괜찮습니다. 이 시험의 낙제는 벌이 아니라 "돌아갈 스텝 번호"를 알려 주는 것이 전부이니까요.

2-3. 채점 원칙 — 엄격하되, 기록하라

스스로 채점할 때 가장 흔한 함정은 관대함입니다. "어렴풋이 알긴 아는데"는 틀린 것으로 칩니다. 대신 틀린 것마다 노트 구석에 스텝 번호를 적습니다. 그 번호 목록이 오늘의 진짜 성적표입니다.

개념은 아는데 명령어가 기억 안 나는 것과, 개념 자체가 흔들리는 것은 다릅니다. 전자는 치트시트 복습으로 충분하고, 후자는 그 스텝을 다시 읽어야 합니다. 둘을 구분해 적어 두세요.


3. 따라 하기

3-1. 제1과목: 설명문 쓰기 (60분)

책과 노트를 덮습니다. 빈 노트에 아래 여덟 문항에 답을 써 봅니다. 각 문항 5문장 이상. 모르면 억지로 채우지 말고 "모름"이라고 적으세요. 그것이 정직한 데이터입니다.

  1. 절대경로와 상대경로의 차이를 예를 들어 설명하시오.
  2. 리눅스에서 -rw-r--r--가 뜻하는 것을 풀이하시오.
  3. 프로세스와 프로그램의 차이를 설명하고, 떠 있는 프로세스를 확인하는 명령어를 하나 쓰시오.
  4. SSH로 원격 접속할 때 비밀번호 대신 열쇠 파일을 쓰는 이유를 설명하시오.
  5. MAC 주소와 IP 주소의 역할 차이를 "동네 배달" 비유로 설명하시오.
  6. 포트 번호가 필요한 이유를 설명하고, 대표 포트 다섯 개를 서비스와 함께 쓰시오.
  7. TCP의 3-way handshake를 그림 없이 문장으로만 설명하시오.
  8. 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. 정보 수집: 명령어만으로 아래 다섯 가지를 찾아 노트에 적습니다:

  1. 오늘 날짜와 현재 시각
  2. 내 컴퓨터의 IP 주소와 기본 게이트웨이
  3. 현재 열린 포트 중 LISTENING 상태 두 개
  4. 메모리를 가장 많이 쓰는 프로세스
  5. 디스크 남은 용량

과제 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 한 장에 압축해 정리합니다. 규칙은 두 가지:

  1. 모든 것을 담으려 하지 말 것 — "시험장에 딱 한 장 가져갈 수 있다면?"의 기준으로 고릅니다
  2. 인쇄하지 말고 손으로 쓸 것 — 손으로 쓰는 과정 자체가 마지막 복습입니다

구성은 스스로 정하되, 완성한 뒤 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과목(필기) 모범 답안 요지

  1. 절대경로 vs 상대경로 (Step 2, 18): 절대경로는 루트부터 전체를 적는 주소(C:\Users\..., /home/...), 상대경로는 "지금 서 있는 곳"을 기준으로 적는 주소(.., ./docs). 같은 파일도 현재 위치에 따라 상대경로가 달라집니다.
  2. -rw-r--r-- (Step 23): 첫 -는 일반 파일, 이후 세 자리씩 소유자(rw- = 읽기+쓰기), 그룹(r– = 읽기), 기타(r– = 읽기)의 권한입니다.
  3. 프로세스 vs 프로그램 (Step 13, 26): 프로그램은 디스크에 저장된 파일, 프로세스는 그것이 실행되어 메모리에 떠 있는 실체. 확인 명령: Get-Process(윈도우) 또는 ps(리눅스).
  4. SSH 열쇠 파일 (Step 29): 비밀번호는 추측·무차별 대입·유출에 약하지만, 열쇠 파일은 "가진 사람"만 통과하는 소유 증명이라 원격 무차별 대입 공격에 훨씬 강합니다.
  5. MAC vs IP (Step 31, 32): IP는 세계 어디서든 통하는 주소(안쪽 봉투), MAC은 같은 동네 이웃에게 직접 전달할 때 쓰는 주소(바깥 봉투). 먼 곳으로 갈수록 바깥 봉투의 MAC은 다음 이정표 것으로 계속 갈아입습니다.
  6. 포트 (Step 34): 한 컴퓨터(한 IP) 안에서 여러 서비스를 구분하는 "호수". 예: 22 SSH, 53 DNS, 80 HTTP, 443 HTTPS, 25 SMTP.
  7. 3-way handshake (Step 35): 클라이언트가 SYN(연결하고 싶습니다) → 서버가 SYN-ACK(좋습니다, 저도 준비됐어요) → 클라이언트가 ACK(확인했습니다). 세 마디가 끝나야 데이터가 오갑니다.
  8. 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.8nslookupTest-NetConnection -Port
내 주소 확인 ipconfig / ip addr
누가 실행했나 Get-CimInstance Win32_Process(PID + ParentProcessId)
자동 실행 점검 Run 키 / shell:startup / Get-ScheduledTask / Get-Service

명령어보다 중요한 감각

오늘의 시험이 사실은 보안 실무의 축소판입니다. 보안 담당자의 일상은 "안전하다고 믿는 것을 스스로 시험하는 일"의 반복입니다 — 방화벽이 막는지 확인하고, 백업이 복구되는지 확인하고. "믿지 말고 확인하라", 이 한 문장이 오늘 시험의 규칙이자 이 바닥의 첫 번째 계명입니다. 그리고 확인의 범위는 언제나 내 것입니다. 모든 공격 실습은 내 랩·합법 플랫폼에서만. 실서비스 무단 공격은 범죄입니다.

공부법으로도 하나 더 — 가장 효율 높은 복습은 다시 읽기가 아니라 떠올려 보기(테스트)입니다. 기억에서 꺼낼 때 실패하면, 그 실패 자체가 기억을 강하게 새깁니다. 오늘 "모름"이라고 적은 문항들이 오히려 가장 많이 성장한 지점입니다. 자기 전 삼십 초, "오늘 배운 것 세 가지"를 떠올리는 습관으로 이어 가세요.

파워쉘을 처음 열어 까만 창이 두려웠던 여러분이, 오늘은 까만 창으로 하루를 살아내고 네트워크 지도를 그리며 스스로를 시험했습니다. 이 변화는 누가 선물한 것이 아닙니다. 마흔 번의 스텝을 한 번씩 넘은 여러분의 발이 만든 것입니다. 앞으로 배울 것은 더 깊어지겠지만 방법은 바뀌지 않습니다 — 배우고, 손으로 하고, 책을 덮고, 시험 보고, 빈 곳으로 돌아가고. 이 다섯 박자를 여러분은 이미 마흔 번 돌려 봤습니다.

Level 0, 졸업을 진심으로 축하합니다. 여러분은 해냈습니다.


전부 체크되면 Step 40 완료입니다. 사이드바의 체크박스를 눌러 진도를 저장하세요.