공통
asdf 사용법

asdf 설치 및 사용법: python, java, node 모두 이것 하나로 관리해보자

수많은 개발 도구 중에서, 버전 매니저는 꼭 설치해야 하는 도구 중 하나입니다. asdf는 언어마다 버전 매니저를 따로 설치하지 않고, 하나의 도구로 거의 모든 언어의 여러 버전 관리를 도와줍니다. 이번 포스팅에서는 asdf에 대해 알아보고, 설치하는 법을 정리해보려고 합니다.

1. 버전 매니저를 사용해야 하는 이유

처음 개발을 시작하면, 일단 최신 버전의 언어를 설치합니다. 정확히는 해당 언어의 컴파일러와 런타임이지요. 그 다음 에디터와 패키지 매니저를 설치해서 개발을 진행합니다.

그런데 이 때, 문제가 발생합니다. 내가 설치한 패키지가 최신 버전을 지원하지 않습니다. 두둔. 꼭 필요한 패키지라서 이전 버전을 설치합니다. 설치는 완료했는데, PATH 설정이 꼬여서 제대로 동작하지 않습니다. 잘 동작하던 최신 버전까지요. 개발자는 하염없이 구글링을 하지만, 해결책을 잘 모르겠습니다.

만약 버전 매니저를 먼저 설치한 후, 해당 언어를 설치했다면 위와 같은 일은 방지할 수 있었을 것입니다. 개발 환경이 복잡해지면서 언어의 버전도 중요해졌습니다. 위의 예처럼 특정 패키지가 현재 버전을 제대로 지원하지 않는 일도 참 많이 발생하고, 클라이언트의 다양한 실행 환경도 고려해야 하기 때문입니다.

다행히 언어별로 버전 매니저들이 개발되어 번거로운 작업을 대신해주고 있습니다. 하지만 언어마다 버전 매니저의 종류도, 사용 방법도 다양하다보니, 개발 시작도 하기 전에 정보 수집에 지쳐버립니다. 요즘 같이 여러 언어로 동시에 개발하는 시대에는 더 힘들죠. 그래서 asdf 프로젝트가 등장했습니다.

2. asdf란

asdf 소개 페이지

asdf (opens in a new tab)는 언어 버전 매니저들을 모아둔 플랫폼입니다. 개발자들은 asdf를 설치한 후, 자신이 사용할 언어에 해당하는 asdf 플러그인을 설치합니다. 정상적인 설치를 마치면, 어떤 언어든 하나의 API로 관리가 가능합니다. 언어마다 다른 도구, 다른 설정 그리고 다른 방법으로 사용할 필요가 없습니다.

프론트엔드는 React, 백엔드는 FastAPI 를 이용한 프로젝트를 진행한다고 예를 들어볼게요. 개발 환경 설정을 위해서 우선, Nodejs를 설치하기 위해 nvm, n, fnm, volta 중 어떤 버전 매니저를 설치할 지 고민을 시작하겠죠. n을 선택한다면, 설치, 설정, 그리고 사용 방법을 숙지하는 시간을 거쳐야 하고요.

다음은 파이썬입니다. pyenv, conda, mamba 등 똑같은 고민의 과정을 거쳐 개발환경 세팅을 진행할 것입니다.

만약, asdf를 설치했다면, Nodejs 플러그인과 파이썬 플러그인을 설치한 후, 다른 언어에서 하던대로 버전을 설정하고, 바로 개발에 뛰어들 수 있습니다.

참 쉽죠.

3. asdf의 장점

정리하자면, asdf 는 한 번 익혀두면 거의 모든 언어를 설치하고 관리할 수 있는 올인원 버전 매니저입니다.

이 뿐만이 아닙니다. asdf의 플러그인들은 대부분 커뮤니티 기반으로 유지보수가 진행되고 있어서, 다양한 개발도구들도 지원하고 있습니다. JVM 기반 개발을 위한 Gradle, Nodejs의 대항마로 떠오르는 Deno, 인프라 구축을 위한 awscli나 kubecli 등 필요한 대부분의 도구들을 플러그인으로 포함하고 있습니다.

마지막으로, asdf는 디렉토리별로 언어나 개발도구의 버전을 설정할 수 있습니다. 설정한 버전은 설정 파일로 저장되어, 팀원들과 정확히 같은 버전을 사용하도록 도와줍니다. 언어별 플러그인은 각 언어의 대표적인 설정 파일들도 지원합니다. 공통적인 .env, .envrc 혹은 특정 도구에서 사용하는 .nvmrc, .node-version, .rbenv 파일을 포함한 프로젝트일 경우, asdf의 지원을 받을 수 있습니다.

4. asdf 설치 방법

asdf는 리눅스와 맥 OS만 지원합니다. 윈도우 사용자의 경우, WSL2를 사용하여 설치할 수 있습니다.

4.1. 맥 OS에서 asdf 설치

