□ Node.js란?

  Node.js는 2009년에 라이언 달이 개발한 서버 개발 환경입니다. Google Chrome 브라우저에서 사용하는 V8 자바스크립트 엔진을 기반으로, 자바 스크립트로 앱을 개발할 수 있습니다.



  Node.js 공식 사이트(nodejs.org)에서는, Node.js에 대해 아래와 같이 설명하고 있습니다.


  Platform build on Chrome's JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run accross distributed devices. 


  여기서 event-driven이라는 개념은, 마우스, 메시지, 혹은 다른 프로그램이나 스레드의 이벤트에 의해서 프로그램의 흐름이 결정되는 구조를 말하고,



  non-blocking I/O란, 작업이 완료되기 전에 다른 작업을 계속할 수 있는 I/O 처리 방식을 말합니다.


  정리하면 아래와 같습니다.

  - 서버사이드 JavaScript (V8 엔진으로 컴파일) 프레임워크

  - 이벤트 기반으로 동작하며, Non-blocking I/O 방식

  - 목적은, 확장가능한 네트워크 프로그램들을 간단하게 만드는 것

  - CommonJS 모듈 시스템

  - 2009년 라이언 달이 JSConf에 발표하면서 화재

  - C랑 C++로 만들어짐

  - Open Source

  - 단 하나의 쓰레드가 이벤트 루프를 구동

  - Linux, Windows, Mac OSX 지원






□ 우리는 Node.js를 왜 익혀야할까?

  벌써 Node.js가 나온지 6년이 넘었습니다. 비교적 짧은 역사에도 불구하고, Node.js는 가볍고, 빠르며, 아주 새로운 언어가 아닌 자바스크립트로 다 할 수 있다는 장점에 힘입어, 빠르게 인기를 얻어왔습니다.

  사실 지난 5년동안 버전이 1.0이 안나오고 있어왔어서, 상당히 보수적으로 운영한다며 질타하는 목소리가 많았습니다. 기껏 익혀놓으면, 새 버전에서 많은 것이 바뀌어서 또 새로 익혀야하는 일이 반복되어왔던 것이죠.

  그렇지만, 이제 Node.js의 버전은 4.0을 넘어서 5.0 또한 안정화 단계에 접어들고 있습니다.



  Node.js는 네트워크 프로그램을 위해 만들어졌습니다.

  Node.js를 이용해서 사람들이 도구를 만들기 시작했고, JavaScript이기 때문에 특히 프론트엔드 관련 도구가 많이 생겼습니다.

  많은 시도가 있었지만, 지금은 데스크탑 어플리케이션도 만들어지고 있고, 최근에는 로봇제어가 큰 이슈로 관련 컨퍼런스도 많이 열리고 있는 상황입니다.



  물론 해외의 많은 기업들이 Node.js를 Production에서 사용하고 있기도 합니다.







□ Express?

  Express는 효율적으로 개발하기 위해 필요한 기능 및 아키텍쳐를 미리 만들어 제공하는 라이브러리 집합입니다. Node.js의 프레임워크로 Express, Geddy 등이 있는데, Express가 특히 빠르고, 고집없고, 깔끔한 web framework로 알려져있어, 많은 인기를 끌고 있습니다.

  Express의 특징을 나열하면 아래와 같습니다.

  - 강력한 라우팅

  - 고성능

  - 테스트 범위가 넓음

  - HTTP 지원 (redirection, caching, ...)

  - 14개 이상의 View Templete Engine

  - Content negotiation

  - 프로그램 실행이 빠름






□ 정리

  이제 우리는 Node.js + Express 프레임워크를 이용하여 다음과 같은 목표를 설정할 수 있습니다.



 JSP, PHP 등으로 웹 개발을 해오던 분들에게 있어서, 이들에게서 동적 웹 프로그래밍의 한계를 느껴 JavaScript, JSP 등을 붙이고 했던 것이, 이제 JavaScript 하나만으로 모든 것을 핸들링할 수 있게 된다는 것만으로도, Node.js는 크게 매력적입니다.



  그리고 이들을 아래 목차와 같이, 하나의 책에 깔끔하게 정리한 오라일리의 책이 번역되어 나왔다는 것은, 우리에게 정말 큰 행운입니다. :)


CHAPTER 1 익스프레스 소개

CHAPTER 2 노드 시작하기

CHAPTER 3 익스프레스로 시간 절약

CHAPTER 4 모양새 갖추기

CHAPTER 5 품질보증

CHAPTER 6 요청과 응답 객체

CHAPTER 7 핸들바를 사용한 템플릿

CHAPTER 8 폼 처리

CHAPTER 9 쿠키와 세션

CHAPTER 10 미들웨어

CHAPTER 11 이메일 보내기

CHAPTER 12 실무 관심사

CHAPTER 13 지속성

CHAPTER 14 라우팅

CHAPTER 15 REST API와 JSON

CHAPTER 16 정적 콘텐츠

CHAPTER 17 익스프레스에서 MVC 구현

CHAPTER 18 보안

CHAPTER 19 타사 API와의 통합

CHAPTER 20 디버그

CHAPTER 21 사이트 오픈

CHAPTER 22 유지보수

CHAPTER 23 추가 자원






저 또한 Node.js를 전혀 접해보지 않은 상황에서,

