Home > DB > ๐Ÿ’พ[Database] Hash Based Sharding์ด๋ž€?

๐Ÿ’พ[Database] Hash Based Sharding์ด๋ž€?
Database Sharding

๐Ÿ’พ[Database] Hash Based Sharding์ด๋ž€?

๐Ÿ“ Intro.

  • Hash Based Sharding์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒค๋”ฉ(โ€œ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ…Œ๋ฒ ์ด์Šค๋กœ ๋‚˜๋ˆ„๋Š” ๊ธฐ๋ฒ•โ€) ์ค‘ ํ•˜๋‚˜๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ƒค๋“œ(Shard)๋ฅผ ๊ฒฐ์ •ํ•  ๋•Œ ํ•ด์‹œ ํ•จ์ˆ˜(Hash Function)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ฒ•์ž…๋‹ˆ๋‹ค.
    • ํ•ด์‹œ ํ•จ์ˆ˜(Hash Function)๋ฅผ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ํŠน์ • ์ƒค๋“œ(Shard)์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐ๋˜๋„๋ก ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ๋ถ„ํฌ์™€ ์กฐํšŒ ํšจ์œจ์„ฑ์„ ์ตœ์ ํ™”ํ•ฉ๋‹ˆ๋‹ค.

๋„์•…!! ๋ฒŒ์จ ๋„ˆ๋ฌด ์–ด๋ ค์šด ์šฉ์–ด๋“ค์ด ๋งŽ์ด ๋‚˜์™€์š”!! ๊ทธ๋ž˜๋„ ์ฐจ๊ทผ ์ฐจ๊ทผ ์•Œ์•„๊ฐ€๋ด์š”!! ๐Ÿ˜†

โœ…1๏ธโƒฃ ์ƒค๋”ฉ(Sharding)์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”?

โœ… ์ƒค๋”ฉ(Sharding).

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

โœ… ์ƒค๋”ฉ๊ณผ ์ƒค๋“œ.

  • ์ƒค๋”ฉ(Sharding): โ€œ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž‘์€ ์กฐ๊ฐ(Shard)์œผ๋กœ ๋‚˜๋ˆ„์–ด ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•.โ€
  • ์ƒค๋“œ(Shard): ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒค๋”ฉ์—์„œ Shard๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” โ€œ๋…๋ฆฝ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ ์„œ๋ฒ„โ€๋ฅผ ๊ฐ€๋ฆฌํ‚ด.

โœ… ์ƒค๋”ฉ์ด ์™œ ํ•„์š”ํ•˜์ง€?

    1. ์„ฑ๋Šฅ ๋ฌธ์ œ ํ•ด๊ฒฐ!
      • โ€œ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ค„์ผ ์ˆ˜ ์žˆ์–ด์š” :)โ€
      • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋งŽ์•„์ง€๋ฉด ์ฟผ๋ฆฌ ์†๋„๊ฐ€ ๋Š๋ ค์ง€๊ณ  ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์–ด์š”. ๐Ÿ‘Ž
        • โ€œ์ƒค๋”ฉ(Sharding)์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๋ฉด ๊ฐ ์ƒค๋“œ(Shard)๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๋ฏ€๋กœ, ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ์ค„์ผ ์ˆ˜ ์žˆ์ง€์š”โ€
    1. ํ™•์žฅ์„ฑ ํ™•๋ณด!
      • โ€œ์ƒค๋”ฉ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•ด์š” :)โ€
      • ๋ฐ์ดํ„ฐ๊ฐ€ ๊ธ‰๊ฒฉํžˆ ์ฆ๊ฐ€ํ•˜๊ฑฐ๋‚˜, ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์•„์งˆ ๊ฒฝ์šฐ ๋‹จ์ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ๋Š” ๊ฐ๋‹นํ•  ์ˆ˜ ์—†์–ด์š”.
        • ๋•Œ๋ฌธ์— โ€œ์ƒค๋”ฉ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜์ง€์š”.โ€
    1. ์‹ ๋ขฐ์„ฑ ๋ฐ ๊ฐ€์šฉ์„ฑ ํ–ฅ์ƒ!
      • โ€œํ•˜๋‚˜์˜ ์ƒค๋“œ๊ฐ€ ์žฅ์• ๋ฅผ ๊ฒช๋”๋ผ๋„ ๋‹ค๋ฅธ ์ƒค๋“œ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜์—ฌ ์„œ๋น„์Šค ์ค‘๋‹จ์„ ๋ฐฉ์ง€ํ•ด์š”.โ€

