원격 코드 개발환경 구축
우분투 20.04 LTS 환경인 원격 컴퓨터에 코딩환경을 구축하고, VSCode를 통해 원격 환경에서 코드 개발을 해보도록 하겠습니다.
원격 접속
Remote Development 설치
우선 vscode extentions에서 Remote Development를 설치합니다.
Remote - WSL, Remote - SSH, Remote - Containers 등이 함께 설치됩니다.
원격 접속
F1
을 누르고 Remote-SSH: Connect to Host...
를 클릭합니다.
+ Add New SSH Host...
를 클릭합니다.
ssh 원격접속을 위한 명령어를 입력합니다. 터미널에서 ssh 연결하는 명령어와 같습니다.
Remote Development 설치
원격환경에 접속하면 필요한 extenstions를 설치해줍니다.
extension이 로컬에 설치되어 있지만 원격환경에는 설치되어 있지 않다면 다음과 같이 extenstion 아래에 Install in SSH: server...
라고 뜹니다.
JAVA 환경 설정
JDK 설치
apt 업데이트
win + R `
을 눌러 터미널을 열고 ssh로 원격 접속 후 apt를 업데이트 해주세요.
$ sudo apt update && sudo apt upgrade -y
jdk 설치
원하는 자바 버전을 설치합니다. 11버전
과 17버전
을 설치하도록 하겠습니다.
$ sudo apt install openjdk-11-jdk
$ sudo apt install openjdk-17-jdk
경로(path) 설정
bashrc를 nano 에디터로 열고 맨 아래에 JAVA_HOME
경로를 추가해줍시다.
$ sudo nano ~/.bashrc
...
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
/usr/bin/java
는 자바 설치시 추가되는 심볼릭 링크이며, /etc/alternatives/java
를 가리키고 있습니다.
/etc/alternatives/java
는 설치된 자바 버전 중 하나를 가리키고 있습니다.
sed "s:bin/java::"
부분은 경로의 마지막 bin/java
를 제거하는 명령어입니다.
변경 사항 적용
bashrc의 변경 사항을 적용하기 위해 다음 명령어를 통해 bashrc를 실행해주세요.
$ source ~/.bashrc
버전 변경
우분투에서 어플리케이션의 버전은 update-alternatives
를 통해 관리됩니다.
아래 그림처럼 java와 javac의 버전을 update-alternatives
명령어를 통해 변경합니다.
해당 명령어는 /etc/alternatives/java
가 가리키는 경로를 변경함으로써 버전을 동적으로 변경할 수 있도록 해줍니다.
현재 JDK 버전 확인
$ update-alternatives --list java
설치된 JDK 버전 확인
$ update-alternatives --list java
버전 변경
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
Spring Boot 개발 환경
VSCode에서 Spring Boot 개발환경을 구축해보겠습니다.
Extension 설치
VSCode에서 다음 Extension을 설치합니다.
- Extension Pack for Java
- Spring Boot Extension Pack
- Lombok Annotations Support for VS Code
- Gradle for Java
프로젝트 생성
Ctrl + Shift + P
를 눌러 커맨드 팔레트(Command palette)를 열고 Spring initalizr
을 입력후 선택합니다. Gradle
또는 Maven
프로젝트를 선택할 수 있습니다.
그 후 순서대로 스프링 부트 버전, 프로젝트 언어, 그룹 ID, 아티팩트 ID, 패키징 타입, 자바 버전, 의존성 패키지, 루트 경로를 지정합니다.
프로젝트 선택
스프링 부트 버전 선택
프로젝트 언어 선택
그룹 ID 설정
아티팩트 ID 설정
패키징 타입 선택
자바 버전 선택
의존성 패키지 선택
루트 경로 설정
디버깅
디버깅 환경에서 원격 포트로 연결하기 위해서는 포트를 설정해주어야 합니다. 터미널창 상단의 PORTS
탭을 클릭하세요.
add
를 눌러 포트를 추가하면 로컬에서 원격 포트로 접근이 가능해집니다.
DevTools 사용
디버깅 환경에서 뷰를 동적으로 확인하기 위해서는 DevTools 패키지를 설치해야 합니다.
Gradle 의존성에 다음 패키지를 추가하세요.
compileOnly 'org.springframework.boot:spring-boot-devtools'
다음으로 터미널에서 LiveReloadServer 포트를 확인하고 Port에 추가하여 해당 포트를 로컬에서 접근가능하도록 해주세요.
크롬에서 Extension인 RemoteLiveReload를 설치해주세요.
이제 톰캣 포트로 접속하여 html 파일을 수정하면 실시간으로 내용이 반영되는 것을 확인할 수 있습니다.
Phython 환경 설정
아나콘다(Anaconda) 설치
아나콘다 설치
아나콘다 아카이브 또는 아나콘다 다운로드 페이지에 접속하여 OS 환경에 맞는 버전의 설치 경로를 확인합니다.
저는 원격 인스턴스가 ARM 64비트 이므로 리눅스 arm64 버전을 설치하도록 하겠습니다.
아나콘다 인스톨러 다운로드
$ wget https://repo.anaconda.com/archive/Anaconda3-2022.05-Linux-aarch64.sh
다운받은 파일을 실행하여 아나콘다를 설치합니다.
아나콘다 설치
$ bash Anaconda3-2022.05-Linux-aarch64.sh
라이센스 동의 문구가 나오는데 Enter
를 계속 눌러 쭉 내려간 다음 마지막에 동의여부를 물으면 yes
를 입력하세요.
환경변수 등록
설치가 완료되면 환경변수를 할 것인지 묻는 문구가 나오는데 yes
를 입력하여 환경변수를 등록해주세요.
no
를 입력했다면 bashrc에 환경변수를 직접 등록해야합니다.
$ sudo nano ~/.bashrc
...
export PATH=$HOME/anaconda3/bin:$PATH
콘다 환경 비활성화
환경변수를 설정하면 쉘에 접속할때마다 콘다의 기본환경이 활성화됩니다. 이를 해제하기 위해 다음 명령어를 입력합니다.
$ conda config --set auto_activate_base false
변경 사항 적용
bashrc의 변경 사항을 적용하기 위해 다음 명령어를 통해 bashrc를 실행해주세요.
$ source ~/.bashrc
인스톨러 제거
다음 명령어를 통해 다운받은 인스톨러를 제거해 주세요.
$ rm Anaconda3*
가상환경 설정
가상환경(virtualenv)은 여러 파이썬 프로젝트가 하나의 컴퓨터에서 충돌을 일으키지 않고 존재할 수 있도록 해주는 독립된 환경을 말합니다.
각 프로그램별로 완전히 독립적인 가상의 환경을 만들어서 프로그램별로 라이브러리 모듈 등의 버전을 별도로 지정할 수 있습니다.
가상환경 생성
가상환경은 다음 명령어를 통해 생성할 수 있습니다.
$ conda create -n <가상환경 이름> python=<파이썬 버전> <의존성 패키지 목록>
가상환경 생성 예제
$ conda create -n ml python=3.9 anaconda
가상환경 활성화
가상환경은 다음 명령어를 통해 활성화 할 수 있습니다.
$ conda activate <가상환경 이름>
가상환경 생성 예제
$ conda activate ml
가상환경 목록 확인
가상환경의 목록은 다음 명령어를 통해 확인할 수 있습니다.
$ conda env list
가상환경 생성
가상환경은 다음 명령어를 통해 생성할 수 있습니다.
$ conda env remove -n <가상환경 이름>
가상환경 생성 예제
$ conda env remove -n ml --all
패키지 설정
패키지 설치
패키지는 다음 명령어를 통해 설치할 수 있습니다.
$ conda install <패키지 이름>
패키지 설치 예제
$ conda install tensorflow
패키지 제거
패키지는 다음 명령어를 통해 제거할 수 있습니다.
$ conda remove <패키지 이름>
패키지 제거 예제
$ conda remove tensorflow
패키지 업데이트
패키지는 다음 명령어를 통해 업데이트할 수 있습니다.
$ conda update <패키지 이름>
패키지 업데이트 예제
$ conda update tensorflow
전체 패키지의 업데이트는 다음과 같습니다.
$ conda update --all
패키지 정리
다양한 conda 환경을 생성하고 패키지를 설치 / 삭제하다 보면 불필요한 캐시가 쌓여 용량에 문제가 발생할 수 있습니다.
이때 다음 명령어를 통해 캐시를 제거할 수 있습니다.
$ conda clean -p
아나콘다 제거
아나콘다의 제거는 설치 디렉토리를 제거해주면 됩니다.
$ rm -rf ~/anaconda3
그런다음 bashrc를 열고 아나콘다 환경변수를 지웁니다.
$ sudo nano ~/.bashrc
...
(환경변수 제거)
마지막으로 숨겨진 파일을 제거합니다.
$ rm -rf ~/.condarc ~/.conda ~/.continuum
NodeJS 환경 설정
NVM 설치
NodeJS는 apt를 통해 설치할 수도 있지만 다양한 버전을 관리하기 위해서 NVM(Node Version Manager)
을 통해 설치하도록 하겠습니다.
NVM Github로 이동하여 버전을 확인하고 curl
이나 wget
을 통해 인스톨러를 설치합니다.
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
$ wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
설치가 완료되면 bashrc의 변경 사항을 적용하기 위해 다음 명령어를 통해 bashrc를 실행해주세요.
$ source ~/.bashrc
Node.js 설치
NodeJS의 설치는 NVM의 다음 명령어를 통해 설치할 수 있습니다.
$ nvm install <노드 버전>
각종 버전 설치 방법
$ nvm install node # 최신 버전 설치
$ nvm install --lts # 최신 LTS 버전 설치
$ nvm install 16.14.0 # 특정 버전 설치
$ nvm install 16 # 특정 버전 16의 최신 릴리즈 설치
버전 선택
설치된 노드의 버전은 NVM의 다음 명령어를 통해 확인 가능합니다.
$ nvm ls
기본 노드 버전의 선택은 다음과 같습니다.
$ nvm alias default <노드 버전>
일시적인 버전의 선택은 다음과 같습니다.
$ nvm use <노드 버전>
이 경우 터미널이 종료되면 다시 기본 버전으로 돌아갑니다.