๐Ÿ”ฅ Firestore - await๋Š” ์™œ ์‚ฌ์šฉํ• ๊นŒ? (ํŒ€ํ”„๋กœ์ ํŠธ 3์ผ์ฐจ)

๋ฆผ๋ฏผ์ง€ยท2025๋…„ 2์›” 20์ผ

Today I Learn

๋ชฉ๋ก ๋ณด๊ธฐ
5/62

๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ firestore์— data๋ฅผ ์ €์žฅํ•˜๋Š”๋ฒ•, ๊บผ๋‚ด๋Š” ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•Œ๊ฒŒ๋๋‹ค. ๊ทผ๋ฐ ์™œ await๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ถ๊ธˆ์ฆ์ด ์ƒ๊ฒผ๋‹ค.

๐Ÿค” await๋Š” ์™œ ์จ์•ผํ• ๊นŒ?

1๏ธโƒฃ await๋Š” ๋ญํ•˜๋Š” ๋…€์„์ผ๊นŒ

await๋Š” ๋น„๋™๊ธฐ ์ฝ”๋“œ์—์„œ Promise๊ฐ€ ์ฒ˜๋ฆฌ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์—ญํ• .

2๏ธโƒฃ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ ์ฝ”๋“œ์˜ ๊ตฌ๋ถ„

๋™๊ธฐ

: '์ง๋ ฌ์ '์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹

๋น„๋™๊ธฐ

: '๋ณ‘๋ ฌ์ '์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹
์ฆ‰, ๋น„๋™๊ธฐ๋ž€ ํŠน์ • ์ฝ”๋“œ๊ฐ€ ๋๋‚ ๋•Œ ๊นŒ์ง€ ์ฝ”๋“œ์˜ ์‹คํ–‰์„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๋‹ค์Œ ์ฝ”๋“œ๋ฅผ ๋จผ์ € ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค.

์˜ค๋ฅธ์ชฝ์€ ๋™๊ธฐ, ์™ผ์ชฝ์€ ๋น„๋™๊ธฐ์˜ ๋ฐฉ์‹์ด๋‹ค.

3๏ธโƒฃ ์“ฐ๋Š” ์ด์œ 

Firebase์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜, ์ถ”๊ฐ€ํ•  ๋•Œ, ์ด ์ž‘์—…๋“ค์€ ๋น„๋™๊ธฐ์ ์œผ๋กœ ์‹คํ–‰๋œ๋‹ค.

๐Ÿ’ก ์™„๋ฃŒ๋˜๊ธฐ ์ „์— ๋‹ค์Œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋  ์ˆ˜๋„ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋ฐ์ดํ„ฐ๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋ฐ›์•„์˜ค๊ธฐ ์œ„ํ•ด await์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ด.

4๏ธโƒฃ async await ์—๋Ÿฌ ์ œ์–ด

await๊ฐ€ ๋˜์ง„ ์—๋Ÿฌ๋Š” throw๊ฐ€ ๋˜์ง„ ์—๋Ÿฌ๋ฅผ ์žก์„ ๋•Œ์ฒ˜๋Ÿผ try..catch๋ฅผ ์‚ฌ์šฉํ•ด ์žก์„ ์ˆ˜ ์žˆ๋‹ค.

try {
      await addDoc(collection(db, "commenting"), {
        text: comment,
        timestamp: new Date(),
      });
      console.log("๋Œ“๊ธ€ ๊ฒŒ์‹œ ์™„๋ฃŒ");
      $("#commenting").val(""); // ์ž…๋ ฅ์ฐฝ ๋น„์šฐ๊ธฐ
    } catch (error) {
      console.error("Error ", error);
      alert("๋Œ“๊ธ€ ์ €์žฅ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.");
    }

์œ„์˜ ์ฝ”๋“œ๋Š” ๋Œ“๊ธ€ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ๋•Œ ๋งŒ๋“ค์—ˆ๋˜ try catch ๋ฌธ์ด๋‹ค.
๋จผ์ € try๋กœ ํ•ด๋ณด๊ณ  ๋งŒ์•ฝ์— ์•ˆ๋œ๋‹ค๋ฉด? error๋ฅผ catchํ•ด์„œ ์žก์•„์ค„ ์ˆ˜ ์žˆ๋‹ค.
์ฝ”๋”ฉํ• ๋•Œ ์™œ ์•ˆ๋˜์ง€? ํ• ๋•Œ ์ฝ˜์†”์ฐฝ์„ ํ™•์ธํ•ด์„œ ์—๋Ÿฌ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ๋Š” ์ข‹์€ ๋ฐฉ๋ฒ•์ด๋‹ค

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