3001 LABS

LEARN · PRACTICE · REVIEW

정보보안 첫 실습: 명령보다 관찰부터

PowerShell에서 현재 위치와 파일 목록을 살펴보고, 예상과 실제 결과의 차이를 기록하는 작은 실습입니다.

작성·운영 3001 LABS · 2026년 10월 6일

정보보안을 처음 배우면 낯선 명령을 많이 실행하는 것이 실습이라고 느끼기 쉽습니다. 하지만 명령을 복사해 실행한 뒤 결과가 왜 그렇게 나왔는지 말하지 못하면 다음 상황에서 적용하기 어렵습니다. 이 글에서는 내 컴퓨터의 현재 위치와 목록을 읽는 두 명령으로, 실행 전 예상·실제 관찰·설명의 흐름을 연습합니다.

1. 실습 대상을 내 컴퓨터로 정합니다

Windows에서 PowerShell을 일반 권한으로 엽니다. 아래 예제는 현재 위치와 그 위치의 항목을 조회하므로 관리자 권한으로 실행할 필요가 없습니다. 개인용 컴퓨터가 아니라 조직에서 관리하는 장치라면 장치 이용 규칙을 먼저 따릅니다. 네트워크의 다른 장치나 외부 사이트에 요청을 보내는 명령은 이 실습에 포함하지 않습니다.

화면을 캡처할 계획이라면 사용자 이름, 실제 폴더명, 문서 제목 같은 개인 정보가 보일 수 있다는 점을 확인하세요. 아래 기록 예시처럼 경로를 C:\Example로 바꾸어 적어도 관찰 내용은 설명할 수 있습니다.

2. 실행하기 전에 결과를 예상합니다

먼저 “지금 PowerShell이 바라보는 위치는 어디일까?”라고 예상한 뒤 다음 한 줄을 직접 입력하고 Enter를 누릅니다.

Get-Location

Path 아래에 표시되는 값이 현재 작업 위치입니다. 창을 처음 연 방식이나 이전에 실행한 명령에 따라 사람마다 결과가 다릅니다. 예시와 경로가 다르다는 이유만으로 실패한 것은 아닙니다. 내가 예상한 폴더와 출력된 위치가 같은지 확인하세요.

다음으로 현재 위치 안에 무엇이 있을지 예상한 뒤 목록을 조회합니다.

Get-ChildItem

파일 시스템 위치에서 실행하면 그 위치의 파일과 하위 폴더가 표시됩니다. 이 명령은 기본적으로 모든 하위 폴더 안을 끝까지 탐색하지 않습니다. 표시된 이름 하나가 폴더인지 파일인지, 어떤 열에서 그 차이를 확인할 수 있는지 살펴봅니다. 숨김 항목이나 접근 권한 때문에 탐색기에서 보던 목록과 차이가 날 수 있습니다.

예상과 관찰을 나누는 예시

예상: PowerShell을 열었으니 바탕 화면의 파일들이 보일 것이다.

관찰: 첫 명령의 Path는 바탕 화면이 아니라 사용자 폴더였다. 두 번째 명령도 그 위치의 목록을 보여 주었다.

설명: 목록 조회는 내가 눈으로 보고 있는 바탕 화면이 아니라 현재 작업 위치를 기준으로 한다. 다음 명령 전에 위치를 확인한다.

이 예시는 특정 사용자의 실제 파일이나 실행 기록을 옮긴 것이 아닙니다.

같은 조건으로 비교하는 작은 실험

개인 폴더 대신 매번 새로운 임시 실습 폴더를 만듭니다. 아래 준비 코드만 파일을 생성하며, 그 뒤의 관찰 명령은 목록을 읽습니다. Windows PowerShell 5.1 또는 Windows의 PowerShell 7에서 일반 권한으로 진행하세요. 창을 닫으면 $lab3001 변수는 사라집니다.

$lab3001 = Join-Path ([System.IO.Path]::GetTempPath()) ('labs3001-observe-' + [guid]::NewGuid().ToString('N'))
New-Item -ItemType Directory -Path $lab3001 -ErrorAction Stop | Out-Null
New-Item -ItemType Directory -Path (Join-Path $lab3001 'notes') -ErrorAction Stop | Out-Null
Set-Content -LiteralPath (Join-Path $lab3001 'memo.txt') -Value 'first observation' -Encoding UTF8
Set-Content -LiteralPath (Join-Path $lab3001 'result.csv') -Value 'name,score' -Encoding UTF8
Set-Content -LiteralPath (Join-Path $lab3001 'notes\day1.txt') -Value 'nested file' -Encoding UTF8
Set-Location -LiteralPath $lab3001

준비가 끝나면 다음 구조가 됩니다. 폴더의 긴 이름은 실행할 때마다 달라도 괜찮습니다.

