node.js2012. 7. 9. 23:05

이제 node.js 를 시작해 보려 합니다.

트랜드에 조금 뒤쳐졌지만.. 시작해 봅시다.

왜 node.js에 관심을 가지게 되었는가 부터 배경을 설명하면..

간단한 설치 및 유연한 속도 또한 확장성 부분에서 뛰어날 수 있다라는 관점..

특히나 js 를 사용한다는 점.. 시스템을 접근해서 만질 수 있다는 점.. 여러가지 메리트가 있더라고요.

자 그럼 설치 해 보고 시작해 봅시다.

저는 우분투를 사용하기 때문에, 우분투 리눅스 위주로 작성합니다.

설치방법: 일단 apt-get 을 이용해 필요한 요소를 설치 합니다.

> sudo apt-get install g++ curl libssl-dev apache2-utils

> sudo apt-get install git-core

기본 설치는 완료 했고요.

이제 실제 node.js 라이브러리를 설치 합니다.

nodejs.org 로 가서 최신 버전을 받는다.

> wget http://nodejs.org/dist/v0.6.14/node-v0.6.14.tar.gz

> cd node-v0.6.14

> ./configure

> make

> sudo make install

샘플코드

 test_node.js 파일을 만드시고

var http = require('http');

http.createServer(function (req, res) {

  res.writeHead(200, {'Content-Type': 'text/plain'});

  res.end('Hello Node.js\n');

}).listen(8282, "127.0.0.1");

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

이렇게 넣으시고.. 커맨드 창에서

> node test_ndoe.js

이렇게 하시고 wget 127.0.0.1:8282 라고 하시면 확인이 가능합니다.

따로 ip 지정 안하시면 외부 웹으로 접근도 가능합니다.:)

그럼 몇 가지 샘플을 한 번 더 볼까요.

hello.js

// helloworld1.js

var sys = require("sys")

setTimeout(function() {

    sys.puts("world");

}, 2000);

sys.puts("hello");


// helloworld_sigint.js

puts = require("sys").puts;

setInterval(function() {

    puts("hello");

}, 500); 

process.addListener("SIGINT", function() {

    puts("good-bye");

    process.exit(0);

});


// hello_tcp.js

var tcp = require("net");

tcp.createServer(function(c) {

     c.write("hello!\n");

    c.end();

 }).listen(8000);


// hello_html.js

var http = require("http");

http.createServer(function(req, res) {

    res.writeHead(200, {"Content-Type": "text/plain"});

    res.write("Hello\r\n");

    res.write("World\r\n");

    res.end();

}).listen(8080);


// hello_stream.js

var http = require("http");

http.createServer(function(req, res) {

    res.writeHead(200, {"Content-Type": "text/plain"});

    res.write("Hel");

    res.write("lo\r\n");

    setTimeout(function() {

        res.write("World\r\n");

        res.end();

    }, 2000);

}).listen(8000);


응용할 만한게 참 많은 것 같다. 재미있네?

'node.js' 카테고리의 다른 글

node.js용 iOS 푸쉬 인증서를 생성해 보자.  (0) 2012.10.31
node.js 에서 debugger 를 사용해보자.  (0) 2012.10.26
Posted by 다오나무
SVN2012. 6. 26. 11:37

기본적으로 Mac OS X에는 Subversion 프로그램이 있다.

1.터미널에서 SVN 서버와 클라이언트 버젼을 확인해 보자

서버 : svnserve --version
클라이언트 svn --version

 




2. 소스 저장할 위치에 대해 폴더를 생성 하고 Repository 생성한다.

svnadmin create [경로]


실행화면


다음과 같이 폴더와 파일이 생성된다.



 3. SVN 로그인 계정 등록
[Repository 폴더]/conf/passwd 파일을 수정한다.


예) 아이디 : zang / 패스워드 : 1234 

 
4. SVN 환경 설정
[Repository 폴더]/conf/svnserve.conf 파일을 수정한다.


익명 사용자 접근 막기 (anon_access = none)
인증 사용자 쓰기 권한 (auth_access = write)
인증 데이터베이스는 passwd 사용 (password-db = passwd)




