Docs Menu

๋ฌธ์„œ ๋ฏธ๋ฆฌ๋ณด๊ธฐ

๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋ฆฌ๊ฑฐ ์‹คํ–‰์—๋Š” ๊ด€๋ จ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์„œ ์‚ฌ์ „ ์ด๋ฏธ์ง€ ๋ฅผ ํฌํ•จํ•˜๋„๋ก ์ด๋Ÿฌํ•œ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์ „ ์ด๋ฏธ์ง€๋Š” ๋ณ€๊ฒฝ ์ „์˜ ๋ฌธ์„œ์˜ ์Šค๋ƒ…์ƒท์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ

์‚ฌ์ „ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š” collection์—์„œ updateOne ๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.

pets.updateOne(
{ name: "Fido" },
{ $inc: { age: 1 } }
)

์‚ฌ์ „ ์ด๋ฏธ์ง€๋Š” ์“ฐ๊ธฐ ์ž‘์—… ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ๋ฅผ ์œ„ํ•ด ๋‹ค์Œ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • fullDocumentBeforeChange ํ•„๋“œ์— ์žˆ๋Š” ๋ฌธ์„œ ์‚ฌ์ „ ์ด๋ฏธ์ง€

    ์‚ฌ์ „ ์ด๋ฏธ์ง€ - ๋ณ€๊ฒฝ ์ „์˜ ์ „์ฒด ๋ฌธ์„œ
    {
    "name": "Fido",
    "age": 3
    }
  • fullDocument ํ•„๋“œ์— ๋ฌธ์„œ ํฌ์ŠคํŠธ์ด๋ฏธ์ง€

    Postimage - ๋ณ€๊ฒฝ ์งํ›„์˜ ์ „์ฒด ๋ฌธ์„œ
    {
    "name": "Fido",
    "age": 4
    }

MongoDB ๋ฒ„์ „ 6.0 ์ด์ƒ์„ ์‹คํ–‰ ํ•˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ ํŠธ๋ฆฌ๊ฑฐ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด์žฅ ๋ณ€๊ฒฝ ์ŠคํŠธ๋ฆผ ์‚ฌ์ „ ์ด๋ฏธ์ง€ ๊ธฐ๋Šฅ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ MongoDB ๋Š” ์‚ฌ์ „ ์ด๋ฏธ์ง€๋ฅผ oplog ์— ์ง์ ‘ ์ €์žฅ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ ์ปฌ๋ ‰์…˜ ์˜ ๊ฐ ์ž‘์—…์— ์ €์žฅ ๋ฐ ์ปดํ“จํŒ… ์˜ค๋ฒ„ํ—ค๋“œ ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฏ€๋กœ ์“ฐ๊ธฐ (write) ์ฒ˜๋ฆฌ๋Ÿ‰ ์ด ๋†’์€ ์ปฌ๋ ‰์…˜์— ์„ฑ๋Šฅ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ๊ตฌ์„ฑ ํ•  ๋•Œ ์‚ฌ์ „ ์ด๋ฏธ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Document Preimage ์€ trigger ๊ตฌ์„ฑ์— ๋Œ€ํ•œ ์„ค์ •์ž…๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜์— ๋Œ€ํ•œ ๋ฌธ์„œ ์‚ฌ์ „ ์ด๋ฏธ์ง€๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ํ† ๊ธ€ํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์„œ ์‚ฌ์ „ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” collection ๋ชฉ๋ก์„ ๋ณด๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜์„ธ์š”:

  1. Linked Data Source ๊ตฌ์„ฑ ํ™”๋ฉด์œผ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. Advanced Configuration ์„น์…˜์„ ํ™•์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์—๋Š” Preimage Preferences by Collection ํ…Œ์ด๋ธ”์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ํ‘œ์—๋Š” oplog์— ์‚ฌ์ „ ์ด๋ฏธ์ง€๋ฅผ ์ €์žฅํ•˜๋Š” ๋ชจ๋“  collection์ด ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. collection์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ด๋ฏธ์ง€ ํ™œ์„ฑํ™”๋Š” ๋ชจ๋“  collection์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค๋ฅธ ์•ฑ์˜ ํŠธ๋ฆฌ๊ฑฐ์— ์—ฐ๊ฒฐ๋œ ์ปฌ๋ ‰์…˜์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. Atlas Triggers๊ฐ€ ์—†๋Š” collection๋„ ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

App Services UI์—์„œ ์ปฌ๋ ‰์…˜ ์ˆ˜์ค€ ์‚ฌ์ „ ์ด๋ฏธ์ง€๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

collection์˜ ์‚ฌ์ „ ์ด๋ฏธ์ง€๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. (์„ ํƒ ์‚ฌํ•ญ) collection์˜ Atlas Triggers์— ๋Œ€ํ•œ ๋ฌธ์„œ ์‚ฌ์ „ ์ด๋ฏธ์ง€๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์ „ ์ด๋ฏธ์ง€๊ฐ€ ์žˆ๋Š” Atlas Triggers๋Š” ์‚ฌ์ „ ์ด๋ฏธ์ง€๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•œ ํ›„์—๋„ ๊ณ„์† ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณ€๊ฒฝ ์ด๋ฒคํŠธ์—๋Š” fullDocumentBeforeChange ํ•„๋“œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค๋ฅธ App Services ์•ฑ์˜ Atlas Triggers๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  2. collection์ด ๋™๊ธฐํ™”๋œ cluster์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ ๋™๊ธฐํ™”๋ฅผ ์ข…๋ฃŒ ํ•ฉ๋‹ˆ๋‹ค.

  3. ์ปฌ๋ ‰์…˜๋ณ„ ์‚ฌ์ „ ์ด๋ฏธ์ง€ ๊ธฐ๋ณธ ์„ค์ • ํ‘œ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ปฌ๋ ‰์…˜์„ ๋ณด๋ ค๋ฉด Disable ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•ด๋‹น ์ปฌ๋ ‰์…˜์˜ ์‚ฌ์ „ ์ด๋ฏธ์ง€๊ฐ€ ๊บผ์ง‘๋‹ˆ๋‹ค.

  4. collection์ด ๋™๊ธฐํ™”๋œ cluster์˜ ์ผ๋ถ€์ธ ๊ฒฝ์šฐ ๋™๊ธฐํ™”๋ฅผ ๋‹ค์‹œ ํ™œ์„ฑํ™” ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

๋™๊ธฐํ™” ์ข…๋ฃŒ ํ›„ ๋™๊ธฐํ™” ๋ณต์›ํ•˜๊ธฐ

Atlas Device Sync๋ฅผ ์ข…๋ฃŒํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ํ™œ์„ฑํ™”ํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋” ์ด์ƒ ๋™๊ธฐํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋™๊ธฐํ™”๋ฅผ ๋ณต์›ํ•˜๋ ค๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์žฌ์„ค์ • ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•ธ๋“ค๋Ÿฌ๋Š” ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ๋ณต๊ตฌ๋ฅผ ์‹œ๋„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.