express login/logout 세션 저장 세션 설정 코드 작성 app.use(express.cookieParser()); app.use(express.session({ key: ‘sid’, // 세션키 secret: ‘secret’, // 비밀키 cookie: { maxAge: 1000 * 60 * 60 // 쿠키 유효기간 1시간 } })); 위와 같이 설정하고 나면 Request 객체에서 session 프로퍼티를 가지고 세션을 핸들링할 수 있게 된다. function (req, res) { req.session.user_id = 1234, // 아이디 req.session.name = ‘chris’ // 이름 } 세션 삭제 로그인 시에 세션을 저장을 했다면, 로그 아웃 시에는 세션 삭제가 이루어..
Redis(Remote Dictionary Server) https://redis.io/ "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비 관계형 데이터베이스 관리 시스템(DBMS)이다. 모든 데이터를 메모리로 불러와서 처리하는 메모리 기반 DBMS이다. 특징 ① NoSQL NoSQL 데이터베이스 중 하나로 다양한 자료구조를 저장할 수 있다. 대표적으로 Redis, MongoDB가 있다. ② In-memory 디스크가 아닌 I/O가 가장 빠른 메모리에 저장함으로써 빠르다. 단순한 구조의 key-value 방식으로써 빠른 속도를 지원한다. ③ Memory Store + DB Memory Store는 서버를 재시작하는 순간 저장했던 내용들이 날아간다. 서버를 재시작해도 데이터를 ..
요청 객체 (Request) 요청 객체는 일반적으로 콜백에 전달되므로 이름은 원하는 대로 정해도 된다. 보통 req나 request를 사용한다. 요청 객체는 핵심 노드 객체인 http.IncomingMessage 인스턴스에서 시작하며, 익스프레스를 사용하는 경우 익스프레스에서 기능을 추가한다. req.params 이름 붙은 라우트 매개변수를 담고 있는 배열 GET Request의 URL에서 콜론(:) 뒤에 오는 파라미터를 가져올 때(파싱) 사용한다. 실제 URL에 콜론(:)이 입력되지는 않는다. app.get(’/:idx’, (req, res) => { res.send(req.params.idx); }); // http://www.sample.com/comments/777 app.get('/comment..
dotenv node.js 에서는 dotenv 패키지를 통해 환경변수 파일을 외부에 만들고 관리할 수 있다. 깃허브 등에 오픈소스로 프로젝트를 공개할 때 DB 계정 정보를 소스코드 내에 하드코딩하지 않고 외부 환경변수 파일에 작성하고 .gitignore 을 통해 제외하면 안전하다. 1. Install npm install --save dotenv 2. Usage 프로젝트 루트경로에 .env 파일을 생성하고 다음과 같이 작성한다. SERVER_PORT=3000 DB_HOST=localhost DB_USER=root DB_PASSWORD=password 단순하게, 변수명=값 형태를 가지고 있다. 프로젝트 상단에 아래 코드를 적어 환경 변수를 불러온다. require('dotenv').config(); 불러온..
Swagger https://swagger.io/ 스웨거(Swagger)는 Open Api Specification(OAS)를 위한 프레임워크 API들이 가지고 있는 스펙(spec)을 명세, 관리할 수 있는 프로젝트 Swagger의 주된 목적은 RESTful API를 문서화시키고 관리하는 것이다. API 문서를 일반 Document로 작성하면 API 변경 시마다 문서를 수정해야 하는 불편함이 있는데, Swagger 같은 Framework를 이용하면 이를 자동화할 수 있다. Swagger의 5가지 기능 1. API 디자인 Swagger-editor를 통해 api를 문서화하고 빠르게 명세할 수 있다. http://editor.swagger.io/#!/ 2. API Development Swagger-code..