Authentication Bearer 이란 Bearer Authentication 또는 Bearer Token Authentication은 HTTP 인증 스키마 중 하나로, 주로 OAuth 2.0 또는 JWT (JSON Web Token)와 같은 토큰 기반 인증에서 사용됩니다. 이 방식은 서버에 요청을 보낼 때 Authorization 헤더를 사용하여 토큰을 전달하는 방법을 말합니다. 헤더는 대략 다음과 같은 형태를 가집니다. Authorization: Bearer YOUR_ACCESS_TOKEN 여기서 Bearer는 이 토큰을 지니고 있는 클라이언트가 요청 권한을 가지고 있음을 나타내는 접두어입니다. 이후에 공백을 두고 실제 토큰 (YOUR_ACCESS_TOKEN)이 옵니다. 서버는 이 헤더를 받아 ..
JWT(JSON Wen Token) 백엔드 개발자라면 지구 끝까지 따라와 묻게 되는 용어 JWT 알고나면 별로 어려운 용어는 아니지만 처음에 배울 때는 많이 힘들게 하는 친구중 하나입니다. 해당 글에서는 JWT에 대한 내용을 별도로 다루고 있지 않습니다. 그러므로 JWT에 대한 내용을 공부하시고자 한다면 아래 글을 참고 해주시기 바랍니다. JWT(JSON Web Token) JWT JWT는 유저를 인증하고 식벽하기 위한 인증 방식이다. 토큰은 세션과는 달리 서버가 아닌 클라이언트에 저장되기 때문에 메모리나 스토리지 등을 통해 세션을 관리했던 서버의 부담을 덜 수 jamesblog95.tistory.com Token 발급 하기 발급을 해주기 위해서는 기본적인 jwt 설정이 필요로 합니다. /src/auth..
Swagger Swagger는 서버와 상호작용이 가능한 API 들을 문서화 하여 제공하는데 사용되는 라이브러리 입니다. 해당 라이브러리를 사용하면 간단하게 서버에 요청을 보내 볼 수 있고 어떤 값을 필요로 하는지, 그리고 어떤 값이 반환이 되는지 문서를 통해 알 수 있습니다. Swagger 설치 npm install @nestjs/swagger swagger-ui-express 모듈 설정 import { SwaggerModule, DocumentBuilder } from '@nestjs/swagger'; // ... 기존 코드 ... async function bootstrap() { const app = await NestFactory.create(AppModule); // Swagger 옵션 설정 c..
Swagger Swagger 는 서버의 자원을 사용하기 위해 제공 되는 API를 문서화를 하도록 해주는 라이브러리 입니다. 해당 라이브러리를 잘 정리를 해둔 상태라면 다른 서버 또는 개발에 유용하게 사용 될 수 있습니다. 그리고 자동적으로 데이터 변경을 감지하고 문서를 변경해줌으로서 이전에 Express.js 보다 좀 더 편리하게 문서를 작성할 수 있습니다. 해당 글에서는 기본적인 Swagger 사용법은 언급하지 않고 있으니 Nest.js 의 Swagger 기본 설치 및 문법을 보시려면 다른 글을 참고해주세요. Decorator 작성 Decorator 는 자바의 Annotation 과 같은 기능을 제공하고 있습니다. 커스텀 데코레이터를 생성을 하고 해당 데코레이터를 반복적으로 사용하는 환경을 만들어 줍니..
개요 class-validation, class-transformer 은 타입의 안정성을 높이고 원하는 값이 입력되는 가를 검증하는 데에 사용되는 라이브러리 입니다. 기존의 자바 스크립트의 문법으로 원하는 값을 얻으려고 하면 각 validate 메소드를 작성을 하여야 했으나, 간단한 decarator 추가 함으로 인해 쉽게 검증을 할 수 있게 되었습니다. 그렇다면 어떻게 다운을 하고 사용할 수 있는지 알아 보도록 하겠습니다. 설치하기 npm install class-validator class-transformer @nestjs/mapped-types설정하기 라이브러리를 사용하기 위해 main.ts에 설정을 추가 // ValidationPipe 전역 적용 app.useGlobalPipes( new Val..
1. 패키지 설치 데이터베이스는 postgres 를 사용 yarn add @nestjs/typeorm typeorm pg 2. Module설정 추가 @Module({ imports: [ ConfigModule(), TypeOrmModule.forRoot({ type: 'postgres', // dbms 종류 host: 'localhost', // dbms 주소 port: 5432, // dbms 포트 username: 'admin', // dbms 계정 password: '1234', // dbms 비밀번호 database: 'testdb', // dbms 데이터베이스 entities: [__dirname + '/**/*.entity{.ts,.js}'], // entity를 자동으로 읽어옴 synchro..