본문 바로가기

시작179

230118 - JavaScript - 내장 모듈 crypto, NodeJS 오늘 내가 배운 것 1. 내장 모듈 crypto 2. JWT - Signature 3. JWT - 토큰 만들기 4. JWT - 토큰 검증하기 1. 내장 모듈 crypto Node.js의 내장 모듈이기 때문에 require 해서 사용해야 한다. crypto는 클래스이다.. const crypto = require("crypto") const salt = process.env.SALT || "web7722" const hash = crypto.createHmac(`sha256`, salt).update(평문).digest("hex") // createHmac은 `정적메서드`다. JWT에서 Signature을 만드는 목적이 headerd와 payload가 위조, 변조되었는지 확인하기 위해서인데, salt값이 .. 2023. 1. 19.
230118 - JavaScript - JWT, base64, 인코딩과 디코딩 오늘 내가 배운 것 1. 인코딩(Encoding)과 디코딩(decoding) 2. Base64 3. JWT 인코딩 구현해 보기 1. 인코딩(Encoding)과 디코딩(decoding) 1-1. 인코딩(Encoding) 인코딩은 어떤 정보나 데이터를 다른 형태, 형식으로 변환하는 과정을 말한다. 인코딩을 하면 데이터를 표준화하거나 데이터의 처리속도를 향상할 수 있고 저장공간을 절약할 수 있는 장점이 있다. 우리가 눈으로 확인할 수 있는 동영상이나 사진들도 인코딩해서 데이터를 주고받는다. 인코딩의 반대말은 디코딩이다. 1-2. 디코딩(Decoding) 디코딩은 인코딩과 반대되는 개념으로 , 전달받은 숫자 또는 문자로 된 데이터들을 사용자가 문자나, 실제 동영상으로 볼 수 있게 해석하는 역할을 말한다. 인코딩.. 2023. 1. 18.
230117 - JWT , 쿠키와 세션, 암호화 오늘 내가 배운 것 1. Cookie Cookie Cookie 동작방식 Cookie 단점 2. Session Session Session 동작방식 Session 단점 Cookie VS Session 3. JWT JWT 기본 JWT 구조 Header의 알고리즘 4. 암호화 단방향 암호화 양방향 암호화 대칭키 비대칭키 cookie 또는 session을 이용하여 식별, 로그인 기능을 구현했었다. Cookie와 Session에 대하여 다시 정리해보려 한다. 그전에 HTTP 통신에 대한 기본적인 특징을 말하자면 1. HTTP 통신은 한 번의 요청에 한 번의 응답이 오고, 요청과 응답이 주고받은 후 연결을 끊는 특징이 있다. (비연결성 - Connectionless) 1-1. 비연결성의 장점은 하나의 서버에 여러 .. 2023. 1. 17.
230116 - JavaScript - Sequelize을 이용한 CRUD 오늘 내가 배운 것 1. Primary Key 2. 데이터 타입 ENUM 3. Model을 이용한 테이블 만들기 4. Liked 5. 관계형을 위한 정적 메서드 1. Primary Key 기본적으로 PK는 테이블당 1개만 부여 가능하다고 알고 있었다. CREATE TABLE person( first_name VARCHAR(30) NOT NULL, last_name VARCHAR(30) NOT NULL, PRIMARY KEY (first_name, last_name) ); 위에 코드처럼 Primary Key에 두 개의 필드를 적고, 실행을 하면 가능할까? 일단 실행이 가능하다. INSERT INTO person(first_name, last_name) VALUES(1, 1) first_name에 1이 들어.. 2023. 1. 17.
230113 - Javascript - Sequelize, ERD 활용 페어코딩 Sequelize, ERD 활용 페어코딩 ERD를 이용하여 스키마 계획을 수립한 후 Sequelize를 이용하여 MySQL 데이터베이스에 들어갈 테이블을 만들고 POSTMAN을 이용하여 결과물 확인하기 ERD란? Entity Relationship Diagram의 약자로, 실재하는 것의 관계를 나타낸 도표이다. 실재하는 데이터들의 관계를 나타낸 도표라고 볼 수 있다. 기존에 무슨 데이터를 어떤 테이블에 어떻게 넣어야 할지 머릿속으로 하거나 나만 이용할 수 있는 그림을 그려서 사용했다면, ERD를 활용하여 위와 같이 표현한다면 확실히 한 번에 눈에 띄어 확인하기도 편하고, 협업에도 도움이 되며, ERD에 PK나 FK, 테이블 간의 관계를 쉽게 볼 수 있다. 이번에 페어코딩을 하면서 처음 사용한 방법이라 내.. 2023. 1. 16.
230112 - Javascript - Sequelize 테이블 만들기 , SQL 테이블 만들기 , SQL-JOIN, Sequelize-Join, NodeJS 오늘 내가 배운 것 1. 제약조건 2. 테이블 만들기 2-1. Query문을 이용한 테이블 만들기 2-2. Sequlize - class를 이용한 테이블 만들기 3. 외래키 지정하기 (FK) Query문을 이용한 제약사항 확인하기 3-1. Query문을 이용한 외래키 (foreign key) 지정하기 3-2. Query문을 이용한 외래키 (foreign key) 삭제하기 3-3. Query문을 이용한 외래키 (foreign key) ON DELETE 옵션 3-4. sequelize에서 외래키(foreign key) 지정하기 4. 테이블 JOIN 하기 4-1. Query문을 이용한 JOIN 4-2. sequelize를 이용한 JOIN 1. MySQL 제약조건 테이블에 데이터를 저장할 때 데이터의 정확성, .. 2023. 1. 15.
728x90