@nestjs
'@nestjs/core 패키지는 Nest.js 애플리케이션의 핵심 기능을 제공하는 Nest.js 프레임워크의 핵심 모듈 중 하나입니다. 이 패키지는 Nest.js 애플리케이션의 기본적인 구조와 런타임 동작을 정의하며 다음과 같은 주요 기능을 포함합니다:
Dependency Injection (의존성 주입): @nestjs/core는 Nest.js의 주요 기능 중 하나인 의존성 주입(Dependency Injection) 패턴을 구현합니다. 이를 통해 클래스 및 서비스 간의 의존성을 쉽게 관리하고 컴포넌트의 느슨한 결합(Loose Coupling)을 촉진합니다.
HTTP 서버 관리: Nest.js는 HTTP 서버를 생성하고 관리하는 데 사용되는 클래스와 모듈을 제공합니다. 이를 통해 Express.js 또는 Fastify와 같은 웹 프레임워크와 통합하여 HTTP 요청 및 응답을 처리할 수 있습니다.
Middleware 및 가드: HTTP 미들웨어 및 가드를 사용하여 요청 처리 과정을 중간에 수정하고 제어할 수 있습니다.
루트 모듈 및 애플리케이션 부트스트래핑: Nest.js 애플리케이션의 진입점 및 루트 모듈을 정의하고 애플리케이션을 부트스트랩하는 기능을 제공합니다.
데코레이터와 메타데이터: Nest.js에서 사용되는 데코레이터 및 메타데이터를 처리하고 분석하는 데 필요한 클래스 및 함수를 포함합니다.
@nestjs/core 패키지는 Nest.js 애플리케이션을 만들고 구동하는 데 필수적인 핵심 요소를 제공합니다. Nest.js 애플리케이션을 개발할 때 이 패키지는 주요 의존성 중 하나이며, 다른 패키지 및 모듈과 함께 사용
nest.js에서는 database 연결을 어디에서 하니
Nest.js 애플리케이션에서 데이터베이스 연결을 어디에서 하는지에 대한 접근 방식은 애플리케이션의 구조 및 개발자의 선호에 따라 다를 수 있습니다. 그러나 일반적으로 데이터베이스 연결을 다음 두 가지 주요 방법 중 하나를 사용하여 설정합니다:
1. 모듈을 사용한 데이터베이스 연결:
Nest.js에서는 데이터베이스 연결을 설정하기 위해 모듈을 사용하는 것이 일반적입니다. 데이터베이스 모듈을 생성하고 해당 모듈에서 데이터베이스 연결을 설정하며 필요한 서비스 및 리포지토리를 내보냅니다. 이 모듈은 애플리케이션의 다른 모듈에서 가져와 사용됩니다.
typescript
// database.module.ts
import { Module } from '@nestjs/common';
import { TypeOrmModule } from '@nestjs/typeorm';
import { UserEntity } from './user.entity';
@Module({
imports: [TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'user',
password: 'password',
database: 'mydb',
entities: [UserEntity],
synchronize: true,
})],
exports: [TypeOrmModule],
})
export class DatabaseModule {}
이 모듈은 TypeORM을 사용한 데이터베이스 연결 설정의 예입니다.
2. 애플리케이션의 진입점에서 데이터베이스 연결:
Nest.js 애플리케이션의 진입점 파일(main.ts 또는 app.module.ts)에서 데이터베이스 연결을 직접 설정할 수도 있습니다. 이 방식은 간단한 애플리케이션에서 사용될 수 있습니다.
typescript
import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { TypeOrmModule } from '@nestjs/typeorm';
async function bootstrap() {
const app = await NestFactory.create(AppModule);
await TypeOrmModule.forRoot({
type: 'mysql',
host: 'localhost',
port: 3306,
username: 'user',
password: 'password',
database: 'mydb',
synchronize: true,
});
await app.listen(3000);
}
bootstrap();
이 방식은 단순한 애플리케이션에서 사용할 수 있지만, 모듈을 사용하는 방식이 애플리케이션의 구조와 유지 관리를 더 쉽게 만들어줍니다.
일반적으로 Nest.js에서는 모듈을 사용하여 데이터베이스 연결을 설정하고 데이터베이스와 상호 작용을 위한 서비스 및 리포지토리를 만듭니다. 데이터베이스 모듈을 만들어서 애플리케이션의 다양한 모듈에서 재사용할 수 있도록 하는 것이 일반적입니다.
'Wecode -기업협업 인턴 (부트캠프) > 기업협업 독학, 공부' 카테고리의 다른 글
docker compose up으로 다운로드 한 postgresql은 postgresql 문법, 명령어가 같니 ** (0) | 2023.11.01 |
---|---|
typescript에서 entities 가 뭐니/interface ** (0) | 2023.11.01 |
TypeScript 클래스: constructor(private server) {/ 로깅(Logger) ** (0) | 2023.11.01 |
this. 문법 알려줘. 이거는 javascript야 ** (0) | 2023.11.01 |
ORM,entity, repository ** (0) | 2023.11.01 |