5. Mac에서 SVN 서버를 자동으로 실행하기 위한 스크립트 파일 만들어야 한다.
[참고] 직접 서버를 실행하는 명령어

svnserve -d --listen-port=3690 -r [Repository경로]


스크립트 파일을 만들어 명령어를 입력한다.



스크립트 파일 저장후 파일 권한 설정해준다.

chmod 755 [스크립트 파일 경로]



6. Mac에서 부팅시 자동으로 스크립트 실행하도록 설정한다.

[시스템 환경설정]-[사용자 및 그룹]-[로그인 항목]에서 하단의 + 버튼을 눌러서 방금전에 생성한 스크립트 파일을 선택하면 된다.




7. 설치된 SVN 서버에 기존 소스를 import 하기 


디렉토리 생성

svn mkdir svn://localhost/trunk
svn mkdir svn://localhost/branches
svn mkdir svn://localhost/tags 


오류가 다음처럼 나오면 export SVN_EDITOR=vi를 처리해준다. 

svn: Could not use external editor to fetch log message; consider setting the $SVN_EDITOR environment variable or using the --message (-m) or --file (-F) options
svn: None of the environment variables SVN_EDITOR, VISUAL or EDITOR is set, and no 'editor-cmd' run-time configuration option was found


export SVN_EDITOR=vi


실행하고 나면 vi창으로 넘어감.. -> esc키 -> :q! -> 엔터 -> c 
왜 이렇게 하는건지는.. 자세히 안봐서 아직 모르겠고 그냥 vi빠져 나가고 continue(C) 눌러주면 폴더 생성


디렉토리 삭제  

svn rm svn://localhost/trunk



프로젝트 Import 

  svn import --no-auto-props --no-ignore -m "test프로젝트 추가" /Volumes/data/workspace/test svn://localhost/trunk/test


--no-auto-props --no-ignore 옵션을 주면 바이너리 파일을 추가 할수 있음.
-m "메시지" SVN 기록 메시지 

 

프로젝트 export

  svn export svn://localhost/trunk/test

Posted by 다오나무
우분투2012. 6. 15. 18:40

웹프로그래밍을 공부하시는 분들, 특히 PHP를 공부하시는 분들이라면 APM이라는 패키지를 모를리가없다고 생각합니다. ( 모르신다면 지금이라도 한번 찾아 보시기 바랍니다. )


 APM은 웹서버를 구성하는 주요 도구인 Apache서버, PHP, MySQL의 이니셜을 말합니다. 여기에 Linux까지 넣어서 LAMP라고도 합니다. 

 우분투 리눅스 환경에서 APM 패키지를 설치하고 PHP를 공부해 보도록 합시다. 

$ sudo apt-get install apache2

위 명령을 실행합니다. 


 이제 아파치서버가 설치되었습니다. 아파치서버는 전세계 웝서버 점유율이 2007년 기준으로 50%가 넘는 인기있는 서버 프로그램입니다. 자세한 것은 위키백과를 참고하시기 바랍니다. 

 다음 명령어를 입력합니다. 아파치와 mysql을 연동하는 라이브러리를 설치하는 부분입니다. 

$sudo apt-get install libapache2-mod-auth-mysql


 두번째 단계도 마쳤습니다. 다음으로 DBMS인 My-sql을 설치하도록 하겠습니다. 다음의 명령어를 실행시킵니다. 

$sudo apt-get install mysql-server mysql-client


 명령어가 실행이 되면 Mysql 설치에 필요한 자료들을 내려 받고 Mysql 설치가 시작됩니다. 패스워드를 입력합니다. DBMS를 관리하기 위해 앞으로 필요하기 때문에 잘 기억 할 수 있는 암호로 하거나 암호를 잘 기억해 두시기바랍니다. 


 암호를 한 번더 반복하여 입력합니다. 


 Mysql의 root 비밀번호를 설정하고 나면 설치가 계속 진행이 됩니다. 잠시후 설치가 끝나고 자동으로 Mysql database server 가 재시작됩니다. 설치가 끝났으면 여러분의 리눅스에는 Mysql이라는 데이터베이스 프로그램이 깔리게 된 것입니다. 

