Hello World

rabter

Rbenv 로 OS X 에 ROR(Ruby on Rails) 설치하기

Rbenv 로 OS X 에 ROR(Ruby on Rails) 설치하기

기존엔 RVM을 사용하여 Ruby의 버전을 관리했는데 현재 rubyonrails.org에서도 rbenv를 추천하고 Unix철학(작고 정교한 도구로써 소프트웨어를 지지하는)에 의해서도 기존의 RVM은 너무 많은 일을 한다. Ruby 버전을 변경, Ruby인스톨 및 gemset관리도.. 그에 비해 rbenv는 Bundler를 사용하여 gem을 관리하고 ruby-build로 ruby를 인스톨한다.

  1. Homebrew 설치 :: http://brew.sh, 위키 :: https://github.com/Homebrew/homebrew/wiki
  2. rbenv 설치 :: https://github.com/sstephenson/rbenv

    rbenv는 shims라는 방식을 사용하여 루비를 관리한다.
    rehashing을 통해 shims 디렉토리 안의 erb, gem, irb, rake, rdoc, ri, ruby, testrb를 현재 사용중인 루비의 실제 바이너리와 연결한다.

    1. 설치되어있는 RVM 제거하기
      $ rvm implode
      기존 환경변수(~/.bash_profile)에 추가했던 설정들도 찾아서 제거합니다.
    2. rbenv 설치하기
      $ brew update
      $ brew install rbenv
      $ brew install ruby-build
      $ rbenv rehash
      
      환경 변수 설정을 추가한다. (~/.bash_profile)
      if which rbenv > /dev/null; then eval "$(rbenv init -)"; fi
    3. 원하는 Ruby 버전 설치하기

      $ rbenv install -l     Available versions: 
       1.8.6-p383
         1.8.6-p420
         1.8.7-p249
         1.8.7-p302
         1.8.7-p334
         1.8.7-p352
         ...
       사용하려는 버전을 설치한다.
       $ rbenv install 2.1.0
      
    4. Ruby 버전 변경하기

       $ rbenv versions
       * system (set by /Users/dennis/.rbenv/version)
         2.1.0
      

      조금 전 설치한 버전으로 변경하려면

       $ rbenv global 2.1.0
       $ rbenv versions
       system
       * 2.1.0 (set by /Users/dennis/.rbenv/version)
       $ ruby --version
       ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin13.0]
      

      루비 버전이 정상적으로 변경된것을 확인할 수 있다.

    5. Bundler 설치하기 RVM과는 달리 Bundler가 기본으로 설치되지 않기 때문에 아래 명령으로 추가 설치 해야 한다.

       $ gem install bundler
       $ rbenv rehash
      
    6. rails 설치
       $ gem install rails --no-document
       $ rbenv rehash
      

Sent from My Haroopad
The Next Document processor based on Markdown - Download

Upgrade Node.js via NPM

Upgrade Node.js via NPM

http://nodejs.org 를 방문하다 보면 버전이 조금씩 올라 가는 것을 볼 수 있다. 하위 버전으로 내리고 싶을 때도 있고 최신 버전으로 올리고 싶을 때도 있을 것이다.

현재 Mac 또는 리눅스 서버에 설치된 버전을 업그레이드 하기 위해 npm 을 사용하여 Node version management 를 해주는 n 이라는 모듈을 설치해보자. https://github.com/visionmedia/n

$ sudo npm cache clean -f 
$ sudo npm install -g n
$ sudo n stable     install : v0.10.27     mkdir : /usr/local/n/versions/0.10.27     fetch : http://nodejs.org/dist/v0.10.27/node-v0.10.27-darwin-x64.tar.gz     installed : v0.10.27
$ node -v
v0.10.27

옵션에 따라 stable 버전 및 특정 버전으로 설치도 가능하다.

$ sudo n 0.11.11

Sent from My Haroopad
The Next Document processor based on Markdown - Download

CentOS 에서 nodejs 설치하기

CentOS 에서 nodejs 설치하기

맥이나 윈도우에서는 nodejs 설치가 아주 쉽게 되지만 리눅스(여기서는 CentOS) 에서는 조금 번거롭다.

1. Download

nodejs.org 에서 Source Code 버전으로 다운받는다.(현재 v0.10.26)

