35
NRISE 개발 환경 김문수

2014.04.24.nrise 개발환경

Embed Size (px)

Citation preview

NRISE 개발 환경김문수

개발할 때 사용하는 여러가지 도구들

우리가 사용해 본 도구들을 소개합니다.

• 지난 3년간 개발을 진행하면서 다양한 도구를 사용해 보았습니다.

• 또한 다양한 개발 방법론도 적용해 볼 수 있었습니다.

• 예전에 제 블로그에 간단히 정리해 본 적이 있습니다.

• http://dalky.tumblr.com/post/44126023727

• http://dalky.tumblr.com/post/43957670684

Desktop

우리는 Mac을 사용합니다.

• *nix 친화적인 개발환경이 너무나도 매력적입니다.

• 그럼에도 불구하고 약간의 노력으로 윈도우 개발환경도 구성 가능합니다.

• Mac 자체만으로 충분히 개발/테스트 환경을 구축할 수 있습니다.

• 윈도우보다 훨씬 많은 개발 도구 및 라이브러리들을 지원합니다.

• brew!!!!!!!!!!

Language

우리는 사용하는 언어에 제한을 두지 않습니다.

• rust, go, erlang, coffeescript, sass, less, scala, groovy…

• 한 가지 언어로 다양한 문제를 푸는 것도 나쁘지 않지만

• 다양한 언어로 문제를 빨리 해결하는 것이 좋은 선택이라 생각합니다.

• 수많은 언어를 모두 익힐 수는 없겠지만

• 분명한 것은 도움이 된다는 것입니다. ^^

가장 많이 사용하는 언어는?

우리는 파이썬을 가장 많이 사용합니다.

• 파이썬의 장점을 한 두가지로 설명할 수 없습니다.

• 간결하고 명료한 문법, 너무나도 뛰어난 생산성

• 수많은 라이브러리와 엄청나게 활성화된 개발자 커뮤니티

• >>> import this

• “Life is too short, you need Python.”

일화를 하나 소개 합니다.

난데없이 QRCode 를 만들랍니다.

헐???;;;

• 구글에 “python qrcode” 로 검색을 해서

• qrcode 생성기가 있음을 확인하고,

• 설치한 후에,

• 예제 코드 3줄을 실행해 보니 도합 5분이 걸리네요.

• 풀고자 하는 문제 앞에 python 을 붙여서 검색해 보세요.

시ㅋ연ㅋ

Q: "Is C++ better than Python?" A: "If you have to ask, learn Python."

- Guido van Rossumhttps://twitter.com/gvanrossum/status/468761358784151552

Editor

우리는 SublimeText2 를 사용합니다.

• 놀라운 기능과 성능을 자랑하는 엄청나게 뛰어난 에디터입니다.

• 수많은 이용자들이 만든 수많은 플러그인들이 존재합니다.

• 아직도 안쓰시나요? 얼른 설치하세요!

최근에는 atom 도 기웃거리고 있습니다.

• github 에서 최근에 만든 오픈소스 에디터입니다.

• 얼핏 sublimetext2 와 비슷하게 생겼는데…좋은 대안이 될 수 있습니다.

• https://github.com/atom/atom

• 아직도 안쓰시나요? 얼른 설치하세요!

PyCharm 은 정말 이름처럼 매력적입니다.

• 믿고 쓰는 JetBrains 에서 만든 Python 개발용 IDE 입니다.

• 말 그대로 Python 기반 개발을 진행할 때 사용하기 정말 좋습니다.

• Startup Plan 으로 50% 할인가로 구매하여 팀원들에게 제공했는데

• 다만 저의 경우 Python 코딩은 vi 로 합니다. ㅡㅡ

Version Control System

반드시 DVCS 를 사용해야 합니다.

DVCS 는 아주 많은 장점을 가지고 있습니다.

• 중앙서버에 의존하지 않기 때문에 어디서든지 커밋을 할 수 있습니다.

• 마찬가지 이유로 DVCS 는 CVCS 대비 아주 속도가 빠릅니다.

• 대부분의 DVCS 는 아주 뛰어난 Branching model 을 지원합니다.

• 위와 같은 이유로 아주 유연하게 소스코드를 관리할 수 있습니다.

FOSSIL 은 아주 재미있는 DVCS 입니다.

• www.fossil-scm.org

• SQLite 를 만든 drh 가 SQLite 소스코드를 관리하려고 만들었습니다(!).

• 실행 파일 하나에 서버, ITS, 위키, DVCS 가 모두 내장되어 있습니다.

