Today I Learned/TIL 06
-
2023 - 06 - 21 엑세스 토큰 (Access Token)과 리프레쉬 토큰 (Refresh Token)Today I Learned/TIL 06 2023. 6. 21. 17:50
AccessToken 사용자의 권한이 있는지 확인되었을 때, 해당 사용자를 인증하는 용도로 발급 Cookie로 jwt를 발급하고, 설정한 Expire 기간이 지날 때 인증이 만료되게 하는 것 또한 Access Token이라고 할 수 있다. 사용자가 AccessToken을 갖고 인증을 요청할 경우 Token을 생성할 때 사용한 비밀키(Secret key)를 갖고 인증하기 때문에, 복잡한 설계없이 코드를 구현할 수 있고, 여러 분기를 거치지 않아도 된다는 장점이 있다 Access Token의 경우 Stateless(무상태) 즉 Node.js서버가 죽었다 살아나더라도 동일한 동작을 하는 방식이다 즉 jwt를 이용해 사용자의 인증여부는 확인할수 있으나, 처음 발급한 사용자 본인인지 확인할수는 없다 Access ..
-
2023 - 06 - 20 JWT (Json Web Tokens)Today I Learned/TIL 06 2023. 6. 20. 01:19
JWT란 JSON 형태의 데이터를 안전하게 교환하여 사용할 수 있게 해준다. 인터넷 표준으로써 자리잡은 규격이다. 여러가지 암호화 알고리즘을 사용할 수 있다. header.payload.signature 의 형식으로 3가지의 데이터를 포함한다. (개미처럼 머리, 가슴, 배) 때문에 JWT 형식으로 변환 된 데이터는 항상 2개의 . 이 포함된 데이터여야 한다. header(머리)는 signature(배)에서 어떤 암호화를 사용하여 생성된 데이터인지 표현한다. payload(가슴)는 개발자가 실제 만들고 원하는 데이터를 저장한다. signature(배)는 이 토큰이 변조되지 않은 정상적인 토큰인지 확인할 수 있게 도와준다. JWT는 비밀 키를 모르더라도 복호화(Decode)가 가능하다. 변조만 불가능 할 뿐..
-
2023 - 06 - 19 쿠키 (Cookie)와 세션 (Session)Today I Learned/TIL 06 2023. 6. 19. 14:13
Node.js는 프로그래밍 언어가 아니라, 자바스크립트를 브라우저없이 단독으로 실행할 수 있는 하나의 플랫폼이다. npm은 node.js에서 오픈소스 라이브러리를 쉽게 사용하기 위해 개발된 '패키지 관리자' 형식의 프로그램이다. express는 서버가 아니라, 우리가 쉽게 서버 프로그램을 구성할 수 있게 만들어진 오픈소스 라이브러리 이다. HTTP는 우리가 일반적으로 데이터를 주고받을 때 사용하는 통신규약이다. 웹 브라우저(익스프레스, 파이어폭스, 크롬 등)는 HTML로 이루어진 데이터를 읽어서 화면에 그려주는 역할을 한다. 단순히 웹문서를 가져와 보여주는 것 뿐만 아니라, 여러가지 프로토콜 (http, ftp, file 등)을 지원하여 다른 웹서버에 데이터를 보낼수도 있다. -쿠키 (Cookie) 쿠키..
-
2023 - 06 - 18 프론트엔드와 백엔드Today I Learned/TIL 06 2023. 6. 18. 11:52
프론트엔드 : 디바이스에서 해석하는 프로그램 백엔드 : 서버에서 해석하는 프로그램 프론트엔드 언어 : 디바이스에서 해석할 수 있는 언어 백엔드 언어: 서버에서 해석할 수 있는 언어 iOS / Android > 프론트엔드입니다! (디바이스에서 해석하기 때문에) java, kotlin > 프론트엔드 언어이자 백엔드 언어 express 프레임워크 통신 : 정보를 주고 받는 것 요청(request) 과 응답(response) 에 의해서 주고 받는 것 요청(request) 하는 컴퓨터 : 클라이언트 (client) 응답(response) 하는 컴퓨터 : 서버 (server) => HTML 형식으로 준다 엑셀 : 스프레드시트를 해석해 주는 프로그램 포토샵 : pdf라는 이미지 파일을 해석해서 그림처럼 보여 주는 프..
-
2023 - 06 - 17 MongoDB, Mongoose, 몽구스, Schema 스키마, model, populate, Queries 쿼리Today I Learned/TIL 06 2023. 6. 17. 11:33
NoSQL 데이터베이스로 분류되는 MongoDB는 가장 유명한 NoSQL데이터베이스 시스템이다. Mongoose Mongoose는 Node.js와 MongoDB를 연결해주는 ODM이다. **ODM(Object Document Mapping) : 객체와 문서를 1대1로 매칭하는 역할 MongoDB의 ODM은 다양하지만 Mongoose가 가장 유명하다. 패키지 설치npm install mongoose --save yarn add mongoose위와 같이 노드 패키지 매니저 npm 혹은 yarn을 통해 설치할 수 있다. MongoDB 연결하기 (둘중 하나)1) require을 이용하는 방법const mongoose = require('mongoose'); mongoose.connect("mongodb://lo..
-
2023 - 06 - 16 HTTP와 웹 서버 & 패키지매니저 (Package Manager)Today I Learned/TIL 06 2023. 6. 16. 09:34
오늘 할일 node 입문 강의듣기, 개인과제 하기 오늘 배운 것 HTTP와 웹 서버 & 패키지매니저 (Package Manager) HTTP : 통신규약 (프로토콜, protocol) HTTP를 이용하여 서버나 클라이언트(브라우저)끼리 의사소통할 수 있다. 모든 브라우저는 HTTP 프로토콜을 기본으로 지원한다.HTTP 디지털 세상에서 네트워크가 의사표현 수단이고, 통신규약이 의사표현의 방법. HTTP에서는 언제나 Request, Response라는 개념이 존재한다. 1. 브라우저가 서버에게 HTTP request를 한다. method : GET / path : /index.html 2. 서버가 브라우저에게 response를 한다. status : 200 / content-type : text/html /..
-
2023 - 06 - 15 클래스 Class, 생성자 Constructor, this와 프로퍼티 (property), 인스턴스, 부모클래스 자식클래스 상속Today I Learned/TIL 06 2023. 6. 15. 02:35
오늘 할일 node 강의듣기 개인과제하기 오늘 배운것 클래스 Class, 생성자 Constructor, this와 프로퍼티 (property), 부모클래스 자식클래스 상속 class User { // class : 무언가를 생성하기 위한 틀 } 클래스(Class)는 현실과 비슷한 개념(객체)를 나타내기 위한 도구. 클래스를 미리 정의해놓으면 필요할때마다 해당 클래스로 동일한 틀을 가진 객체를 만들 수 있다. 여기서 동일한 클래스를 이용해 생성한 객체를 인스턴스(Instance)라고 한다. 예를들어. 아래 const user = new User();에서 왼쪽의 user는 User()를 통해 만든 변수이자 인스턴스이다. const user = new User(); // 왼쪽의 user는 User()를 통해 ..
-
2023 - 06 - 14 에러핸들링 (Error Handling) try catch, throw, finallyToday I Learned/TIL 06 2023. 6. 14. 01:11
오늘 할일 5주차 강의 듣기 오늘 배운 것 에러 핸들링 에러핸들링 (1) try~catch문 : 에러가 발생했을때 예를들어, users에 있는 이름을 String.toUppercase()를 이용해 대문자로 변경할 때 문자열(String)이 아닌, 데이터 (숫자 2) 가 들어온다면 에러가 발생한다. const users = ["Lee", "Kim", "Park", 2] try { for (const user of users){ console.log(user.toUpperCase()); } } catch (err) { console.error(`Error: $(err.message)`); } // LEE // KIM // PARK // Error: user.toUpperCase is not a functio..