2. Install

node-v0.10.26.tar 아카이브를 풀고 인스톨한다.

$ tar xvf node-v0.10.26.tar
$ ./configure
$ make
$ make install
$ node -v 
v0.10.26
3. Hello World

간단한 예제 프로그램 작성하여 테스트. test.js

console.log('hello nodejs');
$ node test.js
hello nodejs

Sent from My Haroopad
The Next Document processor based on Markdown - Download

SSC(Self Signed Certificate)

SSC(Self Signed Certificate)

웹사이트를 개발하다 보면 HTTPS 서비스를 많이 하게 된다. 최근에는 개인정보보호 이슈때문에도 그렇고 보안을 위해 HTTPS는 필수적으로 되어가는 시점에 아무래도 서버에 SSL인증서를 구비하려면 연간 결재도 해야하고 해서 부담이 되는데 테스트를 위해서 하려면 SSC 즉 Self Signed Certificate 개인화 키를 발급 받아서 세팅하면 테스트 어플리케이션 용으로는 충분히 유용하게 사용할 수 있다. 특히 페이스북앱 개발을 하다보면 https 페이지가 필수라 더더욱 유용하다.


# 1. RSA 기반의 private key 생성
$ cd /etc/pki/tls/private
$ openssl genrsa -des3 -out myhostname.key 1024
Generating RSA private key, 1024 bit long modulus
....................++++++
..........................++++++
e is 65537 (0x10001)
Enter pass phrase for myhostname.key:

myhostname.key 생성됨

# 2. 서버 인증서 발급을 위한 요청 파일 CSR(Certificate Signing Request) 생성

custom_openssl.conf 작성

[ req ]
default_bits            = 2048
default_md              = sha1
default_keyfile         = privkey.pem
distinguished_name      = req_distinguished_name
[ req_distinguished_name ]
countryName             = Seoul
countryName_default     = KR
countryName_min         = 2
countryName_max         = 2
organizationName                = (ex. company name)
organizationName_default        = company name
organizationUnitName            = Division
organizationUnitName_default    = Division
commonName              = myhostname
commonName_default      = myhostname
commonName_max          = 64
$ openssl req -new -days 365 -key myhostname.key -out myhostname.csr -config custom_openssl.conf
Enter pass phrase for myhostname.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
countryName [countryName_default]:
organizationName [organizationName_default]:
myhostname [myhostname]:

myhostname.csr 생성됨

# 3. Key Passphrase 제거

매번 패스워드를 입력하기 번거롭기 때문에 바로 바로 띄울 수 있도록 한다.

$ cp myhostname.key myhostname.enc
$ openssl rsa -in myhostname.enc -out myhostname.key

보안을 위해 permission 제거

$ chmod 600 myhostname.key

# 4. self-signed 인증서 생성(.crt 파일생성)
$ openssl x509 -req -days 365 -in myhostname.csr -signkey myhostname.key -out myhostname.crt
# 5. apache 에 적용하기

/path/to/apache/modules 에 mod_ssl.so 파일을 확인하고 만약 mod_ssl 설치가 안되어 있으면 설치. (centOS 기준 $ yum install mod_ssl)

ssl.conf 파일에 위에서 만든 키 경로를 설정하고 아파치를 다시 띄운다.

Sent from My Haroopad
The Next Document processor based on Markdown - Download

기술자료정리(4)

관심 기술자료 공유

Javascript, PHP, Python 등
  1. jQuery Coding Standards - jQuery 코딩에 대한 표준 문서 정리.
  2. 자바스크립트 제대로 배우기 - nolboo 님이 공유한 자바스크립트 제대로 배우기.

IT 뉴스 / Tool / Library
  1. gitignore.io - 언어별 .gitignore 파일 자동 생성하기.
  2. AdminLTE - Bootstrap 기반 오픈소스 템플릿.
  3. LinkedIn 에서의 Node:번역글 - RoR을 사용하고 있던 LinkedIn 이 Nodejs 로 바꾸게 된 히스토리 번역글.

아키텍쳐, 기술문서, 학습사이트
  1. SCRATCH - 교육용으로 만든 프로그래밍 사이트. 원래 목적은 8~16세를 위해서 만들었다고 하는데 실제로 나이와 상관없이 모든 연령대가 사용. 참 재밌는 사이트네요.
  2. Git Tutorials - Atlassian 사이트에서 만든 Git Tutorials.

