About 안경태

This author has not yet filled in any details.
So far 안경태 has created 22 blog entries.

Node.js 파일시스템 설명과 주요 메서드

Node.js 파일시스템 모듈은 require('fs')로 불러올 수 있습니다. 대부분의 함수는 동기적으로 호출할 수 있는데 'Sync'라는 접미사가 붙습니다. 동기함수를 Node.js에서 사용할 경우 성능에 영향을 미칠 수 있으므로 주의해야 합니다. Node.js 파일시스템 > fs.rename(path1, path2, callback) 파일명을 변경합니다. 파일이 경로에 없으면 에러가 발생합니다: [crayon-5c93bfa1768e3388406791/] Node.js 파일시스템 > fs.stat(path, callback) 파일의 정보를 확인하는 함수입니다. 콜백함수는 function(err, stats){} 입니다. 'stats' [...]

By | 9월 21st, 2016|Node.js|0 Comments

Node.js TCP 채팅 예제를 통한 소켓 이해

이 포스트는 'Node.js TCP 채팅' 예제를 다루고 있습니다. 채팅을 위해서 서버는 접속된 클라이언트를 모두 알고 있어야 하고, 어떠한 클라이언트가 메시지를 보냈을 때 다른 클라이언트에게 그 메시지를 전송해야 합니다. Node.js TCP 채팅 예제 아래 코드는 새 연결이 생길 때 sockets 배열에 저장을 하고, 새 데이터를 받으면 다른 소켓에게 메시지를 전송합니다. 그리고 클라이언트가 접속을 종료하면 배열에서 그 [...]

By | 9월 14th, 2016|Node.js|0 Comments

Node.js Cluster 모듈 (워커 생성 예제)

'Node.js Cluster 모듈'은 싱글스레드의 단점(CPU 처리량이 많을 때 속도가 느려지는)을 해결합니다. 모듈을 사용하려면 require('cluster') 로 불러옵니다. Node.js Cluster > 생성 예제 [crayon-5c93bfa179605200823163/] 위 예제의 경우 PC의 코어 수대로 워커가 생성됩니다. 웹브라우저에서 'localhost:8000'으로 접속하면 생성된 워커 프로세스가 요청을 처리합니다. cluster.fork()가 내부적으로는 child_process.fork()에 기반을 두고 구현되었는데, 두 개의 다른 점은 생성한 서버가 워커 프로세스 사이에 공유된다는 점입니다. 그 [...]

By | 9월 7th, 2016|Node.js|0 Comments

Node.js ChildProcess (자식프로세스 모듈)

'Node.js ChildProess'는 자식프로세스 기능을 사용할 수 있게 합니다. 이 모듈을 사용하기 위해서는 다음 메서드로 자식 프로세스를 생성해야 합니다: require('child_process').spawn(command, args=[], [options]) options: 기본값은 { cwd:undefined, env:process.env, setsid: false } 입니다. 'cwd'는 생성된 프로세스가 실행되는 디렉토리를 지정하는 것이고, 'env'는 새 프로세스가 접근할 수 있는 환경 변수를 지정, 'setsid'가 true이면 서브프로세스를 새 세션으로 생성하게 됩니다. Node.js ChildProess [...]

By | 8월 31st, 2016|Node.js|0 Comments

Node.js URL QueryString module

