[NestJS] Pipes
2024. 12. 2. 16:55
NestJS
🛠️NestJS의 lifecycle 요청이 왔을 때 NestJS에서의 lifecycle을 보면 다음과 같다. 1. Requset2. Middleware 2.1. Globally bound middleware 2.2. Module bound middleware3.Guards4. Interceptor(컨트롤러 앞단) 4.1. Golbal interceptor 4.2 Controller interceptor 4.3 Route interceptor5. Pipes 📌 오늘 공부할 내용6. Controller(method handler)7. Service(존재한다면)8. Interceptor(컨트롤러 뒷단) 8.1. Route interceptor 8.2 Controller interc..
[NestJS] Exception
2024. 11. 28. 22:00
NestJS
🛠️NestJS의 lifecycle 요청이 왔을 때 NestJS에서의 lifecycle을 보면 다음과 같다. 1. Requset2. Middleware 2.1. Globally bound middleware 2.2. Module bound middleware3.Guards4. Interceptor(컨트롤러 앞단) 4.1. Golbal interceptor 4.2 Controller interceptor 4.3 Route interceptor5. Pipes6. Controller(method handler)7. Service(존재한다면)8. Interceptor(컨트롤러 뒷단) 8.1. Route interceptor 8.2 Controller interceptor 8.3 G..
[Spring] Filter vs. Interceptor
2024. 11. 27. 11:48
Spring
개발을 하다 보면 공통적으로 처리해야 할 업무들이 많다.공통 업무에 관련된 코드를 페이지마다 작성한다면 비효율적일 것이다.이에 Spring은 공통적으로 여러 작업을 처리할 수 있는 다음과 같은 기능들을 지원하고 있다.1. Filter(필터)2. Interceptor(인터셉터)3. AOP(Aspect Oriented Programming, 관점 지향 프로그래밍) 이제 필터(Filter)와 인터셉터(Interceptor)가 무엇인지 그리고 차이점에 대해서도 알아보자.또한, 간략하게 인터셉터(Interceptor)와 AOP에 대해서도 비교해보자. Filter 요청과 응답을 거른 후 정제- Dispatcher Servlet에 요청이 전달되기 전/ 후에 url 패턴에 맞는 모든 요청에 대해 부가 작업을 처리..
[Spring] Spring에서의 요청처리 흐름(+Spring Security/MVC의 에러 처리 위치)
2024. 11. 26. 16:46
Spring
에러 커스텀 리팩토링 작업을 하다가Spring Security의 요청 처리 단계는 MVC 요청 처리 흐름보다 앞서 있다는 사실을 알았고,이런 처리를 명확하게 하기 위해서는요청 처리 흐름에 대해 조금 더 자세히 정리해 둬야 겠다는 생각이 들었다. 먼저 Spring Framework의 간략한 요청 흐름은 다음과 같다.🐣요청 흐름클라이언트 → Filter: 요청 가공, 인증 토큰 확인 등.→ DispatcherServlet: 요청 라우팅 중심.→ Interceptor (preHandle): 컨트롤러 실행 전 공통 작업.→ Handler (Controller): 요청 처리.→ Interceptor (postHandle): 컨트롤러 실행 후 응답 수정 가능.→ View: 응답 렌더링.→ Interceptor..
[Spring Security] 401, 403 에러처리(Spring 3.xx)
2024. 11. 26. 15:01
Spring
🐣문제상황 스프링 프로젝트에서에러를 커스텀하다가 401, 403에러는 커스텀한대로 나오지 않는 것을 발견했다. 난 요기에 넣어서 나오게 하고싶었고, 다른 에러는 요런식으로 잘 나오는데 그치만 401 에러는 이렇게만 나왔다 🐣원인Spring Security에서 발생하는 예외는 Spring MVC의 기본 예외 처리와 별도로 처리하기 때문!401 Unauthorized 응답은 기본적으로 Spring Security의 AuthenticationEntryPoint에서 처리된다.이 처리 방식은@RestControllerAdvice, @ExceptionHandler를 통해 설정해줬던 Spring MVC의 예외 처리 흐름과 다르다!! Spring Security의 요청 처리 단계는 MVC 요청 처리 ..
[NestJS] Middleware
2024. 11. 21. 17:14
NestJS
🛠️NestJS의 lifecycle 요청이 왔을 때 NestJS에서의 lifecycle을 보면 다음과 같다. 1. Requset2. Middleware 📌 오늘 공부할 내용 2.1. Globally bound middleware 2.2. Module bound middleware3.Guards4. Interceptor(컨트롤러 앞단) 4.1. Golbal interceptor 4.2 Controller interceptor 4.3 Route interceptor5. Pipes6. Controller(method handler)7. Service(존재한다면)8. Interceptor(컨트롤러 뒷단) 8.1. Route interceptor 8.2 Controller interc..
[NestJS] Provider, Module
2024. 11. 20. 15:14
NestJS
🐣Provider의 개념Provider는 NestJS에서 주입 가능한(Injectable) 객체를 말한다.간단히 말해, 특정 값을 반환하거나 기능을 제공하는 객체이다.🐥ex) 서비스 클래스, 팩토리 함수, 또는 값 자체 장점의존성 관리비즈니스 로직 캡슐화유연성 제공 사용법Provider는 NestJS의 Module에서 등록된다. 등록된 Provider는 NestJS의 DI 컨테이너에 의해 관리된다. import { Injectable } from '@nestjs/common';@Injectable()export class AppService { getHello(): string { return 'Hello World!'; }} AppService 클래스는 Provider로 동작하며, @..
[NestJS] Controller
2024. 11. 20. 11:57
NestJS
🛠️NestJS의 lifecycle 요청이 왔을 때 NestJS에서의 lifecycle을 보면 다음과 같다. 1. Requset2. Middleware 2.1. Globally bound middleware 2.2. Module bound middleware3.Guards4. Interceptor(컨트롤러 앞단) 4.1. Golbal interceptor 4.2 Controller interceptor 4.3 Route interceptor5. Pipes6. Controller(method handler)📌 오늘 공부할 내용7. Service(존재한다면)8. Interceptor(컨트롤러 뒷단) 8.1. Route interceptor 8.2 Controller interce..
[Express] 라우터 분리, 모듈화
2024. 11. 14. 21:20
NestJS
라우트 가 많아지면 관리가 힘들다.express.Router()를 사용하면 여러 라우트를 독립적인 모듈로 작성하여 파일 단위로 관리할 수 있다.이를 통해 코드의 재사용성과 가독성이 향상된다. Router와 app의 차이점🐥app 객체Express 애플리케이션 전체를 나타낸다. 서버를 생성하고 설정하는 데 사용되며, app.use() 메소드를 통해 미들웨어나 라우트를 등록한다.🐥Router 객체독립적인 라우트 모듈을 생성한다. 이 객체를 사용해 특정 라우트 그룹을 만들고, 최종적으로 app.use()로 Express 애플리케이션에 등록한다. Router 사용 방식Router 객체를 사용하면 라우트를 모듈화할 수 있다.이를 통해 관련된 라우트들을 하나의 파일에 모아 두고, 나중에 app.use..