S10L08 – ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํ”„๋กœ๋ฏธ์Šค ํ™œ์šฉ

html

JavaScript Promises ๋งˆ์Šคํ„ฐํ•˜๊ธฐ: ์ข…ํ•ฉ ๊ฐ€์ด๋“œ

๋ชฉ์ฐจ

  1. ์†Œ๊ฐœ................................................. 3
  2. JavaScript์—์„œ Promises ์ดํ•ดํ•˜๊ธฐ ..... 5
    1. Promise๋ž€ ๋ฌด์—‡์ธ๊ฐ€?.................................. 6
    2. Promise ์ƒํƒœ ......................................... 8
  3. Promises ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ ................. 10
    1. Promise ์ƒ์„ฑํ•˜๊ธฐ ................................ 11
    2. Promise ํ•ด๊ฒฐ ์ฒ˜๋ฆฌ ................ 14
    3. Promise ๊ฑฐ์ ˆ ์ฒ˜๋ฆฌ ................ 17
  4. Promises ์ฒด์ด๋‹ ....................................... 20
  5. Promises์—์„œ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ..................... 23
  6. ์‹ค์šฉ์ ์ธ ์˜ˆ์ œ ...................................... 26
    1. ๊ธฐ๋ณธ Promise ์˜ˆ์ œ .......................... 27
    2. Using .then and .catch ......................... 30
  7. ๊ฒฐ๋ก  ..................................................... 34
  8. ์ถ”๊ฐ€ ์ž๋ฃŒ ................................ 36

์†Œ๊ฐœ

ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ ๋ถ„์•ผ์—์„œ, JavaScript Promises๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ์ค‘์š”ํ•œ ๊ฐœ๋…์œผ๋กœ ๋ถ€์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฐ€์ด๋“œ๋Š” Promises์˜ ๋ณต์žก์„ฑ์„ ๊นŠ์ด ํŒŒํ—ค์ณ ๊ทธ ์ค‘์š”์„ฑ, ๊ธฐ๋Šฅ ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ํ•ด์„ํ•ฉ๋‹ˆ๋‹ค. ๋น„๋™๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ฒ˜์Œ ๋„์ „ํ•˜๋Š” ์ดˆ๋ณด์ž์ด๋“ , ๊ธฐ์ˆ ์„ ์žฌ์ •๋ฆฝํ•˜๋ ค๋Š” ์ˆ™๋ จ๋œ ๊ฐœ๋ฐœ์ž์ด๋“  ์ด ์ „์ž์ฑ…์€ JavaScript Promises์— ๋Œ€ํ•œ ์ฒด๊ณ„์ ์ธ ํƒ๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Promises์˜ ์ค‘์š”์„ฑ

๋น„๋™๊ธฐ ์ž‘์—…์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์ˆ˜์ ์ด๋ฉฐ, ๋„คํŠธ์›Œํฌ ์š”์ฒญ, ํŒŒ์ผ ์ฒ˜๋ฆฌ, ์‚ฌ์šฉ์ž ์ƒํ˜ธ์ž‘์šฉ๊ณผ ๊ฐ™์€ ์ž‘์—…์„ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. Promises๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์›ํ™œํ•˜๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ•๋ ฅํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜์—ฌ ๋” ๊น”๋”ํ•œ ์ฝ”๋“œ์™€ ํ–ฅ์ƒ๋œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฐ€์ด๋“œ์˜ ๋ชฉ์ 

์ด ์ „์ž์ฑ…์€ JavaScript Promises๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ  ์‹ค์šฉ์ ์ธ ์˜ˆ์ œ์™€ ํฌ๊ด„์ ์ธ ํ†ต์ฐฐ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋๊นŒ์ง€ ์ฝ์œผ๋ฉด Promises์— ๋Œ€ํ•œ ํ™•๊ณ ํ•œ ์ดํ•ด๋ฅผ ๊ฐ–์ถ”๊ฒŒ ๋˜์–ด ํ”„๋กœ์ ํŠธ์— ์ด๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

Promises ์‚ฌ์šฉ์˜ ์žฅ๋‹จ์ 

์žฅ์  ๋‹จ์ 
๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ๋‹จ์ˆœํ™” ๊ณผ๋„ํ•œ ์ฒด์ด๋‹์œผ๋กœ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Œ
ํ–ฅ์ƒ๋œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ Promise ๊ฑฐ์ ˆ ๊ฐ€๋Šฅ์„ฑ
์ฝ”๋“œ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ ๋น„๋™๊ธฐ ๊ฐœ๋…์— ๋Œ€ํ•œ ์ดํ•ด ํ•„์š”
๋” ๋‚˜์€ ์ œ์–ด ํ๋ฆ„ ์ด‰์ง„ ๋””๋ฒ„๊น…์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Œ

Promises๋ฅผ ์–ธ์ œ ์–ด๋””์„œ ์‚ฌ์šฉํ• ๊นŒ

