TIL 84

24.02.06

인증(Authentication) => 사용자가 누구인지 확인하는 과정 (인간의 귀차니즘에서 생겨난..) 시스템이 사용자의 신원을 확인할 수 있어야 하기 때문에 필요함. - 신원이 증명이 되면 그에 맞는 알맞은 서비스를 제공한다. 쿠키(Cookie) => 세션 ID나 JWT와 같은 인증 토큰을 전달하는 매개체 세션(stateful): 서버에서 **직접 사용자 정보를 관리하는 메커니즘 (JWT보다 오래된 기술) sateful: 서버에서 클라이언트의 상태를 유지해야한다.(상태를 유지하지 못하는 서버에서는 원하는 결과를 얻을 수 없음) JWT(stateless) 서버가 세션 map과 같이 클라이언트의 상태를 보존하지 않아도 괜찮음 엑세스 토큰과 리프세시 토큰은 생성 시 유효시간을 입력하여 발급하는 구조임 엑세..

TIL 2024.02.06

24.02.02

스터디 공부: 라우터와 미들웨어 차이 app.use(express.json()) 사용의 목적 : app.use() => Express.js 어플리케이션에 미들웨어를 추가하는 메서드 * app. use() express.json()은 json데이터를 파싱하기 위한 내장 미들웨어인데, json형식의 요청 데이터를 파싱하여 JS 객체로 변환시켜줌. => 클라이언트의 JSON 형식의 요청을 서버에서 사용할 수 있게 해준다. 라우터 - 클라이언트 요청 경로(URI)에 따라서 적절한 함수를 호출하는 기능을 담당한다. 1.라우터는 클라이언트 요청 경로와 HTTP 메서드(CRUD)에 따라 적절한 핸들러 함수를 요청하여 처리한다. 2. 라우터는 웹어플리케이션의 라우팅을 관리하는 역할 수행. 라우팅: 클라이언트의 요청이 ..

TIL 2024.02.05

24.02.01

ORM 과 Prisma Prisma란? ORM(Object Relational Mapping)으로써 JS 객체(object)와 데이터베이스의 관계(Relation)을 연결(mapping)해주는 도구 Prisma vs mongoose mongoose의 경우 ODM(Object Document Mapping)으로 JS의 객체를 Document와 연결하지만, Prisma는 ORM(Object Realtional Mapping)으로 JS와의 객체와 데이터베이스의 관계(Relation)를 연결해주는 차이점이있음 mongoose의 경우 Schema의 형태로 컬렉션(Collection)에 대한 속성을 설정하였다면, Prisma의 경우 Model의 형태로 테이블(Table)의 속성을 설정할 수 있다. => mongoo..

TIL 2024.02.02

24.01.31

해결 방법 1. git hub에 파일을 push함 2. git clone으로 파일을 불러옴 3. 정확한 위치에서 npm i로 모듈들을 다운 받음 4. env파일을 만들고, DB정보를 입력한다(AWS RDS 엔드포인트) 5. npx prisma db push로 DB에 연결한다. 6. 서버 오픈(node app) 7. 썬더 클라이언트에서 재확인해보기 Access Token: 사용자의 인증(로그인)이 완료된 후 해당 사용자를 인증하는 용도로 발급하는 토큰(회원권) - Stateless(무상태)의 특징을 가지고 있음 => 서버가 재시작되더라도 동일하게 작동한다. (해당하는 인증정보다 만료되어도 서버 상태와 관계 없이 권한을 확인할 수 있다.) 문제점: 사용자 인증이 필요한 모든 것을 가지고 있음 => 해커에 의..

TIL 2024.01.31

24.01.30

게시판 프로젝트 프로젝트를 시작하기 전 터미널을 통해서 초기화를 시켜준다. yarn init -y yarn add express prisma @prisma/client cookie-parser jsonwebtoken yarn -D nodemon npx prisma init package.json 파일에 "type": "module", 을 적어서 ES 모듈을 사용한다고 알린다. 생성된 prisma/schema.prisma 파일에서 provider 부분에 내가 사용할 데이터베이스(?)를 적어준다 나는 mysql을 사용하므로 mysql로 바꿔준다. prisma/schema.prisma 파일에서 모델을 만들어준다. // This is your Prisma schema file, // learn more abou..

