post-custom-banner

mysql

접속방법

mysql -u root -p

화면 가리고 큰 제목만 보면서 풀어보기.

mysql : https://velog.io/@elinapark/MySQL

HTTPS

https를 쓰려면 인증서는 무조건 필수

인증서 설치

mkcert라는 프로그램을 이용해서 로컬 환경(내 컴퓨터)에서 신뢰할 수 있는 인증서를 만들 수 있습니다.

HTTPS 서버 작성

Node.js 환경에서 HTTPS 서버를 작성하기 위해서는 https 내장 모듈을 이용할 수 있습니다.
express.js를 이용해 https 서버를 만들 수도 있습니다.

먼저는 방금 생성한 인증서 파일들을 HTTPS 서버에 적용해 주는 작업이 필요합니다.

Node.js https 모듈 이용

const https = require('https');
const fs = require('fs');

https
  .createServer(
    {
      key: fs.readFileSync(__dirname + '/key.pem', 'utf-8'), //같은 폴더 안에 파일을 넣은 경우 __dirname이 경로지정
      cert: fs.readFileSync(__dirname + '/cert.pem', 'utf-8'),
    },
    function (req, res) {
      res.write('Congrats! You made https server now :)');
      res.end();
    }
  )
  .listen(3001);

express.js 이용

만약 express.js 를 사용하는 경우, 다음과 같이 https.createServer의 두 번째 파라미터에 들어갈 callback 함수를 Express 미들웨어로 교체하면 그만입니다!

const https = require('https');
const fs = require('fs');
const express = require('express');

const app = express();

https
  .createServer(
    {
      key: fs.readFileSync(__dirname + '/key.pem', 'utf-8'),
      cert: fs.readFileSync(__dirname + '/cert.pem', 'utf-8'),
    },
    app.use('/', (req, res) => {
      res.send('Congrats! You made https server now :)');
    })
  )
  .listen(3001);

cookie



Session


로그인을 하면 DB에 아이디와 비밀번호가 저장이 되므로, 그다음부터 페이지가 바뀔 때마다 session_id로만 체크.

로그아웃

세션 아이디가 담긴 쿠키는 클라이언트에 저장되어 있으며, 서버는 세션을 저장하고 있습니다.
서버는 그저 세션 아이디로만 요청을 판단합니다.
그러므로 로그아웃은 다음 두 가지 작업을 해야 합니다.

서버의 세션 정보를 삭제해야 합니다.
클라이언트의 쿠키를 갱신해야 합니다.
서버가 클라이언트의 쿠키를 임의로 삭제할 수는 없습니다.
텍스트대신, set-cookie로 세션 아이디의 키값을 무효한 값으로 갱신해야 합니다.


session의 또 하나의 단점으로는, 어쩔 수 없이 cookie를 사용하기 때문에 cookie의 단점을 같이 가지고 있을 수밖에 없다.

express-session

'express-session'은 세션을 위한 미들웨어로, 'Express'에서 세션을 다룰 수 있는 공간을 보다 쉽게 만들어줍니다.

또한 필요한 경우 세션 아이디를 쿠키에 저장하고, 해당 세션 아이디에 종속되는 고유한 세션 객체를 서버 메모리에 저장합니다.
이때 세션 객체는 서로 독립적인 객체이므로 각각 다른 데이터를 저장할 수 있습니다.

req.session이 바로 세션 객체이며 req.session은 세션 객체에 세션 데이터를 저장하거나 불러오기 위해 사용합니다.

이 세션 객체에 값을 담거나, 값을 불러오는 법, 세션을 파괴하는 법은 다음 문서를 참고하세요.
https://github.com/expressjs/session#reqsession

Salt


Hashing

axios

fetch를 대신하는 써드파티.
쿠키를 사용할 때는 항상 써야하는 것 withCredentials: true

공부하기

axios 잊지말고 공부해두자. 비동기(promise) 기반

findOne, findAll
에라토스테네스의 체 참조 : https://themarketer.tistory.com/73
JWT 유어클래스 보고 공부하기

profile
코딩 일기장
post-custom-banner

0개의 댓글