Node.js - express (7) 세션(session)
·
Node/Express
이번 포스팅에서는 세션(session)의 개념에 대해 알아보고 세션을 활용해 간단한 로그인 기능을 구현해보도록 하겠다. 세션이란? 로그인 기능 구현해보기 이전 포스팅에서 쿠키(cookie)란 어떤 것인지에 대해 살펴본 적이 있다. 웹브라우저에서 서버에 요청을 보냈을 때 웹서버는 브라우저에 쿠키 데이터를 저장하고 이후의 요청들에 대한 응답에 쿠키를 사용하게 된다. 하지만 이렇게 쿠키를 브라우저에 저장해 놓고 사용하게 되면 보안과 관련해서 여러 이슈들이 발생한다. 쿠키에 개인정보와 같은 데이터를 보관하게 되면, 민감한 정보들이 공개되는 상황이 발생하게 되는 것이다. 이러한 이슈가 발생하는 원인은 데이터의 저장 주체가 브라우저이기 때문이다. 이를 방지하고자 데이터를 저장하는 주체..
Node.js - express (6) cookieParser 함수 만들기
·
Node/Express
이번 포스팅에서는 HTTP 패킷의 요청헤더(Request Headers)에 있는 쿠키를 파싱할 때 사용할 수 있는 함수를 간단하게 만들어 보고자 한다. express에서 "cookie-parser" 패키지를 사용하는 것이 아닌, 직접 함수를 만들어서 사용해 보는 것도 좋은 공부가 되리라 생각한다. 다음과 같은 쿠키값이 요청헤더에 존재한다고 하자. let cookieText = 'name=123; name2=123; name3=1234; name4=12345; name5=2' 1. ';'를 구분자로 해서 cookieText를 자르고 cookieArr에 담는다. let cookieArr = cookieText.split(';') console.log(cookieArr) // output : [ 'name=1..
Node.js - express (5) 쿠키(cookie)
·
Node/Express
이번 포스팅에서는 쿠키(cookie)의 개념에 대해 알아보고자 한다. 쿠키란? 쿠키 구현 방식 쿠키 속성 쿠키(cookie)란 HTTP의 일종으로서 인터넷 사용자가 어떠한 웹사이트를 방문할 경우, 그 사이트가 사용하고 있는 서버를 통해 인터넷 사용자의 컴퓨터에 설치되는 작은 기록 정보 파일을 일컫는다. HTTP 쿠키, 웹 쿠키, 브라우저 쿠키라고도 하는데 이 기록 파일에 담긴 정보는 인터넷 사용자가 같은 웹사이트를 방문할 때마다 읽히고 수시로 새로운 정보로 바뀐다. A, B, C 라는 세 사람이 한 대의 컴퓨터를 사용해서 웹서버에 요청을 보내고 있는 상황을 가정해보자. 이 때 웹서버는 각각의 요청이 어떤 사람으로부터 온 요청인지 알 수 없다. 단순히 ip와 같..
Node.js - express (4) 정적인 파일 처리하기
·
Node/Express
이번 포스팅에서는 Node.js에서 express 모듈을 활용해 정적인 파일들을 처리하는 방법에 대해 알아보고자 한다. 아래와 같은 express.js 파일과 index.html 파일이 작성되어 있는 상태에서 서버가 실행되고 있다고 하자. 해당 서버는 웹브라우저에서 보낸 요청에 대한 응답으로 html 파일을 건내주고 있다. 이 때 html 파일뿐만 아니라 CSS, JavaScript와 같은 파일들도 보내주기 위해서는 어떠한 처리를 해야할까? 기본적으로 HTML 페이지에는 html 파일만 존재하고 있지 않다. 페이지를 꾸며주는 css 파일, 이벤트를 핸들링 해주는 js 파일, 이미지 파일 등 여러 파일들과 함께 전체 HTML 페이지가 만들어지게 된다. HTML 페이지에 css 파일과 js 파일이 같이 존재..
Node.js - modules (모듈)
·
Node/Node.js
이번 포스팅에서는 프로그래밍을 할 때 자주 마주치게 되는 모듈(modules)이라는 것의 개념과 Node.js에서 package를 설치한 후 모듈을 사용할 때 쓰는 require 문법에 대해 알아보도록 하자. 모듈(module) ?? 모듈에 대해 얘기하기에 앞서 모듈, 패키지, 라이브러리에 대한 개괄적인 의미를 먼저 알아 보자. 모듈이란 특정 기능들이 구현되는 코드들이 적혀있는 파일을 의미한다. 그리고 이러한 모듈들을 묶어서 하나의 상위 폴더에 넣어 놓은 것을 패키지, 여러 모듈과 패키지들의 묶음을 라이브러리라고 한다. 프로그래밍을 할 때 우리는 한 파일 안에서 코드들을 작성하고 해당 파일을 실행시켰을 때 어떠한 기능들이 실행되게끔 한다. 그런데 만들고자 하는 애플리케이션의 복잡도가 증가할수록 작성해야만..