[๐ŸงฉNestjs] Providers ์ด๋ž€,

Aprilยท2022๋…„ 10์›” 22์ผ
0

๐ŸงฉNestJs

๋ชฉ๋ก ๋ณด๊ธฐ
4/6

1. Providers ์ด๋ž€

์ปจํŠธ๋กค๋Ÿฌ ์•ˆ์—์„œ ์„œ๋น„์Šค, ๋ ˆํฌ์ง€ํ† ๋ฆฌ, ํŒฉํ† ๋ฆฌ, ํ—ฌํผ ๋“ฑ์˜ ๋ชจ๋“  Providers๋ฅผ ์ทจ๊ธ‰ํ•  ์ˆ˜ ์—†๊ธฐ์— ๊ฐ๊ฐ ์ƒ์„ฑํ•˜๊ณ  ์ปจํŠธ๋กค๋Ÿฌ์— ์ฃผ์ž…ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฐœ๋…

  • Providers๋Š” Nest์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์ด๋‹ค
  • ๋Œ€๋ถ€๋ถ„์˜ Nest ํด๋ž˜์Šค๋Š” ์„œ๋น„์Šค, ๋ ˆํฌ์ง€ํ† ๋ฆฌ, ํŒฉํ† ๋ฆฌ, ํ—ฌํผ ๋“ฑ Providers๋กœ ์ทจ๊ธ‰๋  ์ˆ˜ ์žˆ๋‹ค
  • Providers์˜ ์ฃผ์š” ์•„์ด๋””์–ด๋Š” ์ข…์†์„ฑ์œผ๋กœ ์ฃผ์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค
    • ์ฆ‰, ๊ฐ์ฒด๋Š” ์„œ๋กœ ๋‹ค์–‘ํ•œ ๊ด€๊ณ„๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฉฐ,
    • ๊ฐ์ฒด์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋Œ€๋ถ€๋ถ„ Nest ๋Ÿฐํƒ€์ž„ ์‹œ์Šคํ…œ์— ์œ„์ž„๋  ์ˆ˜ ์žˆ๋‹ค

Service ๋ž€?

  • ์„œ๋น„์Šค๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ๋‚ด์˜ ๊ณตํ†ต ๊ฐœ๋…์ด๋ฉฐ, NestJs, Javascript์—์„œ๋งŒ ์“ฐ์ด๋Š” ๊ฐœ๋…์€ ์•„๋‹ˆ๋‹ค.
  • @Injectable ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ๊ฐ์‹ธ์ ธ์„œ ๋ชจ๋“ˆ์— ์ œ๊ณต๋˜๋ฉฐ,
    • ์ด ์„œ๋น„์Šค ์ธ์Šคํ„ด์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด์—์„œ ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ๋‹ค.
  • ์„œ๋น„์Šค๋Š” ์ปจํŠธ๋กค๋Ÿฌ์—์„œ
    • ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ์„ฑ ์ฒดํฌ๋ฅผ ํ•˜๊ฑฐ๋‚˜
    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•„์ดํ…œ์„ ์ƒ์„ฑํ•˜๋Š” ๋“ฑ์˜ ์ž‘์—…์„ ํ•˜๋Š” ๋ถ€๋ถ„์„ ์ฒ˜๋ฆฌํ•œ๋‹ค


Service๋ฅผ Controller์—์„œ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•( Dependency Injection)

Contoller์—์„œ

  • this.appService.getHello(); ์ด๋Ÿฐ์‹์œผ๋กœ Service์— ์ •์˜ํ•ด๋†“์€ ๋ฉ”์†Œ๋“œ๋ฅผ
    Controller์—์„œ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•œ๋‹ค

  • BoardsService๋ฅผ Contructor ํด๋ž˜์Šค์—์„œ ๊ฐ€์ ธ์˜ค๊ณ (Injected)
    • ๊ทธ ํ›„ Private ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉ

2. Providers ๋“ฑ๋กํ•˜๊ธฐ

  • Nest์— ๋“ฑ๋กํ•ด์•ผ Provider๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์žˆ๋Š”๋ฐ
  • ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” module ํŒŒ์ผ > providersํ•ญ๋ชฉ ์•ˆ์—
    ํ•ด๋‹น ๋ชจ๋“ˆ์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” Provider๋ฅผ ์ถ”๊ฐ€ํ•œ๋‹ค



profile
๐Ÿš€ ๋‚ด๊ฐ€ ๋ณด๋ ค๊ณ  ์“ฐ๋Š” ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

0๊ฐœ์˜ ๋Œ“๊ธ€