
안녕하세요 :) 이번 포스팅에서 다루어볼 내용은 쿠키와 세션에 대한 관리입니다. 사용자가 로그인 상태인지 아닌지 확인을 위해서는 쿠키 또는 세션을 사용합니다. 쿠키는 클라이언트 웹브라우져에 저장되는 정보이며, 세션은 웹서버에 저장되는 정보입니다. 쿠키처리) 쿠키는 클라이언트 웹 브라우저에 저장되는 정보로서 일정 기간 동안 저장하고 싶을 때 사용합니다. 익스프레스에선 cookie-parser 미들웨어를 사용하면 쿠키를 설정하거나 확인할수 있습니다. 아래의 예제를 통해 다루어 보겠습니다. 먼저 모듈을 설치해보겠습니다. 쿠키정보는 cookies 객체에 들어있습니다. 사용자가 응답문서를 조회할때 쿠키 정보를 볼수 있도록 /process/showCookie 패스를 처리하는 함수에서 이 쿠키 객체를 응답으로 보냅니..

안녕하세요:) 이번 포스팅에서 다루어볼 내용은 요청 라우팅입니다. 지난 포스팅에서 우리는 로그인을 하려고 하는 유저가 id와 password를 입력후 submit 할시 이해대한 응답으로 각각의 파라미터값을 페이지에 write해서 출력해주는 예제를 다루어 보았습니다. 그런데 이러한 요청의 종류가 하나가아닌 다수가 존재할때는 어떻게 될까요 각각의 요청에대한 응답을 다르게 매핑해주어야 할것입니다. 이때 필요한 것이 요청에대한 미들웨어 라우팅입니다. 이번 포스팅에서는 위와 같은 요청 라우팅에 대하여 다루어보겠습니다. 라우터 미들웨어의 경우 익스프레스 모듈안에 내장되어 있습니다. 그렇기 때문에 npm을 통한 별도의 설치는 하지 않아도 괜찮습니다. 주로 get()메소드와 post()메소드를 통해 실행될 함수를 등록..

안녕하세요 :) 이번 포스팅에서 다루어볼 내용은 Express 모듈의 미들웨어의 활용에 대한 이야기 입니다. 우리는 지금까지 use()메소드로 설정하는 미들웨어 함수 안에 코드를 직접넣어 클라이언트로 응답을 전송해 보았습니다. 하지만 웹서버를 다루기 위해 필요한 모든기능을 스스로 개발해서 미들웨어로 만들어야 한다면 웹서버를 구성하는 일은 꽤나 복잡한 과정일것입니다. 익스프레스에서는 다른 개발자들이 만들어 공유한 다양한 기능을 사용할수 있습니다. 이번 포스팅에서는 스스로 만든것이 다른 개발자가 만든 미들웨어를 활용하는것에 대하여 다루어 보겠습니다. 간단한 예제로 로그인 기능이 있는 웹페이지를 구현해보겠습니다. 먼저 특정 폴더의 파일을 특정 패스로 접근할수 있는 static 미들웨어를 만들어 줄것입니다. 예..

안녕하세요 :) 이번 포스팅에서 다루어볼 내용은 Express 모듈입니다. 지난 포스팅을 통해 우리는 http 모듈을 사용한 간단한 웹서버를 만들어 보았습니다. 하지만 실무에서는 express모듈이 많이 사용된다 하기에 이번엔 express모듈을 이용해 웹서버를 만들어 볼것입니다. 왜 Express를 많이 사용할까? 간단한 코드로 웹서버의 기능을 구현할수 있으며, 미들웨어와 라우터를 사용하여 편리하게 각 기능들을 구성할수 있다. 먼저 npm 패키지 매니저의 init 명령어를 통해 타겟 디렉터리를 초기화 해줍니다. 명령어는 npm init 이며 수행후엔 아래와 같이 package.json 파일이 생성됩니다. 이후에는 위의 사진처럼 app.js 라는 새로운 파일을 생성하여 아래와 같이 간단한 웹서버를 시작하..

