02 Jan 2016
게임 개발
20년 전에 첫 게임을 만들었다. 내 필명인 한날은 이 게임 이름에서 비롯된 것이다. 어설프고 재미없고 허섭했지만, 내 게임을 만들어 친구들과 내 게임 얘기를 나누었다. 내 고교 시절 생활기록부를 보니 장래 희망이 컴퓨터 프로그래머라 적혀 있었다. 당시엔 게임 개발이라는 직업이 사회에 인식되기 전이라서 편의상 게임 개발자 대신 컴퓨터 프로그래머라 적은 것인데, 20년이 지난 지금은 정말 게임 개발자가 아니라 컴퓨터 프로그래머가 되어 있다.
가끔 언제 다시 게임 업계에 돌아오냐는 안부성 질문을 받곤 한다. 게임 업계에 돌아갈 지 안 갈 지 아직은 모르겠다. 하지만 난 게임을 만들어 왔고, 앞으로도 게임을 만들 것이다.
홈페이지
20년 전에 내 홈페이지를 처음 열었다. 1997년부터는 게임 개발, 프로그래밍 등을 주제로 운영하다 1998년에 도메인을 사서 나 나름대로 브랜드를 만들고 유지하려 했다. 꾸준하진 않지만 완전히 놓지 않고 계속 운영해 온 지난 20년을 스스로 대견하게 여긴다.
나를 표현하는 익숙한 방법이 내 홈페이지 또는 블로그이다. 앞으로도 내 공간에 글을 쓸 것이다.
판
작더라도 내 판을 만들어야 한다는 생각을 해왔다. 아무리 잘하고 위협스러워도 남의 판에서는 승산이 없다. 판의 주인이 판을 엎고 새 규칙을 짜면 그만이다. 주인이 판 엎지 않게 아양 떨고 비위 맞추고, 규칙을 바꾸면 바꿀 규칙을 예측하며 그 판에 길들여지면 더이상 희망이 없다. 차라리 판의 주인이 한 짓에 삐쳐서 그 판을 떠나는 게 낫다. 내 판을 만들어 사람들이 내 판에 들어오고, 그 판을 키워야 한다. 그래야 내가 바라는 진정한 독립이 이뤄진다.
하지만 난 그동안 준비되지 않았으며 진심으로 독립을 갈망한 것이 아니었을지도 모른다는 생각을 했다. 내 판을 만들어야 한다고 주창했지만 정작 말로만 고민했을 뿐, 실행할만큼 고민하지 않았다. 여전히 남의 판에 기대어 마이너 버전 수준에서 내 몸뚱아리를 업그레이드 하려 아둥바둥거렸다.
앞으로 3~4년 뒤부터는 갈수록 내 판을 만드는 데 들이는 노력이 비싸질 것이라 예상한다. 내 판을 만드는 비용이 비싸질수록 포기할 가능성이 커지고, 포기하는 그때부터 남의 판에서 움직이는 장기말이자 노예가 될 것이다.
20년 전에 막연히 내 판을 만들어야 한다는 생각을 한 것 같다. 능력도 없으면서 게임 만들자며 사람들 꼬셔 게임개발팀을 만들었고, 하루 방문자가 몇 명이더라도 내 홈페이지에 내 글을 남기려 했다. 내 스토리를 갖고 싶었고 만들려 애썼다. 길들여지지 말자. 내 판의 20년 전 원시형을 잊지 말고 포기하지 말자.
그렇게 다짐하며 각오를 세운다.
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, …