머리말
다양한 프로그램을 윈도우 운영체제에 설치하다 보면 환경변수 설정이 필요한 경우가 있다. 윈도우 환경 변수를 설정하는 가이드를 어렵지 않게 찾아볼 수 있지만, 사용자 환경변수와 시스템 환경변수의 차이점을 주요하게 다루지 않는다. 본 포스팅에서는 윈도우 운영체제뿐만 아니라 리눅스 계열의 운영체제에서도 쉽게 이해할 수 있도록 각 환경변수의 차이점에 대해서 소개한다.
사용자 환경변수와 시스템 환경변수
윈도우 환경변수를 기준으로 소개하자면, 아래의 사진과 같이 사용자(Wookoa) 환경변수와 시스템 환경변수를 설정하는 화면을 확인할 수 있다. 각 영역에 동일한 변수도 존재하고 다른 변수도 존재한다. 대표적으로 Path 변수가 동일하게 존재하는 환경변수 중 하나일 텐데, 둘 중 어느 곳에 환경변수 값을 설정해야 되는지 헷갈리는 경우가 있다.
운영체제가 구동되면서 동작하는 많은 작업 중 환경변수를 메모리에 적재하는 작업을 수행한다. 메모리에 적재된 환경변수는 프로그램이 시작될 때마다 참조되어 사용하는데, 여기서 사용자 환경변수와 시스템 환경변수의 차이점이 발생한다. 먼저 운영체제가 구동되면 시스템 환경변수의 값을 메모리에 적재한 뒤, 사용자 계정으로 로그인을 하면 사용자 환경변수로 덮어쓰기(overwrite) 한다. 그렇기 때문에 사용자 환경변수와 시스템 환경변수에 동일한 변수가 존재한다면 사용자 변수가 사용된다.
그렇다 하더라도 무조건적으로 사용자 환경변수가 우선 되는 것은 아니다. 필요에 따라 적절한 환경변수를 설정하기 위해서는, 각 환경변수가 메모리에 적재되는 시점을 나누어 생각해 볼 필요가 있다.
시스템 환경변수는 운영체제가 구동되는 시점에 메모리에 적재된다. 그렇기 때문에 시스템 환경변수 값을 추가하거나 변경하게 되면 시스템을 재기동해야 된다. 사용자 환경변수는 사용자가 로그온 될 때 메모리에 적재된다. 그렇기 때문에 사용자 환경변수 값을 추가하거나 변경하게 되면 로그오프/로그온해야 된다. 이러한 동작 원리로 인해 여러 사용자가 사용하는 컴퓨터라면 각자 사용할 프로그램의 환경변수를 개별적으로 설정할 수 있게 된다.
조금 더 부연설명을 하자면, 시스템 환경변수는 일반적으로 사용자와 관계없이 구동되는 프로그램에 적용할 수 있다. 이를테면 그래픽/메인보드 드라이버나 로그온 없이 수행될 수 있는 보안 프로그램 등이 해당될 수 있다. 반대로 사용자 환경변수는 사용자 로그온이 필요한 프로그램에 적용할 수 있다. 이를테면 클라우드 드라이브나 메신저 프로그램 등이 해당될 수 있다. 이러한 동작 원리로 인해 윈도우 운영체제가 구동된 후 사용자 로그온을 수행하지 않는다면, 각 영역에 동일한 변수가 존재하더라도 시스템 변수만 메모리에 적재되어 사용된다.
꼬리말
본 포스팅에서 설명하는 환경변수 개념을 이해했다면 적절한 영역에 환경변수를 생성할 수 있다. 자신이 설치하는 프로그램이 시스템 레벨에서 수행되는지 로그온 사용자 레벨에서 수행되는지 판단 후 설정하면 된다. 물론, 혼자 사용하는 개인 컴퓨터라면 어느 영역에 설정하든 큰 의미는 없을 수 있다. 하지만 필요한 영역에 적절하게 설정된 환경변수가 조금 더 쾌적한 운영체제 환경을 만드는데 일조할 수 있을 것으로 생각된다. 각 영역별로 동작하는 환경변수에 대해 설명한 본 포스팅은 이로써 마루리를 짓도록 한다.
소중한 댓글 (0)