카테고리 보관물: open source

OS X 에서 NTFS 쓰기. FUSE for OS X, 그리고 NTFS-3G

얼마전에 티켓몬스터에서 1TB 외장하드 (LETO사 제품, USB3.0 지원) 를 79,900원 이라는 저렴한 가격에 팔길래 냅다 구입했다.

제품은 잘 받았는데, 외장하드 포맷을 하면서 고민이 시작됐다.

OS X 에서는 Mac OS 확장 (저널링) 포맷을 사용하는데, Windows 계열과 TV 에서 지원하지 않는 방식이라 오직 맥에서만 사용가능하다.
나는 OS X, Windows 계열, 그리고 TV 세군데에서 모두 사용을 하기를 원했다.

그렇다면 Mac OS 확장 포맷은 탈락.

그 다음에 선택할 수 있는 방식이 FAT32 방식인데 OS X, Windows, TV 모두 사용할 수 있지만, 아쉽게도 4GB 가 넘는 파일은 저장할 수 없다.
요즘 동영상 추세가 4GB 를 넘어 5GB 넘는 파일도 넘는 걸 감안하면, 역시 탈락. -_-;

그리고 고민하던 게 exFAT 방식인데 OS X, Windows 7 이상 (XP 에서는 별도의 업데이트가 필요하다고 한다) 에서는 잘 된다고 하는데, TV 에서는 인식이 되지 않았다. 그래서 탈락.

결국 남은 건 NTFS 방식인데 OS X 에서는 기본적으로 NTFS 포맷은 읽기만 되고, 쓰기가 되지 않는다.
유료 프로그램을 사용하면, NTFS 에서도 쓰기가 가능하지만, 윈도에서는 무료인데 OS X 에서는 유료로 쓰기를 해야한다는 게 좀 아쉽다.

그래서 찾아보다 보니, 좋은 오픈소스소프트웨어가 있어 소개해 둔다.

OS X 에서 NTFS 쓰기 ( 참고로 나는, OS X 10.8.3 환경이었다. )