이제 PHP5를 설치합니다. 다음 명령어를 입력합니다. 

$sudo apt-get install php5-common php5 libapache2-mod-php5


php5이 설치되었습니다. 이제 웹프로그래밍을 할 수 있는 환경이 설치되었습니다. 
이제 php5와 Mysql을 연동하기 위한 작업을 시작하겠습니다. 다음 명령어를 입력합니다. 
$sudo apt-get install php5-mysql


이제 php 프로그래밍을 하면서 Mysql과 연동해서 DB 프로그램을 할 수 있게 되었습니다. 이제 Apache 서버를 재시작합니다. 
 다음 명령어를 입력합니다. 

$sudo /etc/init.d/apache2 restart 



이제 Mysql 서버가 정상적으로 동작하는지 알아보도록 하겠습니다. 다음 명령어를 입력합니다. 

$sudo netstat -tap | grep mysql


명령어 입력 후 다음과 같은 메시지가 뜬다면 정상적으로 작동하고 있는 것입니다. 

tcp 0 0 localhost.localdomain:mysql *:* LISTEN -

그러면 정상적으로 웹서버가 동작하는지 테스트 해보겠습니다. 다음을 입력해서 텍스트 파일을 만들어 보겠습니다. 

$ sudo vi /var/www/phpinfo.php

 vi 에디터를 이용해서 다음과 같은 파일을 만듭니다. 
<?php
    print_r(phpinfo());
?>

 간단한 vi에디터 사용법을 알려드리자면 시작하면 i키를 눌러서 삽입 모드를 작동시키고 위의 소스를 타이핑합니다. 타이핑이 완료되면 [ESC]키를 누르고 ":"( 콜론 [Alt] + ";" ) 과 wq를 입력해서 저장하고 종료를 합니다. ( ":wq" )

 인터넷 창을 열고( 우분투 데스크 톱에는 기본적으로 파이어폭스가 설치되어 있습니다. ) http://locahost 를 입력합니다. 아파치서버가 정상적으로 설치되었다면 다음과 같은 화면이 출력 될 것입니다. 


  다음으로 php가 정상적으로 설치되어 있는지 확인해 보도록 하겠습니다. http://localhost/phpinfo.php 를 입력해 봅니다. php5가 정상적으로 설치되었다면 다음과 같이 php5에 대한 정보가 출력이 될 것입니다. 

 이제 /var/www/ 폴더가 여러분이 개발할 홈페이지의 기본 폴더가 될 것입니다. HTML파일이나 php파일을 만들어서 이 경로에 저장을 하면 다른 컴퓨터에서 웹브라우저를 이용해서 볼 수 있을 것입니다. 

 이제 php를 이용해서 웹프로그램을 개발해 보도록 합시다!! 이상 우분투 환경에서 APM을 설치해 보았습니다. 

Posted by 다오나무
우분투2012. 6. 15. 15:32

http://onyourlife.blog.me/150109430214

Posted by 다오나무
CentOS2012. 6. 15. 11:19

 

VMware에 centos 설치하는 방법은 글보다는 스샷을 보고 하시는게 더 빠르다고 판단 되므로~

스샷을 올리도록 하겠습니다 ^-^

아래 스샷과 같이 따라해주세요 ~:)

 

1.VMWare 구동화면 입니다.











































 

2. openoffice라고 이름 붙어 있는 것을 다 체크 해제를 해줍니다.
































 

 

 

 

사진만 봐도 충분히 설치 가능하시죠?

만약에 궁금한점이 있으시다거나 그러시면 지체없이 댓글달아주세요~

 

매일매일 확인한답니다 :)

'CentOS' 카테고리의 다른 글

CentOS 설치  (0) 2012.06.15
Posted by 다오나무
CentOS2012. 6. 15. 10:51

 

오늘은 어제에 있어서 리눅스 개발환경을 설치하겠습니다.

오늘 설치할 프로그램은 centos 라는 프로그램인데요,

 

vmware에 가상 OS를 올려주기 위해서 꼭 필요한 프로그램 입니다.

 

그럼 아래 스크린 샷을 보면서 따라해주세요 ~!

 

