[NestJS] JWT(JSON Web Token) - 로그인 API 구현과 암호화
·
Server/NodeJS(NestJS)
JWT(JSON Web Token)는 클라이언트와 서버 간에 정보를 안전하게 전달하기 위해 사용되는 토큰이다크게 헤더(header), 페이로드(payload), 서명(signature) 세 부분으로 구성되는데, 이 세 부분이 결합되어 하나의 토큰을 형성한다 JWT 토큰을 구현하기 위해서는 Access Token과 Refresh Token 이렇게 두 종류의 토큰이 사용된다이 두 가지 토큰은 각기 다른 목적과 특성을 가지고 있으며, 보안성과 사용자 경험을 동시에 고려한 토큰 관리 방법이다. Access Token[목적] Access Token은 사용자 인증을 위해 사용된다이 토큰은 클라이언트가 서버에 API 요청을 보낼 때 포함되며, 서버는 이 토큰을 사용해 요청이 인증된 사용자인지 확인한다 [life cy..
[NestJs] @InjectRepository 데코레이터 with TypeORM
·
Server/NodeJS(NestJS)
NestJS에서 @InjectRepository 데코레이터는 TypeORM과 함께 사용되어 특정 엔티티의 리포지토리를 서비스 클래스에 주입하기 위해 사용됩니다! 이 데코레이터는 의존성 주입을 통해 데이터베이스와의 상호작용을 보다 간편하게 관리할 수 있도록 도와줘요  이 예제에서는 MySQL 데이터베이스를 사용하여 사용자(User) 데이터를 저장하고, GraphQL을 통해 사용자 데이터를 조회하고 추가하는 API를 구축합니다.@InjectRepository 데코레이터 사용 방법// npm 설치npm install @nestjs/typeorm typeorm mysql2npm install @nestjs/graphql @nestjs/apollo graphql apollo-server-express// yarn..
[Node.js] 블로킹 / 논블로킹
·
Server/NodeJS(NestJS)
이벤트 루프를 잘 활용하면 오래 걸리는 작업을 효율적으로 처리할 수 있다 작업에는 동시에 실행될 수 있는 작업과 동시에 실행될수 없는 작업이 있는데 기본적으로 자바스크립트 코드는 동시에 실행될 수 없다 하지만 파일 시스템 접근이나 네트워크를 통한 입출력 작업은 동시에 처리될 수 있다 블로킹이란 이전 작업이 끝나야만 다음 작업을 수행하는 것을 의미하고 논블로킹은 이전 작업이 완료될 때 까지 기다리지 않고 다음 작업을 수행함을 뜻한다 논브로킹 방식이 더 짧은 시간안에 같은 작업을 처리할 수 있다(모든 작업이 동시에 처리될 수 있는 작업이라는 전제) setTime(콜백, 0)은 코드를 논블로킹으로 만들기 위해 사용하는 기법 중 하나이다 아무리 논블로킹 방식으로 코드를 작성하더라도 코드가 전부 내가 작성한 것이..
[Node.js] 이벤트 루프 (event loop)
·
Server/NodeJS(NestJS)
function run() { console.log("3초후 실행"); } console.log("시작"); setTimeout(run, 3000); console.log("끝"); 시작 끝 3초 후 실행 동작 과정 setTime의 시간이 정확하지 않을 수 있는데 이벤트 루프는 스택이 비어있을 때 만 큐에 있는 run함수를 스택에 가져오는데 스택에 함수가 너무 많다면 3초가 지난 후에도 run 함수가 실행되지 않기 때문이다