| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | ||||
| 4 | 5 | 6 | 7 | 8 | 9 | 10 |
| 11 | 12 | 13 | 14 | 15 | 16 | 17 |
| 18 | 19 | 20 | 21 | 22 | 23 | 24 |
| 25 | 26 | 27 | 28 | 29 | 30 | 31 |
- til
- MongoDB
- Java
- 피드백
- js
- Git
- 코테
- 생각로그
- next.js
- 생각일기
- nest.js
- WIL
- javascript
- 기록
- 네트워크
- 리눅스
- mongoose
- array
- typescript
- Grafana
- 생각정리
- 자바스크립트
- 트러블슈팅
- 회고
- mongo
- 알고리즘
- 주간회고
- mysql
- react
- CS
- Today
- Total
목록분류 전체보기 (305)
코딩일상
템플릿 메서드 패턴 한 줄 정의 Template Method Pattern이란알고리즘의 전체 흐름(뼈대) 은 상위 클래스에서 정의하고,그중 일부 단계만 하위 클래스에서 구현하도록 하여알고리즘 구조는 고정하면서, 세부 동작만 확장하는 패턴이다. 템플릿 메서드 패턴이 필요한 이유 (문제 상황)class CardPayment { public void process() { validate(); pay(); notifyUser(); } } class BankPayment { public void process() { validate(); pay(); notifyUser(); } }결제 방식만 다르고결제..
안녕하세요 개발자 Alex입니다.오늘은 오브젝트 서적을 읽다가 나왔던 디자인 패턴중 하나인 Template Pattern를 정리 해보고자합니다.그리고 이와 더불어 Template Pattern 과 자칫 헷갈릴수있는 Strategy Pattern 도 같이 묶어서 정리해보고자합니다.그럼 시작해보겠습니다. 우선 한줄 요약으로 이 2가지 패턴을 소개하자면 아래와같습니다.Template Method Pattern: "알고리즘의 뼈대는 고정, 일부 단계만 상속으로 변경"Strategy Pattern: "알고리즘 자체를 통째로 교체, 합성(위임) 으로 변경"*GoF(Design Patterns, 1994) 정의 기반 1.TemplateMethodPattern늘 그렇듯 정의로 만 하면 역시 잘 와닿지않으므로 코드로..
NestJS @Module 완벽 가이드NestJS에서 가장 헷갈리기 쉬운 @Module 데코레이터를 쉽게 이해해봅시다!목차@Module이란?ES6 import vs @Module imports@Module 속성 비교회사 비유로 완벽 이해실전 예제자주 하는 실수@Module이란?@Module은 NestJS 애플리케이션을 구조화하는 핵심 단위입니다.관련된 기능들(컨트롤러, 서비스 등)을 하나의 모듈로 묶어서 관리합니다.@Module({ imports: [], // 다른 모듈 가져오기 controllers: [], // HTTP 요청 처리 providers: [], // 서비스/로직 등록 exports: [], // 외부에 공개})export class CoffeesModule..
Incoming requestMiddleware2.1. Globally bound middleware2.2. Module bound middlewareGuards3.1 Global guards3.2 Controller guards3.3 Route guardsInterceptors (pre-controller)4.1 Global interceptors4.2 Controller interceptors4.3 Route interceptorsPipes5.1 Global pipes5.2 Controller pipes5.3 Route pipes5.4 Route parameter pipesController (method handler)Service (if exists)Interceptors (post-request..
NestJS의 인터셉터는 요청(Request)과 응답(Response)의 흐름 사이에서 로직을 가로채고 변형할 수 있는 아주 강력한 도구입니다. AOP(관점 지향 프로그래밍) 기술을 기반으로 하며, 애플리케이션 전반에 걸쳐 공통된 로직을 깔끔하게 처리할 수 있게 해줍니다.1. 인터셉터의 핵심 역할 인터셉터는 단순히 흐름을 끊는 것이 아니라 다음과 같은 다양한 역할을 수행합니다:함수 실행 전/후 로직 추가: 로깅(Logging)이나 시간 측정 등에 활용됩니다.결과 변환 (Response Mapping): 컨트롤러가 반환한 데이터를 가공하여 일관된 형식으로 클라이언트에게 전달합니다. (예: { data: 결과값 })예외 변환 (Exception Mapping): 발생한 에러를 가로채서 특정 예외(Except..
1. Pipes의 정의와 역할Pipes는 @Injectable() 데코레이터가 붙은 클래스로, PipeTransform 인터페이스를 구현합니다. 컨트롤러 라우트 핸들러가 실행되기 전에 메서드의 인자를 가로채서 처리하는 역할을 합니다.두 가지 주요 사용 사례:Transformation(변환): 입력 데이터를 원하는 형태로 변환 (예: string → integer)Validation(검증): 입력 데이터 검증 후 통과 또는 예외 발생중요한 특징:Pipes는 예외 처리 영역(exceptions zone) 내에서 실행됩니다Pipe에서 예외가 발생하면 전역 예외 필터나 해당 컨텍스트의 예외 필터가 처리합니다Pipe에서 예외가 발생하면 컨트롤러 메서드는 실행되지 않습니다외부 소스에서 들어오는 데이터를 시스템 경계..
1. Exception Layer 1.1 Built-in Exception LayerNestJS는 내장 예외 레이어를 제공하여 애플리케이션 전체에서 처리되지 않은 모든 예외를 자동으로 처리합니다.동작 방식:애플리케이션 코드에서 처리되지 않은 예외 발생Built-in global exception filter가 자동으로 캐치적절한 사용자 친화적 응답 자동 전송1.2 기본 동작// HttpException 또는 그 서브클래스: 자동으로 적절한 응답 생성// Unrecognized Exception (HttpException이 아닌 경우):{ "statusCode": 500, "message": "Internal server error"} 중요 포인트:http-errors 라이브러리를 부분적으로 지원sta..
1. @nestjs/common - 핵심 라이브러리1.1 주요 카테고리별 분류표카테고리항목용도Decorators - Class@Module, @Controller, @Injectable, @Catch클래스 정의Decorators - Method@Get, @Post, @Put, @Delete, @Patch, @Options, @Head, @AllHTTP 메서드Decorators - Parameter@Body, @Query, @Param, @Headers, @Req, @Res, @Next, @Session, @Ip, @HostParam요청 데이터 추출Decorators - Metadata@SetMetadata, @UseGuards, @UseInterceptors, @UsePipes, @UseFilters메타..
해당 포스팅 작성이유:Middleware를 공부 하면서 헷갈리는 개념이 존재하였다어떻게 대략적으로 보게되면 Middleware vs Guards vs Interceptors 같은거 아닌가 싶기도하고 서로의 영역을 침범하는것 같기도 언제 어느쪽에 쓰는게 맞는것인지 이론상으로 헷갈리기도 하였다. 이 의문점과 나의 헷갈림을 제대로 구분해서 사용하기 위해서 기록을 남긴다.1. 핵심 철학의 차이⭐️⭐️⭐️1.1 설계 원칙 (Design Philosophy)Middleware의 철학: "HTTP 레벨에서 작동"- Express/Fastify의 request/response 객체를 직접 다룸- NestJS의 추상화 레이어 "이전" 단계Guards의 철학: "접근 제어 (Access Control)"- "이 요청이 핸..
1. Middleware의 본질Middleware는 요청-응답 사이클에서 라우트 핸들러가 실행되기 전에 호출되는 함수입니다. Express의 middleware와 동일한 개념이며, NestJS는 Express 위에 구축되어 있어 Express middleware를 그대로 사용할 수 있습니다.공항 보안 검색대를 생각해보세요:승객(Request) → 보안검색(Middleware 1) → 세관검사(Middleware 2) → 탑승구(Controller) ↓ ↓ 위험물 차단 서류 확인각 middleware는 다음 작업을 수행할 수 있습니다:요청/응답 객체에 접근 및 수정요청-응답 사이클 종료..
