[깔파탄백] 1. 개발환경 구성

ARA JO·2021년 3월 22일
0
post-thumbnail

해당 포스팅은 깔끔한 파이썬 탄탄한 백엔드(송은우 지음)를 읽고 실습하며 정리한 내용입니다.

AWS EC2 Instance

Ubuntu Server 20.04 LTS 를 사용했다.

ssh를 통해 접속을 할 수 있다는 가정하에 포스팅을 작성하여 자세한 과정은 생략한다.

conda 설치

일반적으로 파이썬 가상환경에는 크게 2가지가 있다.

venv라고 하는 python3에 포함된 가상환경 기능, Conda와 같은 외부 개발 tool을 사용한 파이썬 가상환경이다.

Miniconda

conda는 파이썬 패키지 매니저와 개발환경 매니저 기능을 제공하는 개발 툴이다. (pip + venv)

콘다는 아나콘다 (데이터 분석 및 사이언스에 특화된 파이썬 배포판, numpy, Scipy 등 수학, 과학, 데이터 분석 분야의 패키지들을 포함한 패키지가 미리 설치되어 나온다)에 포함되어 있는 패키지 매니저 및 개발환경이다. 가상 환경을 관리하는 측면에서 콘다가 venv보다 편리하기 때문에 콘다를 사용한다.

콘다는 아나콘다에 포함되어 있는 툴이지만, 아나콘다 전체를 설치(많은 패키지를 포함하고 있어 용량이 크다. )하지 않고 콘다만 설치하여 사용할 수 있다.

( 데이터 사이언스/과학 관련 외부 C 라이브러리를 추가로 설치하는 것은 까다롭기 때문에 필요한 패키지가 이미 설치되어 나온 아나콘다 파이썬 배포판이 사용된다. )

콘다만 설치하기 위해서는 아나콘다가 아닌 미니콘다를 설치하면 된다.

Miniconda 설치

wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh
bash Miniconda3-latest-Linux-x86_64.sh

실행

source ~/.bashrc

설치 확인

base 환경에 들어오면, conda에 기본으로 설치된 패키지들을 확인할 수 있다.

conda list

아래 명령어로 conda 가상환경을 켜고, 끌 수 있다.

conda activate
conda deactivate  

머신을 작동시킬때마다 항상 (base)가 떠있는 것을 방지하려면?

이는 conda 자동 활성화가 default이기 때문이다.

conda의 자동활성화를 해제하려면 아래 명령어를 수행하자.

conda config --set auto_activate_base False
source ~/.bashrc

다시 활성화

conda config --set auto_activate_base True
source ~/.bashrc

Git 관련 터미널 툴

aws ubuntu instance에는 이미 git이 설치되어 있다. 없다면 git을 설치하고 진행하자.

git에 user 정보를 설정해두지 않았다면 아래처럼 정보를 입력한다.

 git config --global user.name "username"
 git config --global user.email "user-email@gmail.com"

TIG(Text-mode Interface for Git)

커밋 히스토리를 보여준다. git log와 동일하지만 git log보다 터미널 상에서 커밋 히스토리와 수정 사항들을 보기 쉽게 해준다.

sudo apt install tig

만약 아래와 같은 에러가 발생한다면 conda환경에서 명령어를 실행했기 때문일 확률이 크다.

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package tig

(base) ubuntu@~ :$ 에서 실행했는지 확인하자. base는 conda의 default 가상환경이다.

그렇다면 아래 명령어로 가상환경을 빠져나온 뒤 다시 실행한다.

conda deactivate    

Diff So Fancy

git diff 출력 화면을 보기 쉽게 출력해주는 깃 플러그인이다.

설치

우분투에서는 먼저 npm(자바 스크립트 node.js 패키지 매니저)를 설치한 후 npm을 통해 설치해야한다.

sudo apt install npm
sudo npm -g install diff-so-fancy

설정하기

https://github.com/so-fancy/diff-so-fancy 에서 그대로 복사했다!

git config --global color.ui true

git config --global color.diff-highlight.oldNormal    "red bold"
git config --global color.diff-highlight.oldHighlight "red bold 52"
git config --global color.diff-highlight.newNormal    "green bold"
git config --global color.diff-highlight.newHighlight "green bold 22"