Node.js URL 모듈은 'URL'과 'QueryString'이 있습니다. 사용방법은 require('url') 입니다: [crayon-5c93bfa17b8b7706626398/] Node.js > url.parse(url, parseQueryString=false, slashesDenoteHost=false) parseQueryString: 'query'를 추가로 파싱할 것인지 지정함. true를 넘기면 'query'가 한번 더 파싱됨. 기본값은 false. slashesDenoteHost: 슬래시(/)가 호스트를 나타내는지 지정함. 프로토콜(http:// 과 같은)이 붙어있으면 해당 옵션을 사용하더라도 알아서 파싱을 해서 구분이 되지 않음. 기본값은 false. [crayon-5c93bfa17b8c4608800598/] Node.js > url.format(urlObj) URL 객체를 [...]

By | 8월 24th, 2016|Node.js|0 Comments

Node.js HTTP HTTPS 모듈

Node.js HTTP, HTTPS 모듈은 각각 require('http'), require('https')로 불러옵니다. HTTP는 서버와 클라이언트를 모두 제공합니다. http.Server http.Server는 EventEmitter의 객체이므로 아래 이벤트를 사용할 수 있습니다: request 이벤트: 요청이 들어올 때마다 발생하고 콜백함수는 function(request, response) {} , 'request'는 http.ServerRequest의 객체이고 response는 http.ServerResponse의 객체임. connection 이벤트: 새 TCP 스트림이 생기면 발생함. 콜백함수는 function(socket) {} , 'socket'은 net.Socket의 객체임. close 이벤트: [...]

By | 8월 17th, 2016|Node.js|0 Comments

Node.js Net 모듈 기본사용법과 이벤트

Node.js Net 모듈은 require('net')으로 불러옵니다. 비동기 네트워크를 다루는 클래스이고, 네트워크 서버와 클라이언트에 관련된 함수를 제공합니다. net.createServer([options], callback) TCP 서버를 생성합니다. 서버에 새로운 요청이 올 때마다 connection 이벤트가 발생하는데, 콜백함수는 이 이벤트에 자동으로 연결이 됩니다. 'options'는 {allowHalfOpen: false}가 기본값이고, 만약 true를 지정하면 소켓이 FIN 패킷을 받았을 때 FIN 패킷을 자동으로 보내지 않습니다. (*FIN 패킷은 소켓을 더 [...]

By | 8월 10th, 2016|Node.js|0 Comments

Node.js Path 사용법과 주요 메서드

'Node.js Path'는 경로와 관련된 모듈이고 require('path')로 불러옵니다: [crayon-5c93bfa2bea78596244819/] 아래 모든 샘플은 'REPL'에서 연습해 보세요. (명령프롬프트에서 node 명령어를 치고 들어감) path.normalize(p) p로 전달받은 잘못된 경로를 올바르게 고쳐줍니다: [crayon-5c93bfa2bea92436194293/] path.join(path1, path2...) 파라미터로 전달받은 경로를 이어서 하나의 경로로 만듭니다: [crayon-5c93bfa2bea96348343893/] path.resolve([from...], to) 전달받은 경로의 절대 경로를 리턴합니다: [crayon-5c93bfa2bea99052947335/]  

By | 8월 3rd, 2016|Node.js|0 Comments

Node.js Stream (Readable, Writable)

'Node.js Stream'은 스트림을 다루는 모든 객체의 추상 인터페이스입니다. (HTTP 요청도 스트림입니다) 스트림은 읽거나 쓸 수 있습니다. 모든 스트림은 이벤트 사용을 위해 EventEmitter의 객체이며 Readable Stream과 Writable Stream이 있습니다. Readable Stream data 이벤트: 스트림에 새로운 데이터가 들어오면 발생함. 기본적으로는 'Buffer'를 사용하고, setEncoding() 이 사용된 경우에는 '문자열'을 사용함. 콜백함수는 function(data) {} end 이벤트: 스트림이 EOF나 FIN을 받으면 [...]

By | 7월 27th, 2016|Node.js|0 Comments

Node.js Buffer 메서드와 프로퍼티

'Node.js Buffer'는 TCP 스트림이나 파일 스트림 등을 다루는데 이용합니다. 이러한 스트림을 옥텟 스트림(octet stream)이라고 하는데 데이터가 8비트로 이루어졌다는 것을 확실히 하기 위해 '옥텟'이라는 말을 사용합니다. Node.js 에는 옥텟 스트림을 다루는 함수를 전역 객체인 Buffer 클래스로 제공합니다. raw 데이터는 모두 Buffer 클래스의 객체에 저장됩니다. Buffer는 정수 배열이고, 각 정수는 V8 힙 메모리 밖에 있는 로우 메모리에 할당된 [...]

By | 7월 20th, 2016|Node.js|0 Comments