본문 바로가기
반응형

분류 전체보기166

[NestJS] 6장: 데이터베이스 연동 (with TypeORM) 6장: 데이터베이스 연동 (with TypeORM)대부분의 웹 애플리케이션은 데이터를 영구적으로 저장하기 위해 데이터베이스를 사용합니다. NestJS에서 가장 널리 사용되는 ORM(Object-Relational Mapping) 라이브러리인 TypeORM을 사용하여 데이터베이스와 상호작용하는 방법을 배웁니다.1. 핵심 개념ORM (Object-Relational Mapping):객체 지향 프로그래밍 언어(TypeScript/JavaScript)의 객체(Object)와 관계형 데이터베이스(Relational Database)의 테이블을 자동으로 매핑(연결)해주는 기술입니다.복잡한 SQL 쿼리를 직접 작성하는 대신, user.save(), userRepository.find() 와 같은 객체 지향적인 코드로.. 2025. 9. 19.
[NestJS] 5장: 미들웨어, 파이프, 가드 - 요청 처리의 수문장들 5장: 미들웨어, 파이프, 가드 - 요청 처리의 수문장들NestJS는 Express의 미들웨어 개념을 포함하면서, 파이프(Pipe), 가드(Guard)라는 추가적인 요청 처리 메커니즘을 제공합니다. 이들은 각각의 명확한 역할을 가지고 컨트롤러에 도달하기 전 요청을 처리하는 수문장 역할을 합니다.1. 핵심 개념미들웨어 (Middleware):Express의 미들웨어와 거의 동일합니다. 라우트 핸들러가 실행되기 전에 호출되는 함수입니다.주로 요청/응답 객체를 조작하거나, 로깅, 서드파티 라이브러리(예: helmet, cors) 연동 등 라우트 핸들러와 직접적인 관련이 적은 횡단 관심사(cross-cutting concerns)를 처리하는 데 사용됩니다.@Injectable() 클래스로 구현하거나 간단한 함수.. 2025. 9. 19.
[NestJS] 4장: 모듈 - 코드의 체계적인 정리와 캡슐화 4장: 모듈 - 코드의 체계적인 정리와 캡슐화모듈(Module)은 NestJS 애플리케이션의 아키텍처를 구성하는 기본 단위입니다. 관련된 기능(컨트롤러, 프로바이더 등)들을 하나의 모듈로 묶어 코드를 체계적으로 관리하고, 애플리케이션의 구조를 명확하게 만듭니다.1. 핵심 개념모듈 (@Module): @Module() 데코레이터가 붙은 클래스입니다. 이 데코레이터는 NestJS가 애플리케이션 구조를 구성하는 데 사용하는 메타데이터를 제공하는 객체를 인자로 받습니다.@Module 데코레이터의 주요 속성:providers: 이 모듈 내에서 사용될 프로바이더(서비스 등)의 배열입니다. 여기에 등록된 프로바이더는 NestJS의 DI 컨테이너에 의해 인스턴스화되고, 이 모듈 내의 다른 구성 요소에 주입될 수 있습니.. 2025. 9. 19.
[NestJS] 3장: 프로바이더와 의존성 주입 - 로직의 분리와 재사용 3장: 프로바이더와 의존성 주입 - 로직의 분리와 재사용프로바이더(Provider)는 NestJS의 가장 기본적인 구성 요소 중 하나입니다. 서비스, 리포지토리, 팩토리 등 다양한 역할을 할 수 있으며, 컨트롤러의 부담을 덜어주고 비즈니스 로직을 캡슐화합니다. NestJS의 핵심 디자인 패턴인 의존성 주입(DI)이 프로바이더를 통해 어떻게 이루어지는지 배웁니다.1. 핵심 개념프로바이더 (Provider):@Injectable() 데코레이터가 붙은 클래스를 의미합니다. @Injectable()은 NestJS의 DI 컨테이너가 이 클래스를 관리할 수 있는 대상으로 표시합니다.서비스(Service)가 가장 일반적인 프로바이더의 예시입니다. 서비스는 컨트롤러가 직접 처리하기 복잡한 비즈니스 로직(데이터 처리, .. 2025. 9. 18.
[NestJS] 2장: 컨트롤러와 라우팅 - 요청을 받아들이는 관문 2장: 컨트롤러와 라우팅 - 요청을 받아들이는 관문컨트롤러(Controller)는 클라이언트의 HTTP 요청을 받아 처리하는 첫 번째 관문입니다. NestJS에서 데코레이터(Decorator)를 사용하여 어떻게 라우팅을 정의하고, 요청 데이터를 추출하는지 배웁니다.1. 핵심 개념컨트롤러 (@Controller): 클래스에 @Controller() 데코레이터를 붙여 컨트롤러임을 선언합니다. @Controller('users')와 같이 인자를 주면, 해당 컨트롤러 내의 모든 라우트는 /users 라는 경로 접두사(prefix)를 갖게 됩니다.라우트 핸들러 데코레이터: 컨트롤러 클래스 내의 메소드에 붙여, 특정 HTTP 메소드와 경로에 대한 핸들러임을 나타냅니다.@Get(): GET 요청@Post(): POS.. 2025. 9. 18.
[NestJS] 1장: NestJS 소개 및 개발 환경 설정 1장: NestJS 소개 및 개발 환경 설정효율적이고 확장 가능한 서버 사이드 애플리케이션을 구축하기 위한 프레임워크, NestJS의 세계에 오신 것을 환영합니다. NestJS가 어떤 철학을 가지고 있으며, Express.js와 어떻게 다른지, 그리고 첫 프로젝트를 어떻게 시작하는지 배웁니다.1. 핵심 개념NestJS란?: Node.js 서버 애플리케이션을 구축하기 위한 프로그레시브(Progressive) 프레임워크입니다. 내부적으로는 Express(또는 Fastify)를 기반으로 동작하지만, 그 위에 강력한 아키텍처 패턴을 제공합니다.주요 철학 및 특징:TypeScript 기반: 모든 코드를 TypeScript로 작성하여 코드의 안정성과 유지보수성을 극대화합니다.아키텍처: Angular에서 영감을 받은.. 2025. 9. 18.
반응형