본문으로 건너뛰기
개발 환경 설정 기초집LESSON 04

PATH와 환경 변수: 명령어가 어디서든 실행되는 이유

난이도입문
예상 시간40분
선수지식3강 PowerShell 기초

4강. PATH와 환경 변수: 명령어가 어디서든 실행되는 이유

1. 이번 강의에서 해결할 문제​

설치 폴더에는 실행 파일이 있는데 명령을 찾지 못하거나 예상과 다른 버전이 실행됩니다. PATH의 검색 목록과 환경 변수 범위를 진단합니다.

2. 학습 목표​

3. 핵심 개념​

Windows는 PATH에 적힌 폴더를 앞에서부터 검색해 명령 이름과 맞는 실행 파일을 찾습니다. PowerShell의 Process 환경은 현재 창과 자식 프로세스에만 적용됩니다. User는 현재 사용자, Machine은 전체 컴퓨터 범위이며 Machine 변경에는 보통 관리자 권한이 필요합니다. 공식 설명은 PowerShell 환경 변수 문서에서 확인할 수 있습니다.

예를 들어 git을 입력하면 PowerShell은 명령 해석 규칙과 PATH의 폴더 순서를 따라 git.exe를 찾습니다. 같은 이름이 여러 폴더에 있으면 앞선 후보가 선택되므로 “설치는 됐는데 옛 버전이 실행되는” 문제가 생깁니다. Get-Command git -All은 후보와 우선순위를 확인하는 진단 명령입니다.

범위지속 시간영향
Process현재 PowerShell이 종료될 때까지현재 창과 여기서 실행한 자식 프로세스
User사용자 설정을 변경할 때까지새로 시작한 현재 사용자 프로세스
Machine컴퓨터 설정을 변경할 때까지모든 사용자, 보통 관리자 권한 필요

4. 단계별 실습​

명령 목적: PATH를 변경하지 않고 세 범위의 값을 읽고, 임시 Process 변수의 수명을 확인합니다.

실행 전 상태: 일반 PowerShell을 엽니다. 이 실습은 영구 환경 변수를 설정하거나 기존 PATH를 덮어쓰지 않습니다. 출력에는 사용자 경로가 포함될 수 있으므로 공개 기록에 그대로 붙이지 않습니다.

PowerShell · 실행 위치: 어느 폴더여도 됩니다.

$env:Path -split ';' | Where-Object { $_ } | Select-Object -Unique
[Environment]::GetEnvironmentVariable('Path', 'User') -split ';'
[Environment]::GetEnvironmentVariable('Path', 'Machine') -split ';'
$env:DEV_ENV_LAB = 'current-session-only'
$env:DEV_ENV_LAB
Get-Command git -All -ErrorAction SilentlyContinue

예상 결과: PATH 항목이 한 줄씩 표시되고 임시 변수는 current-session-only를 출력합니다. Git이 설치됐다면 마지막 명령에 실행 파일 경로와 종류가 보입니다. 새 PowerShell을 열면 DEV_ENV_LAB은 존재하지 않습니다.

안전한 수정 원칙

  1. 설치 프로그램의 공식 PATH 옵션을 우선합니다.
  2. 실행 파일 자체가 아니라 실행 파일이 있는 폴더만 추가합니다.
  3. 이미 존재하거나 사용하지 않는 경로를 중복 추가하지 않습니다.
  4. 영구 수정 전 기존 User PATH를 기록하고 새 PowerShell에서 검증합니다.
macOS·Linux 차이

macOS와 Linux에서는 환경 변수 이름의 대소문자를 구분하고 PATH 항목 구분자로 세미콜론이 아닌 콜론(:)을 사용합니다. Shell 설정 파일을 수정하기 전 현재 Shell과 공식 배포판 문서를 확인하세요.

5. 명령어와 설정이 동작하는 이유​

$env:는 현재 PowerShell 프로세스가 가진 환경 변수에 접근합니다. User와 Machine 값을 합친 결과가 새 프로세스의 PATH가 되며, 이미 열린 터미널은 설치 후 변경을 자동으로 받지 않을 수 있어 다시 열어야 합니다.

-split ';'은 Windows PATH 문자열을 폴더 단위로 나누고 Select-Object -Unique는 출력에서 중복을 줄입니다. 이 명령들은 값을 읽을 뿐 수정하지 않습니다. 설치 직후 새 터미널에서 Get-Command <도구> -All과 <도구> --version을 함께 확인해야 실제 선택된 파일과 버전을 연결할 수 있습니다.

6. 자주 하는 실수와 해결법​

7. 직접 실습​

8. 이해 점검 질문 3개​

9. 핵심 요약​

10. 다음 강의 연결​

명령 검색 경로와 환경 변수 범위를 읽을 수 있게 되었습니다. 다음 강의에서는 경로·버전·간단 실행 결과를 함께 확인해 설치 성공을 검증합니다.

MINI QUIZ

PATH와 환경 변수: 명령어가 어디서든 실행되는 이유 미니 퀴즈

선택 즉시 정답과 해설을 확인할 수 있습니다. 결과는 이 브라우저에만 저장됩니다.

0 / 2
  1. 문제 1“PATH와 환경 변수: 명령어가 어디서든 실행되는 이유” 내용을 실제 작업에 적용한 설명으로 가장 알맞은 것은 무엇인가요?
  2. 문제 2“PATH와 환경 변수: 명령어가 어디서든 실행되는 이유”에서 ‘PATH 전체를 새 문자열로 덮어씀’ 문제가 생겼습니다. 가장 알맞은 진단 또는 대응은 무엇인가요?
LESSON STATUS

학습을 마쳤나요?

직접 실습과 점검 질문까지 확인한 뒤 완료로 표시하세요.

4강. PATH와 환경 변수: 명령어가 어디서든 실행되는 이유 미완료 상태