Application context

Application context

Nest μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§ˆμš΄νŠΈν•˜λŠ” λ°©λ²•μ—λŠ” μ—¬λŸ¬ 가지가 μžˆμŠ΅λ‹ˆλ‹€. μ›Ήμ•±, 마이크둜 μ„œλΉ„μŠ€ λ˜λŠ” Nest μ‘μš© ν”„λ‘œκ·Έλž¨ μ»¨ν…μŠ€νŠΈλ₯Ό λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€. Nest μ»¨ν…μŠ€νŠΈλŠ” λͺ¨λ“  μΈμŠ€ν„΄μŠ€ν™” 된 클래슀λ₯Ό λ³΄μœ ν•˜λŠ” Nest μ»¨ν…Œμ΄λ„ˆ μ£Όμœ„μ˜ λž˜νΌμž…λ‹ˆλ‹€. μ‘μš© ν”„λ‘œκ·Έλž¨ 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ κ°€μ Έμ˜¨ λͺ¨λ“ˆ λ‚΄μ—μ„œ κΈ°μ‘΄ μΈμŠ€ν„΄μŠ€λ₯Ό 직접 κ°€μ Έμ˜¬ 수 μžˆμŠ΅λ‹ˆλ‹€. λ”°λΌμ„œ CRON μž‘μ—…μ„ ν¬ν•¨ν•˜μ—¬ μ–΄λ””μ„œλ‚˜ Nest ν”„λ ˆμž„ μ›Œν¬λ₯Ό ν™œμš©ν•  수 있으며 κ·Έ μœ„μ— CLIλ₯Ό ꡬ좕할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.

Getting started

Nest μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ»¨ν…μŠ€νŠΈλ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄ λ‹€μŒ ꡬ문을 μ‚¬μš©ν•©λ‹ˆλ‹€.

@@filename()
async function bootstrap() {
  const app = await NestFactory.createApplicationContext(ApplicationModule);
  // application logic...
}
bootstrap();

이후 Nestλ₯Ό μ‚¬μš©ν•˜λ©΄ Nest μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ— λ“±λ‘λœ λͺ¨λ“  μΈμŠ€ν„΄μŠ€λ₯Ό 선택할 수 μžˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬κ°€ TasksModule에 TasksServiceλ₯Ό 가지고 μžˆλ‹€κ³  상상해 λ΄…μ‹œλ‹€. 이 ν΄λž˜μŠ€λŠ” CRON μž‘μ—… λ‚΄μ—μ„œ ν˜ΈμΆœν•˜λ €λŠ” μ‚¬μš© κ°€λŠ₯ν•œ λ©”μ†Œλ“œ μ„ΈνŠΈλ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.

@@filename()
const app = await NestFactory.create(ApplicationModule);
const tasksService = app.get(TasksService);

그리고 그것이 μ „λΆ€μž…λ‹ˆλ‹€. TasksService μΈμŠ€ν„΄μŠ€λ₯Ό 작기 μœ„ν•΄μ„œλŠ” get()λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•΄μ•Ό ν–ˆμŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 전체 λͺ¨λ“ˆ 트리λ₯Ό κ±°μΉ˜μ§€ μ•Šμ•„λ„ λ˜λŠ”λ°, get()λ©”μ†Œλ“œλŠ” λ“±λ‘λœ 각 λͺ¨λ“ˆμ—μ„œ μΈμŠ€ν„΄μŠ€λ₯Ό μžλ™μœΌλ‘œ κ²€μƒ‰ν•˜λŠ” query와 같은 역할을 ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ—„κ²©ν•œ μ»¨ν…μŠ€νŠΈ 검사λ₯Ό μ„ ν˜Έν•˜λŠ” κ²½μš°μ—λŠ” 항상 get()λ©”μ†Œλ“œμ˜ 두 번째 인수둜 μ „λ‹¬ν•΄μ•Όν•˜λŠ” strict: true μ˜΅μ…˜ 객체λ₯Ό μ‚¬μš©ν•˜μ—¬ μ „ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 그런 λ‹€μŒ μ„ νƒν•œ μ»¨ν…μŠ€νŠΈμ—μ„œ νŠΉμ • μΈμŠ€ν„΄μŠ€λ₯Ό μ„ νƒν•˜λ €λ©΄ λͺ¨λ“  λͺ¨λ“ˆμ„ κ±°μ³μ•Όν•©λ‹ˆλ‹€.

@@filename()
const app = await NestFactory.create(ApplicationModule);
const tasksService = app.select(TasksModule).get(TasksService, { strict: true });

info 힌트 μ—„κ²©ν•˜μ§€ μ•Šμ€ λͺ¨λ“œμ—μ„œλŠ” 루트 λͺ¨λ“ˆμ΄ 기본적으둜 μ„ νƒλ©λ‹ˆλ‹€. λ‹€λ₯Έ λͺ¨λ“ˆμ„ μ„ νƒν•˜λ €λ©΄ 전체 λͺ¨λ“ˆ 트리λ₯Ό λ‹¨κ³„λ³„λ‘œ μˆ˜ν–‰ν•΄μ•Όν•©λ‹ˆλ‹€.

Last updated