일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발환경
- node.js
- CoffeeScript
- Javascript
- Ajax
- 웹디자인
- 마소
- 테스트
- JQuery
- git
- 크로스브라우징
- callback function
- 750R
- npm
- 제이쿼리
- 자바스크립트
- CSS
- AngularJS
- non-blocking
- Microsoft
- 오픈소스
- 빅데이터
- 인턴
- Python
- MongoDB
- github
- 콜백 함수
- 마이크로소프트
- NoSQL
- Today
- Total
목록node.js (18)
Inspired World
Windows에서 Node.js Native Module 설치하기 Node.js가 0.4.x 때는 아예 Linux/Mac 에서만 지원을 했었고나중에 0.6.x 때부터는 Windows support가 생겼습니다. npm 모듈들을 설치하다 보면 native module을 사용하는 모듈들을 많이 볼 수 있는데요.윈도우 환경에서는 native module을 설치하는 과정에서 에러가 나고 잘 안되서 몇시간씩 삽질하는 경우가 있습니다.저도 해보다가 안되서 그냥 맥에서 해야지 했었는데…구글링해보면서 별의 별 복잡한 방법으로 해결책을 찾았습니다.나중에 보니 아주 쉬운 방법이 있었더군요;node-gyp라는 모듈이 native module을 빌드하는 과정에서 에러를 많이 뱉어내게 되는데관리자 권한 실행 으로 cmd를 실행..
Mocha 로 하는 API Testing지난 번 Mocha 로 하는 JavaScript Testing 에서는 기본적으로 Mocha를 사용해서 Node.js 환경에서 Unit Test 하는 방법을 알아보았습니다. 이번에는 API endpoint에 대해 테스팅하는 방법을 알아보겠습니다. SetupMocha 로 하는 JavaScript Testing 에 작업 디렉토리에서 이어서 하겠습니다.우선 chai-http를 추가해줍니다.npm install chai-http 또 간단한 예제 API를 만들어보기 위해서 express를 추가합니다.npm install express POST의 body parsing을 위해 body-parser, POST, GET 뿐만 아니라 PUT, DELETE를 사용하기 위해 method..
Mocha 로 하는 JavaScript TestingJavaScript (Node.js) 개발을 하면서 빨리빨리 기능 개발하고 새로고침 F5 를 연타하며 확인하고 다시 코드 수정하고 그러는게 일반적인데요.테스트를 작성하면 조금 더 견고한 개발을 할 수 있습니다. 그럼 지금부터 Mocha 랑 Chai 라는 라이브러리를 이용해서 JavaScript 간단한 테스트 코드를 작성해보겠습니다.TDD (Test Driven Development - 테스트 주도 개발) 느낌으로 테스트 먼저 작성해보겠습니다. 테스트 환경 세팅하기Node.js v6.3.1 입니다.설치되어 있지 않다면 Node.js 여기에서 다운 받습니다.설치 이후에 npm도 함께 설치됩니다.Node.js Package Manager, Node.js 모듈..
왜 Primus 인가 ?Socket.io 라는 유명한 Node.js 모듈을 들어보신 적이 있으실 겁니다. Socket.io는 푸쉬 알림이나 실시간으로 업데이트가 필요한 콘텐츠를 가진 서비스들이 많이 사용하고 있습니다. 문제는 Socket.io가 심각한 버그 및 메모리 누수가 있고, 활발히 개발되지 않고 있다는 점입니다. Socket.io에서 SockJS나 Engine.io와 같은 다른 라이브러리로 변경하고 싶을 때, 새로운 API를 공부해야하고 기존에 작성되었던 코드를 재작성해야하며, 또 기존 Socket.io 에서 자체 제공하던 기능들이 없을 경우에는 직접 구현을 해야합니다. Primus라는 이 모듈이 구세주입니다. 이 모듈은 SockJS, Engine.io, BrowserChannel, Socket...
oEmbed 란?oEmbed 공식 사이트에 따르면, oEmbed는 다른 사이트의 URL을 가지고 내장할 수 있게 하는 한 형식입니다. 한 유저가 어떤 리소스((사진이나 비디오 등)의 링크를 게시했을 때, 그 리소스를 직접 읽지 않고도 웹사이트에 내장할 수 있도록 해주는 심플한 API입니다. YouTube, Vimeo, Flickr 와 같은 콘텐츠 제공자들이 oEmbed의 공통적인 스펙에 맞는 URL을 주고 그 URL을 통해 아래와 같은 response을 받을 수 있습니다.{ thumbnail_width: 480, height: 270, author_url: 'http://www.youtube.com/user/officialpsy', title: 'PSY - GANGNAM STYLE (강남스타일) M/V'..
앗, 이런 실수를!몇 일전, 제가 운영하는 어그로 끄는 이야기 사이트 로딩 속도가 좀 느린것 같아서 최적화를 해보고자 Google Pagespeed를 돌려보고 제가 큰 실수를 하나 했다는 것을 깨달았습니다. 제가 잊어버리고 Gzip을 사용하도록 서버에서 설정을 안해줬습니다. Gzip을 사용하면 70% 넘게 전송하는 패킷 크기를 줄일 수 있다고 분석 결과가 나왔습니다. GzipGzip을 혹시 처음 들어보시나요? Gzip을 사용할 수 있는 브라우저가 서버에 요청을 보냈을 때, 서버는 브라우저에 데이터를 압축해서 보내줄 수 있고 브라우저는 압축된 데이터를 풀어서 원본 데이터를 받게 됩니다. 서버가 Gzip 압축에 대해 지원하지 않고 그냥 무시한다면, 압축되지 않은 원래 사이즈의 데이터가 전송되기 때문에 Gzi..
CoffeeScript(커피스크립트)는 Verbose한 JavaScript문법의 단점을 보완하고 사람들이 헷갈리거나 실수를 할 수 있는 부분을 많이 가린 언어입니다. Python이나 Ruby를 하시는 분들이라면 문법이나 특징 등 비슷한 점이 많이 있습니다. 예) Indentation으로 code block을 인식 먼저 설치는 npm을 통해 하실 수 있구요 npm이 없다면 Node.js 패키지를 설치하면 npm이 설치 되므로 먼저 Node.js 를 설치하시면 됩니다. 설치 방법은 Node.js 공식 사이트에 가셔서 DOWNLOAD 버튼을 눌러 해당하는 OS에 알맞는 패키지를 설치합니다 설치 후에 sudo npm install -g coffee-script 를 쉘에서 입력하여 CoffeeScript를 설치하..
Node.js의 창시자인 Ryan Dahl에 의하면 "You just may be hacked when some yet-unknown buffer overflow is discovered. Not that that couldn't happen behind nginx, but somehow having a proxy in front makes me happy". "아직 발견되지 않은 버퍼 오버플로우 취약점에 의해서 해킹 당할 수 있습니다. Nginx를 앞단에 둠으로써 이런 취약점에 의해서 해킹을 완전히 막아주지는 않지만, 저는 Nginx을 Proxy서버로써 앞단에 두는 것이 좋다고 생각합니다." 좀 의역을 한 부분이 없잖아 있지만, 중요한 포인트는 Nginx를 앞단에 둠으로써 Express가 사용하는 실제..
Node.js를 production server에서 운영할때는 NODE_ENV 를 production으로 설정한 후 쉘에서 주로 forever start app.js 명령을 이용해서 node.js 어플리케이션이 예기치 못한 오류로 꺼지거나 하는 경우를 방지 할 수 있는데요. 주의! 먼저 쉘에서 npm install forever -g 로 forever 가 설치 되어 있어야 합니다 개발 과정에서는 forever 보다 node app.js 이렇게 그냥 실행하게 되면 소스를 수정할 때 마다 ctrl + c node app.js 를 반복해줘야 하는 귀찮은 일이 발생합니다. 하지만 소스가 변경될 때마다 알아서 저 ctrl + c node app.js 작업을 해주는 프로그램이 있습니다. 그 이름은 바로 Superv..
보통 Node.js 를 실행할 때 NODE_ENV 값을 이용해서 production ( 배포 ) 모드 development ( 개발 ) 모드 이렇게 두 가지로 나누어서 실행하게 되는데요. Node.js 프레임워크인 Express 의 경우 production 모드 일때는 파일 캐싱, 에러 메시지 감추기 등 배포의 적합한 환경 설정을 하구요. development 모드 일 때는 파일 캐싱 방지, 디버그를 위한 상세한 에러 메시지 보이기 등 개발에 도움을 줄 수 있는 환경으로 설정을 해줍니다. 하지만 직접 이 값을 알아 내고 싶을 때가 있는데요. 이럴 때는 Express 에서 전체 앱을 총괄하는 역할을 맡고 있는 root 디렉토리의 app.js 에서 첫 줄에 process.env.NODE_ENV = ( pro..