Sent from My Haroopad
The Next Document processor based on Markdown - Download

Favorite Safari Shortcuts

원래 크롬을 주로 사용하다가 최근에는 맥에서 사파리를 주로 이용하는데 속도도 체감하기에 빠른 것 같고 개발자용 메뉴(환경설정-고급-메뉴막대에서 개발자용 메뉴보기 체크) 도 제공하고 있어서 웹페이지 디버깅도 특별히 확장 프로그램 깔지 않고 사용하고 있습니다.

사파리를 사용하면서 편리하게 사용할 수 있는 단축키(short cut)를 정리해 봤습니다.

  1. 주소 URL 입력창 바로 가기 : Comman + L
  2. 방문 기록 보기 : Command + Option + 2
  3. 페이지 스크롤 : Space Bar(내리기) / Shift+ Space Bar(올리기)
  4. 탭간 이동 : Command + Shift + 좌/우 화살표
  5. 현재 페이지(또는 URL) 를 메일 템플릿으로 : Command + I
  6. 나중에 읽기(읽기 목록 으로 저장) : Command + Shift + D
  7. 읽기 목록 리스트 보기 : Command + Shift + L
  8. 웹페이지를 읽기 도구로 보기 : Command + Shift + R

개발자 도구
  1. 콘솔보기 : Command + Option + C
  2. 콘솔닫기 : Command + Option + I
  3. 소스보기 : Command + Option + U
  4. 리소스보기 : Command + Option + A
  5. 캐쉬비우기 : Command + Option + E

스니펫편집기
     메뉴 - 개발자용 - 스니펫편집기
     CSS, Javascript, Html 입력 하고 결과를 확인 할 수 있는 도구입니다. 이거 좋네요.

기술자료정리(3)

관심 기술자료 공유

Javascript, PHP, Python 등
  1. clean.js - 한국의 jQuery 를 꿈꾸는 오픈소스 자바스크립트 라이브러리. 페이스북 그룹에서 신청하시면 누구나 참여할 수 있어요.
  2. JSNES - 바로 즐길 수 있는 Javascript emulator. 정말 자바스크립트의 한계는 없는 듯 합니다.
  3. python for beginners - 파이썬 공부하기 좋은 사이트.

IT 뉴스 / Tool / Library
  1. ATOM - Github 에서 내놓은 text editor. 과연 sublime text 를 넘어설 수 있을까요.
  2. summernote - Bootstrap 기반 WYSIYWYG Editor.
  3. Bootstrap Live Editor - Bootstrap 기반 WYSIYWYG Editor.
  4. Microsoft Office 클라우드 서비스 - Google Docs 같은 MS에서 만든 클라우드 서비스. 오피스작업도 할 수 있습니다. 7GB 무료제공.

Database, 빅데이터
  1. flywaydb.org - Java 용 agile database migration framework. maven, gradle, ant 등 지원합니다.
아키텍쳐, 기술문서, 학습사이트
  1. 리눅스 시스템 모니터링 최적화 - 리눅스 시스템 전반에 걸친 내용으로 서버쪽 관리할 때 유용한 부분 참고하면 좋을 것 같네요.
  2. Spring 과 Mybatis를 사용한 Java Web Application 예제 - 처음 접해보시는 분을이 보시면 좋을 듯 하네요.

Sent from My Haroopad
The Next Document processor based on Markdown - Download

기술자료 정리(2)

관심 기술자료 공유

Javascript, PHP, Python
  1. Placeholders.js - IE 상위 버전도 지원.
  2. jQuery Builder - jQuery 를 custom하게 빌드할 수 있는 사이트.
  3. mmenu - 깔끔한 슬라이딩 메뉴 제작을 위한 jQuery plugin
  4. 파이썬 학습 사이트 - 알고리즘과 자료구조를 이용한 학습 사이트.

IT 뉴스
  1. facebook이 왓츠앱을 160억달러(17조원)에 인수. 지난번 인수한 인스타그램의 16배. 대단하네요.- http://goo.gl/R9yVLu
  2. 구글은 어떤 사람을 채용하는가 - 원문, 한글 번역을 깔끔하게 해주었네요.