• 당연한 것이겠지만 저장소 엔진으로 SQLite 를 이용합니다.

• 심플한 all-in-one, 개인용으로는 아주 괜찮습니다.

결국엔 git 이 끝판왕입니다.• 이러니 저러니 해도 결국 git 을 사용하게 되었습니다.

• 리누스 토발즈가 리눅스를 만들지 않았더라도 git 때문에 비슷한 유명세를 얻었을 것이라고 말하는 사람들이 있습니다.

• 하지만 리누스 토발즈는 리눅스 커널 소스 관리 때문에 git 을 만들었죠…ㅋ

• 프로젝트 디렉토리를 생성한 후, 터미널에 한 줄만 입력하면 됩니다.

• http://git-scm.com/book/ko/

• http://dogfeet.github.io/progit/progit.ko.pdf

다양한 git-server 가 있습니다.

GitHub 는 모두에게 추천할 만한 서비스입니다.

• 가장 쉽고 빠르게 git 을 접할 수 있습니다.

• 단순하면서도 뛰어난 ITS 도 함께 지원됩니다.

• private repository 생성을 하려면 돈을 내야 해서 당시 공짜를 찾던 저는…

• 이런 놈들도 있습니다 : https://github.com/frabcus/house/

• 왠만하면 모든 분들에게 추천합니다.

gitolite 는 돈 없고 시간 많은 사람들에게 아주 매력적입니다.

• perl 로 만들어진 오픈소스 git 인증 라이브러리입니다.

• 예전엔 설치 절차가 뭣 같았는데 요새는 한글로 번역된 문서도 있네요.

• 기능 자체는 아주 좋습니다만 오로지 ssh 인증서 인증밖에 없습니다.

• 자체 repository 서버를 구축하고 싶은데 돈이 없을 때 선택하시면 됩니다.

• 요약 : 제한적으로 사용하기 좋습니다.

Stash 는 다 좋은데 그놈의 가격이 문제입니다.• JIRA 로 유명한 Atlassian 에서 만든 git 서버입니다.

• 다양한 방법의 인증을 지원하고, 관리 역시 GUI 기반이라 너무나도 편합니다.

• 정말 괜찮은데 가격이 미쳤습니다.

• 10명 라이센스가 10$, 25명 라이센스가 1,800$ ?!!!

• 어쨌거나 우리는 현재 Stash 를 사용하고 있습니다.

• 요약 : 역시 자본주의 힘은 놀랍습니다.

Issue Tracking System

우리는 PMS 로써 Basecamp 를 사용합니다.

• 아주 단순한 기능을 갖추고 있습니다.

• 그러면서 또 있을 것은 다 있는 희한한 서비스입니다.

• 주로 외부업체와의 프로젝트 진행 시에 Basecamp 를 이용합니다.

우리는 꽤 오랫동안 Redmine 을 이용했습니다.

• RoR 기반의 오픈소스 ITS 입니다.

• 왠만한 기능은 다 가지고 있는 아주 좋은 툴입니다.

• 문득 JIRA 가 써보고 싶어져서 눈이 뒤집히는 바람에 버렸습니다.

• 지금은 꽤나 후회하고 있습니다.

JIRA 는 기능이 너무 많아서 탈입니다.

• 한 때 Atlassian 의 제품들로 개발 공정을 싹 깔아본 적이 있습니다.

• JIRA - Crucible - Stash 로 이어지는 개발 프로세스를 만들어 보았는데,

• 그다지 효율적이지도 않았고, 무엇보다 애자일 하지 않았습니다.

• 개발팀 규모에 비해 너무 과한 툴이었기 때문이었을까요? 아닌 것 같아요.

Trello 는 전시성이 해결되어야 합니다.

• 스탠드 보드를 디지털로 옮긴 센스는 정말 뛰어납니다.

• 정말 다양한 용도로 사용해 보았습니다. 대부분의 경우 좋습니다만,

• 결정적으로 전시성이라는 문제가 있습니다. 한 명이라도 안보면 끝입니다.

• 프로젝터와, 프로젝터로 쏠 수 있는 큰 벽이 있으면 참 좋을 것 같습니다. ㅋ…

결국 우리는 스탠드 보드를 선택하였습니다.

• 포스트 잇에 휘갈겨 우리가 정한 위치의 벽에 붙입니다.

• 포스트 잇의 색으로 프로젝트를 구분하는 룰만 있습니다.

• 지나가는 사람들이 구경합니다. 우리도 구경합니다.

• 이것으로 충분히 만족합니다.

QnA

감사합니다.