2023/04/07 5

NestJs 프로젝트에서 Swagger 사용하기

https://swagger.io/ API Documentation & Design Tools for Teams | Swagger Loved by all • Big & Small Thousands of teams worldwide trust Swagger to deliver better products, faster. swagger.io 프로젝트가 커질수록, 팀 프로젝트를 할수록 문서화하는것은 매우 중요하다. REST API 수가 많아질수록, 팀원들과 소통하기 위해 문서화 작업은 필수입니다. 문서화 작업을 위한 swagger 우리함께 배워봅시다. 😊 🤷 Swagger란? API 설계와 문서화를 위한 오픈 소스 도구입니다. 이를 사용하면 개발자들이 API를 보다 쉽게 이해하고 사용할 수 있도록 문서를 작성..

nest js 2023.04.07

JWT(JSON Web Token) 토큰이란??

🔒 인증(Authentication) VS 인가(Authorization) 인증 인증은 사용자가 자신이 주장하는 신원이 실제로 맞는지 확인하는 과정입니다. 이를 위해 사용자 이름과 비밀번호를 사용하여 로그인 폼에 인증 정보를 입력하는 것이 일반적입니다. 인증 방식에는 사용자 이름과 비밀번호, 바이오메트릭 인증(지문, 안면, 홍채 등), OAuth, SSO(Single Sign-On) 등이 있습니다. 인가 인가는 인증된 사용자가 요청한 자원에 대해 어떤 권한이 있는지 확인하는 과정입니다 예시) 인증: 관리자 페이지에 접근하려면, 관리자 계정으로 로그인해야 합니다. 이때, 관리자는 사용자 이름과 비밀번호를 입력하여 자신이 맞는지를 인증합니다. 인가: 관리자는 관리자 페이지에서 사용자 계정을 추가, 수정, 삭..

기타 2023.04.07

쿠키 vs 세션(cookie vs session)

공통점은 무엇일까? 쿠키와 세션은 모두 http 프로토콜에서 클라이언트와 서버가 상태를 유지하기 위해 사용되는 것입니다. 쿠키와 세션에 대해 알아보자 1. 쿠키 🍪 쿠키는 클라이언트 측에 저장되며, 웹서버에서 생성하여 http 응답 헤더를 통해 전송됩니다. 클라이언트는 이를 로컬에 저장하고, 이후 요청 시 에는 쿠키를 http 요청 헤더에 포함시켜 서버에 전송합니다. 서브는 해당 쿠키의 값을 참조하여 클라이언트의 상태를 파악합니다. 💛 쿠키의 특징 클라이언트 측에 저장: 쿠키는 클라이언트 측(브라우저)에 저장되어 서버에서 사용자를 구별하거나 정보를 저장하게 됩니다. 서버에서 생성 및 전송: 쿠키는 서버에서 생성되어 HTTP 응답 헤더에 포함되어 클라이언트로 전송됩니다. 유효 기간 설정 가능: 쿠키는 만료..

기타 2023.04.07

NestJs Guard에 대해 알아보자

Guard란? guard는 요청의 처리 여부를 결정하는 미들웨어 역할을 합니다. guard는 인증과 권한 부여 등 요청에 대한 검사를 처리하는 데 주로 사용합니다. guard는 @nestjs/common의 CanActivate 인터페이스를 확장하는 클래스로 구현됩니다. 이 인터페이스는 canActivate라는 단일 메서드를 정의하며, 이 메서드는 ExecutionContext 객체를 인수로 취하고 요청이 진행되어야 하는지 여부를 나타내는 부울 값을 반환합니다. 예를 들어, 아래 코드에서는 JWT 토큰을 가져와 인증 여부를 판단하고, 인증되지 않은 요청은 거부합니다. @Injectable() export class AuthGuard implements CanActivate { constructor( pri..

nest js 2023.04.07

NestJs Custom decorator에 대해 알아보자

nestjs에서 데코레이터는 애플리케이션의 모듈, 컨트롤러, 서비스 등의 클래스와 메서드에 붙일 수 있는 기능적인 어노테이션입니다. 앞서 배운 @body @param~ 등이 데코레이터입니다. 데코레이터는 클래스와 메서드에 메타데이터를 추가하거나 애플리케이션을 자동으로 구성하기 위해 사용될 수 있습니다. 커스텀 데코레이터란? 커스텀 데코레이터는 직접 만든 데코레이터로 nestjs에서 제공하는 데코레이터 외에도 자신이 원하는 기능을 구현하기 위해 만들어진것입니다. import { createParamDecorator, ExecutionContext } from '@nestjs/common'; export const User = createParamDecorator( (data: unknown, ctx: Ex..

nest js 2023.04.07