TIL 2024.01.30

24.01.26

NULL 제약 조건 NULL 값을 허용하는 것은, 필수적으로 입력되어야 하는 데이터가 누락될 수 있는 위험이 발생할 수 있다. NULL 값을 허용하지 않는 방법 NOT NULL을 붙여준다. EX) name varchar(255) not null => 255는 컬럼에 올 수 있는 갯수 고유(Unique) 제약 조건 - 중복된 값이 허용되지 않도록 설정하는 조건임. name varchar(255) not null unique => name 이라는 컬럼은 문자 타입이고, 값이 있어야하며, 무조건 특정하게 고유해야한다. 고유 제약 조건 확인하기 INSERT INTO Users (name) VALUES ('김춘자); INSERT INTO Users (name) VALUES ('김춘자); Error: ER_DUP_..

TIL 2024.01.26

24.01.25

// 사용하여 사용자가 입력한 숫자를 받아 해당 숫자의 제곱을 반환하는 API를 작성하세요. // (예) "/square/5" 경로로 접속하면 25를 반환합니다. const express = require('express'); const app = express(); app.get("/square/:number", (req, res) => { const number = Number(req.params.number); const square = number * number; res.send(square); }); app.listen(3000, () => { console.log("3000번 포트에서 감자 서버 불타는 중!") }); 문제 발생 : res.send 함수로 req.params.number 라우..

TIL 2024.01.25

24.01.23 TIL

오늘 공부하고 배운 것 JS 기초 문법 관련 1. 리터럴 : 데이터 그 자체 2. 인스턴스 : class를 사용해서 만든 객체 - class : 붕어빵 틀, object : 붕어빵 틀로 만들어질 것들(가상의 존재), instance : 붕어빵 틀을 이용해서 만들어진 실재하는 진짜 붕어빵(실제 물리적인 존재) - 실제 물리적인 존재 : 주기억 장치(RAM)에 올라가는 순간(선언되는 순간) - new : class를 때만 붙는다. *** class new가 나오면 객체가 아닌 인스턴스임 3. for 반복문과 while 반복문의 쓰임새 - for 반복문 : 횟수나 순서가 중요할 때 사용, - while 반복문 : 특정 조건이 중요할 때 사용 4. if문의 조건 안에는 불리언이 와야 한다!(강제로 불리언으로 만..

TIL 2024.01.23

24.01.22

내가 생각해본 것 - remote origin을 이미 설정했으니까 저걸 한번 지워보고 다시해보자 해결 방법 1. git remote remove origin 명령어를 통해 원격저장소와의 연결을 끊는다. 2. git remote add origin 레파지토리 주소를 입력해서 새롭게 연결을 한다. 3. git remote -v 명령어로 로컬 저장소를 원격 저장소에 연결시켜준다. 4.git push -u origin main으로 git hub에 push를 한다. * 구글링을 해서 방법을 찾았음 * pm2 list 로 확인을 해보니 status errored가 떴길래 문제를 찾기 시작함 문제: Error: listen EADDRINUSE: address already in use :::3000 오류가 발생합니다..

TIL 2024.01.22

2024. 01. 19

오늘 한 것. MongoDB Atlas 대여, studio 3T 다운로드 및 사용, Insomnia API 클라이언트 사용, 할일 메모 사이트 만들기 등;; 너무 많아서 적기도 힘들다 ㅋㅋ... import mongoose from "mongoose"; const TodoSchema = new mongoose.Schema({ value: { type: String, required: true, // value 필드는 필수 요소이다. }, order: { type: Number, required: true, // order 필드도 필수 요소이다. }, doneAt: { type: Date, // doneAt 필드는 Date 타입을 가진다. required: false, // doneAt 필드는 필수 요소는..

TIL 2024.01.19
728x90