맥에서 개발 환경 설정을 위해 환경변수를 추가했는데, 터미널을 닫거나 재부팅만 하면 설정값이 감쪽같이 사라져 매번 다시 입력하고 계신가요? 매일 이 작은 반복에 낭비되는 시간이 생각보다 많았을 겁니다.
이는 환경변수가 현재 실행 중인 쉘 세션에만 임시로 적용되기 때문입니다.
이 글에서는 맥 환경변수를 재부팅 후에도 사라지지 않도록 ~/.zshrc 파일을 활용해 영구적으로 설정하는 명확한 5단계 방법을 제시하여, 단 1분 만에 이 번거로움을 완전히 해결해 드립니다.
– 환경변수는 쉘 세션 단위로 임시 설정되며, 영구 저장을 위해 특정 설정 파일이 필요합니다.
– 90% 이상의 맥 사용자가 기본으로 쓰는 zsh 쉘의 경우, ~/.zshrc 파일에 환경변수를 영구적으로 등록할 수 있습니다.
– 설정 변경 후에는 source ~/.zshrc 명령으로 즉시 적용해야 하며, 재부팅 시 자동으로 반영됩니다.
맥 환경변수가 재부팅 후 사라진다면, ~/.zshrc 파일에 ‘export 변수명=값’ 형식으로 설정해야 영구 적용됩니다.
맥 환경변수, 왜 자꾸 사라지는 걸까?
개발을 하다 보면 PATH 변수를 추가하거나, 특정 도구의 경로를 환경변수로 설정해야 하는 경우가 잦습니다. 이때 터미널에 export VAR_NAME=/path/to/value와 같은 명령어를 입력하셨을 텐데요. 이 방식은 현재 열려 있는 터미널 세션에만 유효합니다.
쉽게 말해, 터미널 창을 닫거나 맥을 재부팅하면 이 설정은 휘발성 메모리처럼 사라져 버리는 것이죠. 이러한 임시 설정 방식은 가끔 테스트 목적으로 유용하지만, 매번 반복해야 하는 영구적인 설정에는 적합하지 않습니다. 많은 개발자가 이 지점에서 불필요한 시간과 노력을 소모하게 됩니다.
Photo by Vitaly Gariev on Pexels
.zshrc 파일 이해하기: 쉘 환경의 심장
그렇다면 환경변수를 영구적으로 저장하려면 어떻게 해야 할까요? 바로 쉘이 시작될 때마다 자동으로 읽어 들이는 설정 파일을 이용하는 것입니다. 맥OS 카탈리나(Catalina) 버전부터는 기본 쉘이 bash에서 zsh로 변경되었습니다. 현재 90% 이상의 맥 사용자가 zsh를 기본 쉘로 사용하고 있을 겁니다.
~/.zshrc 파일은 zsh 쉘이 시작될 때마다 실행되는 스크립트 파일입니다. 이 파일에 환경변수 설정을 추가해두면, 새로운 터미널을 열거나 재부팅하더라도 쉘이 시작될 때마다 자동으로 해당 변수들이 로드되어 영구적으로 유지되는 효과를 얻을 수 있습니다. 마치 여러분의 쉘 환경을 항상 원하는 상태로 유지시켜주는 개인 비서와 같습니다.
아직
bash 쉘을 사용하고 계신다면, ~/.bash_profile 또는 ~/.bashrc 파일에 동일하게 환경변수를 설정할 수 있습니다. 하지만 현대 맥 환경에서는 zsh 사용을 권장하며, 이 글에서는 zsh 기준으로 설명합니다.
맥 환경변수 영구 설정, 5단계로 따라하기
이제 지긋지긋한 환경변수 반복 설정을 끝낼 시간입니다. 아래 5단계만 따라하면 영구적인 환경변수 설정이 완료됩니다.
- 터미널 열기 — 먼저 터미널 앱을 실행합니다. Spotlight 검색(Command + Space)에서 ‘터미널’을 검색하면 쉽게 찾을 수 있습니다.
.zshrc파일 열기 — 다음 명령어를 입력하여.zshrc파일을 텍스트 편집기로 엽니다.nano나vi중 익숙한 편집기를 사용하세요.nano ~/.zshrc만약
.zshrc파일이 없다면, 위 명령어로 새로운 파일을 생성하게 됩니다.- 환경변수 추가하기 — 파일의 맨 아래로 이동하여 원하는 환경변수를
export구문으로 추가합니다. 예를 들어,MY_APP_HOME이라는 변수를 추가하려면 다음과 같이 작성합니다.export MY_APP_HOME="/Applications/MyApp"
export PATH="$PATH:/usr/local/bin/mytool"기존
PATH에 추가하는 경우,"$PATH:..."형태로 기존 경로를 유지하면서 새로운 경로를 덧붙이는 것이 중요합니다. - 파일 저장 및 닫기 —
nano편집기의 경우,Ctrl + O(저장)를 누르고Enter를 누른 다음,Ctrl + X(종료)를 눌러 편집기를 닫습니다.vi편집기의 경우,:wq를 입력하고Enter를 누릅니다. - 변경 사항 적용 — 마지막으로, 변경된
.zshrc파일을 현재 쉘 세션에 적용하기 위해 다음 명령어를 실행합니다.source ~/.zshrc이 명령을 실행하면 터미널을 다시 시작하지 않아도 즉시 새로운 환경변수가 적용됩니다.
설정 후 확인 및 발생 가능한 문제 해결
환경변수가 제대로 설정되었는지 확인하는 것은 매우 중요합니다. 터미널에서 echo $VAR_NAME 명령어를 사용하여 변수값이 올바르게 출력되는지 확인해 보세요. 예를 들어 export MY_APP_HOME="/Applications/MyApp"을 추가했다면, echo $MY_APP_HOME이라고 입력했을 때 /Applications/MyApp이 출력되어야 합니다.
또한, 터미널을 완전히 닫았다가 다시 열거나, 맥을 재부팅한 후에도 변수값이 유지되는지 확인하는 것이 좋습니다. 만약 여전히 문제가 발생한다면, .zshrc 파일에 오타가 없는지, 또는 변수 설정 구문이 올바른지 다시 한번 꼼꼼히 살펴보세요. source 명령을 빼먹는 경우도 의외로 많으니 주의가 필요합니다.
PATH 변수를 수정할 때는 기존 "$PATH" 값을 반드시 포함하여 새로운 경로를 추가해야 합니다. export PATH="/usr/local/bin/mytool"처럼 작성하면 기존의 중요한 시스템 경로가 사라져 심각한 오류가 발생할 수 있습니다. 항상 export PATH="$PATH:/new/path" 형식으로 사용하세요.
맥 환경변수가 재부팅 후 사라지는 문제는 ~/.zshrc 파일을 활용하여 간단하게 해결할 수 있습니다. export 구문으로 변수를 추가하고, source ~/.zshrc 명령으로 변경 사항을 즉시 적용하면 개발 환경을 훨씬 효율적으로 관리할 수 있습니다.
지금 바로 적용해 보세요.
- Zsh Documentation — Zsh 쉘의 공식 문서로, 다양한 설정 및 기능에 대한 상세한 정보를 제공합니다.
- Apple Developer: Shell Scripting Primer — Apple 개발자 문서를 통해 macOS 환경에서의 쉘 스크립팅 기본 개념을 이해할 수 있습니다.
동영상으로 보는 맥 환경변수 설정 후 재부팅 시 사라짐 문제 zshrc 영구 설정
글로 충분하지 않다면 관련 영상을 함께 보세요. 클릭하면 YouTube에서 검색 결과로 이동합니다.
자주 묻는 질문
Q. 맥 환경변수를 설정했는데 재부팅하거나 터미널을 닫으면 왜 사라지나요?
A. 환경변수를 터미널에 직접 `export VAR=value`와 같이 설정하면 해당 변수는 현재 터미널 세션 내에서만 유효합니다. 터미널 창을 닫거나 Mac을 재부팅하면 이 세션이 종료되면서 설정했던 변수들이 모두 사라지기 때문입니다.
Q. `~/.zshrc` 파일은 무엇이며, 환경변수를 영구적으로 설정할 때 왜 중요한가요?
A. `~/.zshrc`는 macOS의 기본 셸인 Zsh의 설정 파일입니다. 이 파일에 환경변수나 별칭(alias)을 추가하면, 새로운 터미널 세션이 시작될 때마다 Zsh가 `~/.zshrc`를 자동으로 실행하여 모든 설정을 로드합니다. 이를 통해 재부팅하거나 새 터미널을 열어도 환경변수가 영구적으로 유지됩니다.
Q. `~/.zshrc` 파일에 환경변수를 올바르게 추가하는 방법은 무엇인가요?
A. `~/.zshrc` 파일을 텍스트 편집기(예: `nano ~/.zshrc`)로 열고 파일의 아무 곳에 `export MY_VARIABLE=”my_value”` 형식으로 추가하면 됩니다. 변경 사항을 저장한 후, 현재 세션에 적용하려면 `source ~/.zshrc` 명령을 실행하거나 새 터미널 창을 열면 됩니다.
Q. `~/.zshrc` 파일을 수정하고 재부팅했는데도 환경변수가 적용되지 않는다면 어떻게 해야 하나요?
A. 먼저 `~/.zshrc` 파일에 오타가 없는지, `export` 명령어를 올바르게 사용했는지 확인해야 합니다. 때로는 `~/.zprofile`이나 `~/.zshenv`와 같은 다른 설정 파일이 `~/.zshrc` 설정을 덮어쓰거나 우선적으로 로드될 수 있으니 이들 파일의 내용도 검토해보는 것이 좋습니다. 가장 확실한 방법은 파일 수정 후 새로운 터미널 창을 열어 변수가 적용되었는지 확인하는 것입니다.
함께 읽으면 좋은 글
