운영체제는 사용자와 컴퓨터 하드웨어 간의 중재자 역할을 하며, 여러 가지 프로그램을 설치하고 실행하는 데 필요한 기능을 제공합니다. 이러한 기능 중 하나가 바로 '환경 변수'입니다. 환경 변수는 운영체제가 프로그램을 효과적으로 관리하고 실행할 수 있도록 돕는 중요한 요소입니다. 특히, PATH라는 환경 변수는 운영체제가 프로그램을 찾아 실행할 수 있도록 도와주는 핵심적인 역할을 합니다. 환경변수 더 알아보기
가장 널리 사용되는 운영체제인 Windows에서도 환경 변수는 중요한 역할을 합니다. 새로운 프로그램을 설치한 후에도 제대로 동작하지 않는 경우가 있는데, 이는 대부분 환경 변수가 올바르게 설정되지 않아서일 가능성이 높습니다. 환경 변수 설정은 프로그램의 효율적인 운영을 위해 반드시 필요한 과정이며, 이 과정을 무시하면 프로그램의 성능을 제대로 발휘하지 못하게 될 수 있는데요. 이 경우 다음 과정으로 현재 등록된 환경 변수를 확인하거나 편집할 수 있습니다.
튜토리얼 환경: 윈도우 11 Pro (빌드: 22631.2715)
시스템 속성 환경 변수 편집 메뉴로 환경 변수 설정하기
Windows에서는 다른 운영체제들과 다르게 환경 변수 창이라는 GUI 환경에서 직관적으로 환경 변수를 편집하고 관리할 수 있습니다.
작업 표시줄의 검색 필드에 환경 변수
키워드로 검색하면 가장 정확에 시스템 환경 변수 편집이 표시되는데 해당 항목을 클릭하거나 우측 를 클릭합니다.
시스템 속성 창의 이 열리게 되는데 여기서 하단의 를 클릭합니다.
탭이 선택된 상태의위 이미지와 같은 형태의 환경 변수 창이 열리게 됩니다. 이 창에는 사용자 변수와 시스템 변수 두 가지 부분이 있습니다.
- 사용자 변수는 현재 로그인한 사용자 계정에만 적용되는 환경 변수들을 보여줍니다. 이 변수들은 해당 사용자가 로그인한 세션에서만 영향을 미칩니다.
- 반면에 시스템 변수는 컴퓨터의 모든 사용자에게 적용되는 환경 변수들을 보여줍니다. 이 변수들은 모든 사용자와 시스템 프로세스에 영향을 미칩니다.
사용자 변수를 수정하고 싶다면 상단
에서 를 선택한 뒤 버튼을 클릭합니다.이어지는 환경 변수 편집 페이지에서 우측 상단의 를 통해 새로운 환경 변수를 추가하거나 으로 기존 환경 변수를 수정할 수 있습니다.
사용자 변수를 수정하고 싶다면 아래
에서 를 선택한 뒤 버튼을 클릭합니다.이번에도 환경 변수 편집 페이지에서 우측 상단의 를 통해 새로운 환경 변수를 추가하거나 으로 기존 환경 변수를 수정할 수 있습니다.
예로
를 클릭하면 좌측 섹션에 새로운 입력 필드 가 만들어지고 이곳에 파일이나 디렉토리의 위치, 메모리 설정, 시스템 로케일 등을 지정할 경로를 작성한 뒤 저장합니다.명령 줄 도구에서 환경 변수 설정하기
명령 줄 도구가 익숙 한 경우 PowerShell이나 명령 프롬프트를 통해서 환경 변수를 추가하거나 편집할 수 있습니다.
명령 프롬프트
명령 프롬프트에서는 setx
명령을 통해서 사용자 환경 변수 또는 시스템 환경 변수를 추가할 수 있습니다.
사용자 환경 변수 추가
setx JAVA_HOME "C:\Program Files\Java\jdk1.8.0_241"
아래와 같이 사용하면, 변수이름
이라는 환경 변수가 생성되고 그 값으로 변수값
이 지정됩니다. 예를 들어 사용자 환경 변수인 JAVA_HOME
을 JDK의 설치 경로( C:\Program Files\Java\jdk1.8.0_241
)로 설정하고 싶다면 위와 같이 명령합니다.
setx 변수이름 "변수값"
참고: setx
명령어는 기존의 환경 변수 값을 덮어쓰는 기능을 제공하므로, 이를 통해 환경 변수를 편집할 수 있습니다. 즉, 같은 이름의 환경 변수를 새로운 값으로 다시 설정하면, 기존의 값은 새로운 값으로 바뀌게 됩니다.
시스템 환경 변수 추가
setx /M JAVA_HOME "C:\Program Files\Java\jdk1.8.0_241"
기본 구분에서 시스템 환경 변수를 추가하려면, /M
옵션을 사용합니다. 예를 들어 시스템 환경 변수인 JAVA_HOME
을 JDK의 설치 경로로 설정하고 싶다면 위와 같이 명령합니다.
setx /M 변수이름 "변수값"
참고: 환경 변수를 삭제하는 기능은 setx
명령어에는 포함되어 있지 않습니다. 환경 변수를 삭제하려면 시스템 속성의 환경 변수 GUI 창을 이용하거나, 레지스트리 편집기를 사용해야 합니다.
Windows PowerShell
setx
명령은 명령 프롬프트와 PowerShell 모두에서 동일하게 작동합니다. 하지만 PowerShell에서는 환경 변수를 추가하거나 변경하는 또 다른 방법이 있습니다.
사용자 환경 변수 추가
[Environment]::SetEnvironmentVariable("PYTHON_HOME", "C:\Python312", "User")
사용자 환경 변수를 추가하려면 다음과 같이 사용할 수 있습니다. 예를 들어, PYTHON_HOME
이라는 이름의 사용자 변수를 설정하고, 그 값으로 C:\Python312
를 지정하고 싶다면 위와 같이 명령합니다.
[Environment]::SetEnvironmentVariable("변수이름", "변수값", "User")
시스템 환경 변수 추가
유사한 방식으로 시스템 환경 변수도 새롭게 추가할 수 있습니다.
[Environment]::SetEnvironmentVariable("PYTHON_HOME", "C:\Python312", "Machine")
시스템 환경 변수를 추가하려면 다음과 같이 사용할 수 있습니다. 예를 들어, PYTHON_HOME
이라는 이름의 시스템 환경 변수를 설정하고, 그 값으로 C:\Python312
를 지정하고 싶다면 위와 같이 명령합니다.
[Environment]::SetEnvironmentVariable("변수이름", "변수값", "Machine")
참고: 이 명령들은 PowerShell의 .NET(Dot NET) 기능을 활용하여 환경 변수를 설정합니다. 이 방법은 즉시 적용되므로 새 세션을 시작할 필요가 없습니다. 하지만 이 변경사항은 다른 프로세스에는 적용되지 않으므로, 실제로 환경 변수를 사용하는 프로그램이나 스크립트를 재시작해야 할 수 있습니다.
환경 변수 제거
환경 변수를 삭제하는 기능은 앞선 setx
명령어에는 포함되어 있지 않지만, PowerShell을 사용하고 있다면, 환경 변수를 삭제하는 명령어가 제공됩니다.
[Environment]::SetEnvironmentVariable("PYTHON_HOME", $null, "User")
변수 값을 $null
로 지정 시 해당 변수가 비워지게 됩니다. 이 명령은 지정된 사용자 환경 변수를 삭제하는 것이고, User
를 Machine
으로 바꾸면 시스템 환경 변수를 삭제할 수 있습니다. 예를 들어 PYTHON_HOME
이라는 사용자 환경 변수를 제거하고 싶다면 위와 같이 명령합니다.
[Environment]::SetEnvironmentVariable("변수이름", $null, "User")