본문 바로가기
패스트캠퍼스 환급챌린지

패스트캠퍼스 환급챌린지 27일차 : 코드팩토리의 백엔드 아카데미 : 한 번에 끝내는 NestJS 패키지 - 기초부터 MSA까지 강의 후기

by 논문보관함 2025. 3. 31.

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/4hTSJNB

 

🚨[D-1] 4월 1일 00시 강의 가격 최대 13% 인상! | 패스트캠퍼스

오늘 자정 이후 비싸집니다. 가격 인상 전 지금이 3월 마지막 기회! 지금 바로 시작하세요.

fastcampus.co.kr

0331 월

학습 내용 정리

nestjs

guard 이론

01. Auth Guard 생성하기

02. Public Custom Decorator 생성하기

03. bearer token middleware 검증 개선

수강후기

 

NestJS 인증 처리: Guard 및 Bearer Token Middleware 개선 수강 후기 (700자 이상)

이번 NestJS 학습에서는 인증 로직의 핵심 요소인 Guard와 Bearer Token Middleware를 직접 구현하고 개선하는 과정을 통해 인증 흐름 전반에 대한 깊은 이해를 얻을 수 있었습니다.

1. AuthGuard 및 @Public 데코레이터 실습

AuthGuard를 통해 request.user 객체의 존재 여부와 토큰의 유효성을 확인하고, 인증되지 않은 사용자의 접근을 차단하도록 구성하였습니다. 동시에 @Public()이라는 커스텀 데코레이터를 만들어, 로그인/회원가입과 같은 인증이 필요 없는 엔드포인트는 Guard의 검증을 우회할 수 있도록 처리했습니다. Reflector를 활용해 라우트 핸들러에서 메타데이터를 읽어내는 이 방식은 NestJS의 메타프로그래밍 철학을 잘 반영한 구조로, 실제 서비스에서도 매우 유용할 것으로 판단됩니다.

2. BearerTokenMiddleware 개선

기존에는 미들웨어에서 토큰 유무만을 체크하고, 유효하지 않으면 예외를 던지는 방식이었습니다. 하지만 이번 개선을 통해 로그인이나 회원가입과 같은 Public API에서 토큰이 만료되었더라도 요청이 막히지 않도록 next()로 넘기는 구조로 변경했습니다. 즉, 토큰이 없거나 만료되어도 요청 자체를 차단하지 않고, 이후 Guard에서 @Public() 여부에 따라 최종 인증 판단을 하도록 책임을 분리했습니다. 이 구조는 인증이 필요한 API와 그렇지 않은 API를 하나의 일관된 흐름 안에서 유연하게 처리할 수 있도록 만든 점에서 매우 인상 깊었습니다.

또한 jwtService.decode()를 통해 먼저 토큰 타입(access/refresh)을 확인한 후, 타입에 따라 각각의 시크릿 키로 verifyAsync()를 수행하는 구조를 통해 보안성을 높이고, 잘못된 토큰 타입에 대한 에러 처리도 철저히 구현한 점이 좋았습니다.

3. 실무적 통찰

이번 과정을 통해 NestJS의 인증 처리 로직을 체계적으로 설계할 수 있는 능력을 기르게 되었으며, 특히 Guard, 미들웨어, 데코레이터를 유기적으로 연결하여 역할별 책임을 명확히 분리하는 구조 설계에 대한 감을 잡을 수 있었습니다. 앞으로의 프로젝트에서 사용자 인증이 필요한 모든 상황에 유연하게 대응할 수 있을 것으로 기대됩니다.

 

사진

시작
종료
수강클립
결과물