Mise란?
Mise는 여러 프로그래밍 언어 런타임의 버전을 하나의 도구로 통합 관리하는 CLI입니다. Node.js는 nvm, Python은 pyenv, Go는 gvm, Java는 SDKMAN처럼 언어별 도구를 따로 쓰던 방식을 하나의 표준화된 흐름으로 묶어줍니다.
왜 Mise인가
- 설정 파일 통합: 언어별 설정을
mise.toml 하나로 관리합니다. - 프로젝트 단위 자동 전환: global과 프로젝트별 버전을 구분해 자동으로 전환합니다.
- 환경 변수까지 관리: 런타임 버전과 환경 변수를 한 파일에서 함께 관리합니다.
- 팀 협업 친화적:
mise.toml을 저장소에 두면 동일한 환경을 쉽게 맞춥니다.
설치
macOS (Homebrew)
Windows (Chocolatey)
Linux / WSL (curl)
1
| curl https://mise.run | sh
|
셸 활성화 설정
설치한 mise를 사용하는 셸에서 활성화합니다.
macOS + zsh (Homebrew 설치 기준)
1
| echo 'eval "$(mise activate zsh)"' >> ~/.zshrc
|
Linux + bash (curl 설치 기준)
1
| echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
|
Windows
다음 경로를 PATH에 추가합니다.
1
| <homedir>\AppData\Local\mise\shims
|
기본 사용 흐름
1) 설치 가능한 버전 확인
mise ls-remote로 설치 가능한 버전을 확인할 수 있습니다.
1
| mise ls-remote python | tail -3
|
1
2
3
| 3.13.3
3.13.4
3.13.5
|
1
| mise ls-remote node | tail -3
|
1
2
3
| 24.2.0
24.3.0
24.4.1
|
2) 전역(global) 런타임 설정
전역 설정은 --global 옵션으로 지정합니다.
1
| mise use -g python@3.13
|
1
2
| mise python@3.13.5 ✓ installed
mise ~/.config/mise/config.toml tools: python@3.13.5
|
1
2
| mise node@24.4.1 ✓ installed
mise ~/.config/mise/config.toml tools: node@24.4.1
|
3) 프로젝트별 런타임 설정
프로젝트 루트에서 mise use를 실행하면 mise.toml에 저장되며, 해당 프로젝트에서만 적용됩니다.
1
2
| cd our-project
mise use node@18
|
1
2
| mise node@18.20.8 ✓ installed
mise ~/work/our-project/mise.toml tools: node@18.20.8
|
4) 적용 확인
5) 설정 파일 확인
전역 설정은 ~/.config/mise/config.toml에 기록됩니다.
1
| cat ~/.config/mise/config.toml
|
1
2
3
| [tools]
node = "24"
python = "3.13"
|
프로젝트 설정은 mise.toml에 기록됩니다.
6) 활성화된 런타임 목록
현재 활성화된 런타임 목록은 mise ls로 확인합니다.
1
2
3
4
| Tool Version Source Requested
node 18.20.8 ~/work/our-project/mise.toml 18
node 24.4.1 ~/.config/mise/config.toml 24
python 3.13.5 ~/.config/mise/config.toml 3.13
|
런타임 관리
제거
특정 버전을 더 이상 쓰지 않을 때는 mise unuse로 비활성화하고, 필요 시 삭제를 선택합니다.
1
| remove core:python@3.12.11 ? Yes No All
|
완전히 삭제하려면 다음 명령을 씁니다.
1
2
3
| mise uninstall python@3.13.5
# 또는
mise rm python@3.13.5
|
1
| mise python@3.13.5 ✓ uninstalled
|
업그레이드
mise outdated로 새로운 버전이 있는지 확인합니다.
1
2
| name requested current latest source
python 3.13 3.13.3 3.13.5 ~/.config/mise/config.toml
|
mise upgrade로 업그레이드를 진행합니다.
1
2
3
| mise upgrade
# 또는
mise up
|
1
2
| mise python@3.13.5 ✓ installed
mise uninstall python@3.13.3 ✓ remove
|
협업 환경에서의 설치
repository에 mise.toml을 커밋해 두면, clone 후 mise install로 필요한 런타임을 한 번에 설치할 수 있습니다.
1
2
| mise python@3.12.11 ✓ installed
mise node@18.20.8 ✓ installed
|
주의사항!
mise use는 global과 프로젝트 설정을 구분하므로, -g/--global 사용 여부를 항상 확인합니다.- 팀 협업 시
mise.toml을 repository에 포함하고, CI에서도 mise install을 사용합니다.
IntelliJ에서 Java SDK 자동 감지
IntelliJ 플러그인을 설치하고 mise 경로를 설정하면, Java SDK를 자동으로 감지할 수 있습니다.
플러그인 설치
JetBrains Marketplace의 Mise 플러그인을 설치합니다.
IntelliJ 설정 > mise Settings 설정창에 mise 실행 파일 경로를 지정합니다. 설정이 완료되면 프로젝트의 Java SDK 감지가 자동으로 동작합니다.
환경 변수 관리
런타임 버전과 함께 환경 변수도 관리할 수 있습니다.
환경변수 등록
mise set 명령어로 환경변수를 등록할 수 있습니다.
1
2
| mise set DB_USER=root
mise set DB_PASS=1234
|
1
2
| DB_USER=root
DB_PASS=1234
|
현재 등록된 환경 변수 확인
mise set 명령어로 현재 설정된 환경변수를 확인할 수 있습니다.
1
2
3
| key value source
DB_USER root ~/work/our-project/mise.toml
DB_PASS 1234 ~/work/our-project/mise.toml
|
환경변수 삭제
mise unset {key} 명령어로 현재 설정된 환경변수를 삭제할 수 있습니다.
환경 변수도 mise.toml에 같이 저장됩니다.
1
2
3
4
5
6
7
| [tools]
node = "18"
python = "3.12"
[env]
DB_USER = "root"
DB_PASS = "1234"
|
정리
Mise는 언어별 런타임 버전 관리 도구를 하나로 통합해 설정 파일과 명령 체계를 단순화합니다. 전역과 프로젝트별 버전을 자동 전환하고, mise.toml을 통한 팀 협업도 수월하게 만듭니다. 여러 언어를 동시에 다루는 개발 환경일수록 Mise의 장점이 크게 체감됩니다.
[출처]