본문 바로가기

반응형

Node.js + Express

(5)
[ Node.js + Express ] JWT 1. JWT란? 공식 웹페이지에는 JWT을 아래와 같이 기술하고 있다. JSON Web Token (JWT) is an open standard that defines a compact and self-contained way for securely transmitting information between parties as a JSON object. 쉽게 말해서 JWT는 두 당사자 간에 JSON 형태의 데이터를 안전하게 전송하는 방법이다. 만약에 누나 나에게 JWT가 뭐냐고 물어본다면, 나는 '비밀키로 서명된 JSON 형태의 데이터'라고 말할거다. 이게 내가 이해한 JWT의 정체다. 아래는 JWT의 예시다. 그림을 보면 알겠지만 JWT는 크게 세 부분으로 나뉘어져 있다. 2. JWT 구조 JWT는 H..
[ Node.js + Express ] 쿠키와 세션으로 초간단 로그인 구현 1. 쿠키 1) 개념 쿠키는 브라우저가 가지고 있는 데이터 그이상 그이하도 아니다. MDN 웹문서에는 쿠키를 아래와 같이 기술하고 있다. HTTP 쿠키(웹 쿠키, 브라우저 쿠키)는 서버가 사용자의 웹 브라우저에 전송하는 작은 데이터 조각입니다. 브라우저는 그 데이터 조각들을 저장해 놓았다가, 동일한 서버에 재 요청 시 저장된 데이터를 함께 전송합니다. MDN 웹문서에서 아주 잘 설명해놨다. 그러면 쿠키는 왜 필요할까? 이는 HTTP의 'stateless' 특성 때문이다. HTTP는 클라이언트의 요청 내용을 기억하지 않기 때문에 클라이언트는 매 요청마다 자신의 정보를 서버에게 알려줄 필요가 있다. 쿠키는 클라이언트가 서버에게 정보를 제공할때 사용하는 수단중 하나다. 즉, 쿠키는 클라이언트의 상태를 알려주는..
[ Express ] nunjucks 사용법 정리 express에서 nunjucks 템플릿 엔진 사용법에 대해 알아보자. 설치 및 설정 1) 패키지 설치 npm i nunjucks 2) express 기본 구조 const express = require('express'); const nunjucks = require('nunjucks'); const app = express(); app.set('view engine', 'html'); // a nunjucks.configure('views', { // b watch: true, express: app }); app.get('/', function(req, res) { // c res.render('layout', { object }); }); app.listen(8080, () => { console..
[ Express ] Express 첫 시작, 라우팅과 미들웨어 1. 라우팅(Routing) 라우팅은 URI(또는 경로) 및 특정한 HTTP 요청 메소드(GET, POST 등)인 특정 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방법을 결정하는 것을 말합니다. Express 공식문서에서 그대로 가져온 문장이다. 영어 번역본이라 그런지 문장이 매끄럽지 못하다고 느껴서 내가 두 파트로 나눠봤다. 1) 클라이언트 요청은 URI + HTTP 메소드로 이루어진다. 네이버 루트에 접속하는 경우 → 'https://www.naver.com/'(URI) + Enter(HTTP GET) 2) 라우팅은 클라이언트 요청에 응답하는 방법을 말한다. 클라이언트 요청은 URI와 HTTP 메소드로 이루어진다고 했다. 그런데 요청에 대한 응답을 해주기 위해서는 URI가 어떤 구조로..
[ Node.js ] 모듈 시스템 (module.exports와 exports) 모듈? - 모듈이란 독립적인 소프트웨어를 말한다. - 자바스크립트에서는 파일 하나하나가 모듈이다. - 모듈은 자신만의 독립적인 스코프를 가져서 전역변수의 중복 문제가 발생하지 않는다. - 모듈은 module.exports 또는 exports 객체를 통해 외부로 공개한다. - 외부에서는 require 함수로 모듈을 사용할 수 있다. 참고! 브라우저(클라이언트)에서 여러개의 script tag를 불러오면 하나의 파일로 병합해 동일한 유효범위를 갖는다. 전역 충돌 발생 가능. module.exports vs exports - 공식 문서에 따르면 exports는 module.exports를 참조한다. - 이 둘은 'key: value' 형태면 항상 같다고 할 수 있다. - 하지만 'key: value' 형태가 ..

반응형