โœ… ์ƒค๋”ฉ์˜ ์ž‘๋™ ์›๋ฆฌ๋ฅผ ์•Œ์•„๋ด…์‹œ๋‹ค!

  • ์ƒค๋”ฉ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ํŠน์ • ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
    • ์ด ๊ธฐ์ค€์— ๋”ฐ๋ผ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ์ƒค๋“œ์— ์ €์žฅํ• ์ง€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

      1๏ธโƒฃ ์ƒค๋“œ ํ‚ค(Shard Key)

  • ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆŒ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ค€์ด ๋˜๋Š” ํ‚ค.
    • ์˜ˆ: ์‚ฌ์šฉ์ž ID, ๋‚ ์งœ, ํŠน์ • ๋ฐ์ดํ„ฐ์˜ ํ•ด์‹œ ๊ฐ’.

      2๏ธโƒฃ ์ƒค๋“œ ํ• ๋‹น

  • ์ƒค๋“œ ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ์ƒค๋“œ์— ๋ถ„๋ฐฐ.
    • ์˜ˆ:
      shard = hash(UserID) % number_of_shards
      
  • ์œ„ ์‹์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒค๋“œ์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ƒค๋”ฉ์˜ ์žฅ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”?

    1. ํ™•์žฅ์„ฑ(Scalability)!
      • ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์‚ฐ ์ €์žฅํ•˜์—ฌ ์ˆ˜ํ‰์  ํ™•์žฅ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
      • ์˜ˆ: ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ๋” ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    1. ์„ฑ๋Šฅ ํ–ฅ์ƒ!
      • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ„์‚ฐ๋˜๋ฏ€๋กœ ๊ฐ ์ƒค๋“œ์—์„œ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•  ๋ฐ์ดํ„ฐ๋Ÿ‰์ด ์ค„์–ด๋“ค์–ด ์ฟผ๋ฆฌ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.
    1. ๊ฐ€์šฉ์„ฑ!
      • ํŠน์ • ์ƒค๋“œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„, ๋‹ค๋ฅธ ์ƒค๋“œ๋Š” ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ƒค๋”ฉ์˜ ๋‹จ์ ์€ ๋ฌด์—‡์ผ๊นŒ์š”?

    1. ๋ณต์žก์„ฑ์˜ ์ฆ๊ฐ€.
      • ๋ฐ์ดํ„ฐ๋ฅผ ๋‚˜๋ˆ„๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ถ”๊ฐ€์ ์ธ ๋กœ์ง์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
      • ์ƒค๋“œ ๊ฐ„ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ(์กฐ์ธ ์ฟผ๋ฆฌ) ๊ตฌํ˜„์ด ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    1. ๋ฐ์ดํ„ฐ ์žฌ๋ถ„๋ฐฐ ๋น„์šฉ.
      • ์ƒค๋“œ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ผ ๊ฒฝ์šฐ, ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ๋ถ„๋ฐฐํ•ด์•ผ ํ•˜๋ฉฐ ์ด๋Š” ์‹œ๊ฐ„์ด ๋งŽ์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.
    1. ํ•ซ์ŠคํŒŸ ๋ฌธ์ œ.
      • ํŠน์ • ์ƒค๋“œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชฐ๋ฆฌ๋ฉด ํ•ด๋‹น ์ƒค๋“œ์— ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฌ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

โœ… ์ƒค๋”ฉ์˜ ์ข…๋ฅ˜์—๋Š” ๋ฌด์—‡์ด ์žˆ์„๊นŒ์š”?

1๏ธโƒฃ Range Based Sharding(๋ฒ”์œ„ ๊ธฐ๋ฐ˜ ์ƒค๋”ฉ)

  • ๋ฐ์ดํ„ฐ์˜ ๋ฒ”์œ„์— ๋”ฐ๋ผ ์ƒค๋“œ๋ฅผ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
    • ์˜ˆ: ์‚ฌ์šฉ์ž ID๊ฐ€ 11000์€ ์ƒค๋“œ 1, 10012000์€ ์ƒค๋“œ 2.
    • ์žฅ์ : ํŠน์ • ๋ฒ”์œ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.
    • ๋‹จ์ : ํŠน์ • ๋ฒ”์œ„์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชฐ๋ฆด ๊ฒฝ์šฐ, ์ƒค๋“œ๊ฐ€ ๋ถˆ๊ท ํ˜•ํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2๏ธโƒฃ Hash Based Sharding(ํ•ด์‹œ ๊ธฐ๋ฐ˜ ์ƒค๋”ฉ)

  • ๋ฐ์ดํ„ฐ์˜ ํ•ด์‹œ ๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ƒค๋“œ๋ฅผ ๋‚˜๋ˆ•๋‹ˆ๋‹ค.
    • ์˜ˆ: shard = hash(UserID) % number_of_shards
    • ์žฅ์ : ๋ฐ์ดํ„ฐ๊ฐ€ ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐ๋ฉ๋‹ˆ๋‹ค.
    • ๋‹จ์ : ์ƒค๋“œ ๊ฐœ์ˆ˜ ๋ณ€๊ฒฝ ์‹œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์žฌ๋ถ„๋ฐฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ Directory Based Sharding(๋””๋ ‰ํ† ๋ฆฌ ๊ธฐ๋ฐ˜ ์ƒค๋”ฉ)

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

โœ…2๏ธโƒฃ Hash Based Sharding์˜ ์ž‘๋™ ๋ฐฉ์‹์€ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