Promises๋Š” API์—์„œ ๋ฐ์ดํ„ฐ ๊ฐ€์ ธ์˜ค๊ธฐ, ํŒŒ์ผ ์ฝ๊ธฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰๊ณผ ๊ฐ™์ด ์ง€์—ฐ๋œ ๊ฒฐ๊ณผ๊ฐ€ ํ•„์š”ํ•œ ์ž‘์—…์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์„ฑ๊ณต๊ณผ ์‹คํŒจ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๋ช…ํ™•ํ•œ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋ณต์žกํ•œ ๋น„๋™๊ธฐ ์›Œํฌํ”Œ๋กœ์šฐ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.


JavaScript์—์„œ Promises ์ดํ•ดํ•˜๊ธฐ

Promise๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

Promise๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์˜ ์ตœ์ข… ์™„๋ฃŒ ๋˜๋Š” ์‹คํŒจ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” JavaScript์˜ ๊ฐ์ฒด์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ „ํ†ต์ ์ธ ์ฝœ๋ฐฑ ํ•จ์ˆ˜์— ๋น„ํ•ด ๋น„๋™๊ธฐ ์ž‘์—…์„ ๋ณด๋‹ค ์šฐ์•„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.

Promise ์ƒํƒœ

Promise๋Š” ์„ธ ๊ฐ€์ง€ ์ƒํƒœ ์ค‘ ํ•˜๋‚˜์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค:

  1. Pending: ์ดˆ๊ธฐ ์ƒํƒœ, ์ดํ–‰๋˜์ง€๋„ ๊ฑฐ์ ˆ๋˜์ง€๋„ ์•Š์€ ์ƒํƒœ.
  2. Fulfilled: ์ž‘์—…์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ์ƒํƒœ.
  3. Rejected: ์ž‘์—…์ด ์‹คํŒจํ•œ ์ƒํƒœ.

์ด๋Ÿฌํ•œ ์ƒํƒœ๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์€ ํšจ๊ณผ์ ์ธ Promise ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.


Promises ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ

Promise ์ƒ์„ฑํ•˜๊ธฐ

Promise๋ฅผ ์ƒ์„ฑํ•˜๋ ค๋ฉด Promise ๊ฐ์ฒด๋ฅผ ์ƒˆ๋กœ ์ธ์Šคํ„ด์Šคํ™”ํ•˜๊ณ , resolve ๋ฐ reject ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ง„ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

์„ค๋ช…:

  • new Promise: ์ƒˆ๋กœ์šด Promise ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • resolve: ์ž‘์—…์ด ์„ฑ๊ณตํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.
  • reject: ์ž‘์—…์ด ์‹คํŒจํ–ˆ์„ ๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

Promise ํ•ด๊ฒฐ ์ฒ˜๋ฆฌ

Promise๊ฐ€ ์ดํ–‰๋˜๋ฉด .then() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•ด๊ฒฐ๋œ ๊ฐ’์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋ณ„ ์„ค๋ช…:

  1. demo.then: ์ดํ–‰ ์ƒํƒœ์— ๋Œ€ํ•œ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ฒจ๋ถ€ํ•ฉ๋‹ˆ๋‹ค.
  2. console.log(data): ํ•ด๊ฒฐ๋œ ๊ฐ’์„ ์ฝ˜์†”์— ๋กœ๊ทธํ•ฉ๋‹ˆ๋‹ค.

Promise ๊ฑฐ์ ˆ ์ฒ˜๋ฆฌ

์‹คํŒจ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋ ค๋ฉด .catch() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ๋˜๋Š” .then()์— ๋‘ ๋ฒˆ์งธ ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

.catch() ์‚ฌ์šฉ:

.then()์˜ ๋‘ ๋ฒˆ์งธ ํ•จ์ˆ˜ ์‚ฌ์šฉ:

๋ชจ๋ฒ” ์‚ฌ๋ก€: ๋” ๋‚˜์€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์™€ ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ์ผ๋ฐ˜์ ์œผ๋กœ .catch()๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.


Promises ์ฒด์ด๋‹

Promise ์ฒด์ด๋‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์ผ๋ จ์˜ ๋น„๋™๊ธฐ ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ .then()์€ ์ƒˆ๋กœ์šด Promise๋ฅผ ๋ฐ˜ํ™˜ํ•˜์—ฌ ๋‹ค์Œ .then()์ด ์ด์ „ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

์„ค๋ช…:

  1. ์ฒซ ๋ฒˆ์งธ .then(): ํ•ด๊ฒฐ๋œ ๊ฐ’์„ ๋กœ๊ทธํ•˜๊ณ  'Next Step'์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‘ ๋ฒˆ์งธ .then(): 'Next Step'์„ ๋ฐ›์•„ ๋กœ๊ทธํ•ฉ๋‹ˆ๋‹ค.
  3. .catch(): ์ฒด์ธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์˜ค๋ฅ˜๋ฅผ ์žก์Šต๋‹ˆ๋‹ค.

Promises์—์„œ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

