1. 개요
기존에는 SDK 설치할때
IDE 또는 프레임워크 Init 프로젝트 만들때 설치하거나 직접 사이트를 들어가서 설치하는 경우가 많았다.
이런 귀찮은 부분을 해결해주는 툴을
토비님의 스프링부트 강의를 듣는 중에 SDK MAN 소개가 나와서 포스팅 해보려한다.
2. SDK MAN
SDK MAN의 공식 홈페이지에 들어가면
Unix 시스템에서 여러 소프트웨어 개발 키트를 손쉽게 관리할 수 있는 툴이라고 소개되어 있다.
버전 관리와 변경에 용이하고
apt, pip, RVM, rbenv 와 Git 과 같은 CLI(Command Line Interface)에서 영감을 받아 개발되었다고 한다.
특징은 아래 이미지와 같다.
3. Install
설치는 MacOS 기준으로 작성하였으며,
Windows 환경에서는 별도의 과정이 필요하니 공식 홈페이지 확인 바란다.
(OS 태생의 문제라 WSL 또는 Git Bash 필요)
curl -s "https://get.sdkman.io" | bash
(뭔가 레트로 게임 설치하는 느낌...)
source "$HOME/.sdkman/bin/sdkman-init.sh"
설치가 완료되면 바로 사용할 수 있는건 아니고 하단에 Source 지정 명령어를 입력하라고 나온다.
이 두 과정만 끝나면 sdk 라는 명령어를 입력할 수 있게된다.
4. USE
a. sdk version
항상 설치되면 처음에 치게되는 version 정보!
b. sdk list
현재 설치된 SDK와 default 로 설정된 버전을 확인할 수 있다.
(SDK MAN을 이번에 설치하여 기존 수동 설치한 버전 명시가 나오지 않았다.)
sdk list java
아래 JDK 인스톨 후 모습을 보면 어떤식으로 표기가 되는지 알수 있다.
c. sdk install
위 리스트에서 설치하고자 하는 버전의 Identifier를 마지막에 적어주면 설치가 진행된다.
sdk install java <identifier>
원하는 SDK를 설치하면 아래 이미지와 같이 현재 사용되는 버전과 인스톨 상태를 확인할 수 있다.
추가적으로 다른 버전을 설치하면 아래 이미지처럼 default sdk로 사용할 것인지 묻는 지문이 나온다.
IntelliJ 에서 JDK 설정하는 부분에도 SDK MAN으로 설치한 JDK가 표기 되는 것을 볼수 있다.
d. sdk use
프로젝트에서 default 버전이 아닌 특정 버전을 사용하고 싶은 경우에 사용된다.
sdk use java <identifier>
이 방법은 해당 터미널이 유지되는 경우에 버전이 바뀐 버전으로 유지되기 때문에 새로 터미널을 열면 원래 버전으로 돌아가게 된다.
5. 마무리
새로운 환경이나 SDK 버전을 업그레이드 하는 경우에 매번 찾아서 설치하고 적용해야했는데
이런 번거로운 작업을 줄여주는 툴을 이제야 알게되다니...
추가적으로 sdk install springboot 로 프로젝트 설치가 가능하다.
언어 설정이나 빌드타입 등 설정해야하는 부분은 있겠지만 여러모로 편리한 기능을 제공하는듯하다.
여러 SDK 를 지원하고 있으니 공식홈페이지 목록에서 확인해보고 본인 환경에서 사용중인 것이 있다면 사용해봐도 좋을듯하다.
Available SDKs - SDKMAN! the Software Development Kit Manager
SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems.
sdkman.io
6. 참고자료
Home - SDKMAN! the Software Development Kit Manager
SDKMAN! is a tool for managing parallel versions of multiple Software Development Kits on most Unix based systems.
sdkman.io
'DEV > Etc' 카테고리의 다른 글
[Etc] Cron Schedule 표기법 (0) | 2023.12.19 |
---|---|
[Etc] Slack에서 Github 알림 받기 (1) | 2023.12.05 |
[Etc] 셀레니움 크롬 드라이버 자동 설치(webdriver-manager) (0) | 2023.11.03 |
[Etc] WebRTC 란? (0) | 2023.08.11 |
[Flask] Flask 란? (1) | 2023.08.03 |