Native Visual Studio Code#

https://github.com/comafire/skp_n4e_vscode

VSCode (https://code.visualstudio.com/)는 최근 각광 받고 있는 코드 에이터 입니다. 다양한 개발 언어와 편리성을 제공합니다. 리눅스 사용시에 주로 SSH 터미널과 Vim 을 이용한 파일 편집을 주로 하지만, VSCode 를 Code-Server (https://github.com/cdr/code-server) 라는 툴을 이용하여 웹 상으로 제공할 수 있으므로, 이를 이용하면 좀 더 편리하게 작업들을 수행할 수 있어 주로 사용합니다.

하지만, 현재까지는 툴에 접속하기 위한 방식이 보안적으로 충분히 안전하지 않기 때문에 로컬 네트워크 상에서 사용하는 것을 추천합니다.

만약, 외부에서 접속하여 사용하고 싶다면 VPN 또는 SSH Forwarding을 이용하는 것을 추천합니다.

위 방법을 사용할 수 없고, 외부로 오픈해야 한다면 최소한 HTTPS 프로토콜을 사용하여 통신 암호화를 하고, SSH로 접속 후 기동 하였다가 작업 후에는 중지 시켜놓는 것을 추천합니다. HTTPS 를 적용하기 위해서는 traefik (https://comafire.github.io/dataplatform/skp_n4e_traefik.html) 을 이용한 방식을 참조하세요.

설치#

먼저, SKP2를 사용하기 위한 기본 설치를 아래 링크를 통해 진행합니다.

https://comafire.github.io/dataplatform/skp.html

skp_n4e_vscode 프로젝트를 다운받아 아래 순서대로 설치합니다.

> cd ~/skp
> git clone https://github.com/comafire/skp_n4e_vscode.git
> cd skp_n4e_vscode

이제 .envrc.template 파일을 복사해 자신의 환경에 맞게 환경 변수들을 수정해 줍니다.

# BASE (주의: 환경 변수의 기준 값으로 변수 값 내에 다른 환경 변수를 참조하면 안됨)
export SKP_USER="skp"
export SKP_USERID=$(id -u $SKP_USER)
export SKP_USER_HOME="/home/skp"
export SKP_HOME="/home/skp/skp"

# LOCALE
export LOCALE="ko_KR.UTF-8" # or "en_US.UTF-8"

# PYTHON
export PYENV_PYVER="3.8.9"
export PYENV_VENV="skp-n4e-vscode"
export PATH="$HOME/.pyenv/bin:${PATH}"
eval "$(pyenv init --path)"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
export PYENV_VIRTUALENV_DISABLE_PROMPT=1
pyenv activate ${PYENV_VENV} 

# NODEJS - N
export N_PREFIX="${SKP_USER_HOME}/n"; [[ :$PATH: == *":$N_PREFIX/bin:"* ]] || PATH+=":$N_PREFIX/bin"  # Added by n-install (see http://git.io/n-install-repo).

# VSCODE
export VSCODE_HOME="${SKP_HOME}/skp_n4e_vscode"
export VSCODE_NAME="skp-n4e-vscode"
export VSCODE_VER="3.10.2"
export VSCODE_HOST="0.0.0.0"
export VSCODE_PORT="5010"

# SECRET
. ./.secret

다음으로 .secret.template 파일을 .secret 이름으로 복사하고 사용할 암호를 수정해 줍니다. 접근권한을 600 으로 설정하여 다른 사용자가 해당 파일에 접근할 수 없도록 설정합니다.

# VSCODE
export VSCODE_PASSWD="YOUR_PASSWORD"

이제 설정된 환경 변수를 이용하여 vscode 를 설치 및 기동 할 수 있습니다.

> direnv allow
> pyenv install $PYENV_PYVER
> pyenv virtualenv $PYENV_PYVER $PYENV_VENV
> pyenv virtualenvs
> direnv allow
> pip install --upgrade pip 
> pip install setuptools invoke wheel

> ./bin/skp.sh -l
Available tasks:

  vscode.install
  vscode.restart
  vscode.start
  vscode.stop
  
> ./bin/skp.sh vscode.install
> ./bin/skp.sh vscode.start