asdf 설치를 위해 Curl, Git 이 필요합니다. 맥OS에는 기본으로 설치되는 프로그램들이지만, 혹시나 xcrun 오류 때문에 실행이 안 된다면, 이 포스트를 참고해주세요. 설치는 git을 이용하는 방법과 homebrew를 이용하는 방법이 있습니다.

Git을 이용해 설치한다면, 터미널에 다음 명령어를 입력해주세요.

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3

Homebrew를 이용해 설치한다면, 터미널에 다음 명령어를 입력합니다.

brew install asdf

2가지 방법 중 하나로 진행한 후, 마지막으로 쉘에서 잘 동작하도록 통합하는 작업이 필요합니다. 사용자의 쉘에 따라 입력할 명령어가 다르기 때문에, 공식 홈페이지 가이드 (opens in a new tab)에서 내가 설치한 조합을 찾아 해당 명령어를 입력해주세요.

아래는 저의 예시입니다. 저는 Fish shell과 Homebrew를 이용했습니다.

fish shell&homebrew 에서 asdf 설치

아래와 같이, 별다른 오류 메시지가 없으면 정상적으로 설치가 된 것입니다.

asdf 쉘 세팅 완료

이제 버전 확인 명령어를 입력해서 설치를 확인합니다. 이후 플러그인 설치부터의 과정을 보려면 섹션 5로 이동해주세요.

mac asdf 버전 확인

4.2. 윈도우에서 asdf 설치 방법

asdf 설치를 위해 WSL의 쉘을 열어줍니다.

최신 버전의 윈도우 사용자라면, WSL2를 사용할 것입니다.저는 맥 OS 패러렐즈 기반으로 윈도우를 구동중이며 현재 WSL2가 막혀 있어서, WSL 1버전으로 진행했습니다.

아직 WSL을 설치하지 않았다면 Microsoft Store: Windows Subsystem for Linux 페이지 (opens in a new tab)에서 설치 후, Microsoft Store: Ubuntu (opens in a new tab)에서 우분투를 다운로드합니다. 물론 다른 리눅스 배포판도 사용가능합니다.

설치한 우분투를 실행하면 Bash shell이 기다리고 있습니다. 아래의 명령어로 asdf를 설치합니다.

git clone https://github.com/asdf-vm/asdf.git ~/.asdf --branch v0.11.3

실행 결과: git으로 asdf 설치

완료 후에는 ~/.bashrc 파일 제일 밑에 아래 2줄을 추가합니다. 쉘에서 asdf를 사용하도록 설정하는 단계입니다.

. "$HOME/.asdf/asdf.sh"
. "$HOME/.asdf/completions/asdf.bash"

vim 에디터로 추가한 화면: asdf bash설정 추가

이제 우분투를 재실행하고, asdf 버전을 확인해봅니다.

windows asdf version 확인

5. asdf 사용 방법

asdf 사용 방법을 nodejs 플러그인 설치와 최신 버전 설치를 하며, 간단히 알아보겠습니다. 맥, 윈도우 모두 동일하게 작동하며 저는 맥에서 진행합니다.

asdf 플러그인은 Github을 통해 관리되고 있고, 설치할 수 있는 플러그인 목록은 asdf-vm/asdf-plugins repo (opens in a new tab)에서 한 눈에 확인할 수 있습니다.

nodejs 플러그인 설치 명령어는 아래와 같습니다.

asdf plugin add nodejs https://github.com/asdf-vm/asdf-nodejs.git

실행 결과: asdf node versions

플러그인 설치 후, 다운받을 수 있는 모든 nodejs 목록을 출력하니 수많은 버전이 나왔습니다. 이 중 가장 최신 버전을 설치합니다. asdf install [플러그인_이름] [버전_이름]명령어로 설치합니다. 설치 후 확인까지 한 모습입니다.

asdf nodejs 최신 버전 설치

설치한 버전을 현재 쉘에서 사용해보겠습니다.

asdf shell nodejs 결과

asdf의 명령어에 따라, 현재 디렉토리 또는 운영체제 전역에서 사용할 수 있도록 설정할 수도 있습니다.

6. 마치며

지금까지 asdf의 OS별 설치 방법과 간단한 사용법을 살펴보았습니다. 더 구체적인 사용 과정은 각 언어별로 개발 환경 설정을 다루는 포스팅에서 다시 보여드리겠습니다.

저 개인적으로 개발 도구에 대한 호기심이 많아, 제가 사용한 언어는 유명한 버전 매니저를 다 사용해 본 것 같습니다. 원래 하나로 다 된다는 도구는 잘 신뢰하지 않는데, asdf는 아직까지 문제 없이 아주 편하게 사용중입니다. 평소 다양한 플랫폼을 여러 언어로 개발하는 분들께 강력하게 추천합니다.

copyright for asdf install

© 2023 All rights reserved.