SeSAC 웹풀스텍 7주차 | Sequalize, Cookie, Session

hatban·2022년 12월 19일
0
post-thumbnail

Sequelize

  • 자바스크립트 구문을 sql로 변환해준다
  • db작업을 쉽게 할 수 있도록 도와주는 ORM라이브러리 중 하나

설치

npm install sequelize sequelize-cli mysql2

  • sequelize : 시퀄라이즈 패키지
  • sequelize-cli : 시퀄라이즈 명령어 실행
  • mysql2 : mysql과 시퀄라이즈를 연결하는 드라이버(도구)

config 만들기

  • 연결할 데이터베이스 정보 작성
  • config/config.json

Sequelize 모델 정의

  • model 폴더의 index.js에는 config에서 정의한 것과 db설정, sequelize설정 등을 하면 된다.
  • 정의는 model폴더에 하기
  • 첫번째 인자 : 모델 이름 설정
  • 두번째 인자 : 컬럼정의
  • 세번째 인자 : 모델의 옵션 정의
const USER = (Sequelize, DataTypes) => {
    //table이름,테이블 속성,모델옵션
    return Sequelize.define(
        "user",
        {
            id : {
                type : DataTypes.STRING(10),
                allowNull : false,
                primaryKey : true,
            },
            pw : {
                type : DataTypes.STRING(20),
                allowNull : false,
            },
            name : {
                type : DataTypes.STRING(5),
                allowNull : false,
            },
            birthday : {
                type : DataTypes.DATE,
                allowNull : false,
            },
            age : {
                type : DataTypes.INTEGER,
                allowNull : false,
            },

        },
        {
            tableName : "user",
            freezeTableName : true,
            timestamps : false // default = true
            //collate,charset등등이 있다
        }
    );
}

Sequelize 쿼리문

  • findAll() : select *
  • findOne() : select
  • create() : insert
  • update() : update
  • destroy : delete


Cookie

  • 웹브라우저(클라이언트)에 저장되는 키와 값이 들어있는 작은 데이터 파일
  • 이름, 값, 만료일, 경로정보로 구성되어 있다

쿠키의 동작방식

  1. 클라이언트가 페이지를 요청
  2. 서버에서 쿠키를 생성
  3. http 헤더에 쿠키를 포함시켜 응답
  4. 브라우저가 종료되어도 쿠키 만료 기간이 있다면 클라이언트에서 보관하고 있음
  5. 같은 요청을 할 경우 http 헤더에 쿠키를 함께 보냄
  6. 서버에서 쿠키를 읽어 이전 상태 정보를 변경할 필요가 있을 때 쿠키를 업데이트하여 변경된 쿠키를 http 헤더에 포함시켜 응답

사용예시

  • 자동로그인
  • 팝업창(오늘 그만보기 등)

쿠키는 get에서 생성하는게 아닌 post에서 생성!


Session

  • 웹 서버에 저장되는 쿠키
  • 사용자가 웹 브라우저를 통해 접속한 시점부터 연결을 끝내는 시점까지의 시간동안 일련의 요구를 하나의 상태로 보고 그 상태를 유지시킨다
  • ex) 로그인 유지

세션의 동작 방식

  1. 클라이언트가 서버에 접속 시 세션 id를 발급받는다

  2. 클라이언트는 세션 id에 대해 쿠키를 사용해서 저장하고 가지고 있다

  3. 클라이언트는 서버에 요청할 때 이 쿠키의 세션 id를 서버에 전달해서 사용한다

  4. 서버는 세션 id를 전달받아서 별다른 작업 없이 세션 id로 세션에 있는 클라이언트 정보를 가져온다

  5. 클라이언트 정보를 가지고 서버 요청을 처리해 클라이언트에게 응답

🔥 쿠키 vs 세션

  • 전체적인 역할과 동작 원리는 비슷(세션 = 서버 쿠키)
  • 쿠키 : 로컬 & 세션 : 서버
  • 보안은 세션이 좋다
  • 속도는 쿠키가 빠르다

0개의 댓글