목록전체 글 (66)
상똥이의 Back-End 공부방
1. class 란?- 클래스: 커스텀 자료형을 만들 수 있게 해주는 도구(* new String(), new Array() 처럼 선언하지만, 프로그래밍 언어에 내장되지 않은 자료형을 내가 직접 만들 수 있게 해줌)- 인스턴스: class를 new 키워드로 선언해 메모리에 저장되는 것, 커스텀한 class의 변수와 메서드를 가짐- 변수와 메서드 선언 가능- extends 키워드로 클래스를 상속하는 다른 클래스를 선언할 수 있음 - ES6 표준으로, 컴파일 과정을 거쳐도 유지되어 비슷한 역할을 하는 인터페이스보다 권장됨 2. 구성요소- constructor, 접근 제한자, getter와 setter(1) constructor- 인스턴스별로 가지게 되는 값을 설정해주는 생성자- 인스턴스 생성 시 const..
목표1. JWT를 사용해서 로그인, 로그아웃을 처리한다.2. 로그인 시 토큰을 발급한다.3.필요시 토큰을 새로 발급한다. 목차0. 기본 설정 (스키마, 회원가입 로직)1. 로그인 시 토큰 발급과 저장2. 로그아웃 시 토큰 삭제3. 로그인 유지를 위한 리프레시 토큰 발급[0. 기본 설정]1. 유저 스키마model User { id Int @id @default(autoincrement()) email String @unique password String refreshToken String?} 2. 회원가입 로직//user.service.ts async createUser(dto: User) { try { const check = await this.prisma..
1. 동기 (Synchronous)- 한 작업이 끝난 다음에 다음 작업을 수행- 작업1의 요청이 있을 경우, 작업1의 요청이 접수되고 응답이 발생하기 전까지 다른 작업은 수행하지 않음function readDataSync() { const data = readFileSync('data.txt'); // 파일을 동기적으로 읽음 console.log(data);}console.log('Start');readDataSync();console.log('End');/* 결과Startdata.txt 내용 출력 End */ 2. 비동기 (Asynchronous)- 한 작업이 실행중이더라도 다른 작업을 수행- 시간이 오래 걸리는 작업이 있더라도 다른 작업을 수행하는데에 지장이 없음function readDataAs..
1. Elastic Search란?- 분산형 RESTful 검색 및 분석 엔진, 확장 가능한 데이터 저장소, 벡터 데이터베이스- 오픈소스 검색엔진- 정형 데이터, 비정형 데이터, 위치 정보, 메트릭, 파이프 쿼리 언어 등 다양한 유형의 데이터를 검색하고 결합할 수 있도록 지원 - Rest API를 사용해 CRUD 작업Relational DBElastic SearchSELECTGETUPDATEPUTINSERTPOSTDELETEDELETERelational DBElastic Searchselect * from class where id = 1;curl -XGET localhost:9200/classes/class/1insert into class values (xxx);curl -XPOST localhost..
목표- 코드 중복 최소화하기- 소셜로그인 로직 이해하기- 소셜로그인 환경설정하기 목차0. 들어가며 (전체 코드)1. 기본 설정 (유저 생성 로직)2. 플랫폼별 로그인 과정 이해하기3. 플랫폼별 환경 설정하기(naver, google, kakao)4. 코드 작성하기 [0. 들어가며]1. 전체 코드는 아래에서 확인하세요https://github.com/Sangddong/Social-log-in 2. 코드를 적용할 때 필요한 것- 사실 코드 전체를 복붙해도 잘 돌아갈 것이다- 필요한 것은 목차 3번 과정 수행과, 그를 통해 나오는 env에 저장해야 할 값이다 3. 왜 이걸 글로 쓰고 있냐면더보기- 카카오 소셜로그인을 한 번 구현해본 후 다른 소셜로그인들을 구현할 일이 생겼다- 이를 구현하기 위해 naver, ..
목차0. 해야할 것들1. config service, env2. cors3. response object [0. 해야할 것들]nest의 프로젝트 세팅을 위해 해야할 것들은 아래와 같습니다.config service & .envcors 활성화response object 세팅(1) Nest.js 공식문서에서 .env파일 내부의 환경변수를 사용할 때에는, ConfigModule의 ConfigService를 사용하도록 추천합니다 (2) 프론트엔드와의 api 연결을 위해 cors 활성화가 필요합니다 (3) response object 형식을 설정하여 postman 등에서 확인 가능합니다. 특히 오류가 발생했을 때 상태코드와 에러메세지를 출력하도록 설정하면 생산성이 높아집니다 [1. configService & e..
[라이프사이클 요약]1. 미들웨어- 경로 처리기 이전에 호출됨- 요청 & 응답 객체에 접근 가능하며, 변화시킴- 기존 Express 미들웨어 라이브러리 지원(cors, body-parser, morgan 등)- 인증(토큰 유효성, 요청 객체에 props 첨부하기 등) 레이어를 처리하기 좋은 후보 2. 가드- 특정 조건에 따라 주어진 요청을 처리할지 여부를 결정 (접근 제어 목록, 역할, 허가 등)- 인가 레이어와 비슷- ExecutionContext에 접근할 수 있음 (경로 처리기 이전 단계) 3. 인터셉터- 경로 처리기 전후 모두에 호출 가능- 들어오는 데이터를 변화시킴- 반환되는 데이터를 변화시킴 4. 파이프- 경로 처리기에 들어가는 데이터를 젼화시킴- 들어오는 데이터 유효성 검사- 특정 데이터 속성..
Exception filtersNest는 애플리케이션 전체에서 처리되지 않은 예외를 처리해주는 예외 레이어가 내장되어있습니다. 애플리케이션 코드에서 예외처리가 되지 않은 경우 이 레이어에 인식되고 자동으로 사용자 친화적인 응답을 내보냅니다.별도의 설치 과정이 필요 없이, 이는 HttpException 타입의 예외를 처리하는 내장된 전역 예외 필터에 의해 수행됩니다. 만약 예외상황이 인식되지 않으면 내장된 예외 필터가 아래의 JSON 형식의 응답을 생성합니다.{ "statusCode": 500, "message": "Internal server error"}HINT전역 예외 필터는 http-errors 라이브러리를 부분적으로 지원합니다. 기본적으로, 상태코드와 메시지를 포함하는 예외가 발생하면 적절히 ..
Middleware미들웨어는 라우트 핸들러 전에 호출되는 함수입니다. 미들웨어 함수는 요청 및 응답 객체와 애플리케이션의 요청-응답 사이클에서 next() 미들웨어 함수에 접근할 수 있습니다. next 미들웨어 함수는 일반적으로 next라는 변수로 표시됩니다.네스트 미들웨어는 기본적으로 express 미들웨어와 동일합니다. 아래의 express의 공식문서에서 가져온 설명은 미들웨어의 능력을 서술합니다.:미들웨어 함수는 아래의 업무를 수행할 수 있습니다.: · 어느 코드든 실행할 수 있음 · 요청과 응답 객체를 변형할 수 있음 · 요청-응답 사이클을 종료시킴 · 다음 미들웨어 함수를 호출함 · 만약 현재 미들웨어가 요청-응답 사이클을 종료하지 않으면, 반드시 next()를 호출해..