3P by neo 19일전 | favorite | 댓글 1개

mise란 무엇인가?

  • mise는 asdf, nvm, pyenv와 유사하게 node, python, cmake, terraform 등 다양한 개발 도구를 관리하는 도구임
  • direnv와 유사하게 프로젝트 디렉토리별 환경 변수를 관리함
  • make와 유사하게 프로젝트 빌드 및 테스트에 사용되는 작업을 관리함

30초 데모

  • mise를 사용하여 node의 다양한 버전을 설치하는 방법을 보여줌
  • which node 명령어를 실행하면 실제 경로가 반환되며, 이는 shim이 아님

빠른 시작

  • mise 설치 방법:
    • $ curl https://mise.run | sh
    • $ ~/.local/bin/mise --version 명령어로 설치된 버전 확인 가능
  • 특정 버전 설치:
    • $ curl https://mise.run | MISE_VERSION=v2024.5.16 sh
    • $ ~/.local/bin/mise --version 명령어로 설치된 버전 확인 가능
  • 쉘에 mise 연결하기:
    • bash: echo 'eval "$(~/.local/bin/mise activate bash)"' >> ~/.bashrc
    • zsh: echo 'eval "$(~/.local/bin/mise activate zsh)"' >> ~/.zshrc
    • fish: echo '~/.local/bin/mise activate fish | source' >> ~/.config/fish/config.fish
  • 런타임 설치 및 글로벌 기본값 설정:
    • $ mise use --global node@20
    • $ node -v 명령어로 버전 확인 가능

전체 문서

  • mise.jdx.dev에서 전체 문서 확인 가능
Hacker News 의견
  • mise를 사용하기 시작했을 때, asdf의 단점을 보완하면서도 빠르고 덜 침입적인 셸 설정을 제공하여 만족스러웠음

    • Task Running과 Env Vars 기능이 추가되어 더욱 유용해졌음
    • 개발자가 기존 도구와의 호환성을 유지하면서도 미래 기능을 구축하는 데 많은 시간을 투자한 점이 인상적이었음
    • 최근 백엔드 기능을 통해 필요한 개발 도구를 쉽게 설치할 수 있게 되어 편리해졌음
  • JS, Ruby, Python, Java SDK 관리를 위해 Mise로 전환했으며, 만족스러웠음

    • RVM, NVM, Python 설치 도구 등을 설치할 필요가 없어 신선한 느낌을 받았음
  • 팀의 도구 체인을 통합하기 위해 mise를 사용 중이며, Docker나 Nix를 사용하지 않음

    • Docker는 여전히 서비스 실행에 사용하지만, mise의 사용자 경험이 뛰어남
    • 모든 저장소 스크립트에 자동 완성 기능이 추가되어 편리함
  • 모든 것을 하려다 보면 아무것도 제대로 하지 못할 가능성이 큼

    • 대부분의 사람들은 한 생태계의 패키징 문제를 깊이 이해하지 못함
    • 개발자들이 많은 것을 알아야 하지만, 실제로는 기존 도구를 래핑하는 것에 불과함
  • 개발자가 아니기 때문에 이러한 도구의 사용 사례를 이해하지 못함

    • asdf를 사용하여 모노레포의 모든 프로그램 버전을 관리하며, UX는 별로지만 신뢰성 있음
    • 환경 변수를 현재 셸 세션에 로드하지 않고 스크립트나 Makefile을 사용하여 필요한 변수를 로드하고 작업을 수행함
    • Make를 사용하여 디렉토리별로 반복 가능한 작은 명령어를 실행하거나 명령어를 병렬화하거나 순서대로 실행함
    • 셸 스크립트를 사용하여 Make 타겟보다 약간 더 길거나 복잡한 도구를 작성함
    • 전체 환경은 asdf만 설치하면 관리 가능하며, 모든 것이 자동화되고 버전이 고정됨
  • mise를 사용하여 Go 버전을 관리하고 있으며, 약간 혼란스럽고 문서화가 부족하지만 괜찮음

    • asdf나 유사한 도구를 사용해본 적이 없어 학습 곡선이 있을 수 있음
  • mise를 asdf 대체 도구로 사용하며 만족스러웠음

    • 동일한 기능을 제공하지만 더 빠르고 UX가 우수함
  • 1년 이상 사용하며 삶을 더 쉽게 만들어준 간단한 도구임

    • 제작자와 기여자들에게 감사함
  • mise를 GitHub Actions 워크플로우에 통합하는 방법을 고민 중임

    • mise 저장소의 워크플로우 파일을 보면 몇 가지 mise 단계를 추가한 것으로 보임
    • 워크플로우 파일을 생성할 수 있다면 더 좋을 것 같음
  • 프로젝트의 Readme를 읽고 나서 "왜?"라는 의문이 남음

    • Devbox를 사용하여 전체 Nix 생태계에 접근함