반응형

nodejs 10

[NodeJS] 파라미터 전달 - GET, POST

들어가며 node.js에서 http모듈을 사용하여 데이터를 주고 받는 방식인 GET과 POST 방식에 대해서 포스팅을 하려고 합니다. 우리가 흔히 웹페이지를 요청하는 작업은 GET방식이고, id, pwd을 입력한 뒤에 결과를 받는 요청은 POST 방식이라고 할 수 있습니다. 하지만 요즘에는 GET방식 말고 POST방식만을 사용해서 구현한다고도 하더라구요. 이건 개발자가 어느 상황에 어떤 요청방식을 쓰느냐에 따라 결정되는 문제인것 같습니다. GET 방식http를 사용하기 위해서 require('http')를 사용하고, 최초 서버를 만드때 callback 함수를 구현했습니다. 아래 예제는 url로 parameter값을 넘기는 예제로 단점은 보안에 문제가 있겠죠. 그냥 password가 url로 함께 넘어가면..

[NodeJS] 페이지 강제 이동 - 응답헤더 작성

들어가며 웹 페이지를 강제로 이동하는 방법에 대해서 설명해드리겠습니다. 응답헤더의 작성을 통해 요청과 동시에 우리가 설정한 페이지로 강제 이동하는 방법입니다. 응답 헤더에 작성하는 코드는 지난번 포스팅에서 설명한바 있습니다. [HTTP] HTTP란? 특징 및 구성요소 - Request, Response, Structure, Method, Reponse Code 구현하기 아래 코드는 localhost:8888로 요청을 보내면 "http://www.googl.com"으로 강제 페이지를 이동해 주는 코드 입니다. 최초 요청온 req.url을 콘솔에 출력을 한 뒤에 Location으로 명시한 url으로 강제 페이지 이동을 해줍니다. 소스코드 var http = require('http'); http.create..

[NodeJS] WebServer 만들기 - FileSystem을 이용

들어가며 웹 페이지를 생각하면 무엇이 제일 먼저 생각 나는가? 저는 html이 생각이 납니다. 그렇기 때문에 이번 포스팅에서는 .html의 파일을 읽어 client에게 전달하는 FileSystem을 이용한 Webserver에 대해서 정리해 볼까 합니다. 프로젝트 시작하기 프로젝트 ROOT/docRoot/ 아래 index.html, next.html의 두 파일을 생성하면 됩니다. 이 파일은 클라이언트(브라우저)에서 요청하면 응답으로 보내줄 두개의 화면입니다. 아래 index.html의 페이지를 먼저 보여주고, 해당 페이지에서 Go Next를 누르면 next.html의 페이지로 이동하는 예제입니다. 소스코드index.html과 next.html은 [오른쪽 마우스 클릭] --> [페이지 소스보기]를 통해서 확..

[NodeJS] Web Server 만들기 - HTTP모듈 사용

들어가며 지난 포스팅에서는 HTTP에 대해서 설명한바 있습니다. [ HTTP란? 특징 및 구성요소 - Request, Response, Structure, Method, Reponse Code ] NodeJs에서 가장 기본적으로 사용되는 웹 모듈로서 http를 사용합니다.. http모듈을 사용해서 웹 서버와 클라이언트를 쉽게 생성할 수 있습니다. 서버는 request의 요청 메시지로서 url, parameter 등을 수신하고, response인 응답메시지로서 사용자에게 적절한 페이지를 전송, 쿠키 저장 및 추출, 그리고 페이지 이동의 역할을 합니다. 이번 포스팅에서는 http모듈을 사용해 간단한 Web Server를 만들어보겠습니다. 소스코드http 모듈을 import한 뒤에 http.createServ..

[NodeJS] TCP 서버프로그래밍 - net 모듈 이용하기

들어가며 서버와 클라이언트 프로그래밍은 다양한 방법으로 할 수 있습니다. 그 net모듈을 사용하여 통신하는 서버 프로그래밍입니다. TCP/IP는 우리가 스타크래프트에서 네트워크 통신을 하며 게임을 해보았다면 익숙한 단어입니다. 아래 예제는 tcpserver.js와 tcpclient.js를 생성해 두개가 서로 데이터를 보내는 예제입니다. 최초 서버가 접속이 가능하도록 대기를 하고 있고, 클라이언트는 서버로 접속을 합니다. 접속된 connection을 통해 서로 데이터를 주고 받을 수 있습니다. 소스코드 소스코드는 tcpserver.js와 tcpclient.js로 구성되어 있습니다. tcpserver.js 서버를 생성하기 위해서 net의 모듈을 상용합니다. net.createServer를 통해 서버 객체를 ..