아키텍쳐, 기술문서, 학습사이트
  1. IT eBooks - IT 관련 eBook을 검색할 수 있는 사이트. free download ebook 들이 많아요.
  2. Git 브랜치 배우기 - 한글로 되어 있어서 좋네요.

맥용 프로그램
  1. SourceTree - Git Client 프로그램. git 프로젝트별로 관리하기 쉽고, 업데이트를 주기적으로 확인할 수 있어서 괜찮은 툴.

Sent from My Haroopad
The Next Document processor based on Markdown - Download

Sublime Text 3 Beta 활용하기

최근에는 sublime text 에디터를 사용하시는 분이 많은 것 같네요. 저도 사용한 뒤로는 다른 에디터는 사용하지 않을 정도로 빠르고 편리해서 만족하는 에디터입니다. 현재 3 버전이 beta 공개되어 있습니다.

다운로드 링크 Download

버전 3의 핵심 기능

속도 : 프로그램 실행 및 파일 로딩 시간이 빨라졌습니다.

Symbol Indexing : 함수나 클래스로의 이동 기능이 이제 됩니다. 진정한 IDE로서의 기능이 지원되네요. HTML 편집기능 향상 : 태그 완성이나 자동 닫기를 지원해줍니다.

향상된 프로젝트 및 Pane 관리 : 한 프로젝트에서 여러개의 workspace 관리가 가능합니다.

Richer API : 플러그인을 위해 Python 3.3 을 사용하고, 플러그인이 에디팅 하는데 방해되지 않도록 (fully thread-safe) 합니다.



자주 사용할 만한 기능

탭간 이동 : ctrl+tab - 순서(ordering)를 세션에 저장.

Symbolic Indexing : 해당 부분에 커서를 가리키고 command(⌘)+option(⌥)+⬇

Pane 관리 : 메뉴>View>Layout, 메뉴>View>Groups 여러 파일을 한번에 열어서 편집할 수 있어 편합니다.

Go to Line : control + g - 해당 라인으로 이동

파일찾기 및 메소드찾기 : 프로젝트 내 파일은 command(⌘)+p , 메소드는 command(⌘)+p 한 후에 텍스트 창에서 @메소드명 으로 검색할 수 있습니다.

Full Screen : control(^) + command(⌘) + f

프로젝트 전체 검색 : command(⌘) + shift + f

sublime text 에디터의 특징은 정말 활용할만한 패키지가 플러그인으로 많이 제공되고 있다는 점이죠. 다음에 기회가 되면 좋은 패키지들 정리해 보겠습니다.


기술자료 정리(1)

관심 기술자료 공유
Javascript, PHP

Node.js 로 파일 첨부하여 메일 발송하기 - 링크
웹사이트 데이터 가져오기(Node.js, Ruby, PhantomJS) - 링크
CodeIgniter - PHP 개발을 위한 Framework. 아직도 웹개발 언어의 비중 최강자는 PHP네요.

IT 뉴스

페이스북 페이퍼(Paper) - 페이스북에서 만든 뉴스피드 앱. 관심섹션별로 큐레이션해주는 서비스. 현재 iOS로만 다운로드 가능.
역시 페이스북이 네이티브 앱으로 돌아간 이유를 알겠네요. 반응속도도 빠르고 UX가 멋지네요.

아키텍쳐, 기술문서

구글의 언어별 코딩 스타일 가이드- 정답은 아니어도 참고하면 도움이 많이 될 것 같습니다.
아마존 웹 서비스를 통해 웹 아키텍쳐를 이해하자. 링크 - AWS(Amazon Web Service)에 대한 이해를 도와주는 사이트.
Popular Coding Convention on Github - Outsider 님이 만드신 Github 에 Commit 된 코드들을 언어별로 분석하여 통계낸 인기있는 코드 컨벤션. 내가 많은 사람들이 사용하는 컨벤션을 사용하고 있다고 생각하니 좀 뿌듯하네요.

맥용 프로그램

little link - short url 생성 앱. 클립보드에 저장된 URL을 변환해줌.
Caffeine - 맥이 잠자기 모드로 가는 것을 막는 프로그램. 네이밍이 기가막히네요.

Sent from My Haroopad
The Next Document processor based on Markdown - Download