안녕하세요 :) 이번포스팅에서 다루어볼 내용은 다른웹사이트의 데이터를 가져와서 응답하는법 입니다. 지난 포스팅에 이어 http 모듈의 메소드를 사용할것이고, 파일의 내용을 읽어와 버퍼에 담아 일부분만 응답하는 예제를 먼저 해보겠습니다. 다른 웹의 데이터를 가져오기위해서는 버퍼를 활용해야 하기때문에 잠깐 다루겠습니다. 버퍼를 활용한 파일 읽어 응답하기 코드, 아래와 같이 chunk라는 변수와 while문을 이용하여 파일의 길이를 체크하고 write 했습니다. 조건을 파일의 길이로 해주었기때문에 아래의 예제에는 모든 부분이 출력될것입니다. ' 이제 위의 버퍼와 http 모듈의 get 방식을 이용하여 다른 웹사이트의 데이터를 끌어와 요청에 응답해 보겠습니다. 아래의 코드가 http모듈의 get 메소드를 사용하..

안녕하세요 :) 이번 포스팅에서 다루어볼 내용은 http 모듈입니다. Node.js 의 기본 내부 모듈인 http는 웹서버의 기능을 수행할수 있는 서버 객체를 만드는 메소드를 포함하고 있습니다. 간단한 예제 코드를 통해 웹서버를 만들어 보겠습니다. 위의 코드는 http 모듈을 사용하여 웹서버를 가동시킨 코드입니다. createServer()메소드를 호출하면 서버 객체가 반환되고 이 서버객체의 listen 메소드를 호출하면 서버가 가동됩니다. 포트 번호를 3000번으로 지정하여 해당 포트에서만 클라이언트의 요청을 대기하도록 하였습니다. 여기서 포트는 일종의 통로 라고 생각하시면됩니다. 일반적으로 웹 브라우저를 통해 클라이언트에서 http 프로토콜로 요청한 정보를 처리후 응답해주는것이 웹서버의 역할입니다 이..

안녕하세요 :) 이번 포스팅에서 다루어볼 내용은 node.js에서의 file 다루기 입니다. node.js의 파일시스템은 파일을 다루는 기능과 디텍터리를 다루는 기능 두가지로 구성되어있고, 비동기식 IO 와 동기식 IO기능을 함께 제공합니다. 동기식은 하나의 파일이 작업이 끝날때 까지 대기하고 다음작업을 수행하는 방식, 비동기식은 파일작업을 요청만 하고 다음작업을 바로수행하는 것입니다. 만약 비동기식에서 파일작업이 끝난다면 이벤트를 받아 처리합니다. 그럼 바로 동기식 IO 파일시스템을 이용해서 텍스트파일과 Json 파일을 콘솔에 출력해 보겠습니다. fs라는 변수로 파일시스템 모듈을 객체화 시켜주고 해당객체의 readFileSync()함수를 통해 두개의 파일을 스트링 타입으로 저장후 출력하였습니다. 변수에..

안녕하세요 :) 이번 포스팅에서는 node.js의 이벤트에 대하여 다루어 보겠습니다. 이벤트와 이벤트리스너에 대한 이야기는 콜백함수의 비동기식 프로그래밍을 다루며 언급한적이 있었습니다. node.js에서 사용하는 언어 자체가 자바스크립트이다 보니, 자바스크립트에서의 이벤트 함수와 동일한 방식으로 사용됩니다. 이벤트와 리스너) 이벤트 - 코드내에서 특정조건이 만족될때 이벤트 레스너 - 이벤트가 발생했을때 수행되는 코드 아래에 간단한 코드를 몇줄 살펴보겠습니다. 해당 코드는 on이라는 프로세스모듈의 메소드를 이용하여 리스너를 작성하고 setTimeout 함수내에 이벤트를 발생시켜 결과를 확인하는것입니다. exit라는 이벤트의 리스너는 1번라인부터 3번 라인에 해당하고 이벤트의 발생은 7번라인에 해당합니다. ..