SMALL

노드js 38

[노드JS] 로그 파일 남기기

『로그 파일 남기기』_____________________ console 객체의 log() 또는 error() 메소드 등을 호출하면 로그를 출력할 수 있다. 그런데 프로그램의 크기가 커질수록 로그의 양도 많아지고 로그를 보관했다가 나중에 확인해야 하는 경우도 생긴다. 따라서 어떻게 로그를 남기고 보관할 것인지가 중요해진다. 로그를 보관하려면 화면에만 출력하는 것만으로는 부족하다. 이 때문에 다양한 방시긍로 로그를 남길 수 있도록 외부 모듈을 사용한다. 여기에서는 여러 가지 로그 모듈중에서 winston 모듈로 로그를 남기는 방법을 알아보자. 로그를 남기려면 설정이 필요하다. 이렇게 설정한 코드는 한번 만들어 두면 그대로 복사한 후 일부 설정만 바꾸어 다른 프로그램에도 사용할 수 있다. 그렇기 때문에 처음..

Study/Node.js 2019.03.23

[노드JS] fs 모듈로 새 디렉터리 만들고 삭제하기

『fs 모듈로 새 디렉터리 만들고 삭제하기』___________________________________________ ---------------------------------------------------------------------- var fs = require('fs');fs.mkdir('./docs', 0666, function(err){ if(err) throw err; console.log('새로운 docs 폴더를 만들었다.'); fs.rmdir('./docs', function(err){ if(err) throw err; console.log('docs 폴더를 삭제했다.'); });}); ---------------------------------------------------..

Study/Node.js 2019.03.23

[노드JS] http 모듈로 요청받은 파일 내용을 읽고 응답하기

