환경 변수

컴퓨터의 운영 체제는 사용자의 작업을 효율적으로 관리하고, 다양한 프로그램과 하드웨어를 제어하는 플랫폼입니다. 이러한 시스템의 복잡한 동작을 조절하고, 사용자의 요구에 맞게 시스템이 적절히 반응할 수 있도록 만드는 데는 다양한 요소들이 필요합니다. 그 중 하나가 바로 환경 변수라는 도구입니다.

환경 변수는 운영 체제 내에서 프로그램이 실행되는 환경을 정의하고, 그 환경에 대한 정보를 저장하는 데 사용됩니다. 이는 프로그램이 실행 될 때 필요한 설정 정보를 제공하거나, 프로그램 간에 정보를 공유하는 용도로 사용되기도 합니다. 또한, 환경 변수는 운영 체제와 사용자, 그리고 다른 프로그램 간의 상호작용을 더 유연하게 만들어줍니다.

특히, 사용자가 특정 목적으로 프로그램을 설치할 때 이 환경 변수의 중요성이 크게 드러납니다. 프로그램을 설치하면, 이 프로그램은 사전에 정의된 경로에 위치하게 되는데, 이 경로 정보는 환경 변수에 저장되어 프로그램이 필요로 하는 시점에 쉽게 접근할 수 있도록 돕습니다.

환경 변수란

환경 변수(Environment Variable)는 운영 체제에서 프로세스를 실행할 때 운영 체제에 의해 정의되고, 그 프로세스의 실행 환경을 구성하는 여러 가지 값들을 의미합니다. 이들은 프로세스가 실행되는 환경에 대한 정보를 담고 있으며, 운영 체제 또는 사용자에 의해 설정될 수 있습니다. 환경 변수는 일반적으로 텍스트 문자열로 이루어져 있으며, 해당 프로세스의 실행에 중요한 역할을 수행합니다.

환경 변수는 프로그램의 실행 환경을 제어하는 중요한 수단입니다. 프로그램은 환경 변수를 통해 실행 환경에 대한 정보를 얻을 수 있으며, 이를 바탕으로 다양한 동작을 수행합니다. 따라서, 환경 변수의 설정은 프로그램의 동작 방식을 크게 결정짓게 됩니다.

환경 변수에 대한 이해는 운영 체제의 동작 원리를 이해하는 데 중요하며, 프로그래밍에서도 매우 중요한 역할을 합니다. 따라서, 환경 변수에 대한 깊은 이해는 운영 체제와 프로그래밍에 있어 필수적인 요소로 간주됩니다.

macOS 맥에서 앱을 강제로 종료하는 방법

환경 변수 종류

환경 변수는 그 사용 범위와 설정 대상에 따라 크게 시스템 변수와 사용자 변수로 구분됩니다.

시스템 변수 (System Variables)

시스템 변수는 운영체제 자체에 의해 설정되고 관리되는 변수로, 시스템 전체에 적용되는 환경 설정을 담고 있습니다. 이 변수들은 모든 사용자와 모든 프로세스에 대해 동일하게 적용됩니다.

  • 공유 변수: 시스템 변수는 모든 사용자와 프로세스가 공유하므로, 이러한 변수를 변경하면 시스템 전체에 영향을 미칩니다.
  • 관리자 권한: 일반적으로 시스템 변수의 변경은 관리자 권한을 요구합니다. 이는 잘못된 변경으로 인한 시스템의 안정성 저해를 방지하기 위함입니다.
윈도우 홈에서 gpedit.msc 로컬 그룹 정책 편집기 사용하는 방법

사용자 변수 (User Variables)

사용자 변수는 특정 사용자의 환경을 설정하는 데 사용되는 변수입니다. 이 변수들은 해당 사용자의 세션 내에서만 유효하며, 다른 사용자의 세션에는 영향을 미치지 않습니다.

  • 사용자 지정: 사용자는 자신의 환경에 맞게 사용자 변수를 자유롭게 설정하고 변경할 수 있습니다.
  • 세션 유지: 사용자 변수는 해당 사용자의 로그인 세션 동안에만 유효합니다. 사용자가 로그아웃하면 이 변수들은 사라집니다.

환경 변수의 구성 요소

환경 변수는 시스템 설정이나 사용자 설정 등을 저장하는 데 사용되는 특별한 종류의 변수입니다. 이들은 주로 다음과 같은 두 가지 구성 요소로 이루어져 있습니다.

Windows 11 하드디스크 HDD SSD 추가 후 인식시키는 법

변수 이름 (Variable Name)