1. FUSE for OS X (http://osxfuse.github.io/) 설치 – OSXFUSE 2.6.0 (2013.6.17) download
(설치시 기본적으로는 체크되어 있지 않은 MacFUSE compatibility layer 도 직접 체크해서 설치해야 한다)
2. NTFS-3G for OS X 설치 – NTFS-3G (2010.10.2)download
NTFS-3G 설치시 사용자화 (Customize) 버튼을 눌러서 “Installation Type” 에서 “MacFUSE” 옵션을 체크해제 해야 한다.
추가 설명 및 uninstall은 링크 참조
3.NTFS 외장하드 인식시에 귀찮게 뜨는 오류 메시지를 없애기 위해서는, fuse_wait 를 설치하자. https://github.com/bfleischer/fuse_wait/downloads

그런대로 쓸만해졌다. (그렇지만, fuse_wait 을 설치하고도 간혹 NTFS 외장하드를 연결해제할 때 timeout 메시지가 뜨기는 뜬다.)

Advertisements
태그 지정됨 ,

Homebrew 로 OS X 패키지 관리하기

OS X 은 기본적으로 wget 명령을 내장하고 있지 않다.

물론 curl 로 옵션을 이용해서 파일 (바이너리) 다운로드가 가능하지만, 그외에도 Apple 에서 기본 제공하지 않는 패키지들이 필요할 때가 있다.

하나씩 다운받아 설치할 수도 있겠지만, 이를 편하게 관리할 수 있는 패키지 관리자가 있어 소개한다.

The missing package manager for OS X (OS X 용 패키지 관리자) – Homebrew

사실은 Macports 를 설치하려고 검색하다가, 우연히 Homebrew를 알게 되었고 좀 더 자세히 살펴보다 보니 Macports 의 단점을 보완하고, 훨씬 장점이 많다는 걸 알게 되었다.

참조 : 잘가 macports. 반갑습니다. homebrew.

설치방법은 매우 간단하다.

터미널에서,

ruby -e "$(curl -fsSL https:⁄⁄raw.github.com/mxcl/homebrew/go)"

명령 한방이면 설치 끝.

다만, 정상 작동을 위해서는 Xcode 용 Command Line Tools 가 설치되어 있어야 한다. Xcode 를 설치하여 실행한 후, Preferences > Downloads 에서 Command Line Tools 를 설치하면 된다.

Homebrew 설치후에는, 터미널에서 brew -v 명령 (또는 brew –version) 으로 설치 버전을 확인할 수 있다.

$ brew -v
Homebrew 0.9.4

이제 Homebrew 를 설치했으니 원하는 패키지를 brew 명령을 통해 설치할 수 있다.

설치는 간단하게 brew install 원하는 패키지 명령으로 설치할 수 있다.

가령 macvim 을 설치한다고 하면,
search 명령으로 brew 패키지 검색을 하고, install 명령으로 설치한다.

$ brew search vim
macvim	  vim	    vimpager  vimpc           // vim 으로 찾았더니 4개의 패키지가 있다.
$ brew install macvim
==> Installing macvim dependency: cscope
==> Downloading http://downloads.sourceforge.net/project/cscope/cscope/15.8a/cscope-15.8a.tar.g
######################################################################## 100.0%
==> Patching
patching file src/constants.h
==> ./configure --prefix=/usr/local/Cellar/cscope/15.8a --mandir=/usr/local/Cellar/cscope/15.8a
==> make install
🍺  /usr/local/Cellar/cscope/15.8a: 10 files, 740K, built in 9 seconds
==> Installing macvim
==> Downloading https://github.com/b4winckler/macvim/archive/snapshot-66.tar.gz
######################################################################## 100.0%
==> ./configure --with-features=huge --enable-multibyte --with-macarchs=x86_64 --enable-perlint
==> make
==> Caveats
MacVim.app installed to:
  /usr/local/Cellar/macvim/7.3-66

To link the application to a normal Mac OS X location:
    brew linkapps
or:
    ln -s /usr/local/Cellar/macvim/7.3-66/MacVim.app /Applications
==> Summary
🍺  /usr/local/Cellar/macvim/7.3-66: 1759 files, 27M, built in 53 seconds

종속성이 있는 모듈을 먼저 다운받아 설치한 후, macvim 을 설치한다.
/usr/local/Cellar/ 경로안에 패키지명/버전 으로 설치가 되고, (brew 는 동일 패키지라도 버전별로 따로 관리할 수 있다!!)
/usr/local/bin/ 내에 symbolic link 를 걸어둔다.

/usr/local/bin $ ls -al | grep vim
lrwxr-xr-x   1 rkJun  admin        33  7 14 01:09 gview -> ../Cellar/macvim/7.3-66/bin/gview
lrwxr-xr-x   1 rkJun  admin        32  7 14 01:09 gvim -> ../Cellar/macvim/7.3-66/bin/gvim
lrwxr-xr-x   1 rkJun  admin        36  7 14 01:09 gvimdiff -> ../Cellar/macvim/7.3-66/bin/gvimdiff
lrwxr-xr-x   1 rkJun  admin        34  7 14 01:09 gvimex -> ../Cellar/macvim/7.3-66/bin/gvimex
lrwxr-xr-x   1 rkJun  admin        33  7 14 01:09 mview -> ../Cellar/macvim/7.3-66/bin/mview
lrwxr-xr-x   1 rkJun  admin        32  7 14 01:09 mvim -> ../Cellar/macvim/7.3-66/bin/mvim
lrwxr-xr-x   1 rkJun  admin        36  7 14 01:09 mvimdiff -> ../Cellar/macvim/7.3-66/bin/mvimdiff
lrwxr-xr-x   1 rkJun  admin        34  7 14 01:09 mvimex -> ../Cellar/macvim/7.3-66/bin/mvimex
$ mvim   // 어디서든 MacVim 을 설치할 수 있다.

brew 에서 설치할 수 있는 패키지들을 formula 라고 부르는데, 일종의 패키지 설명, 좀 더 정확히는 해당 패키지를 다운을 받아 설치하는 .rb 파일을 말한다. (이 목록은 /usr/local/Library/Formula 안에 들어 있다)
그리고 Cellar 는 이 패키지들이 실제 경로라 할 수 있고, 위에서 보았듯 /usr/local/bin 에 ln -s (심볼릭링크) 하는 방식이다.

주요 사용할만한 brew 명령은,
brew install formula // 패키지 설치
brew remove formula // 패키지 삭제
brew info formula // 패키지 정보
brew upgrade [formula] // 설치한 패키지의 최신버전을 설치

brew list 또는 brew ls // 설치한 formula 목록
brew update // Homebrew 업데이트
brew doctor // 시스템에 문제가 있는지 확인
brew outdated // 내가 설치한 formula 목록의 이후 버전이 나왔는지 확인
brew cleanup // fomula 의 모든 과거버전을 제거함

관리자 권한이 필요없다는 점 (sudo) 외에도, 설치한 패키지를 버전별로 사용하는 게 참 편하다.
가령 Play! (경량화된 자바 프레임워크) 를 brew 를 통해 설치해서 사용한다고 할 때,

아래와 같이 총 3개의 버전이 설치되어 있고 2.1.2 를 사용하고 있는데,

$ brew info play
play: stable 2.1.2, HEAD
http://www.playframework.org/
/usr/local/Cellar/play/2.1.0 (4148 files, 268M)
  Built from source
/usr/local/Cellar/play/2.1.1 (3790 files, 225M)
  Built from source
/usr/local/Cellar/play/2.1.2 (3681 files, 223M) *

brew switch 명령을 통해, 간단하게 play 2.1.1 버전으로 바꿀 수 있다.

/usr/local/bin rkJun$ brew switch play 2.1.1
Cleaning /usr/local/Cellar/play/2.1.0
Cleaning /usr/local/Cellar/play/2.1.1
Cleaning /usr/local/Cellar/play/2.1.2
1 links created for /usr/local/Cellar/play/2.1.1

물론 과거 버전도 설치할 수 있다. brew edit formula 명령을 통해 직접 파일내의 다운로드 대상 url 을 수정해 주거나, 과거 버전의 rb 파일을 받으면 된다. formula 의 과거 버전은 brew versions 을 통해 확인 가능하고, git checkout 해서 가져올 수 있도록 되어 있다.

그외에,

간단하게 brew unlink poo 또는 brew link poo 명령으로 간단하게 심볼릭을 걸거나 해제할 수 있고,

아래의 명령을 ~/.bashrc 또는 ~/.bash_profile 등, 쉘 시작시 실행스크립트에 넣어두면 brew 명령을 tab 자동완성으로 사용할 수 있다. (물론 아래 명령은 Bash 용이고, 더 자세한 설명 또는 ZSH 용은 homebrew Tips N’ Tricks 를 참조)

source `brew --repository`/Library/Contributions/brew_bash_completion.sh

Homebrew 를 알게된 이후로 더이상 Macports 를 사용할 일은 없을 것 같다.

OS X 에서 기본 제공하지 않는 wget 같은 명령외에도 정말 수많은 패키지들을 관리할 수 있다. 맥용 앱이라던가, 다양한 프레임워크까지… 무궁무진하다. 그러므로 OS X 을 사용하는 사용자, 또는 개발자에게는 강력하게 권하고 싶다.
Homebrew 가 너무 맘에 들어서, 뭔가 기여할 방법을 찾다가 홈페이지를 한글화 했다. (그래봤자 몇문장 안되지만..)

http://brew.sh/index_ko.html

Macports 를 (불만족스럽지만 대안이 없다고) 사용해 왔거나, 별도의 패키지 관리자를 사용하지 않았던 사용자라면, 지금부터 써보자!

태그 지정됨 ,

OS X 용 한글입력기 “구름” 좋다!

OS X 에 기본 내장되어 있는 한글입력기는, 몇가지 아쉬운 점이 있다. 단축키 설정의 한계 (기본적인 설정변경으로는 SHIFT+SPACE 조합불가) 와, 세벌식 모아치기의 미지원, 그리고 vi 사용할 때 한글로 쓰다 명령모드로 바꾸면 -당연히- 명령모드에서 한글이 먼저 입력이 된다는 불편한 점 ···.

윈도를 사용할 때는 6~7년 전부터 김용묵님이 만드신 날개셋 입력기를 사용하고 있었는데, 맥에서는 기본 입력기를 대체할 프로그램이 없으므로, 그냥 사실, 선택의 여지가 없다고 생각하고 있었는데, 이 모든 단점을 한방에 해결한 한글입력기가 존재하고 있었다. 이름하여 구름 입력기다.

언급하고 싶은 장점은,

1. SHIFT+SPACE (⇧Space) 로 한/영전환이 가능하다.

OS X 의 기본 한글입력기에서는 기본설정 변경만으로는 SHIFT 조합으로 단축키 변경이 불가하고, plist 파일 수정을 통해서만 가능하다. 게다가, 한영자판 외에 추가로 외국어자판을 사용하는 사용자의 경우에는 썩 좋은 방법도 아니다. (나름의 불편함을 동반한다) 하지만 구릅입력기를 사용하면 독립적인 구성으로 한영전환시에는 ⇧+Space 조합을 사용하고 기본자판 변경시에는 CMD+Space 를 사용하므로 기존 체제를 유지하면서, 편하게 사용할 수 있다. 게다가 브라우저 등에서 스크롤 올리는 단축키(SHIFT+SPACE) 와 충돌 또한 발생하지 않는다. -기본입력기에서 단축키를 바꾸면 충돌이 나서 스크롤 올리는 기능이 먹지 않는다.

2. 세벌식 모아치기를 지원한다.

꼭 지원해야 한다고 생각하지는 않지만, 편해지는 건 사실이다.

3. ESC 키입력으로 영문자판으로 변경.

vi 명령모드나, 구글크롬 주소창에 입력할 때, 한글입력상태로 되어 있으면 은근 귀찮음을 느끼면서 한영전환을 해주어야 하는데, 한영전환 단축키 입력대신, ESC 키 입력으로 간단히 영문입력상태로 전환해 준다. 꼭 필요했던 기능이다.

4. 한자입력시에도 더욱 보기 편해졌다.

기본 입력기에서는 선택상태에서만 한자풀이가 나오지만, 구름 입력기에서는 선택하지 않은 한자에 대해서도 한자풀이가 나온다.

5. 두벌식, 세벌식 외의 대부분의 자판을 지원한다.

세벌식 390, 세벌식 최종자판 외에도 안마태, 세벌식 옛글, 세벌식 2011, 세벌식 2012 등을 지원한다.

아직까지는 버그가 없고, 완벽하다고 말할 순 없지만 1.5 버전을 사용하면서 매우 만족하면서 사용하고 있다.
게다가 오픈소스로 GitHub 에 모든 소스를 공개하고 있다.

OS X 사용자이면서, 세벌식 사용자 이거나, vi 사용자 이거나, OS X 기본 한글입력기보다 더 나은 한글입력기를 사용하고 싶은 사람들에게 강력하게 권장하고 싶다.^^

태그 지정됨 ,

tipJS – OpenSource JavaScript MVC Framework

국산 JavaScript MVC Framework tipJS 를 알게 됐다.
알게 된 건 나름 몇달전이고, 지난 달 오프모임에서 tipJS 를 개발하신 필수입력 (백승현) 님까지 만나게 되면서 한층 더 관심을 갖게 되어 블로그에 소개해야지 해야지. 하면서 미루다 보니 이제서야 글을 쓰게 된다. -_-;

http://tipjs.com/ : tipJS – OpenSource JavaScript MVC Framework

tipJS 는 JavaScript 기반 어플리케이션을 MVC 패턴으로 구현할 수 있도록 도와주는 OpenSource Framework 이다. 특정 라이브러리에 종속되지 않는 독립성을 띄고 있고, 다양한 라이브러리와도 호환되며 HTML Template 형식등도 지원된다.

각설하고, 개인적으로 가장 크게 와닿는 이점 중 하나는 익숙해진 MVC 패턴을 자바스크립트에도 적용할 수 있다는 점인데 프론트엔드 개발자가 아니더라도, MVC 에 익숙한 개발자들에게는 쉽게 접근할 수 있고, 간편하게 활용할 수 있을 듯!  그리고 공통 라이브러리 관리하는 것도 config 내에 정의해서 간편하게 & 효율적으로 관리할 수 있다는 점도 매력적이다. 특히나 무겁고 복잡한 JavaScript Framework 사이에서, 빠르게 적용할 수 있고 좀 덜 부담스러우면서 쉽게 접근 할 수 있는 게 바로 tipJS 가 아닐까 싶다.

tipjs.com 사이트 첫 화면에 나오는 개요와 기능, 동작개념도, 구조, 처리흐름 등도 잘 나와있다. 시작하기만 봐도 Action 에 Controller 적용해서 빠르게 사용할 수 있게 되어 있다. 예제 소스도 공개되어 있고. 리퍼런스도 잘 정리되어 있어서, 참고해서 활용하면 바로바로 사용할 수 있을 듯. 오픈 소스로 소스를 전부 공개하고 있으니 이또한 감사할 따름. ㅠ_ㅠ. tipJS, 이 좋은 건 널리 널리 퍼져야지~!

링크는 소스 저장소 : https://github.com/tipjs/tipjs-JavaScript-MVC-Framework

 

 

글로벌 커뮤니티 서미트 2012 참여 후기

지난 주 토요일 (5/19) , 삼성동 코엑스 컨퍼런스룸에서 개최된 글로벌 커뮤니티 서미트 2012 행사에 다녀왔습니다. 이번에는 듣기 위해 간 게 아니라, 발표를 하기 위해 갔습니다.

도착하자마자, 해외 초청연사인 Stuart Reid 의 소프트웨어 테스팅에 관한 발표가 있었고, 통역없이 듣다 보니, 집중력이 떨어졌습니다. ㅠ 그리고 나서 김병곤 JCO 회장님 등장. 개인적으로는 관심을 깊게 갖지 못하고 있던 빅데이터 기술과 관련된 내용이었는데 많은 도움이 되었고, 공부 해보고 싶은 자극제가 되었습니다.

발표자로 참여한 덕분에,  협회로부터 점심도 얻어먹고 트랙2 로 향했습니다.

MOIBA 의 박종문님께서 K-APPS 에 대해 소개해 주셨고, JBOSS 의 신정훈님께서 MonggoDB 를 이용한 빅데이터 구축 경험을 공유해 주셨습니다. 그리고 나서 제 차례였고, 저는 개발자들의 즐거운 삶을 위한, Open Source 참여 독려를 하는 발표를 했고, 끝나자 마자 Sencha Touch 2.0S (주말 모임) 을 위해 바쁘게 움직여야 했습니다.

이 날 공교롭게도 KSUG 세미나, 개발자 걷기대회 등 참여하고 싶은 많은 행사가 겹쳐 있어서 못내 아쉽기도 합니다. 그렇지만, 생애 처음으로 코엑스 컨퍼런스룸 무대에 선 경험은 평생 잊지 못할 만큼, 스스로에게 자신감을 가져다 주었던, 매우 의미있고 소중한 경험이었습니다.

기회를 주신 옥히의 kenu 님과 스마트 개발자 협회의 엄용국 사무국장님, 발표를 위해 많은 도움을 주신 Korea Sencha User Group 의 김종광님, 특별히 더 감사드립니다.


얼굴이 살짝 짤리긴 했지만, Stuart Reid 씨 뒤에 있습니다. -_-;

사진을 멋있게 찍어주셨어요. 감사합니다 🙂

태그 지정됨 , , , , , , ,

MPlayerX 1.0.14 업데이트

지난주에 MPlayerX 가 1.0.14 로 업데이트 되었습니다.

1.0.12 사용할 때부터 한글화 작업에 참여해서 1.0.13 버전부터 한글지원이 추가되었는데 이 때 당시에 제가 맥 시스템 폰트를 나눔고딕으로 쓰고 있었기 때문에 나눔고딕을 기반으로 확인을 했었는데 나중에 애플고딕으로 확인해본 결과 -_- 설정화면에서 일부 글씨짤림이 있었습니다. 그래서, 이번 버전부터 그 문제가 해결됐습니다.
(여담이지만, 이후부터는 그러한 잠재적 문제의 소지를 없애기 위해 울며 겨자먹기로 시스템폰트로 애플고딕을 그냥 쓰고 있습니다)

그외에, 추가된 기능으로 youtube 지원을 하기 시작한 건데, youtube 의 동영상 URL 링크 (http://블라블라) 를 복사한 담에, CMD+U 또는 파일 > URL열기 를 통해서, youtube 의 동영상을 재생시킬 수 있습니다.

http://itunes.apple.com/kr/app/mplayerx/id421131143?mt=12

 

태그 지정됨

Bootstrap 2.0 에 대한 소개

1. 부트스트랩 (Bootstrap, from Twitter) 은 무엇인가?

부트스트랩  (http://twitter.github.com/bootstrap/) 은 트위터에 근무하는 두 명의 엔지니어 (Mark OttoJacob Thornton)가 개발한 가볍고 간단한 오픈소스기반 (아파치2.0라이센스) 의 HTML5, CSS3 UI 프레임워크입니다. HTML5, CSS3, Javascript 로 구성되어 있고, 가볍게 트위터 디자인 비슷한 UI 를 빠르게 구현해낼 수 있는 각종 콤포넌트들을 제공해 주고 있습니다.

2. 부트스트랩 다운로드

부트스트랩 홈페이지 (http://twitter.github.com/bootstrap/) 에서 릴리즈된 버전을 다운로드 할 수 있습니다. 현재 2.0 까지 릴리즈됐고, 부트스트랩 저장소 (http://github.com/twitter/bootstrap)를 살펴보면, 현재 2.0.1 버전으로 작업이 진행중이네요.

3. 내 홈페이지에 bootstrap 적용하기

HTML, CSS, Javascript 에 선수지식이 있으면 조예가 깊지 않아도, 부트스트랩을 가져다가 나만의 사이트를 만들 수 있습니다. 이미 샘플로 구성된 부트 스트랩 예제 화면을 참조하면 어렵지 않게 따라 만들 수 있습니다. 또한 부트스트랩 홈페이지에서 자세한 설명까지 설명되어 있으니, 조금만 시간을 내어 읽어보면 원하는 입맛대로 만들어 낼 수 있습니다. 기본적으로 CSS 에 대한 깊은 지식이 없어도 class 를 이용하는 것으로 충분히 원하는 의도대로 만들어 낼 수 있다는 점에서, 디자인에 약한 개발자에게는 나홀로 이쁜 사이트 만들기에 최적화된 아이템임에 틀림없습니다.

저도 간단하게, 샘플 가져다 만들어 봤습니다. (rkJun’s bootstrap) -_-;

4. 커스터마이징

어느정도까지는 내 입맛대로 바꿔서 쓸 수 있어야, 써볼 맛이 납니다. 부트스트랩 페이지에서도 이미 커스터마이즈 기능을 기본으로 제공해 주고 있습니다. 추가로 부츠왓치(http://bootswatch.com/) 사이트를 통해서도 간단하게 색상 변경을 통해 원하는 CSS 를 얻어낼 수도 있습니다. 랩부트스트랩 (http://wrapbootstrap.com/) 에서는 부트스트랩용 테마를 판매하고 있기도 합니다.

5. 웹 개발자의 놀이가 되어 줄 부트스트랩.

사이트의 틀을 부트스트랩이 잡아주니, 나머지는 웹 개발자 혼자서도 어떻게든, 그럭저럭 이쁜 사이트를 만들어 낼 수 있을 듯 합니다. 나머지 코딩은 개발자 몫인 거죠. 부트스트랩에 최적화된 JQuery Plugin 들도 꽤 흥미롭습니다.  특히나 캐러셀 (carousel : 화면을 회전하듯 부드럽게 전환시키는 방식.) 같은 기능들은 왠지 무조건 넣고 봐야 하는 거죠.^^;

6. 더 많은 정보들.

http://www.initializr.com/
15 초안에, HTML5 프로젝트를 시작할 수 있게 해준다는 이니셜라이져(initializr.com) 사이트인데, HTML5 템플릿을 생성해 줍니다. 최근 부트스트랩2 지원되고 있습니다.

http://bootswatch.com/
위에서 언급했던 부트스트랩 커스터마이징해주는 사이트입니다.

http://wrapbootstrap.com/
여기도 위 커스터마이징 얘기할 때 언급하기는 했는데, 부트스트랩용 테마를 판매하고 있습니다.

http://stylebootstrap.info
위에서는 언급하지 않았지만, Bootswatch 처럼 커스터마이징할 수 있는 곳입니다. 똑같은 디자인은 싫어. 라고 하신다면 스타일부트스트랩에서 나만의 디자인으로 간단하게 부트스트랩을 커스터마이징할 수 있습니다. 🙂

https://github.com/commadelimited/jQuery-Mobile-Bootstrap-Theme#readme
부트스트랩은 반응형 디자인 (Responsive Design)으로 되어 있지만, 아예 모바일에 특화하길 원한다면 jQuery Mobile Bootstrap Theme 를 이용하는 방법도 있습니다.

7. 국내 부트스트랩 적용된 사이트들

http://dogfeet.github.com/
좋은 글들이 많이 올라오는 블로그입니다. Pro Git 한글 번역도 하셨고, 도움이 많이 되는 곳이네요. (아, 부트스트랩 얘기하다 갑자기 샛길로;;)

http://feed9.com/
역시 부트스트랩기반. 소스공개도 되어 있습니다. ( https://github.com/sungchi/feed9)

8. 잡담

디자인에 약한 웹 개발자들(특히나 서버사이드개발자) 에게  꽤 흥미로운 물건이다. 쉽고 재밌게 가져다 쓸 수 있는 것도 큰 장점이고. 암튼 이 bootstrap 의 기반에는 less (http://lesscss.org/) 기술도 사용되어지고 있는데 이게 또 꽤 흥미로운데, 이건 나중에 차차 다시 포스팅해야겠다.

태그 지정됨 , , , , ,

Open Source for You (한글번역)

이 글은, 호주에서 오픈 소스 개발자로 활동하고 있는 Stephen McDonald (@stephen_mcd)의 글을 번역했습니다. 읽고 느낌이 좋아, 번역해 보려고 했는데 쉽지는 않군요. 원문의 뜻이 잘 전달되기를 바래봅니다. (오역 또는 더 나은 번역이 있다면, feedback 주세요.)

+2012년 3월 6일, engfordev.com 의 피드백 (GoogleDocs:http://bit.ly/xdxahu)을 받아서, 번역품질을 높였습니다. 참여해주신 nassol님, 원강민님 감사합니다.

출처 (원문 English) : http://blog.jupo.org/2011/09/12/open-source-for-you/

작성일 : 2011년 9월 12일
작성자 : Stephen McDonald

오픈 소스는 여러분을 위한 것

나는 얼마전, 내가 일하는 회사의 개발팀을 대상으로 오픈 소스 활동에 관한 프리젠테이션을 하게 되었다. 오픈 소스에 대한 사람들의 공통된 인식은 대략 이러했다. 오픈 소스 커뮤니티에서 개인은 보상을 거의 받지 않고, 이타주의적인 마음을 가지고 운영하는 거대한 사회적 히피집단 같다는 것이 오픈 소스 커뮤니티에 대한 공통된 인식이었다. 나는 이런 근거 없는 믿음을 깨뜨렸다. 그리고 오픈 소스 커뮤니티에서는 사람들이 자신을 위해, 그리고 자신의 이익을 위해 오픈 소스 활동에 참여한다고 설명하였다. 내가 초점을 맞춘 부분에는 몇가지 불편한 진실도 있기는 했지만, 개발팀은 발표내용을 잘 받아들였다.

힘들고 짜증나는 업무(는 이제 그만), 프로그래밍을 다시 즐거운 놀이로 만들자

만약 여러분이 전형적인 회사에서 9시부터 5시까지 일하는 정규직 소프트웨어 엔지니어라면, 여러가지 이유로 인해 업무에 짜증을 느끼고 있을 가능성이 높다. 여러분은 항상 같은 종류의 프로젝트에 참여하고, 같은 기술을 가지고 일을 해야 한다. 심지어는 낡은 기술을 사용하기도 하고. 사실 그 기술보다 더 세련된 기술이 존재하지만, 회사에서는 아직 검증되지 않았다는 이유로 실무에 적용하는 것을 허락하지 않을 것이다. 또한 일정의 마감시간도 지켜야 하고. 마감시한은 최대한 빨리 기능들을 만들어 내도록 요구하기 때문에 (그것은 결국 결과물의 품질에 좋지 않은 영향을 주고) 여러분은 때로 개발자로서의 자존심을 버리고, 막코딩을 하게 된다.

만약 이런 일이 여러분의 유일한 프로그래밍 경험이라면, 금방 싫증도 나고, 모든 게 전혀 재미도 없을 것이다. 하지만 정반대의 경우라면, 프로그래밍은 정말 굉장히 재밌을 수 있다! 이렇게 상상해 보자. 여러분의 회사에 수백가지의 프로젝트가 있다. 그리고 여러분은 그 중에 여러분이 원하는 하나의 프로젝트를 선택할 수 있다고. 게다가, 회사에서는 여러분이 원하는 기술을 사용할 수 있도록 허락하고, 최종 결과물이 충분히 멋지게 나올 때까지 일정을 주겠다고 말한다. 마치 슈퍼 개발자처럼. 꿈처럼 들린다고? 아니, 오픈 소스 프로젝트를 할 때 만큼은 여러분이 슈퍼 개발자이다. 업무를 고르고, 사용할 기술을 선택하자. 일정도 마음대로 짜자. 그리고 제품의 품질까지도 말이다.

협업을 통해 더 훌륭한 개발자가 되자

더 좋은 개발자가 되기 위해서는 두가지 방법이 있다: 하나는 코드를 작성하는 것이고, 다른 하나는 코드를 읽는 것이다.
혼자서만 개발하면 이 두가지 방법을 쓸 수가 없다. 자신이 작성한 코드를 읽으면 흐뭇할지는 몰라도 배우는 게 별로 없다. 그리고 혼자 코드를 작성할 수는 있겠지만, 스스로 배우는 것 외에는 아무런 교훈이 없을 것이다. 너무나 당연하지만 진짜로 배우는 것은 다른 개발자들과의 상호작용하는 과정에서 나온다. 다른 개발자들이 검토해보고 피드백을 줄 수 있는 코드를 작성하면서 말이다. 그리고 더 많은 경험을 가진 개발자가 작성한 코드를 읽으면서, 그리고 여러분과는 다른 접근법을 가진 개발자가 쓴 코드를 읽으면서 진정 뭔가를 배울 수 있다.

여러분이 일하는 회사에 대해 생각해 보자. 여러분이 직접 협업하는 개발자는 몇명이나 되는가? 두세명? 열댓명? 작은 집단에서도 여러분은 많은 것을 배울 것이다. 그러나 배우는 범위 면에서는 아무래도 한계가 있을 것이다. 오픈 소스 커뮤니티는 수천명의 개발자들이 있다. 그리고 이들은 수년간 수백만 줄의 코드를 작성했다. 이들은 여러분이 일하는 곳을 벗어나지 않고서는 접할 수 없는 품질의 코드를 작성한다.

금전적 수입을 얻자

오픈 소스 개발에 대해 오해가 많이 있는데, 그 중 가장 심한 오해중 하나는 오픈 소스 개발에 참여해서 돈을 벌 수 없다는 것이다. 어느 정도까지는 사실이지만, 실제로 금전적인 수익을 낼 수 있는 몇가지 방법이 있다. 직접적인 방법도 있고, 간접적인 방법도 있다.

여러분은 고정된 직장을 가진 상태일수도 있다. 그리고 자신이 고정수입을 갖는 월급쟁이라고 생각할 수도 있다. 다음 수입이 어디서 나올지 알 수 없는 프리랜서나 사업가와는 다르다고 생각할지도 모른다. 미안하지만 틀린 생각이다. 여러분의 사장과 마찬가지로 여러분도 사업을 하는 것이나 다름없다. 여러분에게는 고객이 한 명있다. 바로 여러분을 고용한 사장이다. 어떤 때에는 이 직장 일에 얽매여 있다고 느낄 지도 모른다. 하지만 실은 한 명의 고객에게 얽매여 있는 셈이다.

그럼 더 많은 고객을 만들고, 더 좋은 고객을 만들기 위해선 어떻게 해야 할까? 답은 여러분의 비지니스 코스를 홍보하는 거다. 오픈 소스는 여러분의 개발자로서의 능력과 여러분을 더욱 돋보이게 해주는 멋진 방식을 제공해준다. 오픈소스 프로젝트에 참여하면 여러분은 개발자로서의 능력을 더욱 돋보이게 하는 기회를 얻을 수 있다.
그래픽 디자이너와 개발자들은 항상 화려한 포트폴리오를 보여줄 수 있다. 고용 가능성이 있고, 고용 협상에 대한 자리에서 오픈 소스에 참여한 경험은 이미 열정으로 가득 차 있다는 걸 입증해 주고, 그러므로 그 자리에서 그러한 능력을 보여줄 필요도 없이, 다른 사람들보다 더욱 유리한 입장에 설 수 있다.

오픈소스 프로젝트를 일정 품질에 준하게 만들고, 사람들이 이 프로젝트를 사용하여 실제로 무언가를 만든다면, 이 자체만으로도 큰 성과이다. 이로부터 돈을 받고 일할 수 있는 기회가 생겨난다. 오픈소스 프로젝트를 사용하는 기업 사용자의 경우에 기업에 맞게 소프트웨어를 커스터마이즈해달라고 요청할 수도 있다. 또한 이들이 여러분이 생각지도 못했던 좋은 기능을 프로젝트에 추가해달라고 요청할지도 모른다. 이런 과정을 통해 여러분의 프로젝트는 한 단계 업그레이드 될 것이다. 이런 기능을 제일 잘 개발할 수 있는 사람은, 최초개발자가 아니고 누구이겠는가? 나는 이런 경험을 직접 몇 번 하였고, 몇몇 회사에서는 내가 생각했던 기능을 추가하는 것에 대해서 금전적인 지원을 해주었다. 지원을 해주지 않았더라도, 나는 그 기능을 어쨌든 개발했을 것이다.

기술 이외의 경험을 폭넓게 하자

코드를 작성하는 것은 소프트웨어 개발의 전체 과정중 일부분에 불과하다. 성공적으로 제품을 판매하는 전 과정에 관한 많은 학문 분야들이 있다. 이런 학문에는 프로젝트 관리, 커뮤니티 구축, 격식을 갖춘 글쓰기, 제품 개발 및 마케팅이 있다. 프리랜서나 1인 기업의 경우에는 이런 학문 분야를 접할 기회가 있을지도 모른다. 그러나 일반 회사에서 일하는 개발자의 경우에는 매일 코딩 외에는 다른 분야를 접할 기회가 없다.

오픈 소스 프로젝트를 운영해보면, 기술(technology) 이외의 분야에 관한 스킬을 익힐 수 있을
것이다. 나는 내 프로젝트 중에서 가장 인기있는 프로젝트 관련 작업을 하는데 시간을 많이 쓴다. 이 시간중에 코딩 작업에 쓰는 시간은 그 비중이 얼마 안된다. 시간 중 대부분은 다른 개발자들과 기능에 대한 아이디어를 나누고 토론하는데 쓴다. 어떤 기능을 넣을지, 뺄지를 의논하는데 쓴다. 이런 작업은 어렵기는 하지만 멋지고 의미있는 경험이다.

이런 일들에서 알 수 있듯이, 오픈 소스에 참여하고 싶어하는 많은 사람들이 기술적인 분야와는 무관하므로 자신은 기여할 무언가가 없다고 생각한다. 하지만, 모든 것은 연관되어 있어서 기술과는 관련없는 부분이 가장 유익한 참여중 하나라 볼 수 있다. 만약 여러분도 그렇다면, 시작을 주저하지 말아야 한다. 여러분의 참여는 상상이상으로 큰 의미가 있다.

좋은 사람이라고 느끼기

오픈 소스 참여의 가장 확실한 장점은, 애타주의로 타인에게 도움을 주는 거라고 생각한다. 전에도 얘기했지만, 작지 않은 오픈 소스 프로젝트를 관리하는 일은 고생을 동반하게 된다. 오픈소스에 참여하다보면 좋을 때도 있고 나쁠 때도 있다. 때로는 끝이 없는 일처럼 느껴지기도 한다. 하지만 가끔, 나는 어떤 동기를 가진 공개모임에서가 아닌, 순수한 진심을 담은 개인적인 감사 메일을 받기도 한다. 직접 해보기 전까지는 그 일이 딱히 의미가 있다고 생각해본 적은 없었다. 내가 실제로 직접 경험해 보고 나니, 진정한 긍지와 만족감을 채워주고 궁극적으로 모든 것을 가치있게 만들어준다는 것을 알게 되었다.

지금 당장 시작하자

중국의 철학자 노자는 이렇게 말했다:

천리의 여행도 한 걸음에서 시작된다.
(千里之行 始於足下)

시작하려고 하는데 겁이 날 수도 있다. 작은 것부터 시작하자. 여러분의 오픈소스는 아무에게도 쓸모 없을 것이라고 내면에서 속삭이는 목소리를 무시하자. 그럴 수도 있다. 하지만 그래도 상관없다. 그래도 하자. 내 프로젝트 중 많은 것은 몇 십줄 짜리 코드였다. 그런데 사람들은 내가 상상하지도 못했던 방식으로 그 소스를 유용하게 사용하였다.

아이디어는 잘 오지 않는다. 내 아이디어중에 대부분은 내가 아쉬워했던 것들이었다. 예를 들어 내가 관심있는 기술 영역에서 제품이 개발되어 있지 않는 경우에 내가 개발할 수 있겠다는 생각에서 개발 아이디어를 얻었다. 또는 내가 일상적으로 하는 루틴한 것들을 자동화하거나 개발할 수 있겠다는 지점에서 아이디어를 얻었다.

여러분이 어떤 오픈소스 소프트웨어를 사용하는데, 소프트웨어가 완벽하지 않을 수도 있다. 여러분이 생각하는 것과는 다른 방식으로 작동할 수도 있고, 또 어떤 부분은 도움말에 나와 있지가 않아서 찾기 위해 고생해야 할지도 모른다. 요즘은 이런 일이 있을 때, 무려(!) 공짜로 사용하고 있는 소프트웨어에 대해서 원하는 대로 작동하지 않는다고 불평만 하고 두 손 들고 포기해 버리는게 기본 반응인 듯 하다. 그러지 말자. 그 문제에 대해 여러분이 할 수 있는 게 있다. 소스 코드를 살펴보자. 뭔가 손을 빌려주자. 자신의 능력도 향상시키고, 뭔가를 만들어가는 과정의 일부가 되자.

출처 (원문 English) : http://blog.jupo.org/2011/09/12/open-source-for-you/

태그 지정됨 ,