1๏ธโƒฃ ํ•ด์‹œ ํ•จ์ˆ˜(Hash Function).

  • ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ์ž…๋ ฅ๊ฐ’(์˜ˆ: User ID, Order ID ๋“ฑ)์„ ๋ฐ›์•„์„œ ๊ณ ์ •๋œ ํฌ๊ธฐ์˜ ์ˆซ์ž(ํ•ด์‹œ ๊ฐ’)๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
    • ์˜ˆ: hash(UserID) = 123456

      2๏ธโƒฃ ์ƒค๋“œ ํ• ๋‹น.

  • ํ•ด์‹œ ๊ฐ’์„ ์ƒค๋“œ์˜ ๊ฐœ์ˆ˜๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ ๊ฐ’(Modulo)์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ƒค๋“œ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ: shard = hash(UserID) % number_of_shards
    • ์ƒค๋“œ๊ฐ€ 3๊ฐœ์ด๊ณ , hash(UserID) = 123456์ด๋ผ๋ฉด?
      shard = 123456 % 3 = 0
      
  • ๋”ฐ๋ผ์„œ ๋ฐ์ดํ„ฐ๋Š” ์ƒค๋“œ 0์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ ๋ฐ์ดํ„ฐ ์ €์žฅ.

  • ํ•ด์‹œ ๊ฐ’์„ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ์ƒค๋“œ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

โœ…3๏ธโƒฃ Hash Based Sharding์˜ ์žฅ์ .

1๏ธโƒฃ ๊ท ๋“ฑ ๋ถ„๋ฐฐ.

  • ํ•ด์‹œ ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ ์ƒค๋“œ์— ๊ท ๋“ฑํ•˜๊ฒŒ ๋ถ„๋ฐฐํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
    • ๋”ฐ๋ผ์„œ ํŠน์ • ์ƒค๋“œ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชฐ๋ฆฌ๋Š” ํ˜„์ƒ(ํ•ซ์ŠคํŒŸ)์ด ์ค„์–ด๋“ญ๋‹ˆ๋‹ค.

      2๏ธโƒฃ ์กฐํšŒ ์„ฑ๋Šฅ ์ตœ์ ํ™”.

  • ๋ฐ์ดํ„ฐ๋ฅผ ํŠน์ • ์ƒค๋“œ์—๋งŒ ์กฐํšŒํ•˜๋ฉด ๋˜๋ฏ€๋กœ, ์ „์ฒด ์ƒค๋“œ๋ฅผ ํƒ์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†์–ด ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

    3๏ธโƒฃ ์„ค๊ณ„ ๋‹จ์ˆœํ™”.

  • ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์ƒค๋“œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณต์žกํ•œ ์ƒค๋”ฉ ๋กœ์ง์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

โœ…4๏ธโƒฃ Hash Based Sharding์˜ ๋‹จ์ .

1๏ธโƒฃ ์ƒค๋“œ ์ถ”๊ฐ€/์‚ญ์ œ์˜ ์–ด๋ ค์›€.

  • ์ƒค๋“œ ์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด ํ•ด์‹œ ๊ฐ’์ด ์žฌ๊ณ„์‚ฐ๋˜์–ด ๊ธฐ์กด ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๊ฐ€ ๋ฐ”๋€๋‹ˆ๋‹ค.
    • ์˜ˆ: ์ƒค๋“œ๊ฐ€ 3๊ฐœ์—์„œ 4๊ฐœ๋กœ ์ฆ๊ฐ€ํ•˜๋ฉด, ๋ฐ์ดํ„ฐ์˜ ์žฌ๋ฐฐ์น˜๋ฅผ ํ”ผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

      2๏ธโƒฃ ๋ณต์žกํ•œ ๋ฐ์ดํ„ฐ ์ด๋™.

  • ์ƒค๋“œ ์ˆ˜๊ฐ€ ๋ณ€๊ฒฝ๋˜๋ฉด, ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ์ƒˆ๋กœ์šด ์ƒค๋“œ ๊ตฌ์กฐ์— ๋งž๊ฒŒ ์ด๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    3๏ธโƒฃ ์กฐ์ธ ์—ฐ์‚ฐ์˜ ์–ด๋ ค์›€.

  • ์„œ๋กœ ๋‹ค๋ฅธ ์ƒค๋“œ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ธํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ, ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    4๏ธโƒฃ ํ•ซ์ŠคํŒŸ ๋ฌธ์ œ(ํŠน์ • ํ‚ค์˜ ๊ณผ๋„ํ•œ ์š”์ฒญ).

  • ํ•ด์‹œ ํ•จ์ˆ˜๊ฐ€ ๊ท ๋“ฑ ๋ถ„๋ฐฐ๋ฅผ ๋ณด์žฅํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ํŠน์ • ํ‚ค์— ์ง‘์ค‘์ ์ธ ์š”์ฒญ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ, ํŠน์ • ์ƒค๋“œ์— ๋ถ€ํ•˜๊ฐ€ ์ง‘์ค‘๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.