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 });

get()

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…์ŠคํŠธ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ปจํŠธ๋กค๋Ÿฌ ๋˜๋Š” ์ œ๊ณต์ž (๊ฐ€๋“œ, ํ•„ํ„ฐ ๋“ฑ ํฌํ•จ)์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

select()

์˜ˆ๋ฅผ ๋“ค์–ด, ๋ชจ๋“ˆ ๊ทธ๋ž˜ํ”„๋ฅผ ํƒ์ƒ‰ํ•˜์—ฌ ์„ ํƒํ•œ ๋ชจ๋“ˆ์—์„œ ํŠน์ • ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค (์—„๊ฒฉํ•œ ๋ชจ๋“œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ).

info ํžŒํŠธ ์—„๊ฒฉํ•˜์ง€ ์•Š์€ ๋ชจ๋“œ์—์„œ๋Š” ๋ฃจํŠธ ๋ชจ๋“ˆ์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“ˆ์„ ์„ ํƒํ•˜๋ ค๋ฉด ์ „์ฒด ๋ชจ๋“ˆ ํŠธ๋ฆฌ๋ฅผ ๋‹จ๊ณ„๋ณ„๋กœ ์ˆ˜ํ–‰ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.

Last updated

Was this helpful?