labs3001-observe-고유값/
├─ memo.txt
├─ result.csv
└─ notes/
   └─ day1.txt

아래 명령은 하나씩 실행해 보세요. -Name으로 날짜·크기 열을 생략하고 이름만 비교합니다. 출력 순서보다 항목의 집합을 확인하세요.

명령이 실습 폴더에서 나오는 이름이유
Get-ChildItem -Namememo.txt, result.csv, notes현재 위치의 바로 아래 항목. notes도 폴더로 표시됩니다.
Get-ChildItem -File -Namememo.txt, result.csv현재 위치의 파일만. notes는 폴더라 제외됩니다.
Get-ChildItem -File -Recurse -Namememo.txt, result.csv, notes\day1.txt하위 폴더까지 내려가 파일만 찾습니다.

출력이 다르면 Get-Location으로 준비한 폴더인지 먼저 봅니다. notes가 없으면 준비 명령의 오류를, day1.txt가 빠지면 -Recurse 입력을 확인합니다. 이 예제에는 숨김 항목과 접근 제한 폴더가 없습니다.

예측 1. -File만 붙였을 때 파일은 몇 개일까요?

텍스트 해설 보기

정답은 2개입니다. -File은 폴더를 제외하며, 하위 폴더를 탐색하는 옵션은 -Recurse입니다.

예측 2. Set-Location notes 후 Get-ChildItem -Name을 실행하면?

텍스트 해설 보기

정답은 day1.txt입니다. Set-Location -LiteralPath $lab3001로 최상위 연습 폴더에 돌아올 수 있습니다.

기록을 완성하고 마무리하기

“3개를 예상했지만 -File 결과는 2개였다. 하위 파일까지 보려면 -Recurse가 필요하다”처럼 예상·관찰·설명을 따로 기록합니다. 실습 폴더는 결과 확인을 위해 남겨 둡니다. 나중에 정리할 때는 Get-Location에 나온 경로와 고유 이름이 이번에 만든 폴더인지 확인한 뒤 탐색기에서 처리하세요.

이 예제의 목록은 별도 임시 폴더에서 실행해 확인했습니다. 실제 출력에서 개인 경로나 파일명을 문의에 첨부할 필요는 없습니다.

3. 성공 여부 대신 관찰을 기록합니다

질문남길 기록
어디에서 실행했나요?PowerShell, 일반 권한, 경로는 개인 정보를 가린 형태로 기록
무엇을 예상했나요?확인할 위치 또는 목록에 대한 한 문장
실제로 무엇이 나왔나요?Path와 목록의 차이, 오류가 있다면 필요한 메시지만 기록
다음에는 무엇을 확인하나요?현재 위치, 대상 항목, 명령 철자 등 한 가지

오류가 나면 명령을 더 길게 붙여서 해결하려 하지 말고, 철자를 확인하고 어떤 위치에서 실행했는지부터 다시 봅니다. “Access is denied”처럼 권한 관련 메시지가 나오면 해당 위치의 접근 권한이 원인일 수 있습니다. 이 입문 실습을 위해 장치의 보호 설정을 바꾸거나 임의로 권한을 올릴 필요는 없습니다.

4. 읽는 명령과 바꾸는 명령을 구분합니다

이번에 사용한 두 명령은 관찰하는 데 목적이 있습니다. 이후 파일 생성·이동·삭제를 배우게 되면 실행 대상과 바뀌는 범위를 먼저 적는 습관을 이어가세요. 수업에서 실습 폴더를 지정하면 그 폴더를 기준으로 진행하고, 이름이 비슷한 실제 업무 자료를 대상으로 삼지 않습니다. 명령을 이해하지 못한 상태에서는 수업의 설명과 공식 도움말을 먼저 확인합니다.

5. 준비한 만큼 다음 수업으로 이어갑니다

두 명령의 결과를 자신의 말로 설명할 수 있으면 InfoSec 3001의 Step 1에서 준비물과 전체 예제를 읽어 보세요. 처음 오셨나요는 학습 시작 방법을, 전체 커리큘럼은 다음 순서를 찾는 데 도움이 됩니다. 이미 다른 언어나 운영체제를 알고 있다면 주제별 목록에서 필요한 기초를 확인한 뒤 수업의 전제 조건에 맞게 시작할 수 있습니다.

학습 완료 표시가 있다고 해서 이해가 자동으로 검증되는 것은 아닙니다. 명령의 의미, 대상, 출력 결과를 설명할 수 있는지 스스로 확인하고 표시를 남겨 주세요. InfoSec 3001의 완료·북마크·읽던 위치는 현재 브라우저에 저장되므로 다른 브라우저에서는 같게 보이지 않을 수 있습니다.

직접 확인할 자료

명령의 동작은 Microsoft 공식 문서를 기준으로 설명했으며, 관찰 기록과 학습 흐름은 3001 LABS가 작성했습니다.