이 책을 통해 이렇게 Node.js + Express에 대한 개념을 일목요연하게 정리할 수 있었습니다.







※ 이 책에서 제공하는 모든 코드는 아래 링크에서 다운로드 할 수 있습니다.

https://github.com/EthanRBrown/web-development-with-node-and-express



  우리가 리눅스에서 터미널을 열었을 때, 까만 화면에 커서가 깜빡깜빡 거리고 있는, 명령어를 칠 수 있는 이 프로그램을 bash라고 하는데, 이 bash는 바로 셸(shell)이라는 프로그램의 일종이다. bash는 명령 언어를 해석해서 실행해주는 프로그램이다.




  리눅스가 부팅될 때를 생각해 보자. 부팅이 되면 시스템 설정 정보들을 읽어 들이고 서비스를 구동하기 위해서 /etc/rc.d에 있는 셸 스크립트를 실행한다. 이 스크립트들을 자세히 이해하는 것은 시스템의 동작을 분석하기 위해서 매우 중요하기도 하지만 나중에 고칠 필요가 있을지도 모르는 일이다.

  결국, 쉘 스크립트가 어떻게 동작하는지를 이해하는 것은 실력있는 시스템 관리자가 되고 싶어 하는 이들에게는 필수적이다. 비록 그들이 실제로 스크립트를 작성하지 않는다고 해도 말이다.




■ 셸 스크립트를 만드는 것을 배우기는 어렵지 않다. 그 근거는 아래와 같다.

      몇 개의 셸용 연산자와 옵션들 만으로 아주 작게 만들 수 있다.

      셸 문법은 간단하고 명확하다. 명령어줄 상에서 명령어를 실행시키거나 유틸리티들을 연결해서 실행시키는 것과 거의 비슷하지만 단지 몇 개의 "규칙"만 배우면 된다.


  물론 셸 스크립트를 못써도, 개발 능력이 있다면 얼마든지 다른 대안을 마련할 수 있다. 하지만 셸 프로그래밍을 알고 있으면, 셸의 이 장점으로 말미암아 조금 더 편하게 작업을 할 수 있다.


  우리가 프로그래밍 언어에 능숙해지는 과정에서는, 각종 예제를 풀고, 그 해법 코드를 보고 따라해가며 익혔던 과정이 분명히 섞여있었다. '유닉스 리눅스 셸 스크립트 예제 사전'은, 이러한 방법으로 셸을 익혀가는데 유용하다.






■ 누가 읽으면 좋을까?

  이 책은 셸에 대한 어떠한 사전 지식이 없는 사람도 충분히 읽을 수 있도록 명령어, 키워드, 사용처, 실행예제, 스크립트 단락으로 구성이 알아보기 쉽게 잘 이루어져있다.


  그렇지만 셸 프로그래밍에는 기본적으로 리눅스 중/고급 수준의 명령어가 심심치 않게 활용되곤 한다. 따라서 셸 프로그래밍의 초심자, 그 중에서도 리눅스에 대한 사전 지식이 없다면, 아래의 책들을 참고하여, 유닉스/리눅스의 슬기롭고 교훈적인 부분들을 우선 배워나간 후 다시 이 책을 접하길 권한다.




  아, 이런 최근에 나온 책도 있다!






■ 이 책을 어떻게 활용할 수 있을까?


  '유닉스 리눅스 셸 스크립트 예제 사전'은, 총 132가지의 내용을 10개 챕터로 나누되, 전부 같은 구성으로 이루어져있다. 이로 하여금 순서에 구애받지 않고 필요한 곳 부터 먼저 학습할 수 있고, 나중에 필요한 부분을 찾아가기에도 편리하게 목차가 구성되어 있다.

  따라서 항상 손에 닿는 곳에 놓아두고서, 필요한 단어가 생각나지 않을 때 사전을 찾아보듯, '유닉스 리눅스 셸 스크립트 예제 사전'을 활용할 수 있을 것이다.







WhoseBody?
카테고리 문학>소설>미스터리/스릴러/호러
지은이 Sayers, Dorothy L. (HarperMassMarketPaperbacks, 1995년)
상세보기

[2011년 3월 5일 ~ 2011년 3월 7일]

 

별 거 아닌 추리소설이었지만, 영문 원서로 된 책이다보니 다소 오래 걸렸다.

 

하여튼, 이게 추리소설이었을까? 추리 소설의 독특하고 치밀한 트릭이나 반전 따위로 설레일 것이란 내 기대를, 하품까지 나오는 심심함으로 화답하였다.

 

하기야 19세기는 현대와는 다르겠지.

그 때라면, 서부의 무법자가, 결투를 하기 직전에 단지 등을 돌려 서 있을 따름인 장면을 몇 십분동안 틀어줘도, 그 상황 하에 바람에 흩날리는 모래먼지와 엉겅퀴가 멋있어보일 때였을테니까.

 

하지만, 오늘까지만 해도 이 어려운 작업 하기 싫다며 선배한테 떼를 쓰고 온 내 쿨하지 못한 모습을, 피터가 대신 이입해준 것 같아서 괜한 후회는 하지 않았다. 아니, 좋았다.

남자인 내가 봐도, 피터 당신은 능력자.

+ Recent posts