『http 모듈로 요청받은 파일 내용을 읽고 응답하기』______________________________ 이렇게 스트림을 서로 연결하는 방법은 웹 서버를 만들고 사용자의 요청을 처리할 때 유용하다. 다음은 http 모듈을 사용해 사용자로부터 요청을 받았을 때 파일의 내용을 읽어 응답으로 보내는 코드이다. --------------------------------------------------------------- var fs = require('fs');var http = require('http');var server = http.createServer(function(req, res){ // 파일을 읽어 응답 스트림과 pipe()로 연결한다. var instream = fs.createRead..

Study/Node.js 2019.03.23

[노드JS] 스트림 단위로 파일 읽고 쓰기

『스트림 단위로 파일 읽고 쓰기』_________________________________________________________________________________________________________ 파일을 읽거나 쓸 때는 데이터 단위가 아닌 스트림 단위로 처리할 수도 있다.스트림은 데이터가 전달되는 통로와 같은 개념이다. 파일에서 읽을 때는 createReadStream(), 파일에 쓸 때는 createWriteStream() 메소드로 스트림 객체를 만든 후 데이터를 읽고 쓰게 된다. 메소드 이름 설명 createReadStream(path, [options]) 파일을 읽기 위한 스트림 객체를 만든다. createWriteStream(path, [options]) 파일을 쓰기 위한..

Study/Node.js 2019.03.23

[노드JS] 버퍼 객체 사용하는 방법 알아보기

『버퍼 객체 사용하는 방법』_______________________________________________________________________________________ Buffer 객체를 사용하는 방법에 대해 알아보자. -------------------------------------------------------------------------------- // 버퍼 객체를 크기만 지정하여 만든 후 문자열을 쓴다. var output = '안녕 1!';var buffer1 = new Buffer(10);var len = buffer1.write(output, 'utf8');console.log('첫 번째 버퍼의 문자열 : %s', buffer1.toString()); //버퍼 객체를..

Study/Node.js 2019.03.23

[노드JS] 파일을 직접 열고 닫으면서 읽거나 쓰기

『파일을 직접 열고 닫으면서 읽거나 쓰기』______________________________________________ 실제로 파일을 읽거나 쓸 때는 한꺼번에 모든 데이터를 읽거나 쓰지 않고 조금씩 읽거나 쓰는 방식을 사용하는 경우도 많다. 또한, 다른 곳에서 받아 온 데이터를 파일에 쓰는 경우도 있기 때문에 파일을 다루는 다양한 방식이 따로 정의되어 있다. 파일을 직접 열고 닫으면서 읽거나 쓰고 싶다면 다음 메소드들을 사용할 수 있다. 메소드 이름 설명 open(path, flags, [mode], [callback] 파일을 연다. read(fd, buffer, offset, length, position, [callback] 지정한 부분의 파일 내용을 읽어 들인다. write(fd, buffer..

Study/Node.js 2019.03.23

[노드JS] 파일 다루기

『파일 다루기』_________________ 노드의 파일 시스템은 파일을 다루는 기능과 디렉터리를 다루는 기능으로 구성되어 있으며, 동기식 IO와 비동기식 IO 기능을 함께 제공한다. 동기식 IO는 파일 작업이 끝날 때까지 대기하며, 비동깃기 IO는 파일 작업을 요청만 하고, 그 다음 자겅ㅂ을 바로 수행한다. 이후 파일 작업이 끝나면 그 상태는 이벤트로 받아서 처리한다. 동기식 IO와 비동기식 IO를 구별하기 위해 동기식 IO 메소드는 Sync라는 단어를 붙인다. ※ 동기식 방식(동기식 IO)을 사용할 때는 파일 처리가 끝날 때까지 대기하므로 처리 속도에 영향을 미칠 수 있다. 파일을 읽어 들이거나 파일에 쓰기파일을 읽어 들이는 기능을 확인하기 위해 ch04_test5.js 파일을 만들고 다음 코드를 ..

Study/Node.js 2019.03.23

[노드JS] 계산기 객체를 모듈로 만들어 보기

지금까지 실행해 본 코드만으로도 한쪽에서 이벤트를 만들어 전달할 수 있고, 다른 쪽에서 그것을 받아 처리할 수 있다는 것을 알 수 있었다. 그런데 항상 process 객체를 사용해 이벤트를 전달한다면, 같은 이름의 이벤트를 사용하는 경우에 충돌이 생길 수도 있다. 이 때문에 별도의 모듈 파일을 만들고 그 안에서 이벤트를 처리하도록 만드는 것이 좋다. 그러면 앞에서 다룬 모듈 구성 방법을 잘 생각하면서 새로운 모듈을 만들어 보자. 먼저 계산기 객체를 모듈로 만들기 위해 calc3.js 파일에 다음 코드를 입력하자. var util = require('util');var EventEmitter = require('events').EventEmitter; var Calc = function(){ var sel..

Study/Node.js 2019.03.23

[노드JS] 이벤트 보내고 받기

노드의 객체는 EventEmitter를 상속받을 수 있으며, 상속받은 후에는 EventEmitter 객체의 on()과 emit() 메소드를 사용할 수 있다. on() 메소드는 이벤트가 전달될 객체에 이벤트 리스너를 설정하는 역할을 하는데 이 리스너 함수는 객체로 전달된 이벤트를 받아 처리할 수 있다. 보통은 노드 내부에서 미리 만들어 제공하는 이벤트를 받아 처리하지만, 필요할 때는 직접 이벤트를 만들어 전달 할 수도 있다. on()메소드 이외에 once() 메소드를 사용할 수도 있다. once() 메소드를 사용할 때는 이벤트 리스너 함수가 한 번이라도 실행하고 나면 자동으로 제거되므로 이벤트를 딱 한 번만 받아서 처리할 수 있다. 이벤트를 다른 쪽으로 전달하고 싶다면 emit() 메소드를 사용한다. 메소..

Study/Node.js 2019.03.23

[노드JS] 이벤트 이해하기

노드는 대부분 이벤트를 기반으로 하는 비동기 방식으로 처리한다. 그리고 비동기 방식으로 처리하기 위해 서로 이벤트를 전달한다.예를 들어, 어떤 함수를 실행한 결과물도 이벤트로 전달한다. 이벤트는 한쪽에서 다른 쪽으로 알림 메시지를 보내는 것과 비슷하다. 즉, '지금 이쪽의 상태는 이렇다'는 정보를 다른 쪽으로 보내는 것이다. 노드에는 이런 이벤트를 보내고 받을 수 있도록 EventEmitter라는 것이 만들어져 있습니다. 다음은 EventEmitter를 사용해 이벤트를 주고받는 방법을 보여 준다. >> 이벤트는 한쪽에서 다른 쪽으로 어떤일이 발생했음을 알려주는 것이다. 이때 다른 쪽에서 이 이벤트를 받고 싶다면 이벤트 리스너(Event Listener)를 등록할 수 있다. 이벤트리스너는 특정 이벤트가 전..

Study/Node.js 2019.03.19