(처음) 게시물 검색 결과를 보여줄때 생각한 정렬 방식
1. 최신에 게시된 게시물 순서대로 정렬
2. 만약에 완전히 같은 시간에 게시된 게시물을  PK id 값을 이용하여 정렬

 

하지만!!

 

Auto-increment 설정으로 값이 메겨진 pk id 를 이용하여 정렬을 하는 것을 선호하지는 않는다

(이유)

  1. PK 값은 기록된 데이터를 고유하게 식별하고 편리하게 찾기위한 값이다.
  2. 항상 순차적으로 증가를 안할 수도 있다.
  3. 다양한 요인에 의해 영향을 받는다 - 대표적으로 삭제 기능
  4. 숫자가 아닌 문자로 저장이 되기 때문에 쉽지 않다.
  5. 복잡한 쿼리나 대용량 데이터를 처리할 때 잘못된 정렬을 할 수 있다.

 

사용하는 이유

  • 값을 미리 정의해서 사용될 수 없는 값이 들어오는 것을 방지
  • 데이터 정규화가 가능
  • ENUM의 데이터 추가는 간단하지만 수정이 어려움
    - black 에서 white로 수정시 유효하지 않는 black을 찾기 위해 테이블 전체를 다 찾아야 함
  • MySQL류 가 아닌 DBMS에서는 ENUM 을 지원 하지 않음

방식

MySQL

CREATE TABLE Locker (
    id INT AUTO_INCREMENT KEY,
    name VARCHAR,
    status ENUM('occupied', 'unoccupied', 'under management')
);

INSERT INTO Locker(name, status) VALUES ('seoul','occupied');

 

Squelize

const LockerStatus = {
  UNOCCUPIED: 'unoccupied',
  UNDER_MANAGEMENT: 'under management',
  OCCUPIED: 'occupied',
};


const Locker = sequelize.define(
  'lockers',
  {
    id: {
      type: DataTypes.INTEGER,
      autoIncrement: true,
      primaryKey: true,
    },
    name: {
      type: DataTypes.STRING
    },
    status: {
      type: DataTypes.ENUM(Object.values(LockerStatus)),
    },
  },
  { underscored: true },
);
// 데이터베이스 
const sequelize = require('./config/database');

// 모든 모델을 한번에 동기화 하는 방법

// 1. 모든 데이터를 지우고 새로운 데이터베이스를 생성
sequelize.sync({ force: true });

// 2. 모델에 있는 기존의 데이터를 유지하면서 변경사항만 변경
sequelize.sync({ alter: true });

 

[미니프로젝트] [1] 에서  access token을 생성 후에 local stroage 에 저장하는 경우

 

Rest API 의 규칙

  • GET 은 데이터를 획득
  • POST 는 데이터를 생성
  • Patch 는 데이터를 갱신
  • DELETE 는 그 데이터를 삭제

Rest API 의 규칙에 따르면 

  • sing in을 하면  데이터 jwt access token 을 생성 및 local storage에 저장 -> Post
    • 참고로 sing in은 기존 사용자의 "인증"을 수행하는 작업 - JWT 토큰은 영구적인 리소스가 아닌, 임시적인 인증 수단이여서 HTTP status code 는 200
  • sign out 을 하면 local storage 에서 jwt access token 이 삭제 -> Delete

 

Local storage 에 저장을 안하고 req 를 통해서  jwt access token을 front-end 에게 전달 한다면?

 

sign in -> jwt access token 을 생성 -> Post

  • jwt access token 을 저장하는 곳이 쿠키라면 

sign out ->  쿠키에서 jwt access token 삭제 -> Delete

 

 

하지만 sign out 을 하면 Get 이라는 주장도 아래에 존재

https://stackoverflow.com/questions/5868786/what-method-should-i-use-for-a-login-authentication-request

 

What method should I use for a login (authentication) request?

I would like to know which http method I should use when doing a login request, and why? Since this request creates an object (a user session) on the server, I think it should be POST, what do you ...

stackoverflow.com

  • sign in 을 하면 session 이 생성 -> Post
  • sign out 을 하면 session이 삭제 -> Delete

라는 주장에 

한 유저:
HTTP method Delete 는 서버에 있는 무언가를 지우는 것이지 session 과 같이 메모리를 사용하 것을 삭제하는 것에 적용하기에는 맞지 않다고 생각한다.
  • sign out 을 하면 -> Get 
  •  

 

1. 로컬에서 브랜치 이름 변경

1 -1 이름을 변경하고 싶은 브랜치로 이동 후

git branch -m {new-branch-name}

 

1- 2 main 으로 이동후

git branch -m {old-branch-name} {new-branch-name}

 

2. 이전의 브랜치를 local 및 remote 에서 삭제

git push origin --delete {old-branch-name}

 

3.  remote 에 새로운 브랜치 등록

git push origin -u {new-branch-name}

 

 

# 한번에 해결하는 방법

git push origin :{old-branch-name} {new-branch-name}

+ Recent posts