nestJS
-
NestJS 마스터 시리즈 16화. 인증 시스템 구현 (2) – AuthGuard와 역할 기반 인가 처리기술과 산업/언어 및 프레임워크 2025. 5. 28. 12:55
"보안은 인증으로 시작하고, 인가로 완성된다"NestJS에서 JWT 인증 이후의 권한 제어를 구현하는 방법을 설명합니다. AuthGuard 설정, 커스텀 데코레이터, RolesGuard 패턴을 기반으로 실무에서 활용되는 인가 전략을 단계별로 소개합니다.인증과 인가의 차이인증(Authentication): 누구인지 확인하는 과정인가(Authorization): 무엇을 할 수 있는지 결정하는 권한 부여 과정이번 회차에서는 인증된 사용자에게 API 사용 권한을 어떻게 제한하고 제어할 것인지를 다룬다.1. JWT 기반 AuthGuard 설정NestJS는 Passport의 JWT 전략을 기반으로 AuthGuard('jwt')를 사용하여 인증 보호 API를 쉽게 구성할 수 있다.import { UseGuards }..
-
NestJS 마스터 시리즈 15화. 인증 시스템 구현 (1) – JWT 기반 로그인 시스템 만들기기술과 산업/언어 및 프레임워크 2025. 5. 27. 14:22
"인증은 단순한 로그인이 아니라, 서비스와 사용자 사이의 신뢰 계약이다"NestJS에서 JWT 인증 시스템을 구현하는 방법을 설명합니다. PassportModule 연동, JWT 전략 구성, 로그인 및 토큰 발급 로직까지 실무 수준으로 정리합니다. 인증이란 무엇인가?인증(Authentication): 사용자가 누구인지 확인하는 과정인가(Authorization): 인증된 사용자가 특정 리소스에 접근할 수 있는지 판단하는 과정이번 글에서는 먼저 인증, 특히 로그인과 토큰 발급 흐름에 집중한다.1. 필요한 패키지 설치npm install @nestjs/passport @nestjs/jwt passport passport-jwtnpm install --save-dev @types/passport-jwtpass..
-
NestJS 마스터 시리즈 14화. CRUD 실습 – 사용자(User) API를 완성해보자기술과 산업/언어 및 프레임워크 2025. 5. 15. 19:18
“백엔드 개발은 결국 CRUD에서 시작되고, 잘 만든 CRUD가 서비스의 뼈대가 된다” NestJS에서 사용자(User) API를 실전 예제로 CRUD 방식으로 구축하는 방법을 설명합니다. 모듈, 컨트롤러, 서비스, DTO, Repository의 통합 개발 과정을 단계별로 소개합니다. 목표 다음 기능을 갖춘 User API를 완성한다.기능라우트메서드전체 사용자 조회/usersGET단일 사용자 조회/users/:idGET사용자 생성/usersPOST사용자 수정/users/:idPATCH사용자 삭제/users/:idDELETE 1. UsersModule 생성nest generate module usersnest generate service usersnest generate controller users..
-
NestJS 마스터 시리즈 13화. TypeORM과 데이터베이스 연동 전략기술과 산업/언어 및 프레임워크 2025. 5. 12. 19:35
"백엔드 개발의 시작은 데이터 모델링에서, 완성은 Repository 패턴에서 결정된다"NestJS에서 TypeORM을 활용해 데이터베이스와 연동하는 방법을 설명합니다. 연결 설정, Entity 정의, Repository 사용법, 커스텀 쿼리 전략까지 실무 중심으로 정리합니다.ORM이 필요한 이유Raw SQL만으로 서비스 규모가 커질수록 다음과 같은 문제를 피할 수 없다:SQL 문이 코드에 직접 섞여 가독성이 떨어짐스키마 변경 시 코드 반영이 어렵고 오류 발생테스트 코드 작성이 복잡NestJS + TypeORM은 Entity 기반의 데이터 모델링, Repository 패턴, Migration 관리까지 통합된 개발 경험을 제공한다.TypeORM 설치 및 기본 설정npm install @nestjs/type..
-
NestJS 마스터 시리즈 12화. 모듈 간 의존성 순환 문제와 해결 전략기술과 산업/언어 및 프레임워크 2025. 5. 9. 14:57
"Circular Dependency는 코드의 잘못이 아니라, 설계의 경고다"NestJS에서 발생하는 순환 의존성 문제의 원인을 분석하고, forwardRef, 인터페이스 추출, 계층 재설계 등 실전에서 사용하는 해결 전략을 구조적으로 정리합니다.순환 의존성이란 무엇인가?A 서비스가 B 서비스를 참조하고, 동시에 B 서비스도 A를 참조할 때NestJS는 이 구조를 **순환 의존성(Circular Dependency)**이라고 판단한다.의존 관계 예시A → B → A이 구조는 NestJS의 **의존성 주입 컨테이너(DI Container)**가 인스턴스를 생성할 때 무한 루프에 빠지게 하므로, 런타임 오류를 유발할 수 있다.실제 예시 – 사용자와 인증 서비스// auth.service.ts@Injectab..
-
NestJS 마스터 시리즈 11화. 파이프(Pipe) – 요청 데이터의 정제와 전처리 전략기술과 산업/언어 및 프레임워크 2025. 5. 7. 01:02
“검증과 전처리는 컨트롤러가 아닌 파이프가 해야 한다” NestJS의 Pipe 시스템을 통해 요청 데이터를 정제하고 가공하는 방법을 소개합니다. ValidationPipe, TransformPipe, 커스텀 Pipe 구현 전략까지 실무 중심으로 설명합니다. 요청 데이터를 다루는 책임, 어디까지 맡길 것인가 API를 설계하다 보면 다음과 같은 질문이 반복된다. 클라이언트가 보낸 문자열을 숫자로 바꿔야 할까?유효하지 않은 ID는 컨트롤러에서 거를까?중복된 데이터 변환 로직을 어떻게 제거할까? NestJS에서는 이 모든 고민을 Pipe를 통해 해결할 수 있다. Pipe란 무엇인가 NestJS에서 Pipe는 요청 핸들러에 전달되기 직전의 데이터를 다루는 컴포넌트다.두 가지 핵심 기능을 가진다: 데이터 유효성..
-
NestJS 마스터 시리즈 10화. 미들웨어와 인터셉터 – 요청 흐름을 설계하는 법기술과 산업/언어 및 프레임워크 2025. 5. 5. 13:38
“NestJS에서 흐름을 다룬다는 건 미들웨어와 인터셉터를 설계한다는 뜻이다” NestJS의 미들웨어와 인터셉터 개념을 설명하고, 요청 흐름을 설계하는 구조적 방식에 대해 다룹니다. 로깅, 인증, 응답 변환, 실행 시간 측정 등 실무 적용 예제를 포함합니다. 요청 흐름을 통제하는 두 가지 축 NestJS의 요청 흐름은 크게 두 축으로 나눌 수 있다.계층역할예시미들웨어 (Middleware)요청 전 전처리인증, 로깅, IP 차단인터셉터 (Interceptor)요청 전/후 중간 개입응답 포맷 변환, 실행 시간 측정, 캐싱이 두 계층을 적절히 활용하면, 컨트롤러 내부의 로직을 건드리지 않고도 서비스 흐름의 품질을 제어할 수 있다. 미들웨어 – Express 스타일 요청 전처리 NestJS는 Express ..
-
NestJS 마스터 시리즈 9화. 예외 처리 전략 – 오류는 숨기지 말고 설계하라기술과 산업/언어 및 프레임워크 2025. 5. 4. 11:47
“서비스 품질은 에러 메시지를 보면 알 수 있다” NestJS에서 예외 처리 시스템을 구조적으로 설계하는 방법을 다룹니다. HTTP 예외, ExceptionFilter, 커스텀 예외 클래스까지 실무 중심으로 예외 설계 전략을 소개합니다. 에러를 숨기는 백엔드는 신뢰할 수 없다 현업에서 발생하는 많은 장애는, 에러 그 자체보다 에러가 제대로 처리되지 않은 결과에서 시작된다.NestJS는 @nestjs/common 모듈에 예외 처리 시스템을 내장하고 있으며, 이를 통해 통일된 에러 응답과 로깅 전략을 설계할 수 있다. 기본 예외 – HttpException 사용하기 NestJS는 HttpException 클래스를 통해 명시적인 에러 응답을 만들 수 있다.import { HttpException, Http..