NodeJS 는 예전부터 C/C++ 이 차지하던 위치를 (최근에 Python 이 차지한 것 같은 이야기가  있습니다) 차지한 것 같은 언어 입니다. (C/C++ 에 비하여) 어렵지도 않고 아주 쉽고 편하게 서버 어플리케이션을 만들 수 있는 쉬운 언어 입니다. 그 쉬운 NodeJS 를 살펴볼 일이 있어서 잠깐  살펴보게 됐습니다.

 설치법

여러가지 해줘야 하는 것이 있지만, 우리는 Ubuntu 를 쓰지 않겠습니까? 초 간단하게 설치가 가능합니다. (당연히 Mint 도 동일합니다)
   
    sudo apt-get install python-software-properties
    sudo apt-add-repository ppa:chris-lea/node.js
    sudo apt-get update
    sudo apt-get install nodejs npm   


 구동 테스트

간단하게 파일을 한개 편집해줍니다.

   
$ emacs example.js

그리고 다음과 같은 내용을 써 줍니다.
	
    var http = require('http');

    http.createServer(function (request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
    }).listen(8124);

    console.log('Server running at http://127.0.0.1:8124/');

이제 다 됐습니다. 바로 확인해 보기로 합니다.

 
   $ node example.js

브라우져에서 http://localhost:8124 를 입력해서 제대로 동작하는지 테스트 합니다.

사실 이 정도 쉽게 해주는 방법은 많이 나왔지만, 이 언어가 각광 받는 이유는 여러가지가 있겠습니다. 일단 가볍고, 문법 자체가 JavaScript 기 때문에 배우기도 쉽고 (이거 될까? 하는게 다 되는게 자바 스크립트 입니다 ㅎㅎ) 그리고 만들어진 결과물 자체의 효율도 좋습니다.



Ubuntu version - 10.04 LTS 루시드 링스(Lucid Lynx)

svn (뿐만 아니라 다른 소스 관리 툴)은 개발자 끼리 협업을 하기 위해서 뿐만 아니라 혼자서 연습 삼아서 개발한다고 해도 꼭 익혀야만 하는 개발자들만의 프로토콜 이라고 볼 수 있습니다.

이글은 우분투에 svn 서버 버젼을 세팅하는 데 관련된 팁입니다. 집에서 혼자 연습하는 경우라 하더라도 소스 레파지토리(Source Repository)를 쓰는 버릇을 들이는 것이 여러모로 좋습니다. 어쩌다가 외부에 나가서 협력하게 되는 경우가 생길 때 태연하게 '그냥 혼자 개발해서 합칠때 zip 으로 압축해서 한명이 합치면 되는 거지 뭘 귀찮게 그런걸 쓰나요? ' 라는 충격적인 질문을 받을 때가 많습니다. 중소기업 대기업을 가리지 않고 말이죠. 

1. 아파치, 서브버젼, 아파치에 연동되는 svn 모듈 설치

sudo apt-get install apache2 libapache2-svn subversion

2. 저장소 생성

sudo mkdir /svn

3. 아파치 관련 설정 파일 번경

sudo emacs /etc/apache2/mods-available/dav_svn.conf

개개인의 취향에 따라서 에디터 는 바뀔 수 있습니다. (emacs -> vim 이나 gedit)

다음에 나오는 것처럼 코멘트 기호를 삭제합니다. 

#<Location /svn>
..
#</Location>

를 

<Location /svn>
..
</Location>


# DAV svn

를 

DAV svn

로 

# SVNPath /var/lib/svn


SVNPath /svn


  
#AuthType Basic
#AuthName "Subversion Repository"
#AuthUserFile /etc/apache2/dav_svn.passwd


  AuthType Basic
  AuthName "Subversion Repository"
  AuthUserFile /etc/apache2/dav_svn.passwd


  #<LimitExcept GET PROPFIND OPTIONS REPORT>
    #Require valid-user
  #</LimitExcept> 


  <LimitExcept GET PROPFIND OPTIONS REPORT>
    Require valid-user
  </LimitExcept> 


4. 아파치 재시작 (restart)

sudo /etc/init.d/apache2 restart

만약 문제가 생긴다면 3번을 자세히 살펴봐서 틀린 것이 있나 확인합니다. 

5. 프로젝트에 접속할 계정 생성 

3번에서 AuthUserFile 로 지정된 파일에 생성해 줘야 하겠지요? 

sudo htpasswd -c /etc/apache2/dav_svn.passwd crazia
 - 비밀번호 입력 처리

crazia 는 제 아이디 입니다. 본인의 아이디로 바꾸서 만들면 됩니다. 입력을 하면 비밀번호 세팅하는 과정이 나옵니다. 만약 처음으로 저 파일에 계정을 추가하는 것이라면 '-c' 옵션을 쓰는 것이고 다음부터 사람을 추가하는 것이라면 '-m' 으로 옵션을 바꿔서 입력하시면 됩니다. 계정 생성 잘못 했는데 수정하고 싶으면 간단하게 dav_svn.passwd 파일을 삭제하는 것을 추천합니다. 

6. 프로젝트 디렉토리 와 소유권 변경

sudo svnadmin create /svn
sudo chown -R www-data:www-data /svn

svn 은 아파치를 거쳐서 작업하기 때문에 svn 프로젝트가 저장되는 공간을 www-data 계정의 소유로 바꾸는 작업입니다. 

7. 테스트 

예전에 포스트에서 만들었던 echo-server (클릭) 을 올려보기로 하지요. echo-server 가 저장된 곳이 '~/work/echo-server' 라고 가정하면 

cd ~/work
svn import ./echo-server http://localhost/svn/echo-server -m "create echo-server repository" 

그리고 브라우져에서 

http://localhost/svn/echo-server 

로 가서 제대로 올라갔는지 확인하세요. 





 

+ Recent posts