📕🐘 도로락 - 코끼리를 냉장고에 넣는 방법

# nodejs (18)

NodeJS 2018. 2. 20. 02:30

[Node.js] NodeJS 웹서버에서 한 덩어리씩 파일 읽어서 클라이언트에게 출력하기

이전글[Node.js] NodeJS 웹서버에서 스트림을 이용하여 클라이언트에게 파일 응답Node 웹서버 파일을 한덩어리씩 로딩한 후에 출력하기이전 글에 이어서 이번에는 파일을 한 덩어리(chunk)씩 서버로 로딩한 후에 클라이언트와 연결된 출력스트림으로 내보내 보도록 하겠습니다.var http = require('http');var fs = require('fs');var server = http.createServer();server.listen(7070, function() { console.log('웹서버 시작');});server.on('request', function(req, res) { var filename = 'flower.png'; var file = fs.createR..

NodeJS 2018. 2. 19. 13:30

[Node.js] NodeJS http 모듈로 HTTP POST방식 요청하기

이전글[Node.js] NodeJS http 모듈로 HTTP GET방식 요청하기NodeJS 웹서버에서 HTTP POST방식 요청하기이전 글에서는 웹 클라이언트 개요와 NodeJS에서 get방식으로 웹서버에 요청하는 방법을 알아 보았습니다.이번 글에서는 웹 클라이언트로서 HTTP POST 요청을 하는 방법을 알아보도록 하겠습니다.예를들어 웹서버와 첨부파일을 관리하는 파일 서버가 따로 존재한다면 사용자는 웹서버를 통해 첨부파일을 저장하지만 이를 받은 웹서버는 실제로는 파일 서버에게 POST요청을 통해서 파일을 저장할 수 있습니다.http모듈을 통한 post 요청http 모듈을 통해 post 요청하는 방법은 이전글에서 봤던 get 방식 요청보다 더 복잡한데, post 요청에는 request() 메서드를 이용합..

NodeJS 2018. 2. 19. 08:00

[Node.js] NodeJS http 모듈로 HTTP GET방식 요청하기

NodeJS HTTP 요청하기NodeJS의 http 모듈은 웹서버 기능도 할 수 있지만 웹 클라이언트의 기능도 수행할 수 있습니다.웹클라이언트 기능은 나만의 브라우저를 만들 때에나 웹 크롤링 등에 사용할 수 있습니다.또한 Node를 웹 서버로 이용할 때에도 웹 클라이언트로서 동작할 필요가 있는데 예를 들어 facebook이나 google 등의 open API를 사용하는 경우에 필요할 것입니다.만약 facebook 로그인 api를 사용한다면 사용자가 나의 웹서버에 인증을 요청하는 경우 나의 node 웹 서버에서 facebook으로 인증 api 요청을 날리게 되고 facebook 인증 서버에서는 인증에 대한 결과를 리턴하는데 이때 나의 node 서버는 facebook 인증 서버로부터 웹 클라이언트로 동작한다..

NodeJS 2018. 2. 17. 17:59

[Node.js] NodeJS 웹서버에서 스트림을 이용하여 클라이언트에게 파일 응답

참고글[Node.js] NodeJS 웹서버에서 클라이언트에게 파일 응답하기[Node.js] NodeJS 파일 입출력 [3] 스트림 단위 입출력Node 웹서버 클라이언트에게 스트림을 이용하여 파일 응답하기웹서버는 클라이언트에게 웹페이지(html)를 응답하기도 하지만 동영상이나, 이미지, 워드문서 같은 미디어 파일을 응답하기도 합니다.예를 들어 NodeJS로 게시판을 만든 경우에 회원이 올린 게시글의 첨부파일이 있을 수 있습니다.이 때 다른 회원이 다시 해당 게시글에서 첨부파일을 내려받는다면 node 웹서버는 해당 첨부파일을 서버의 저장소에서 찾아 출력 스트림을 통해 보내주어야 할 것입니다. 그러나 고용량 첨부파일을 동시에 여러 회원이 다운로드 받는다면 모든 첨부파일 바이너리 데이터를 웹서버에 로딩한 후에 ..

NodeJS 2018. 1. 31. 08:00

[Node.js] NodeJS 웹서버에서 클라이언트에게 파일 응답하기

참고글[NodeJS] - [Node.js] NodeJS 파일 입출력 [1][Node.js] NodeJS 파일 입출력 [2][Node.js] NodeJS 파일 입출력 [3] 스트림 단위 입출력[Node.js] NodeJS http 모듈 [2] HTTP 응답하기 및 server 이벤트NodeJS 클라이언트에게 파일 전송하기웹서버는 클라이언트에게 웹페이지(html)를 응답하기도 하지만 동영상이나, 이미지, 워드문서 같은 미디어 파일을 응답하기도 합니다. 예를 들어 NodeJS로 게시판을 만든 경우에 회원이 올린 게시글의 첨부파일이 있을 수 있습니다.회원이 해당 게시글의 첨부파일을 웹서버에게 요청하게 되면 서버에서는 해당 파일을 브라우저에게 응답해주어야 할 것입니다. 여기서는 이미지 파일을 응답하는 것으로 하겠..

NodeJS 2018. 1. 29. 09:00

[Node.js] NodeJS http 모듈 [2] HTTP 응답하기 및 server 이벤트

이전 글[Node.js] NodeJS http 모듈 [1] 웹서버 작동 방법NodeJS HTTP request(요청) 이벤트 처리웹서버라 함은 말 그대로 웹환경(http 이용)에서 service를 제공하는 역할을 합니다.여기서 서비스란 브라우저같은 웹 클라이언트가 요청한 웹페이지, 이미지, 첨부파일 등을 응답해주는 것입니다.NodeJS의 http 모듈 또한 요청을 처리하기 위한 기능을 제공하고 있습니다.server 객체 이벤트http모듈을 이용해 생성한 nodeJS 웹서버는(이하 server) 다음과 같이 크게 세가지 이벤트가 있습니다.이벤트설명connection클라이언트가 서버에 http로 통신하기 위해 tcp/ip 로 연결을 하게 되면 발생하는 이벤트입니다.request클라이언트와 서버가 연결된 이후..

NodeJS 2018. 1. 28. 17:24

[Node.js] NodeJS http 모듈 [1] 웹서버 작동 방법

NodeJS 웹서버 띄우기NodeJS는 npm을 통해 따로 외장모듈을 받지 않아도 사용 가능한 http라는 내장 모듈이 있습니다.이 모듈을 사용하면 매우 간단히 웹서버를 만들 수 있습니다.서버 객체 생성하기http 모듈을 require를 통해 불러오고 http 모듈의 createServer() 메서드를 통해 서버 객체를 생성합니다.서버객체를 생성한 후에 원하는 포트번호로 listen() 메서드를 호출하면 해당 포트로 통신할 수 있는 웹서버가 시작됩니다.이때 두번째 인자로 넘긴 함수는 웹서버가 시작 되었을 때 호출될 콜백함수입니다.서버가 시작되면 브라우저나 혹은 다른 웹 클라이언트를 통해 웹서버에 접근할 수 있습니다.내 컴퓨터로 테스트 하는 경우에는 http://localhost:3000 과 같이 접근할 ..

NodeJS 2018. 1. 28. 08:00

[Node.js] NodeJS 로깅 (Logging)

NodeJS 로그 남기기어플리케이션은 개발 및 운영시에 로그를 남길 필요가 있습니다. 특히 운영시에는 장애가 발생했을때 사용자가 겪는 장애 현상만으로는 장애의 원인을 판단하기 어려운 경우가 대다수입니다. 이럴때 관리자나 개발자가 어플리케이션에서 어떤 일이 발생했는지 판단할만한 정보가 필요하게 되며, 이러한 당시의 어플리케이션 정보를 기록하는 것이 로깅입니다.로그를 어플리케이션 관리 콘솔창에 실시간으로 출력할 수도 있지만, 향후 참고할만한 기록으로서 log.txt 와 같이 파일로 남길 수도 있습니다. 여기서는 winston 모듈을 통해 로그를 남기는 방법을 알아보겠습니다.winston 모듈 설치winston 모듈을 설치하기 위해 npm으로 패키지를 설치해줍니다.윈도우 command(명령 프롬프트)로 nod..

NodeJS 2018. 1. 27. 20:00

[Node.js] NodeJS 파일 입출력 [3] 스트림 단위 입출력

이어지는 글[Node.js] NodeJS 파일 입출력 [2]NodeJS 스트림을 이용한 입출력이전 글에서 데이터 단위 입출력을 사용했습니다. 작은 용량의 데이터를 읽고 쓰는데에는 데이터 단위 입출력을 사용해도 문제가 되지 않지만 대용량 데이터인 경우 문제가 되기도 합니다.다음은 input.txt에서 읽은 대용량 파일을 readFileSync()를 통해 읽어온 후 writeFileSync() 메서드를 통해 output.txt 파일에 출력하는 경우입니다.기본 입출력 사용시var fs = require('fs');//input.txt파일로부터 데이터 입력받음var data = fs.readFileSync('./input.txt', 'utf8');//입력받은 데이터를 output.txt로 출력var option..

NodeJS 2018. 1. 27. 16:23

[Node.js] NodeJS 파일 입출력 [2]

이어지는 글[Node.js] NodeJS 버퍼 객체](https://dololak.tistory.com/85)[Node.js] NodeJS 파일 입출력 [1]NodeJS 세밀한 입출력 조작Node를 이용해 입출력을 할 때 기능이나 성능을 위해서 또는 목적에 의해 필요한 부분만 입출력을 수행하는 등 세밀하게 조작해야 할 때가 있습니다. 이때는 입출력 대상에 직접 연결하여 입력 또는 출력을 직접 세밀하게 수행한 후 연결을 닫아주면 됩니다.Node가 입출력을 수행하는 절차는 다음과 같습니다. 이러한 절차는 다른 언어들에서도 마찬가지이므로 알아두는 것이 좋습니다.Node 프로그램이 입출력을 수행할 대상과의 데이터 입출력 통로를 열어준다는 의미에서 open() 메서드를 실행합니다.연결 이후 입출력을 수행하기 위해..