1. CENTOS 홈페이지를 방문해서 Downloads의 Mirroro를 클릭 !!  (http://www.centos.org 

 

2. Mirror List를 클릭한다.

 




3. Asian 서버에서 다운 받기 위해서 아래 빨간 동그라미 부분으로 된 사이트 클릭 

 

4. 중간에 daum 사이트가 보이는데 daum 사이트에서 맨 오른 쪽 HTTP 클릭

 

5. 아래에서 5.7버전이 아니라 5.8 버전으로 받아주세요 ! (고새 업데이트 되버렸음)

 

6. 5.8에 들어가도 아래처럼 나옵니다. isos 를 클릭 해주세요.

 

7. 32bit 사용자는 i386으로 , 64bit 환경 사용자는 x86_64로 들어갑니다.


8. 아래 사이트 중에서 별표시 된 torrent 파일을 받아주세요.


 

9. 그러면 아래처럼 토렌토 파일을 받으 실 수 있습니다.

(여기서 잠깐, 토렌트가 뭔지 모르신다구요 ? 네이버에서 '토렌토' 검색하셔서 다운받으시면 됩니다 :)

  그래도 모르 시겠으면 댓글 ㄱㄱ )

 

 

10. 토렌토가 설치되어 있으신 pc에서는 아래처럼 다운로드 진행 상황이 보이니까요 !

 


11. 다운이 끝났네용 . 저 밑에 목록 클릭해서 del키로 지워주세요~  메모리 잡아먹습니다.


 

다운이 다 되시면 적당한 경로 (추천 : 파티션 분할 된 D드라이브나, 만약에 D: 가없으시다면 C:\에 따로 폴더하나 만드세요)

(저 같은 경우는 c:\LinuxMaster\CenOs5.8 폴더안에다가 집어넣었답니다)

 

 

자 . 그러면 이제 마지막으로 VMWare 에 centos만 올리면 되겠지요?

이건 분량이 꽤 커서 다음 포스팅에서 최종 마무리 하겠습니다 :)

[출처] centos 설치 및 by 수야|작성자 수야

'CentOS' 카테고리의 다른 글

VMware에 centos 설치하기  (1) 2012.06.15
Posted by 다오나무
영삼이의 IT정보2012. 6. 12. 14:13

나는 내가 할줄 아는 대부분의 것들도 인터넷으로 찾아서 하는 편인데 그 이유는

  • 내가 아는 것에서 한정짓지 않고 다른 사람이 어떻게 하고 있는지 확인하며
    • 내가 모르는 무엇을 추가로 좀더 파악하고
    • 최신 트렌드를 연마하기 위해서이다.
  • 또한 지식을 축적하여 KnowHow를 늘려가는 것보다는 KnowWhere 가 좀더 중요도가 높다고 판단하기 때문이다. (물론 KnowWhere 는 제대로된 bookmark가 필수 요소이다.) 

mac os x Leopard 에 dav_svn 을 설치하는 과정은 검색해 보았으나 쉽게 찾을 수는 없었다. 검색 결과(mac leopard dav_svn) 중 하단의 블로그 결과로 봐줄만 한게 있었으나 "고기를 잡는 과정은 있으나. 고기를 잡는 방법에 대한 과정" 이 기술되어 있지 않은듯 하여 직접 기술 하게 되었다.

Running a subversion server on my Mac Mini – 2010년 1월 3일

I recently installed a Mac Mini to be run as a media server.  Create a new file for dav_svn.conf. sudo vi /private/etc/apache2/extra/dav_svn.conf 

dav_svn 은 WebDAV 에 Subversion 을 융합시키기 위한 모듈이다. WebDAV 는 Web-based Distributed Authoring and Versioning 으로서 웹을 통한 웹을 기반으로 하는 공동 저작활동을 할 수 있도록 해 주는 http 서버의 모듈이다. SubVersion 은 CVS의 단점을 개선하여 나온 신 버전 관리 시스템으로 볼 수 있다. dav_svn 을 융합시키면 좋은 이유는 다음의 2가지 정도로 볼 수 있다.

  • 인터넷이 되는 곳이라면 subversion을 이용할 수 있다.
    • WebDAV가 http 서버의 모듈이기 때문에 http protocol을 사용하고 때문에 방화벽에 대부분 안전하다. 즉, 인터넷이 되는 환경이라면 일단 subversion 이 된다고 볼 수 있다.
  • 웹으로 versioning 한 내용을 살펴 볼 수 있다.