[NodeJs] 파일입출력을 이용해 파일복사, 에디터 구현

들어가며 node.js의 fs모듈을 이용해서 파일을 복사하는 방법과 키보드로 입력을 받아서 파일로 작성하는 코드에 대해서 설명해볼까 합니다. shell에서 input path와, output path를 파라미터로 전달해서 복사하는 cp와 동일한 역할을 합니다. Editor 같은 경우에는 우리가 텍스트창에 입력을하고, 입력 후에 텍스트를 파일로 저장하는 방식이라고 생각하시면 됩니다. 파일 복사하기 일단 파일에 관련된 작업을 할때는 fs모듈을 사용한다고 생각하시면 됩니다. 최초 readStream을 생성하여 파일을 읽는 Stream을 만들고, writeStream을 생성하여 쓰여질 파일을 만들어 주면 됩니다. input의 내용을 pipe를 통해 output으로 써주면 끝납니다. 여기서 Stream은 데이터가..

[NodeJs] 파일 입출력 I/O Stream

들어가며 파일 입출력에 대해서 설명을 해드리겠습니다. NodeJs에서는 File I/O의 주요 함수는 동기식, 비동기식 그리고 Stream을 이용한 방식이 있습니다. NodeJs는 비동기 방식이기 때문에 순차적으로 함수를 수행하지 않습니다. 그렇기 때문에 만약에 큰 파일을 읽고 있는 상태에서, 만약 그 파일을 쓰는 코드를 작성할 경우에는 에러가 발생 할 수도 있으니 주의하셔야 합니다. 이런 경우에는 동기식으로 파일 읽기/쓰기를 하시면 문제없이 사용할 수 있습니다. 파일입력 주요 함수readFile('filename', 'encoding', callback(error, data));readFileSync('fileㄱname', 'encoding') : datawriteFile('filename', data..

[NodeJs] NodeJs 이벤트 사용하기 - Event Emitter

들어가며 NodeJs는 일반적인 'procedural programming'의 개념과는 다른 'event driven programming' 개념을 가지고 있습니다. 'event driven programming'은 특정 이벤트가 발생할때, 미리 선언된 함수가 호출 되는 형태를 말합니다. 일반적으로 순차적으로 실행하는 프로그램이과는 다르기 때문에 언제 어디가 호출 될지 모릅니다. 이러한 이벤트 방식은 안드로이드에서 버튼 클릭 이벤트와 같이 callback 함수를 바인딩 시켜놓은 형태와 라고 할 수 있습니다. 이번 포스팅에서는 이러한 event를 연결, 제거, 생성, 발생 등 어떻게 해야하는지에 대해서 설명하겠습니다. 연결 on('eventname', eventHandler)연결 개수 제한은 10개setM..

[NodeJs] NodeJs 입력받기 - readline 모듈사용

들어가며 모든 언어에서 기본적으로 배우는 내용이 입력/출력 입니다. 이번 포스팅은 키보드로 부터 입력을 받는 예제입니다. 처음에는 1번 입력받는 예제를 설명하고, 반복적으로 입력을 받는 예제에 대해서 설명해 볼까 합니다. 구현하기 1번 입력 받는 예제 입력을 받기 위해서는 readline의 모듈을 사용하시면 됩니다. 최초에는 createInterface를 통해 input과 output을 생성을 해주고, quest메소드에 callback 함수를 생성합니다. 최초 질문을 "Do you like banana?"라고 했을때 키보드로 부터 입력이 받아지면 answer에 담겨져 옵니다. 여기서 callback함수는 간단하게 이벤트가 왔을때 실행되는 함수라고 생각하시면 됩니다. 키보드로 부터 입력이 왔으니 해당 fu..

[NodeJs] 내장 모듈 사용하기 (os, url, querystring, util)

들어가며 NodeJS에서 기본으로 제공하는 API에 대해서 알아보도록 하겠습니다. 일단 말그대로 내장 모듈이기 때문에 추가적인 설치가 필요하지 않습니다. NodeJs의 장점중 하나인 제공되는 모듈이 많다는 점을 적극 활용하시면 더 빠르게 결과를 얻을 수 있을것 같습니다. [API 문서바로가기] 내장모듈 사용하기 내장모듈에서 자주 사용하는 모듈에 대해서 설명을 해드리겠습니다. os 모듈 : OS 관련 정볼르 보여주고, 전역객체인 Process 객체와 비슷하지만, 좀 더 많은 정보를 제공하는 모듈 var os = require("os"); console.log(os.hostname()); // 호스트 이름 console.log(os.type()); // os 이름 console.log(os.platform(..

반응형