내 개발 환경.
18 Dec 2015프로그래밍 입문자, 또는 새로 프로그래밍이나 도구에 입문하는 사람과 얘기를 나누다 보면 다른 사람, 기왕이면 그 언어나 도구에 익숙한 사람이 사용하는 개발 환경을 무척 궁금해 한다는 걸 느꼈다. 그냥 공식 홈페이지에 있는 걸 내려 받아서 설치하면 되는 거 아닌가? 생각하며 관련 자료를 찾아보니 사람들은 공식 홈페이지에 소개되지 않은 방법으로 개발 환경을 꾸린다는 걸 발견하면 더 혼란이 빠져서 아예 입문 자체를 부담스러워 하는 사람도 많다.
그래서 내가 쓰는 개발 환경을 정리해 본다.
공통 환경
PC
- Macbook Pro 13인치 (2015년 early)
- Macbook Pro 15인치 (2014년 early)
- iMac 20인치 (2011년 mid)
운영체제
- 주 환경 : OS X. 내가 주로 활동하는 분야는 윈도우 보다는 리눅스나 OS X에서 개발하기 더 편하다.
- 보조 환경 : Ubuntu. 주로 실 서버에 올리기 전에 시험 동작하려고 사용하거나 라즈베리 파이용 뭔가를 만들 때 쓰는 환경이지만, 집에 있는 리눅스 박스가 저사양이라서 평소엔 잘 안 쓴다.
- 쉘(shell) : bash를 주로 써왔지만, 2015년 11월부터 zsh을 쓰고 있다. oh-my-zsh을 쓰고 설정은 기본값으로 쓰고 있으며, plugin만 git, virtualenv, virtualenvwrapper를 설정했다.
- 터미널은 OS X에 기본 내장된 것을 사용한다.
- 맥 패키지는 Homebrew로 관리한다.
- 파일, 디렉터리 구조는 tree을 쓴다. OS X는
brew install tree
. - 원격에 있는 파일은 wget로 받는다. OS X는
brew install wget
.
글꼴
Hack을 사용한다.
VCS client
- git : 기본 클라이언트를 터미널에서 쓴다.
- sourcetree : 커밋이 복잡하게 꼬였을 때 쓰지만, 느려서 가끔 쓴다.
- joe :
.gitignore
파일을 다룰 때 쓴다.
Python
에디터
- PyCharm : 2015년 11월부터 쓰고 있다. 아직 익숙하지 않다.
- Sublime text 3 : 평소에 주로 써왔는데, 최근엔 조금씩 빈도를 줄이고 있다.
- SublimeLinter + Python Flake8 lint : 코드 검사기는 Flake8을 SublimeLinter에 연동해 쓴다.
- VIM : 급히 간단히 편집할 때 쓴다.
Python 관련
- Python 3, 2.7 : 최근엔 3 버전으로 시작하는 프로젝트가 늘고 있지만, 아직은 2.7로 동작하는 게 더 많다.
- PyPy : 실 사용 환경에서 사용하고 있긴 한데, 여전히 제한되게 쓰고 있다.
- virtualenv/virtualenvwrapper : 주로 사용하는 Python 환경 격리 도구.
Golang
에디터
- IntelliJ IDEA : 2015년 11월부터 쓰고 있다. 느려서 답답한데, 편하긴 하다. golang 정식 plugin이 출시되었다.
- Sublime text 3
- plugin : Goimports, GoSublime, SublimeLinter-contrib-golint
문서와 자료
편집
- markdown : 로컬에서 문서를 작성하는 경우엔 대부분 markdown으로 작성한다. 편집은 Atom으로 하는데, 한글이 많으면 어느 에디터든 무척 느려지기 때문에 코딩 할 땐 사용하지 않는 Atom을 markdown 문서 편집용으로 쓴다.
- google drive : 다른 사람과 협업하거나 공유해야 하는 경우에 사용한다. 주로 google docs, spreadsheet.
- dropbox paper : 베타판부터 쓰고 있긴 한데, dropbox의 최근 선택과 집중 행보를 보자니 오래 유지 안 하고 종료할 것 같아서 이젠 별로 사용하지 않는다.
자료 관리
- 웹 스크래핑 : 모바일 환경에선 pocket, PC 환경에선 pocket과 devonthink로 스크랩한다. evernote + clearly를 썼는데, 갈수록 구려져서 안 쓴다.
- PDF : devonthink에 담아서 관리하며, dropbox에도 올려서 모바일 환경에서 접근한다.
- bookmark : 구글 크롬에 북마크한다. 구글 계정 동기화를 해놔서 내가 사용하는 장비 모두와 북마크 동기화가 늘 되어 있다.
이외
- Google chrome : 느리고 뚱뚱하지만, 구글 계정 연동이 편해서 여전히 쓴다.
- 이외 도구는 가장 기본 설정대로 사용한다.
- R Studio, Apache spark, React, Jupyter, …