git config --global color.diff.meta       "11"
git config --global color.diff.frag       "magenta bold"
git config --global color.diff.func       "146 bold"
git config --global color.diff.commit     "yellow bold"
git config --global color.diff.old        "red bold"
git config --global color.diff.new        "green bold"
git config --global color.diff.whitespace "red reverse"

Shell (셸)

셸은 터미널 환경에서 OS의 커널(kernel)과 사용자의 유저 스페이스(user space) 를 이어주는 인터페이스 (interface) 역할을 하는 프로그램이다.

간단히 말해 사용자의 명령어를 운영체제에 전달하여 실행되게 하고, 그 결과물을 사용자에게 전달하는 역할을 하는 프로그램이다. 인터페이스 외에도 셸 스크립트라는 셸 전용 프로그래밍 언어를 사용하며 터미널 환경에서 다양한 자동화를 실행할 수도 있다.

대표적인 셸로는 Bash(Bourne-Again Shell)가 있다. 대부분의 리눅스 기반 OS에서 기본 셸로 설치 된다. 하지만 이 외에도 다양한 셸이 존재하다. 여기서는 편리한 기능으로 인기있는 셸로 ZSH(Z Shell)을 사용한다. (필수아님)

ZSH

설치

sudo apt install zsh

Default 셸 변경

Bash -> ZSH

chsh -s 'which zsh'

https://velog.io/@tkdfo93/EC2-ubuntu-20.04-issues-shell-bash-zsh%EB%A1%9C-%EB%B3%80%EA%B2%BD%ED%95%98%EA%B8%B0

Oh My Zsh

ZSH의 설정 관리 툴. Oh My Zsh덕에 ZSH가 널리 쓰이게 되었다고 한다. ZSH의 편리한 플러그인들을 쉽게 설치하고 관리할 수 있다.

설치

sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

OMZ

설정

.zshrc 파일을 통해서 Oh My Zsh 설정을 할 수 있다.

vim ~/.zshrc

나는 아래와 같이 설정했다.

#Path to your oh-my-zsh installation
export ZSH="/home/ubuntu/.oh-my-zsh"


ZSH_THEME="agnoster"

plugins=(
        git
        python
        pip
        github
        zsh-syntax-highlighting
        history-substring-search
        )

source $ZSH/oh-my-zsh.sh

export PATH="/home/ubuntu/miniconda3/bin:$PATH"

plugins에 설치를 원하는 ZSH 테마와 플러그인들의 이름을 나열하고, 다시 시작하면 적용되어 있을 것이다. 특히 저자는 zsh-syntax-highlighting와 history-substring-search 설치를 적극 권장했다.

  • zsh-syntax-highlighting : 명령어에 색상입히기.
  • history-substring-search : 키워드 입력 후 화살표 위 방향키를 입력하면 해당 키워드가 속한 과거 실행 명령어들을 찾아준다.

zsh-syntax-highlighting는 추가적인 다운로드가 필요했다.

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ~/.oh-my-zsh/custom/plugins/zsh-syntax-highlighting

마지막 줄은 환경변수 설정 부분이다. 이를 해줘야 conda 명령어를 사용할 수 있다.

export PATH="/home/ubuntu/miniconda3/bin:$PATH"

이는 이전에 BASH 상에서는 환경변수가 설정되어 있지만 ZSH에는 없기 때문에 발생하는 문제다. ZSH에서도 따로 설정해줘야 한다. (vim ~/.bachrc 을 확인하고 복사해오자.)

그 외 ZSH 테마들과 플러그인, 기타 자세한 정보는 ohmyzsh github에서 확인할 수 있다.

적용

아래 명령어를 실행해서 적용된 모습을 확인하자!

source ~/.zshrc

Editor 및 IDE ( python )

책에서는 파이참(IDE), VS-Code(IDE), VIM(Editor), Sublime Text (Editor~IDE) 를 소개했다.

나는 Windows에서 주로 VS-Code를 사용하고 있지만, 리눅스 개발환경에 더 익숙해지기 위해서 VIM을 사용할 것이다.

VIM

설치

참고로 Ubuntu Server 20.04 LTS 인스턴스에는 기본적으로 설치되어있다.

sudo apt install vim

profile
Sin prisa pero sin pausa (서두르지 말되, 멈추지도 말라)

0개의 댓글