| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 자바스크립트
- nest.js
- next.js
- 트러블슈팅
- mysql
- 생각로그
- js
- Grafana
- array
- 알고리즘
- 생각일기
- mongo
- 기록
- 생각정리
- javascript
- 코테
- CS
- typescript
- Java
- 회고
- 피드백
- WIL
- react
- MongoDB
- 네트워크
- 리눅스
- mongoose
- til
- 주간회고
- Git
- Today
- Total
목록전체 글 (299)
코딩일상
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는 다음 작업을 수행할 수 있습니다:요청/응답 객체에 접근 및 수정요청-응답 사이클 종료..
1. Module 기본 개념Module은 @Module() 데코레이터로 정의된 클래스입니다.NestJS가 애플리케이션 구조를 효율적으로 조직화하고 관리하는 데 사용하는 메타데이터를 제공모든 NestJS 애플리케이션은 최소한 하나의 root module을 가지며, 이것이 Nest가 application graph를 구축하는 시작점이 됩니다. 이 그래프는 Nest가 모듈과 프로바이더 간의 관계와 의존성을 해결하는 내부 구조입니다.@Module() 데코레이터 속성providersNest injector에 의해 인스턴스화되고 최소한 이 모듈 내에서 공유될 수 있는 프로바이더들controllers이 모듈에서 정의되고 인스턴스화되어야 하는 컨트롤러 세트imports이 모듈에서 필요한 프로바이더를 export하는 다..
1)Constructor-based Injection (기본, 권장)으로 하는게 나은경우// cats.service.ts@Injectable()export class CatsService { constructor( private readonly catsRepository: CatsRepository, private readonly logger: LoggerService, ) {} async findAll(): Promise { this.logger.log('Finding all cats'); return this.catsRepository.findAll(); }}// cats.controller.ts@Controller('cats')export class CatsControl..
Documentation | NestJS - A progressive Node.js frameworkNest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Readocs.nestjs.com1. Providers 1.1 Provider란?NestJS의 핵심 개념으로, 의존성으로 주입될 수 있는 클래스Services,..
1. 싱글톤(Singleton)이란?비유: 회사의 프린터회사에 프린터가 1대 있음 (싱글톤)├─ 직원 A가 사용├─ 직원 B가 사용 ├─ 직원 C가 사용└─ 모두 같은 1대의 프린터 사용Nest.js 컨트롤러도 마찬가지:@Controller('cats')export class CatsController { private count = 0; // 이 변수는 모든 요청이 공유 @Get() findAll() { this.count++; // 요청마다 증가 return `Total requests: ${this.count}`; }}```**실행 결과:**```첫 번째 요청: "Total requests: 1"두 번째 요청: "Total requests: 2"세 번째 요청: "Total req..
공부 계기:이직을 하게 되면서 nest.js를 메인 프레임워크로 사용하게 되었다.기존 spring의 구조와 뭐가 다른지와 비슷하다면 어떻게 다루어지는지를 배우고 싶어 공부 및 정리기록을 남기기로 하였다. 해당글 작성하면서 느낀 점:이미 다 알고 있다고 생각한 기능 정의들을 다시 한번 공식문서들을 보며 정리하다 보니개념정리들 또한 다시 한번 하게 되었고, 역시나 시작은 공식문서를 한번 훑어 보고 시작하는 게,더 큰 성장의 스텝을 위한 발판임을 다시 한번 느꼈다. Documentation | NestJS - A progressive Node.js frameworkNest is a framework for building efficient, scalable Node.js server-side applica..
Next.js Dynamic Import 완벽 가이드목차Dynamic Import란?왜 사용하는가?ssr: false의 의미loading의 역할실전 예시Dynamic Import란?코드 분석const NaverMap = dynamic(() => import("@/components/map/NaverMap"), { ssr: false, loading: () => ,});한 줄 요약: "필요할 때만 가져오기"쉬운 비유일반 import (정적 import):여행 갈 때 모든 짐을 다 들고 출발├─ 수영복 (바다 안 가도 챙김)├─ 등산화 (산 안 가도 챙김) ├─ 스키복 (겨울 아닌데도 챙김)└─ 가방 무거움! 😫→ 처음부터 다 가져가니까 느림dynamic import (동적 import):필요한 것만..