์ ์ ˆํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ Promise ๊ฑฐ์ ˆ์„ ๋ฐฉ์ง€ํ•˜๊ณ  ์›ํ™œํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋ณด์žฅํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

.catch() ์‚ฌ์šฉํ•˜๊ธฐ

.catch() ๋ฉ”์„œ๋“œ๋Š” Promise ์ฒด์ธ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์˜ค๋ฅ˜๋ฅผ ์บก์ฒ˜ํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๋Ÿฌ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌํ•˜๊ธฐ

์—ฌ๋Ÿฌ ๋น„๋™๊ธฐ ์ž‘์—…์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ฐ ์ž‘์—…์— ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๋ณด์žฅํ•˜์—ฌ ์—ฐ์‡„์ ์ธ ์‹คํŒจ๋ฅผ ๋ฐฉ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ถŒ์žฅ ์‚ฌํ•ญ: ์˜ค๋ฅ˜๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ฒฉ๋ฆฌํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก Promise ์ฒด์ธ์„ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ตฌ์กฐํ™”ํ•˜์‹ญ์‹œ์˜ค.


์‹ค์šฉ์ ์ธ ์˜ˆ์ œ

๊ธฐ๋ณธ Promise ์˜ˆ์ œ

๋‹ค์Œ์€ Promise์˜ ์ƒ์„ฑ ๋ฐ ์‚ฌ์šฉ์„ ๋ณด์—ฌ์ฃผ๋Š” ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ์ž…๋‹ˆ๋‹ค.

์„ค๋ช…:

  • setTimeout: 1์ดˆ์˜ ์ง€์—ฐ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•ฉ๋‹ˆ๋‹ค.
  • resolve('Hello, Promise'): ์ง€์—ฐ ํ›„ Promise๋ฅผ ์ดํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • .then(): ํ•ด๊ฒฐ๋œ ๋ฉ”์‹œ์ง€๋ฅผ ๋กœ๊ทธํ•ฉ๋‹ˆ๋‹ค.
  • .catch(): ์ž ์žฌ์ ์ธ ์˜ค๋ฅ˜๋ฅผ ๋กœ๊ทธํ•ฉ๋‹ˆ๋‹ค.

Using .then and .catch

์ด ์˜ˆ์ œ๋Š” ์„ฑ๊ณต ๋ฐ ์‹คํŒจ ์‹œ๋‚˜๋ฆฌ์˜ค๋ฅผ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋‹จ๊ณ„๋ณ„ ์„ค๋ช…:

  1. ์กฐ๊ฑด ๊ฒ€์‚ฌ: Promise๋ฅผ ์ดํ–‰ํ• ์ง€ ๊ฑฐ์ ˆํ• ์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  2. .then(): ์„ฑ๊ณต์ ์œผ๋กœ ์ดํ–‰๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
  3. .catch(): Promise๊ฐ€ ๊ฑฐ์ ˆ๋˜์—ˆ์„ ๋•Œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

JavaScript Promises๋Š” ๋น„๋™๊ธฐ ์ž‘์—…์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ๋„๊ตฌ๋กœ, ์ „ํ†ต์ ์ธ ์ฝœ๋ฐฑ์— ๋น„ํ•ด ๋” ๊น”๋”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๊ตฌ์กฐ, ์ƒํƒœ ๋ฐ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ดํ•ดํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋Š” ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ์˜ค๋ฅ˜์— ๊ฐ•ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ์š”์•ฝ

  • Promises๋Š” ๋น„๋™๊ธฐ ์ฝ”๋“œ๋ฅผ ๋‹จ์ˆœํ™”: ์‹œ๊ฐ„ ์†Œ์š”๊ฐ€ ์žˆ๋Š” ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ตฌ์กฐํ™”๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ์ƒํƒœ ์ดํ•ด๋Š” ์ค‘์š”: Pending, Fulfilled, Rejected ์ƒํƒœ์˜ ์ฐจ์ด๋ฅผ ์•„๋Š” ๊ฒƒ์€ ํšจ๊ณผ์ ์ธ Promise ์ฒ˜๋ฆฌ๋ฅผ ๋•์Šต๋‹ˆ๋‹ค.
  • ์ฒด์ด๋‹์€ ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ํ–ฅ์ƒ: Promise ์ฒด์ด๋‹์€ ์ˆœ์ฐจ์ ์ธ ๋น„๋™๊ธฐ ์ž‘์—…์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜์—ฌ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • .catch()๋ฅผ ํ†ตํ•œ ๊ฐ•๋ ฅํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ: ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ๊ด€๋ฆฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํŒจ๋ฅผ ์šฐ์•„ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

Promises๋ฅผ ํ™œ์šฉํ•˜๋ฉด JavaScript ๊ฐœ๋ฐœ ๊ธฐ์ˆ ์ด ํ–ฅ์ƒ๋˜์–ด ๋” ๋ฐ˜์‘์ ์ด๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ๊ธฐ์‚ฌ๋Š” AI๊ฐ€ ์ƒ์„ฑํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.







Share your love