dev-setup
<p align="center">
<img src="https://raw.githubusercontent.com/donnemartin/dev-setup-resources/master/res/repo-header.gif">
</p>
동기 부여 (Motivation)
새로운 개발자 머신을 설정하는 과정은 임시적이고(ad-hoc), 수동적이며, 시간이 많이 걸리는 작업일 수 있습니다. dev-setup은 다음 항목들의 설정을 자동화할 수 있도록 쉽게 이해할 수 있는 지침과 dotfile/스크립트를 통해 이 과정을 간소화하는 것을 목표로 합니다:
- OS X 업데이트 및 Xcode Command Line Tools
- 개발자에게 최적화된 OS X 기본 설정(defaults)
- 개발 도구: Vim, bash, tab completion, curl, git, GNU core utils, Python, Ruby 등
- 개발 앱: iTerm2, Sublime Text, Atom, VirtualBox, Vagrant, Docker, Chrome 등
- Python 데이터 분석: IPython Notebook, NumPy, Pandas, Scikit-Learn, Matplotlib 등
- 빅데이터 플랫폼: Spark (IPython Notebook 통합 포함) 및 MapReduce
- 클라우드 서비스: Amazon Web Services (Boto, AWS CLI, S3cmd 등) 및 Heroku
- 일반 데이터 저장소: MySQL, PostgreSQL, MongoDB, Redis, Elasticsearch 등
- Javascript 웹 개발: Node.js, JSHint, Less
- Android 개발: Java, Android SDK, Android Studio, IntelliJ IDEA
하지만... 이 모든 도구가 필요하지는 않습니다!
dev-setup은 다양한 개발자 도구에 대한 체계적인 참고 자료(reference) 역할을 하도록 설계되었습니다.
모든 것을 설치해야 하는 것은 아닙니다.
자동화에 관심이 있다면, dev-setup은 사용자 정의 가능한 설정 스크립트를 제공합니다. 개발자에게 완벽하게 맞는 단 하나의 해결책은 없으므로, 필요에 맞게 수정하는 것이 권장됩니다.
크레딧: 이 레포지토리는 Mathias Bynens와 Nicolas Hery의 훌륭한 작업에 기반을 두고 있습니다.
자동화를 위해, Vagrant, Docker 또는 Boxen은 어떨까요?
Vagrant와 Docker는 훌륭한 도구이며, 이 저장소에서 설정할 수 있습니다. 저는 Vagrant가 개발(dev) 환경이 테스트 및 프로덕션 계층과 일치하도록 하는 데 효과적이라는 것을 발견했습니다. 사이드 프로젝트용으로만 Docker를 사용해 보기 시작했는데, 매우 유망해 보입니다. 하지만 Mac 사용자에게는 Docker와 Vagrant 모두 자체적인 고려 사항/장점/단점을 가진 **가상 머신(virtual machines)**에 의존합니다.
Boxen은 멋진 솔루션이지만, 일부 사람들은 이것이 "더 성숙한 회사나 데브옵스(DevOps) 팀"에 더 적합하다고 생각할 수 있습니다. 저는 [내부적으로 Puppet을 사용하기 때문에 어려움]에 대한 몇 가지 논의를 보았습니다.
이 저장소는 기본적인 시스템 설정을 위해 Homebrew, Homebrew Cask, 셸 스크립트(shell scripts) 조합을 사용하여 보다 경량화된(light-weight) 자동화 접근 방식을 취합니다. 또한 각 개발자 앱이나 도구에 대한 설치, 구성 및 사용법에 대해 이해하기 쉬운 지침을 제공합니다.
<p align="center">
<img src="https://raw.githubusercontent.com/donnemartin/dev-setup-resources/master/res/iterm2.png">
</p>
섹션 요약 (Sections Summary)
- 섹션 1에는 시스템 설정을 위한 dotfiles/스크립트 및 지침이 포함되어 있습니다.
- 섹션 2부터 7까지는 섹션 1의 주제에 대한 설치, 구성 및 사용법에 대한 자세한 정보를 다룹니다.
섹션 1: 설치 (Section 1: Installation)
OS X 10.10 Yosemite 및 10.11 El Capitan에서 테스트된 스크립트입니다.
섹션 2: 일반 애플리케이션 및 도구
섹션 3: 파이썬 데이터 분석
섹션 4: 빅데이터, AWS 및 Heroku
섹션 5: 데이터 저장소
섹션 6: JavaScript 웹 개발 (JavaScript Web Development)
섹션 7: Android 개발 (Android Development)
섹션 8: 기타 (Misc)
섹션 1: 설치 (Installation)
단일 설정 스크립트 (Single Setup Script)
Git으로 실행하기 (Running with Git)
레포지토리 클론하기 (Clone the Repo)
$ git clone https://github.com/donnemartin/dev-setup.git && cd dev-setup
명령줄 인수를 사용하여 .dots 스크립트 실행하기 (Run the .dots Script with Command Line Arguments)
아마 모든 섹션을 설치하고 싶지 않을 것이므로, .dots 스크립트는 지정된 섹션만 실행할 수 있도록 명령줄 인수를 지원합니다. 원하는 스크립트를 단순히 전달하면 됩니다. 아래에 몇 가지 예시가 있습니다.
더 많은 사용자 정의가 필요하다면, 레포지토리를 클론하거나 fork하여 .dots 스크립트와 관련 구성 요소를 필요에 맞게 수정할 수 있습니다.
모두 실행하기:
bootstrap.sh, osxprep.sh, brew.sh, 그리고 osx.sh 실행하기:
$ ./.dots bootstrap osxprep brew osx
bootstrap.sh, osxprep.sh, brew.sh, osx.sh, pydata.sh, aws.sh, 그리고 datastores.sh 실행하기:
$ ./.dots bootstrap osxprep brew osx pydata aws datastores
Git 없이 실행하기 (Running without Git)
$ curl -O https://raw.githubusercontent.com/donnemartin/dev-setup/master/.dots && ./.dots [여기에 인수를 추가하세요]
스크립트 (Scripts)
참고 사항:
.dots는 처음에 비밀번호를 입력하라는 메시지를 표시할 것입니다.
.dots는 설치의 특정 단계에서 비밀번호 재입력을 요청할 수 있습니다.
- OS X 업데이트로 인해 재시작이 필요한 경우, 중단했던 지점부터 계속 진행하려면 단순히
.dots를 다시 실행하면 됩니다.
- Xcode Command Line Tools를 설치할 때 대화 상자가 설치를 확인합니다.
- Xcode가 설치되면, 터미널의 지침을 따라 계속 진행하십시오.
.dots는 brew.sh를 실행하며, 일부 formula가 소스에서 설치되어야 하므로 완료하는 데 시간이 걸립니다.
.dots가 완료되면 모든 업데이트가 적용되도록 컴퓨터를 반드시 재시작하십시오.
섹션 1을 읽어보시면 각 설치 스크립트가 어떤 역할을 하는지 더 잘 이해하실 수 있습니다. 다음 내용은 .dots 스크립트를 실행할 때 실제로 무엇이 실행되는지 자세히 설명합니다.
bootstrap.sh 스크립트
<p align="center">
<img src="https://raw.githubusercontent.com/donnemartin/dev-setup-resources/master/res/commands.png">
<br/>
</p>
bootstrap.sh 스크립트는 dev-setup 리포지토리를 로컬 홈 디렉터리에 동기화합니다. 여기에는 Vim, bash, curl, git, tab completion, 별칭(aliases), 여러 유틸리티 함수 등에 대한 사용자 정의 설정이 포함됩니다. 이 리포지토리의 섹션 2에서 이러한 사용자 정의 설정을 설명합니다.
Git으로 실행하기
먼저, 리포지토리를 포크(fork)하거나 클론(clone the repo)하세요. bootstrap.sh 스크립트는 최신 버전을 가져와서 홈 폴더 ~에 파일을 복사합니다:
나중에 업데이트하려면, 이 명령을 다시 실행하기만 하면 됩니다.
또는 확인 프롬프트를 피하면서 업데이트하려면:
$ set -- -f; source bootstrap.sh
Git 없이 실행하기
dev-setup을 로컬 홈 디렉터리에 Git 없이 동기화하려면 다음 명령을 실행하세요:
$ cd ~; curl -#L https://github.com/donnemartin/dev-setup/tarball/master | tar -xzv --strip-components 1 --exclude={README.md,bootstrap.sh,LICENSE}
나중에 업데이트하려면, 이 명령을 다시 실행하기만 하면 됩니다.
선택 사항: PATH 지정
~/.path가 존재하면, 다른 파일들과 함께 소싱(sourced)됩니다. 이는 어떤 버전의 ls가 사용되는지 감지하는 것과 같은 기능 테스트 이전에 발생합니다.
$PATH에 /usr/local/bin을 추가하는 예시 ~/.path 파일은 다음과 같습니다:
export PATH="/usr/local/bin:$PATH"
선택 사항: 사용자 정의 명령어 추가
~/.extra가 존재하면, 다른 파일들과 함께 소싱됩니다. 이 파일을 포크할 필요 없이 몇 가지 사용자 정의 명령을 추가하거나, 공개 리포지토리에 커밋하고 싶지 않은 명령을 추가하는 데 사용할 수 있습니다.
제 ~/.extra는 다음과 같습니다:
GIT_AUTHOR_NAME="Donne Martin"
GIT_COMMITTER_NAME="$GIT_AUTHOR_NAME"
...
개발 설정 저장소(dev-setup repository)의 설정, 함수 및 별칭을 재정의하기 위해 ~/.extra를 사용할 수도 있지만, dev-setup 저장소를 포크(fork)하는 것이 더 좋을 수 있습니다.
osxprep.sh 스크립트
<p align="center">
<img src="https://raw.githubusercontent.com/donnemartin/dev-setup-resources/master/res/xcode.jpg">
<br/>
</p>
osxprep.sh 스크립트를 실행합니다:
osxprep.sh는 먼저 모든 업데이트를 설치합니다. 재시작이 필요한 경우, 스크립트를 다시 실행하기만 하면 됩니다. 모든 업데이트가 설치되면, osxprep.sh는 다음으로 Xcode 명령줄 도구 설치를 수행합니다.
수동으로 진행하려면, 'App Store'를 실행하고 '업데이트(Updates)' 아이콘을 선택한 다음, OS와 설치된 앱 모두를 업데이트하여 모든 업데이트를 설치할 수도 있습니다.
Xcode 명령줄 도구 설치
Homebrew와 같은 많은 도구가 작동하기 전에 중요한 종속성(dependency)은 **Xcode 명령줄 도구(Command Line Tools for Xcode)**입니다. 여기에는 소스에서 빌드할 수 있게 해주는 gcc와 같은 컴파일러가 포함됩니다.
만약 OS X 10.9 Mavericks 이상을 사용하고 있다면, 다음 명령줄을 통해 Xcode 명령줄 도구를 직접 설치할 수 있습니다:
참고: osxprep.sh 스크립트가 이 명령어를 실행합니다.
위 명령어를 실행하면 다음과 같은 대화 상자가 표시되며, 다음 중 하나를 선택할 수 있습니다:
- Xcode 및 명령줄 도구 설치
- 명령줄 도구만 설치
- 설치 취소
OS X 10.8 및 이전 버전