일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 마소
- Javascript
- Python
- AngularJS
- JQuery
- node.js
- npm
- 인턴
- 제이쿼리
- 개발환경
- 테스트
- Ajax
- MongoDB
- non-blocking
- 750R
- CoffeeScript
- 웹디자인
- 마이크로소프트
- 빅데이터
- 크로스브라우징
- Microsoft
- github
- 자바스크립트
- git
- 콜백 함수
- callback function
- NoSQL
- 오픈소스
- CSS
- Today
- Total
목록Node.js (18)
Inspired World
클라이언트 사이드 (웹브라우저)에서 전역 객체에 접근하고 싶다면 window 객체를 통해 접근 할 수 있습니다. 예를 들어 example 이라는 변수를 전역 변수로 만들고 싶다면. window.example = null; 이렇게 하면 example 이라는 전역 변수에 null 값을 할당하게 됩니다. 서버 사이드 (Node.js)에서 전역 객체에 접근하고 싶다면 global 객체를 통해 접근 할 수 있습니다. 위와 동일하게 example 이라는 변수를 전역 변수로 만들고 싶다면. global.example = null; 이렇게 하면 example 이라는 전역 변수에 null 값을 할당하게 됩니다. 가급적이면 전역 변수를 쓰지 않는게 좋지만 전역 변수를 꼭 써야만 하는 상황이 있을 수 있으니 클라이언트 사이..
Node.js 에서 require('경로'); 를 활용하면 그 .js 파일 기준으로 상대 경로에 위치한 js 파일을 가져와 쓸 수 있습니다. 여러 함수를 라우팅 페이지와 함께 다같이 몰아 넣는게 아니라 HTTP 요청을 라우팅 할 때 함수들을 의미 별로 파일로 나누어서 관련 함수들을 모아놓고 사용하면 아주 유용하죠. 문제는 저 상대 경로 입니다. 나름 절대 경로 비슷하게 자체적으로 root directory 가 있다면 그걸 기준으로 폴더나 파일을 정리해서 require를 사용하면 참 좋을텐데요. 이럴 때는 process.cwd() 를 활용하시면 해결됩니다. 예를들어 웹 프레임워크가 app.js 로 실행된다고 할 때 node app.js 로 실행을 하게 됩니다. 이 때 이 경로가 process.cwd가 됩니..
Node.js 의 큰 특징인 이벤트 기반은 하나의 스레드를 사용함에 있어서는 비동기처리에 있어서 아주 뛰어나지만 멀티코어 CPU를 사용하는 서버에서 Node.js를 돌리다보면 나머지 사용하지 않는 코어들이 아깝게 느껴집니다. 또 그런 사용하지 않는 코어 때문에 다른 언어/웹프레임워크와의 벤치마크에서도 많이 밀리는 모습을 보여줍니다. 하지만 Node.js 0.4.x 시절에도 cluster라는 모듈이 있었고 버전이 0.6.x 가 되면서 자체 모듈로써 포함이 되면서 멀티코어에서도 Node.js를 활용할 수 있게 되었습니다. 사용 방법은 간단합니다. 위 코드 처럼 이미 작성된 http server나 express 코드를 else 부분에 넣어주고 Worker를 CPU 코어 갯수 만큼 생성하게 하면 됩니다. 또 위..
Node.js 에서의 장점은 non-blocking 입니다. 하지만 이것이 하기에 따라 오히려 독이 될 수도 있는데요. blocking 코드를 Node.js 에서 작성하게 되면 Node.js 가 돌아가는 이벤트 루프의 특성상 모든 일이 blocking 코드가 다 할때까지 기다리게 됩니다. 예를 들어 for(var i=0; i
Node.js 는 단순히 웹서버로써 또 서버 앞 단에 두는 Reverse Proxy로써만 사용하기에도 좋지만 Nginx 나 Apache 와 같은 웹서버와 PHP, Java, C#, Python, Ruby 등을 연결해서 사용해야 하는 기존의 방법과는 달리 Node.js 는 자체적으로 자신이 웹서버이면서 로직도 담당할 수 있습니다! 이렇게 1 어시1 골을 혼자 다 하는 것이나 다름없죠 ㅎㅎ 물론 예전 포스팅 글에서 밝혔듯이 "Ryan Dahl 의 추천사항으로 아직 발견되지 않은 Buffer Overflow 으로 인해 발생할 수 있는 취약점을 Nginx 를 앞에 Reverse Proxy로 둠으로써 완벽하진 않지만 어느정도 가릴 수(?) 있다고 합니다. 또 Static File( CSS, JavaScript, ..
먼저 Node.js 를 설치해보겠습니다. 설치에 앞서 반드시 미리 설치되어 있어야 할 것들이 있는데요. Python 2.5+ libssl-dev 이 두가지는 설치를 하기 위한 파일이므로 꼭 필요합니다. 이것 말고도 버전관리를 위해 git을 주로 쓰지 않는다 하더라도 다른 오픈 소스 커뮤니티의 git repository에서 소스를 가져올 때도 git을 사용하기 때문에 혹시 git이 깔려있지 않다면 git-core도 함께 설치해줍니다. 제가 즐겨 사용하는 Ubuntu 11.04 Natty 기준으로 설명하겠습니다. apt-get install g++ curl libssl-dev apache2-utils git-core make설치가 다 되었다면 설치파일을 다운 받고 압축을 풀고 싶은 디렉토리로 이동 후 Nod..
Node.js를 호스팅 할 수 있는 방법은 여러가지가 있습니다. 가장 쉬운 방법은 PaaS 클라우드 호스팅을 이용하는 방법인데요. 소스만 가지고 특정 포트 설정이나 이런것만 호스팅에 따라 조금만 맞춰주면 서버 관련된 설정은 아예 신경을 써도 되지 않아도 되는 장점이 있습니다. no.de (Node.js를 만든 Ryan Dahl이 있는 회사에서 운영하고 있습니다) Heroku (Salesforce가 인수, Facebook App을 생성할 때 호스팅 옵션에 Heroku가 있죠. 첨에 들어가면 보라색 화면에 일본풍의 이름들이 있어서 처음에 좀 많이 당황했던 UI입니다) DotCloud CloudFoundry (VMware) Nodejitsu NodeSocket Nodester 저는 개인적으로 git repos..
Node.js JavaScript에 관심이 있거나 새로운 웹 트렌드에 관심이 있는 사람이라면 한번 쯤은 인터넷을 돌아다니다가 본 적이 있을 단어입니다. JavaScript와 JavaScript 개발자들이 저평가 받는 시절이 있었습니다. JavaScript라 하면 그저 Mouse, Keyboard 이벤트나 간단한 DOM 조작이나 가능한 웹브라우저에 탑재된 언어라는 인식이 있었지만 (물론 SpiderMonkey나 Rhino와 같이 웹브라우저가 아닌 곳에서 JavaScript를 사용해왔지만) 이 인식을 깨는 데 AJAX 의 탄생이 한 몫 했는데요. AJAX (정확히는 XmlHttpRequest, 줄여서는 XHR)의 활용으로 인해 JavaScript 에서 Client-side 와 Server-side를 넘나들며..