환경 변수의 이름은 해당 변수를 유일하게 식별하는 역할을 합니다. 변수 이름의 특징과 규칙에 대해 더 자세히 살펴보겠습니다.

  • 고유한 식별자: 변수 이름은 해당 환경 변수를 식별하는 고유한 이름입니다. 각 환경 변수는 서로 다른 이름을 가져야 하며, 이 이름은 대소문자를 구분합니다. 즉, PATH와 path는 서로 다른 환경 변수로 간주됩니다.
  • 규칙 준수: 환경 변수의 이름은 일반적으로 알파벳 대문자와 밑줄(_)로 구성되며, 숫자로 시작할 수 없습니다. 또한, 의미 있는 이름을 부여하여 해당 변수의 용도를 명확하게 드러내는 것이 좋습니다. 예를 들어, JAVA_HOME이라는 이름의 환경 변수는 Java 홈 디렉토리를 지정하는 것으로 이해할 수 있습니다.

변수 값 (Variable Value)

변수 값은 실제로 환경 변수에 저장되는 데이터나 정보입니다. 이 값은 텍스트 문자열 형태로 저장되며, 다양한 형태의 정보를 담을 수 있습니다.

  • 데이터 또는 정보: 변수 값은 해당 환경 변수와 직접적으로 연결된 값으로, 환경 변수가 나타내는 실제 정보를 담고 있습니다. 이 값은 텍스트 문자열로 이루어져 있으며, 디렉토리 경로나 파일 이름, 옵션 값 등 다양한 정보를 표현할 수 있습니다.
  • 설정 가능한 값: 환경 변수의 값을 설정하거나 변경하는 것은 사용자 또는 시스템에 의해 수행됩니다. 이 값을 통해 운영 체제나 프로그램의 동작 방식을 제어할 수 있습니다. 예를 들어, PATH 환경 변수의 값을 변경하여 운영 체제가 실행 파일을 찾는 경로를 변경할 수 있습니다.
Windows 터미널 기본 Shell 변경하기

환경 변수의 용도

환경 변수는 여러 가지 용도로 사용됩니다. 가장 일반적인 용도는 프로그램의 동작 방식을 제어하는 것입니다. 예를 들어, 프로그램이 파일을 읽고 쓰는 기본 디렉토리를 지정하는데 사용될 수 있습니다. 또한, 시스템 설정, 프로그램 경로, 사용자 정보 등 다양한 시스템 정보를 저장하는 데도 사용됩니다.

  • 프로그램 동작 제어: 프로그램이 실행될 때 필요한 기본적인 동작 방식을 제어하는 데 사용됩니다. 프로그램이 파일을 읽고 쓰는 기본 디렉터리, 로그 파일의 위치 등을 지정할 수 있습니다.
  • 시스템 설정 관리: 시스템 전체의 기본 설정을 관리하며, 운영 체제 및 응용 프로그램이 일관된 방식으로 동작할 수 있도록 지원합니다. 시스템 경로, 시간대, 언어 설정 등을 관리하는 데 사용됩니다.
  • 프로그램 경로 지정: 실행 파일, 라이브러리, 플러그인 등의 경로를 지정하여 프로그램이 필요한 자원을 찾을 수 있도록 합니다. PATH 환경 변수는 실행 파일의 위치를 지정하는 데 활용됩니다.
  • 사용자 정보 저장: 각 사용자의 환경 설정, 홈 디렉터리 경로, 사용자 이름 등과 관련된 정보를 저장하는 데 사용됩니다. HOME, USERNAME 등의 사용자 변수는 사용자 고유의 정보를 나타냅니다.
  • 응용 프로그램 설정: 특정 응용 프로그램이 실행될 때 필요한 구성 정보를 저장하고 전달하는 데 사용됩니다. 데이터베이스 연결 정보, API 키, 화면 해상도 등을 설정하는 데 활용됩니다.
  • 시스템 환경 관리: 운영 체제 및 다양한 응용 프로그램 간의 상호 작용 및 통합을 위해 시스템 환경을 효과적으로 관리합니다. 다양한 소프트웨어 및 서비스 간의 통합을 지원하기 위해 필요한 정보를 저장합니다.

환경 변수의 예시

