환경변수는 우리가 띄우는 프로세스들은 크게보면 os라는 프로그램에 의해 실행되는 자식 프로세스들이다. 여기서 환경변수는 os 입장에서 해당 프로세스를 실행시키기 위해 참조하는 변수라고 보면 된다.
즉, os에서 이 프로그램을 실행하려는데 그게 어딨는지 적혀있는(?) 변수이다. (프로그램을 찾는 기본 경로)
원래 일반적인 경우 프로그램을 설치하면, 그 프로그램이 있는 경로에서 실행해야 다. 예를 들어 VS Code를 설치했다고, 아무 폴더에서나 cmd를 열고 code라고 명령어를 입력해서 VS Code를 열 수 있으면 code라는 명령어가 뭔지 컴퓨터가 알고 있는 게 아니니까 이상하게 느껴질 수 있다. 이는 일반적으로 기본 폴더가 알고 있다. 거기서 명령어를 해석해서 실행을 해주는 것이다. 컴퓨터 어디에서나 이 명령어를 사용하도록 하려면 os에게 이 명령어는 어디에 있다(경로)는 것을 알려줘야 한다. 이 경로를 환경변수의 PATH에 추가하는 것이 컴퓨터에 어디서 명령어를 검색할지 알려주는 행동인 것이다. (윈도우에서 특정 프로그램 전역실행을 위한 작업)
(우분투에서는 리눅스 폴더 구조상 명령어가 대부분 같은 장소 ( /usr/local/bin)에 저장이 되어 따로 환경변수설정을 하지 않아도 전역실행이 된다고 한다.)
환경변수 확인 방법
1. cmd에서 set 명령어 사용(path는 path 명령어 사용)
2. 설정 -> 시스템 -> 고급 시스템 설정 -> (고급 탭의) 환경 변수 or 윈도우 검색창에 시스템 환경 변수 편집
여기서 환경변수를 편집하거나 cmd창에서 편집이 가능하다.
사용자 변수 - 로그인한 사용자에게 적용되는 환경 변수이다. 하나의 시스템 안에 A, B 두 사용자가 있을 때, A 사용자가 지정한 환경 변수는 B 사용자가 접근할 수 없고 그 반대도 마찬가지이다. 지역변수와 비슷하게 생각하면 되는 듯하다. 대부분의 경우 시스템 변수명이 같을 경우, 사용자변수가 우선시된다.
시스템 변수 - 해당 시스템을 사용하는 사용자 모두에게 동일하게 적용되는 변수이다. A, B 두 사용자 모두 하나의 같은 시스템을 쓰기 때문에 동일한 변수를 적용 받는다. 전역변수와 비슷하게 생각하면 되는 듯하다.
** 시스템을 다루지 않는 경우, 사용자 변수나 시스템 변수나 어느쪽 PATH에 편집을 해도 거의 상관이 없다. **
PATH 변수 - 사용자 변수와 시스템 변수 모두 PATH라는 변수가 있는데 이는 다른 변수들의 편집화면과 조금 다르게 되어있다. PATH 변수는 위에서 말했듯이 사용자변수가 우선시되는 것이 아니라, 시스템 변수 뒤에 사용자 변수가 붙어서 사용된다. 즉, 둘 다 이용해서 사용한다는 뜻이다. (PATH 변수는 변수 내 값들을 앞에서부터 차례로 읽어서 리턴)
예를 들어, JDK를 적용하는 경우, JDK가 설치된 경로를 환경변수 설정에 새로 만들기로 넣어주면 된다. (경로는 우클릭 -> 속성의 위치에서 확인 가능)
이러한 환경변수 설정은 보통 개발환경을 설치할때 체크박스를 체크하여 자동으로 적용되는 경우가 많아서 넘어갈 수 있다.
하지만, 기본경로가 아닌 다른곳에 설치한 경우, 여러 버전의 파이썬을 사용하는 경우 등 가끔 환경변수를 직접 설정해줘야 하는 경우가 생겨서 환경변수 PATH 경로에 대해 인지하고 있는것이 도움이 될 것 같다.
자바 JDK 환경변수 설정하기(JDK 직접설치시 이용)
jdk를 직접 다운받을 경우, cmd에서 java -version으로 버전을 확인할 수 있다.
우리만의 개발환경(기본경로가 아닌 원하는 폴더에)을 만들고싶으면 jdk 설치시 jdk, jre 2개가 나오는데 jdk만 압축하고 나머진 다 지운다.(프로그램 제거까지 해서) 그래서 원하는 폴더 안에 아까 압축한 jdk를 넣는다. 그리고 그 자리에 압축을 푼다. 실질적인 실행파일은 jdk안에 bin안에 java.exe이다.
설치파일은 자바를 특정한 폴더에 압축을 풀고 그 경로(PATH)를 잡아주는 역할을 한다. (그래서 cmd의 어느 위치에서든 java -version하면 가능했다) 근데 지웠으니까 경로(PATH)를 직접 설정해줘야 한다.
환경변수를 들어가서 시스템 변수에서 새로 만들기를 눌러주고, JAVA_HOME이라는 변수명으로 만든다.(자바 경로는 JAVA_HOME에 있다고 업계에서 이미 정의되어 있다고 한다.) JAVA_HOME은 bin이 들어있는 폴더로 잡아주고, 실질적인 위치는 Path에서 편집해서 새로만들기로 그 경로를 지정해줘야 한다. 이때 직접 찾아보기로 지정해줄 수도 있지만 아까 지정한 JAVA_HOME을 이용해서 %JAVA_HOME%\bin 같이 설정해줄 수도 있다. (변수는 %%사이에 넣어주면 된다.)
다른 JDK 버전을 써야할 경우, JAVA_HOME의 경로만 그쪽으로 바꿔주면 된다.