꿈꾸는 개발자, Front-end Developer

Trust that the dots will connect in your future.

#CSS #Dev #EJS #HTML #Hexo #JavaScript #dev #jQuery #smallTalk #번역 #삽질 #신세계 #이론 #정보처리기사

환경변수에 관하여


처음 Java를 설치할 때, Node js, 그리고 Database 등을 설치할 때

계속해서 ‘환경변수’라는 단어가 튀어나와 당황했다. 생전 처음보는 단어.
잽싸게 검색을 해보지만,

‘환경 변수(環境 變數)는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임이다.’(위키백과)

하… 전혀 대뇌 피질에 와 닿지 않는다.

순간 ‘파볼까?’라는 욕구가 들었지만, 뭔가 거대한 개념이 기다릴 것 같은 두려움,

이것은 겨우 큰 코끼리의 발가락 정도에 지나지 않을 것 같다는 느낌?

모르는 것은 모르는 상태로 잠시만 내버려두라는 ‘egoing’님의 말씀이 떠오르는 순간이다.
모르는 상태로 둔채 구글링한 사용법으로 그저 사용만 하다가 문득 관통하는 무언가가 있어 기록을 남겨본다.

환경변수는 꽤나 괴상한 이름으로 들린다.

‘절대변수’ 같은 이름이었다면 조금은 이해하기 쉬웠을까?

Java나 Node 등을 터미널에서 실행 시키려면 각각의 프로그램이 설치된 디렉토리로 이동한 뒤

해당 명령어를 입력해야 한다.

이 과정은 매우 귀찮은 작업이다.

그런데 환경변수에 Java나 Node 등이 설치된 디렉토리 경로를 입력해 놓으면

어느 디렉토리에서 명령을 하던 상관 없이 컴퓨터는 해당 디렉토리에 접근해 프로그램을 실행할 수 있다.
그러니까 ‘자신의 위치와 상관 없이 절대적으로 접근할 수 있는 변수’인 것이다.

이를 웹 어플리캐이션을 개발할 때 서버에서 이용하면 꽤나 편리한 점이 있었다.

특히 Database에 접속할 때 필요한 계정 정보들을 서버 쪽 문서에 남겨놓지 않을 수 있다.
환경변수는 process.env.변수이름 으로 접근 가능한데,

계정 정보는 서버의 환경변수에 등록해 놓고 문서에는 process.env.변수이름만 남겨놓는 것이다.

이렇게 했을 때 타인에게 자신의 문서 소스를 공개할 때 부담이 없어진다(GitHub와 같은).
물론 이 방식이 보안상 문제가 없는지에 대해서는 아직 전혀 개념이 없다…

또한 서버 환경에 따라 달라질 수 있는 변수들(접속 port라던가, 시간 등등)을 환경변수에 이용하면

로컬에서 작업할 때와 서버에서 작업할 때 코드를 수정하는 번거로움을 줄일 수도 있을 것 같다.

잠깐, 환경변수라는 이름이… 아.. 이것 때문이었나?


#이론

#이론