환경 변수를 통해 프로그램은 필요한 정보를 운영 체제로부터 얻거나, 운영 체제가 프로그램을 올바르게 실행할 수 있도록 지시할 수 있습니다. 이러한 환경 변수들 중 일부는 특정 프로그램이나 특정 목적으로 사용되며, 이들은 프로그램의 동작을 크게 결정짓는 요소이며 대표적인 환경 변수들의 역할을 알아봅니다.

  • PATH:
    PATH 환경 변수는 운영 체제가 실행 파일을 찾는 디렉토리 경로의 목록을 지정합니다. 이 경로 목록은 세미콜론(;) 또는 콜론(:)으로 구분되어 있습니다. 운영 체제는 이 목록에 있는 디렉토리를 순서대로 검색하여 실행 파일을 찾습니다. 예를 들어, Linux에서 PATH 환경 변수가 /usr/bin:/bin:/usr/sbin:/sbin으로 설정되어 있다면, 운영 체제는 먼저 /usr/bin 디렉터리를 검색하고, 그 다음 /bin, /usr/sbin, /sbin 순서로 디렉터리를 검색하여 실행 파일을 찾습니다. 이렇게 PATH 환경 변수를 통해 실행 파일의 위치를 운영 체제에 알려주면, 사용자는 해당 파일의 전체 경로를 입력하지 않고도 파일을 실행할 수 있습니다.
  • HOME:
    HOME 환경 변수는 사용자의 홈 디렉토리 경로를 지정합니다. 이 환경 변수는 일반적으로 사용자가 로그인할 때 시스템에 의해 자동으로 설정됩니다. HOME 환경 변수는 사용자의 개인 설정 파일이나 데이터를 저장하는 데 사용되는 디렉토리를 가리킵니다. 예를 들어, Linux에서는 사용자의 홈 디렉토리에 .bashrc.profile 같은 쉘(shell) 설정 파일이 저장됩니다.
  • JAVA_HOME:
    JAVA_HOME 환경 변수는 Java 개발 환경(JDK)의 설치 디렉토리를 지정합니다. 이 환경 변수는 Java 개발 도구나 애플리케이션이 Java 환경을 찾는 데 사용됩니다. 예를 들어, 시스템에 여러 버전의 Java가 설치되어 있을 경우, JAVA_HOME 환경 변수를 통해 특정 버전의 Java를 선택할 수 있습니다. 또한, Maven이나 Ant와 같은 빌드 도구는 JAVA_HOME 환경 변수를 참조하여 Java 컴파일러의 위치를 찾습니다.
  • CLASSPATH:
    CLASSPATH 환경 변수는 Java 컴파일러와 런타임이 클래스 파일을 찾는 경로를 지정합니다. 이 환경 변수는 디렉토리, ZIP 파일, JAR 파일의 경로들을 세미콜론(;) 또는 콜론(:)으로 구분된 목록으로 지정합니다. CLASSPATH 환경 변수를 통해 Java 프로그램은 필요한 클래스 파일을 시스템의 어느 곳에서나 찾을 수 있습니다. 이는 프로그램의 유연성과 휴대성을 높이는 데 기여합니다.
  • USER:
    USER 환경 변수는 현재 사용자의 로그인 이름을 지정합니다. 이 환경 변수는 사용자가 로그인할 때 시스템에 의해 자동으로 설정됩니다. USER 환경 변수는 프로그램이 사용자의 신원을 파악하는 데 사용됩니다. 예를 들어, 이 환경 변수를 통해 프로그램은 사용자에게 적절한 권한을 부여하거나, 사용자 별로 다른 동작을 수행할 수 있습니다.
윈도우 11에서 사용자 동의 없이 설치된 앱 발견 경고 해제하는 법

환경 변수 설정 및 수정

환경 변수의 설정 및 수정은 운영 체제의 종류에 따라 다르며, 이를 통해 사용자는 시스템의 동작을 세밀하게 조절할 수 있습니다. 이러한 작업은 일반적으로 운영 체제의 설정 메뉴나 터미널을 통해 수행됩니다.

Windows에서의 환경 변수 설정 및 수정

Windows에서는 환경 변수 설정을 위한 별도의 도구를 제공하고 있어 이를 통해 손쉽게 환경 변수를 설정하거나 수정할 수 있습니다. Windows에서 환경 변수를 설정하거나 수정하고 싶은 경우 다음 과정을 따릅니다. Windows에서 환경 변수를 등록하거나 수정하는 방법 알아보기(링크 업데이트 예정)

  1. 시스템 속성 대화 상자의 고급 탭에서 환경 변수 버튼을 클릭하면 환경 변수를 설정할 수 있는 창이 열립니다.
  2. 이 창에서는 사용자 계정 또는 시스템 전체에 대한 환경 변수를 설정할 수 있습니다.
  3. 변수 필드에 환경 변수의 이름을, 값 필드에 해당 환경 변수의 값을 입력하면 됩니다.
  4. 이미 설정된 환경 변수를 수정하려면 해당 환경 변수를 선택하고 편집 버튼을 클릭합니다.
macOS Finder 파인더를 실행하는 방법

Unix/Linux에서의 환경 변수 설정 및 수정

Linux나 macOS와 같은 Unix계열 운영체제에서 환경 변수를 설정하거나 수정하려면 Shell의 export 명령어를 사용합니다. 예를 들어, PATH 환경 변수를 설정하려면 다음과 같이 입력합니다.

export PATH=/usr/local/bin:$PATH

위 명령어는 /usr/local/bin 디렉토리를 PATH 환경 변수의 시작 부분에 추가합니다. 이미 설정된 환경 변수의 값을 수정하려면 새 값을 입력하면 됩니다.

  • 환경 변수의 설정은 현재 Shell 세션에만 적용되어 Shell 세션을 종료하면 설정한 환경 변수도 초기화되어 사라지게 됩니다.
  • 환경 변수를 영구적으로 설정하려면 Shell의 설정 파일(.bashrc나 .bash_profile 등)에 export 명령어를 추가해야합니다. Shell 설정 파일 더 알아보기(링크 업데이트 예정)

관련글

Leave a Comment