따라서 svn server 를 잘 운영하고 있다 하더라도 WebDAV 를 이용해서 한단계 업그레이드 시키는 것은 권할만한 사항이라고 생각한다.

사실 mac 이든 어디든 dav_svn 을 설정하는 것은 그다지 어려운 일이 아니다. 다만 mac은 다른 리눅스 진영과 달리 컴파일보다는 바이너리 설치에 사람들이 익숙하고 아래 순서에 나와 있지만 하필 httpd.conf 에 svn관련 설정만 딱 빠져 있기 때문에 컴파일을 다시 해야 하나? 등의 오해를 불러 일으킬 수 있다. 따라서 해당 모듈이 이미 mac에 있다는 사실만 알면 된다. 참고로 아래 내용은 httpd.conf 그리고 module 이 무엇인지 아는 정도 레벨에서 이해할 수 있도록 기술 되어 있다. 짧게나마 쓴다면 httpd.conf 는 apache 웹서버의 설정값이 기술되어 있고 module 은 apache 웹서버의 플러그인으로 볼 수 있다.

  1. 지금부터 할 대부분의 작업들이 admin 권한을 요구하므로 sudo 로 shell에게 모든 권한을 부여한다.
    • sudo bash
    • 자신 계정의 password 입력.
    • terminal (터미널) 앱으로 해야 하는 것은 당연.
  2. apache2 설정 directory 로 이동하여 mod_dav_svn 이 없음을 확인 
    • bash-3.2# cd /etc/apache2
      bash-3.2# grep -R ‘svn’ *
    • 위의 명령을 날려보면 conf 파일을 포함하여 svn관련 내용이 없다는 것을 알 수 있다.
  3. svn 관련 모듈이 mac의 어딘가에 파일로 존재함을 확인
    • nzMini:apache2 nzin4x$ cd /usr/libexec/apache2/
      nzMini:apache2 nzin4x$ ls -al *svn*
      -rwxr-xr-x  1 root  wheel   64896 Oct  5  2009 mod_authz_svn.so
      -rwxr-xr-x  1 root  wheel  429632 Oct  5  2009 mod_dav_svn.so
      nzMini:apache2 nzin4x$
    • /usr/libexec/apache2 안의 파일들이 httpd.conf 에서 LoadModule 로 호출할 수 있는 파일이다.
  4. 모듈을 이용할 수 있도록 apache가 컴파일 되어 있음을 확인
    • bash-3.2# httpd -l
      Compiled in modules:
        core.c
        prefork.c
        http_core.c
        mod_so.c
    • 위의 mod_so.c 때문에 동적으로 모듈을 로딩할 수 있다. 만약 mod_so 가 없다면 동적으로 모듈을 할 수 없으므로 필요한 모듈을 같이 다시 컴파일 해야 한다. 요즘은 대부분 기본으로 동적 모듈을 제공한다.
  5. httpd.conf 에 수동으로 추가 함
    • LoadModule dav_svn_module libexec/apache2/mod_dav_svn.so
      LoadModule authz_svn_module libexec/apache2/mod_authz_svn.so

      LoadModule dav_fs_module libexec/apache2/mod_dav_fs.so
    • 적당한 위치에 추가하며 필자는 mod_dav_fs 위에다가 2줄을 추가 하였다.
  6. httpd.conf 에 관련 설정 모듈을 webdav 에 추가했음을 밝힘
    • # Distributed authoring and versioning (WebDAV), and svn
      Include /private/etc/apache2/extra/httpd-dav.conf
    • ,and svn 이라는 단순한 주석을 추가하였다. 현재까지의 과정은 apache가 svn 관련 module을 설치하는 과정이었고, 이제 이 모듈이 어떻게 동작할지에 대해서는 ./extra/http-dav.conf 에 추가할 것이다.
  7. /etc/apache2/conf/extra/httpd-dav.conf 수정
    • <Location "/svn">
          Dav svn
          SVNPath /Users/nzin4x/svnrepo
          AuthType Digest
          AuthName webhard
          AuthUserFile /etc/apache2/htpswd
          require valid-user
      </Location>
    • 위의 내용을 마지막 라인에 추가한다.
    • http://nz.pe.kr/svn 에 접속했을때 repository 인 /Users/nzin4x/svnrepo 에 접속(매핑)하라는 뜻이며 /etc/apache2/htpswd 에 만들어져있는 패스워드 정의 파일에 webhard realm (영역) 에 digest 방식으로 패스워드를 인증하여 사용하라는 뜻이다. 이 영역에 접근하기 위해서는 valid-user 여야 한다.
    • htdigest 를 이용해서 패스워드를 만드는 과정은 다음을 참고 한다. (http://httpd.apache.org/docs/2.0/programs/htdigest.html)
    • SVNPath 는 repository 가 하나일때 사용하는 것이고 여러개라면 SVNParentPath 등으로 상세하게 설정할 수 있다.
  8.   apachectl restart

좀 길게 적은감이 있다. 사실 중요한 것은 mac os x에는 dav_svn 을 위한 설정은 존재 하지 않지만 수동으로 추가 할 수 있도록 해당 모듈은 준비해 놓고 있다. 결국 위의 과정중 module 을 찾아내고 그것에 대한 설정을 추가하는 과정이 핵심이라고 할 수 있다.

'영삼이의 IT정보' 카테고리의 다른 글

svn merge 방법  (0) 2012.06.12
mac용 svn시작하기 [출처] mac용 svn시작하기|작성자 seungbeomi  (0) 2012.06.12
맥용 SVN 서버 설치  (0) 2012.06.12
Tabbar 아이콘  (0) 2012.06.11
StoreKit  (0) 2012.06.10
Posted by 다오나무
영삼이의 IT정보2012. 5. 19. 14:29

1. 맥 OS X가 설치되었다면 응용프로그램 > 유틸리티 > Bootcamp 지원 을 선택해서 부트캠프로 윈도우 7을 설치할 수 있다.

2. 외장 ODD가 있다면 그걸 이용하면 되지만 없을 경우에는 부팅 USB 드라이브를 만든다. 보통 윈도우 7용 부팅 USB는 MS의 USB Tool이나 UltraISO 등을 이용해서 만드는데, 라이온 이상의 맥 OS에서는 부트캠프 내에 자체적으로 부팅 USB를 만들어 주는 기능이 있으므로 이런 것을 이용할 필요는 없다.

3. 부트캠프를 실행하면 3가지 항목이 나온다.

1) Windows 7 설치 디스크 생성 :
이게 부팅 USB를 만드는 항목이다. (당연히 ODD로 설치할 경우에는 필요없다)
이 항목을 선택했을 경우, 설치에 사용할 윈도우 7 원본 설치 DVD 이미지(ISO파일)의 경로와, 대상 USB 드라이브를
지정할 수 있다.

2) Apple에서 최신 Windows 지원 소프트웨어 다운로드 :
부트캠프를 이용해 윈도우 7을 설치했다고 하더라도, 실제 윈도우를 기동하면 맥북의 각종 하드웨어를 윈도우에서
제어하는 데에 필요한 드라이버가 설치되지 않은 상태이다. 이를 위해서는 맥을 위해서 제공되는 드라이버들이 필요한데
바로 이 드라이버들을 다운받는 항목이다. 이 항목을 선택했을 경우, 설치 디스크 생성 과정이 끝난 뒤 인터넷으로
드라이버를 다운로드하게 된다. (꽤 상당히 시간이 걸린다)

3) Windows 7 설치 :
1)에서 생성된 USB나, ODD의 설치 디스크를 이용해서 실제로 윈도우 7을 설치한다.
이 항목을 선택했을 경우, 설치 과정에서 맥북의 하드디스크 파티션을 원하는 크기만큼 나누어 윈도우용으로 할당할 수
있다. (별도의 포맷 과정이 필요없다)

Posted by 다오나무