1. NoSQL
- NoSQL์ Non SQL ๋๋ Non relational์ ๋ํ๋ด๋ ๋ง
- ์ฆ, ๊ด๊ณ๊ฐ ์๋ ํํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์๋ฏธ
- ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ ์ ์ฝ์ ์ผ๋ถ ์ํํจ์ผ๋ก์จ, ์ํ์ ์ผ๋ก ํ์ฅ ๊ฐ๋ฅํ ์ฑ๋ฅ์ ๊ฐ๊ณ ์๋ค.
- ๋ํ ๊ฐ๋ฐํ๊ธฐ์ ์ฉ์ดํ๋ฉฐ ์งง์ ์ง์ฐ ์๊ฐ ๋ฐ ๋ณต์๋ ฅ์ ๊ฐ๊ณ ์๋ค.
- ์ด๋ฌํ NoSQL์ ์คํค๋ง ์๋ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ต์ ํ ๋์ด ์๋ค.
- ๊ฐ๋จํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ฐ๊ณ ์์ผ๋ฉฐ, ์ด, ๋ฌธ์, ๊ทธ๋ํ, ์ธ๋ฉ๋ชจ๋ฆฌ ํค-๊ฐ ์คํ ์ด ๋ฑ์ ๋ค์ํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์๋ค.
- ๊ทธ๋์ ๋น ๋ฐ์ดํฐ, ๋ชจ๋ฐ์ผ ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉํ๊ธฐ์ ๋งค์ฐ ์ ํฉํ๋ค
1.1 RDBMS์ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐจ์ด์
RDBMS์์๋ ๋ฐ์ดํฐ๋ฅผ ์ ์ฐํ๊ฒ ์ฟผ๋ฆฌํ ์ ์์ง๋ง,- ๋์ ์ฟผ๋ฆฌ ๋น์ฉ์ด ์๋์ ์ผ๋ก ๋์ผ๋ฉฐ ํธ๋ํฝ์ด ๋ง์ ์ํฉ์์๋ ํ์ฅ์ฑ์ด ๋จ์ด์ง๋ค.
NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์์๋ ๋ช ๊ฐ์ง ์ ํ๋ ๋ฐฉ๋ฒ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ์ฟผ๋ฆฌํ ์ ์์ผ๋ฉฐ,- ๊ทธ ์ธ์๋ ์ฟผ๋ฆฌ ๋น์ฉ์ด ๋๊ณ ์๋๊ฐ ๋๋ฆฌ๋ค๋ ํน์ง์ ๊ฐ๊ณ ์๋ค
| ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค | NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค | |
|---|---|---|
| ๋ฐ์ดํฐ ๋ชจ๋ธ | ์คํค๋ง ๊ฐ์ ์ (ํ๊ณผ ์ด๋ก ๊ตฌ์ฑ๋ ํ ์ด๋ธ๋ก ์ ๊ทํ) | ์คํค๋ง ๊ฐ์ ์ ์ฉํ์ง ์์ |
| ACID ์์ฑ | ACID ์์ฑ์ ์ง์(์์์ฑ, ์ผ๊ด์ฑ, ๊ฒฉ๋ฆฌ์ฑ, ๋ด๊ตฌ์ฑ) | ์ผ๋ถ ACID ์์ฑ์ ์ง์ |
| ์ฑ๋ฅ | ๋์คํฌ ํ์ ์์คํ ์ ๋ฐ๋ผ ๋ค๋ฆ(์ฟผ๋ฆฌ, ์ธ๋ฑ์ค ๋ฐ ํ ์ด๋ธ ๊ตฌ์กฐ ์ต์ ํ ํ์) | ๊ธฐ๋ณธ ํ๋์จ์ด ํด๋ฌ์คํฐ ํฌ๊ธฐ, ๋คํธ์ํฌ ์ง์ฐ ์๊ฐ ๋ฑ์ ๋ฐ๋ผ ๋ฆ |
| ํ์ฅ ๊ธฐ๋ฅ | ๋ ๋น ๋ฅธ ํ๋์จ์ด ์ฌ์ฉ | ํ๋์จ์ด์ ๋ถ์ฐ ํด๋ฌ์คํฐ ์ฌ์ฉ |
| API | SQL์ ์ค์ํ๋ ์ฟผ๋ฆฌ ์ฌ์ฉ | ๊ฐ์ฒด ๊ธฐ๋ฐ API(์ธ ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฝ๊ฒ ์ ์ฅ ๋ฐ ๊ฒ์) |
| ๋๊ตฌ | ๋ค์ํ ๋๊ตฌ ์ธํธ ์ ๊ณต | ํด๋ฌ์คํฐ ๊ด๋ฆฌ ๋ฐ ์กฐ์ ์ ์ํ ๋๊ตฌ ์ ๊ณต |
1.2 NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ข ๋ฅ
NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ 4๊ฐ์ง ์ฃผ๋ก ์ฌ์ฉ๋๋ ์ ํ์ด ์๋ค.
์ด ๊ธฐ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ๋ฐ์ดํฐ์ ํ์ด ์๋ ๋ฐ์ดํฐ์ ์ด์ ์ฝ๊ณ ์ฐ๋ ๋ฐ ์ต์ ํ๋์ด ์๋ค.๋ฌธ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค: JSON ๋๋ XML ํ์์ ๋ฌธ์์ ๊ฐ์ ๋ฐ์ ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋๋ก ์ค๊ณ ๋์ด ์๋ค- ๋ฌธ์๋ณ๋ก ๋ค๋ฅธ ์คํค๋ง๋ฅผ ์ ์ฉํ ์ ์์ผ๋ฉฐ, ์ ์ฐํ๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์ฑ ๋ฐ ์ ์ฅํ ์ ์๋ค.
๊ทธ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค: ๊ฐ์ ์ด๋ผ๊ณ ๋ถ๋ฅด๋ ๋ฐฉํฅ ๋งํฌ์ ์ ์ ์ ์ ์ฅํ๋ ํํ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ธ ๋ฉ๋ชจ๋ฆฌ ํค-๊ฐ ์คํ ์ด: ์ฝ๊ธฐ ์ค์ฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์ํฌ๋ก๋ ๋๋ ์ปดํจํ ์ง์ฝ์ ์ํฌ๋ก๋์ ์ต์ ํ๋์ด ์๋ค.- ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์ฑ์ ํต์ฌ ๋ฐ์ดํฐ ์กฐ๊ฐ์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅํด ์ก์ธ์ค ์ง์ฐ ์๊ฐ์ ์ค์ฌ์ฃผ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ์ด ํฅ์๋๋ค.
์ด ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ค์ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๊ณ , ์ก์ธ์ค๋๊ณ , ๊ตฌ์กฐํ๋๋ ๋ฐฉ์์ด ๋ค๋ฅด๋ฉฐ, ์๋ก ๋ค๋ฅธ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํ ๋์ด ์์ต๋๋ค.
2. DynamoDB
DynamoDB: AWS์์ ์ ๊ณตํ๋ ๋งค์ฐ ๋น ๋ฅด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์์ ๊ด๋ฆฌํ ํด๋ผ์ฐ๋ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค- ๊ท๋ชจ์ ๊ด๊ณ์์ด 10ms ๋ฏธ๋ง์ ์ง์ฐ ์๊ฐ์ ๋ณด์ฅํ๋ฉฐ, ์ ์ฐํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ์ฌ์ฉํ ์ ์๊ณ ์ฉ๋์ ์ ํ์ด ์๋ค.
- ์์ ์ ์ธ ์ฑ๋ฅ ๋ฐ ์ฒ๋ฆฌ ์ฉ๋ ์๋ ์กฐ์ ๊ธฐ๋ฅ์ ํตํด ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ์๋น์ค๋ฅผ ์ ๊ณตํ ์ ์์ผ๋ฉฐ,
- ์ฉ๋๊ณผ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ๋์ ๋ํ์ฌ ๊ณผ๊ธ๋จ
DAX(DynamoDB Accelerator): ๊ฐ์ฉ์ฑ์ด ๋ฐ์ด๋ ์์ ๊ด๋ฆฌํ ์ธ ๋ฉ๋ชจ๋ฆฌ ์บ์- DAX๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋น ์๋ฐฑ๋ง ๊ฐ์ ์์ฒญ์๋ DynamoDB ์๋ต ์๊ฐ์ ๋ฐ๋ฆฌ์ด์์ ๋ง์ดํฌ๋ก์ด๋ก ๋จ์ถ ๊ฐ๋ฅ
2.1 DynamoDB Read ๋ฐฉ์
Eventually Consistent Read(๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉ๋๋ ๋ฐฉ์)- ์ต๊ทผ ์๋ฃ๋ ์ฐ๊ธฐ ์์ ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์ํ์ง ์์ ์ ์๊ธฐ ๋๋ฌธ์, ๋ถ์ค ๋ฐ์ดํฐ๊ฐ ์ผ๋ถ ํฌํจ๋ ์ ์๋ ๋ฐฉ์
- ํ์ง๋ง ์ ์ ํ์ ์ฝ๊ธฐ ์์ฒญ์ ๋ฐ๋ณตํ๋ฉด ์๋ต์ด ์ต์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๊ฒ ๋๋ค.
Strongly Consistent Read- ์ฑ๊ณตํ ๋ชจ๋ ์ด์ ์ฐ๊ธฐ ์์ ์ ์ ๋ฐ์ดํธ๋ฅผ ๋ฐ์ํ์ฌ ๊ฐ์ฅ ์ต์ ๋ฐ์ดํฐ๋ก ์๋ต์ ๋ฐํํ๋ ๋ฐฉ์
- ๋คํธ์ํฌ ์ง์ฐ ๋๋ ์ค๋จ์ด ๋ฐ์ํ ๊ฒฝ์ฐ์ ์ฌ์ฉ์ด ์ด๋ ค์ธ ์ ์๋ค.
2.2 DynamoDB ๊ณผ๊ธ๋ฐฉ์
๊ณผ๊ธ ๋ฐฉ์์ ํฌ๊ฒ ์คํ ๋ฆฌ์ง ์๊ธ๊ณผ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ฉ๋ ์ ๋์ ๋ํ ์๊ธ์ผ๋ก ๋๋ ์ง๋ค.
-
๋ฐ์ดํฐ ์คํ ๋ฆฌ์ง:- ํ ์ด๋ธ์์ ์ฌ์ฉํ ๋์คํฌ ๊ณต๊ฐ(GB)๋น ์๊ฐ๋น ์๊ธ์ ๋ถ๊ณผ
- GB๋น ์ 0.27 USD
-
์ฝ๊ธฐ ์ฉ๋ ์ ๋1 ์ฝ๊ธฐ ์ฉ๋ ์ ๋์ ์ด๋น ์ต๋ 2๊ฑด์ ์ฝ๊ธฐ ์์ ์ ์ ๊ณต (์๋ณ 5๋ฐฑ 2์ญ๋ง ๊ฑด)- ์ฝ๊ธฐ ์์ฒญ ์ ๋ 100๋ง ๊ฑด๋น 0.271 USD
-
์ฐ๊ธฐ ์ฉ๋ ์ ๋ ์๊ธ1 ์ฐ๊ธฐ ์ฉ๋ ์ ๋์ ์ด๋น ์ต๋ 1๊ฑด์ ์ฐ๊ธฐ ์์ ์ ์ ๊ณต (์๋ณ 2๋ฐฑ 6์ญ๋ง ๊ฑด)- ์ฐ๊ธฐ ์์ฒญ ์ ๋ 100๋ง ๊ฑด๋น 1.3556 USD
cf. ์ด ์๊ธ์ ํ์ฌ ์์ ์ ์์ธ ๋ฆฌ์ ๊ธฐ์ค ์๊ธ์ด๋ฉฐ, ํ๋ฆฌํฐ์ด์์๋ ๋งค์ 25GB ์คํ ๋ฆฌ์ง ๋ฐ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ฉ๋ ์ ๋์ด ๊ฐ 25๊ฐ์ฉ ์ ๊ณต๋จ
2.3 DynamoDB ๊ธฐ๋ณธ ๊ตฌ์ฑ
Table: Item์ ์งํฉItem: Attribute์ ์งํฉAttribute: Key-Value๋ฐฉ์์ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋ฉฐ, Key๋ ๋ฌธ์์ด
3. DynamoDB ๋ฐ์ดํฐ ํ์
3.1 ์ค์นผ๋ผ ๋ฐ์ดํฐ ํ์
ํ๋์ ๊ฐ๋ง์ ํํํ ์ ์๋ ์ค์นผ๋ผ ๋ฐ์ดํฐ ํ์์ ๋ค์๊ณผ ๊ฐ๋ค.
Number (N): ์์, ์์ ๋๋ 0. ์ต๋ 38์๋ฆฌ๊น์ง ์ง์.String (S): UTF-8 ์ด์ง ์ธ์ฝ๋ฉ ์ ์ฌ์ฉํ๋ ์ ๋์ฝ๋.Binary (B): ์์ถ ํ ์คํธ, ์ํธํ ๋ฐ์ดํฐ, ๋๋ ์ด๋ฏธ์ง ๊ฐ์ ๋ชจ๋ ์ด์ง์ ๋ฐ์ดํฐ ์ ์ฅ ๊ฐ๋ฅ.Boolean (S, "0"๋๋ 1"): true ๋๋ false๋ฅผ ์ ์ฅํ ์ ์์.Null (NULL): ์๋ ค์ง์ง ์์๊ฑฐ๋ ์ ์๋์ง ์์ ์ํ์ ์์ฑ.
3.2 ๋ฌธ์ ํ์
๋ดํฌ ์์ฑ์ด ์๋ ๋ณต์กํ ๊ตฌ์กฐ๋ฅผ ํํํ๊ธฐ ์ํ ๋ฌธ์ ํ์์ด ์๋ค.
List (L): ์์๊ฐ ์ง์ ๋ ๊ฐ ๋ชจ์์ ์ ์ฅํ ์ ์์.ะะฐั (M): ์ ๋ ฌ๋์ง ์์ ์ด๋ฆ-๊ฐ ์์ ๋ชจ์์ ์ ์ฅํ ์ ์์
3.2 ๋ค์ค ๊ฐ ํ์
์ฌ๋ฌ ์ค์นผ๋ผ ๊ฐ์ ํํํ ์ ์๋ ๋ค์ค ๊ฐ ํ์์ด ์๋ค.
String Set (SS): ๋ฌธ์์ด ์งํฉNumber Set (NS): ์ซ์ ์งํฉBinary Set (BS): ์ด์ง ์งํฉ
4. DynamoDB ํํฐ์ ๋ฐ ํค
4.1 DynamoDB ํํฐ์
DynamoDB์ ํํฐ์
: DynamoDB๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๊ณณ
- SSD(Solid State Drive)๋ก ๋ฐฑ์ ๋๋ ํ ์ด๋ธ์ฉ ์คํ ๋ฆฌ์ง ํ ๋น์ ์๋ฏธํ๋ฉฐ,
- ํ๋์ AWS ๋ฆฌ์ ๋ด์ ์ฌ๋ฌ ๊ฐ์ฉ ์์ญ์ ์๋์ผ๋ก ๋ณต์ ๋๋ค.
- ์ด ํํฐ์ ์ ์ฌ์ฉ์๊ฐ ์ง์ ๊ด๋ฆฌํ ํ์ ์์ด ์ ์ ์ผ๋ก DynamoDB์์ ์ฒ๋ฆฌํ๋ค.
DynamoDB๋๋ค์๊ณผ ๊ฐ์ ์ํฉ์ ํ ์ด๋ธ์ ์ถ๊ฐ ํํฐ์ ์ ํ ๋นํ๋ค.
- ๊ธฐ์กด ํํฐ์ ์ด ์ง์ํ ์ ์๋ ํ๋๋ฅผ ์ด๊ณผํ์ฌ ํ ์ด๋ธ์ ํ ๋น๋ ์ฒ๋ฆฌ๋ ์ค์ ์ ๋๋ฆฌ๋ ๊ฒฝ์ฐ
- ๊ธฐ์กด ํํฐ์ ์ฉ๋์ด ๋ค ์ฐจ์ ์ถ๊ฐ ์คํ ๋ฆฌ์ง ๊ณต๊ฐ์ด ํ์ํ ๊ฒฝ์ฐ
4.2 DynamoDB ํค
๋ณดํต DB์์ key๋ผ๊ณ ํ๋ฉด Table๋ด์์ ๊ฐ Item์ ๊ตฌ๋ถํ๋ ๊ณ ์ ์๋ณ์๋ฅผ ์๋ฏธํ๋ค.
๊ธฐ๋ณธํค (Primary Key)- Table๋ด์์ ๊ฐ ltem์ ๊ตฌ๋ถํ๋ ๊ณ ์ ์๋ณ์
๋จ์ ๊ธฐ๋ณธ ํค: ํํฐ์ ํค๋ง ์ฌ์ฉ๋ณตํฉ ๊ธฐ๋ณธ ํค: ํํฐ์ ํค์ ์ ๋ ฌ ํค๋ฅผ ํจ๊ป ์ฌ์ฉ
ํํฐ์ ํค(Partition Key)- ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋์ด ์๋ ํํฐ์ ์ ๊ฒฐ์ ํ๊ธฐ ์ํ ํค
- ๋ด๋ถ ํด์ ํจ์์ ๋ํ ์ ๋ ฅ์ผ๋ก ํํฐ์ ํค ๊ฐ์ ์ฌ์ฉ
- ์ถ๋ ฅ์ ๋ฐ๋ผ ํญ๋ชฉ์ ์ ์ฅํ ํํฐ์ ์ด ๊ฒฐ์ ๋จ
์ ๋ ฌ ํค (Sort Key): ํํฐ์ ํค๊ฐ ๋์ผํ ๋ชจ๋ ํญ๋ชฉ๋ค์ ์ ๋ ฌํ๋ ํค ๊ฐ
DynamoDB์์๋ ํํฐ์ ํค๋ง ์ฌ์ฉํ๊ฑฐ๋ ํํฐ์ ํค์ ์ ๋ ฌ ํค๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ํํ๋ก ํ ์ด๋ธ์ ๊ธฐ๋ณธ ํค๋ฅผ ์ค์ ํ ์ ์๋ค.
- ๋จผ์
๊ธฐ๋ณธ ํค๋ก ํํฐ์ ํค๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ํํฐ์ ํค๋ฅผ ํตํด์ Item์ ์ฐพ์ ์ ์๋ค. - ๋ค์์
๊ธฐ๋ณธ ํค๋ก ํํฐ์ ํค์ ์ ๋ ฌ ํค๋ฅผ ํจ๊ป ์ฌ์ฉํ๋ ๊ฒฝ์ฐ,- ํํฐ์ ํค๋ฅผ ํด์ ํจ์์ ์ ๋ ฅ์ผ๋ก ์ ๋ฌํ์ฌ Item์ด ์ ์ฅ๋์ด ์๋ ํํฐ์ ์ ์ฐพ๊ณ ,
- ์ดํ์ ํด๋น ํํฐ์ ๋ด์์ ์ ๋ ฌ ํค๋ฅผ ์ฌ์ฉํ์ฌ Item์ ์ฐพ๋๋ค.
5. DynamoDB ๋ณด์กฐ ์ธ๋ฑ์ค
DynamoDB์ ํ ์ด๋ธ์์๋ ํ๋ ์ด์์ ๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ์ ์๋ค.
- ๋ณด์กฐ ์ธ๋ฑ์ค๋ ํํฐ์ ํค์ ๋ํ ์ฟผ๋ฆฌ๋ ๋ฌผ๋ก ์ด๊ณ , ์ ๋ ฌ ํค๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ ๋ฐ์ดํฐ์ ๋ํ ์ฟผ๋ฆฌ๊น์ง ์คํํ ์ ์๋ค.
- DynamoDB๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋๋ก ์๊ตฌํ์ง๋ ์์ผ๋ฉด์๋ ๋ฐ์ดํฐ๋ฅผ ์ฟผ๋ฆฌํ ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณด๋ค ๋ง์ ์ ์ฐ์ฑ์ ์ ๊ณตํ๋ค.
- ํ ์ด๋ธ์์ ๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ ์์ฑํ ํ์๋, ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์ธ๋ฑ์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๋ค.
DynamoDB์ ๋ณด์กฐ ์ธ๋ฑ์ค์๋ 2๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค.
LSI (Local Secondary Index, ๋ก์ปฌ ๋ณด์กฐ ์ธ๋ฑ์ค)- ํ ์ด๋ธ๊ณผ ํํฐ์ ํค๋ ๋์ผํ์ง๋ง ์ ๋ ฌ ํค๋ ๋ค๋ฅธ ์ธ๋ฑ์ค
- ํ ์ด๋ธ์ ์ ๋ ฌ ํค(Sort Key)๋ฅผ ์ถ๊ฐ๋ก ๋ ๋ง๋ ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
GSI (Global Secondary Index, ๊ธ๋ก๋ฒ ๋ณด์กฐ ์ธ๋ฑ์ค)- ํํฐ์ ํค ๋ฐ ์ ๋ ฌ ํค๊ฐ ํ ์ด๋ธ์ ํํฐ์ ํค ๋ฐ ์ ๋ ฌ ํค์ ๋ค๋ฅผ ์ ์๋ ์ธ๋ฑ์ค
DynamoDB์์๋ ํ ์ด๋ธ๋น ์ต๋ 20๊ฐ์ GSI ๋ฐ 5๊ฐ์ LSI๋ฅผ ์ ์ํ ์ ์๋ค.
5.1 GSI์ LSI์ ์ฐจ์ด์
| ํน์ฑ | ๊ธ๋ก๋ฒ ๋ณด์กฐ ์ธ๋ฑ์ค | ๋ก์ปฌ ๋ณด์กฐ ์ธ๋ฑ์ค |
|---|---|---|
| ํค ์คํค๋ง | ๋จ์ ๊ธฐ๋ณธํค(ํํฐ์ ํค) ๋๋๋ณตํฉ ๊ธฐ๋ณธํค(ํํฐ์ ํค ๋ฐ ์ ๋ ฌ ํค) | ๊ธฐ๋ณธ ํค๋ ๋ฐ๋์๋ณตํฉ ๊ธฐ๋ณธํค(ํํฐ์ ํค ๋ฐ ์ ๋ ฌ ํค)์ฌ์ผ ํจ |
| ํค ์์ฑ | ๋ฌธ์์ด, ์ซ์ ๋๋ ์ด์ง์ ํ์์ ๊ธฐ๋ณธ ํ ์ด๋ธ ์์ฑ | ๊ธฐ๋ณธ ํ ์ด๋ธ์ ํํฐ์ ํค์ ๋์ผํ ์์ฑ |
| ํํฐ์ ํค ๊ฐ๋น ํฌ๊ธฐ ์ ํ | ํฌ๊ธฐ ์ ํ์ด ์์ | ํํฐ์ ํค๊ฐ๋ง๋ค ์ธ๋ฑ์ฑ๋ ๋ชจ๋ ํญ๋ชฉ์ ์ ์ฒด ํฌ๊ธฐ๊ฐ 10GB ์ดํ์ฌ์ผ ํจ |
| ์จ๋ผ์ธ ์ธ๋ฑ์ค ์์ | ํ ์ด๋ธ์ ์์ฑํ ๋ ๋์์ GSI๋ฅผ ์์ฑํ ์ ์์. ๊ธฐ์กด ํ ์ด๋ธ์ ์ GSI๋ฅผ ์ถ๊ฐํ๊ฑฐ๋,๊ธฐ์กด GSI๋ฅผ ์ญ์ ํ ์๋ ์์ | ํ ์ด๋ธ์ ์์ฑํ ๋ ๋์์ LSI๊ฐ ์์ฑ๋จ. ๊ธฐ์กด ํ ์ด๋ธ์ LSI๋ฅผ ์ถ๊ฐํ ์๋ ์๊ณ , ๊ธฐ์กด LSI๋ฅผ ์ญ์ ํ ์๋ ์์ |
| ์ฟผ๋ฆฌ ๋ฐ ํํฐ์ | ์ ์ฒด ํ ์ด๋ธ์ ๋ชจ๋ ํํฐ์ ์ ๋ํด ์ฟผ๋ฆฌ ๊ฐ๋ฅ | ํํฐ์ ํค๊ฐ ๊ฐ์ ๋จ์ผ ํํฐ์ ์ ๋ํด ์ฟผ๋ฆฌ ๊ฐ๋ฅ |
| ์ฝ๊ธฐ ์ผ๊ด์ฑ | ์ต์ข ์ผ๊ด์ฑ๋ง ์ง์ | ์ต์ข ์ผ๊ด์ฑ ๋๋ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ ์ ํ ๊ฐ๋ฅ |
| ํ ๋น๋ ์ฒ๋ฆฌ๋ ์๋น | ์์ฒด ํ ๋น ์ฒ๋ฆฌ๋ ์ค์ ์ด ์์GSI์ ์ฉ๋ ๋จ์๋ฅผ ์๋น | ๊ธฐ๋ณธ ํ ์ด๋ธ์ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ฉ๋ ๋จ์๋ฅผ ์๋น ํ ์ด๋ธ์ ์ธ ๋ ํด๋น LSI๋ ์ ๋ฐ์ดํธ ๋จ |
| ํ๋ก์ ์ ์์ฑ | ์ธ๋ฑ์ค๋ก ํ๋ก์ ์ ๋๋ ์์ฑ๋ง ์์ฒญํ ์ ์์ | ์ธ๋ฑ์ค๋ก ํ๋ก์ ์ ๋์ง ์๋ ์์ฑ๋ ์์ฒญํ ์ ์์ |
๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ ๋๋ ๊ฐ๊ฐ์ ํน์ง์ ๊ผญ ์ ํ์ธํ๊ณ ์ฌ์ฉํ์.
5.2 ๋ก์ปฌ ๋ณด์กฐ ์ธ๋ฑ์ค(LSI) ์

- ํ ์ด๋ธ์ ํํฐ์ ํค๋ Name์ด๊ณ ์ ๋ ฌ ํค๋ Subject
- LSI์ ํํฐ์ ํค๋ Name์ผ๋ก ํ ์ด๋ธ๊ณผ ๋์ผํ๋ฉฐ, ์ ๋ ฌ ํค๋ Score๋ก ํ ์ด๋ธ๊ณผ ๋ค๋ฅธ ๊ฒ์ ๋ณผ ์ ์๋ค.
- ์ด๋ ๊ฒ ๋ก์ปฌ ๋ณด์กฐ ์ธ๋ฑ์ค(LSI)๋ฅผ ๋ง๋ค์ด์ ์ฌ์ฉํ๊ฒ ๋๋ฉด,
- Name๊ณผ Score ๊ฐ์ ์ด์ฉํด์ ํ ์ด๋ธ ๋ด์์ ์์ดํ ์ ์ฐพ์ ์ ์๋ค.
5.3 ๊ธ๋ก๋ฒ ๋ณด์กฐ ์ธ๋ฑ์ค(GSI) ์

- ๊ธ๋ก๋ฒ ๋ณด์กฐ ์ธ๋ฑ์ค์ ํํฐ์ ํค๋ Subject๊ฐ ๋๊ณ , ์ ๋ ฌ ํค๋ Name์ด๋ค.
- ๊ธ๋ก๋ฒ ๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๋ฅธ ๊ฐ์ผ๋ก ํํฐ์
์ ๋๋ ์ ์๊ณ ,
- ํด๋น ํํฐ์ ๋ด์์ ์์ดํ ๋ค์ ์ ๋ ฌํ ์ ์๋ค.
6. DynamoDB ๋ฐ์ดํฐ ์กฐํ
DynamoDB์ ๋ฐ์ดํฐ ์กฐํ ๋ฐฉ์์๋ ํฌ๊ฒ Query์ Scan์ด ์๋ค.
Query: ๊ธฐ๋ณธ ํค ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํญ๋ชฉ์ ์ฐพ๋ ๋ฐฉ์- ๋ณตํฉ ๊ธฐ๋ณธ ํค๊ฐ ์๋ ํ ์ด๋ธ ๋๋ ๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ ์ฟผ๋ฆฌํ ์ ์์
- ํํฐ์ ํค ์์ฑ์ ์ด๋ฆ๊ณผ ํด๋น ์์ฑ์ ๋จ์ผ ๊ฐ์ ์ ๊ณตํด์ผ ํ๋ฉฐ, ํด๋น ํํฐ์ ํค ๊ฐ์ ๊ฐ๋ ๋ชจ๋ ํญ๋ชฉ์ ๋ฐํํจ
- ์ ํ์ ์ผ๋ก ์ ๋ ฌ ํค ์์ฑ์ ์ ๊ณตํ๊ณ , ๋น๊ต ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ฒ์ ๊ฒฐ๊ณผ์ ๋ฒ์๋ฅผ ์ขํ ์ ์์
Scan: ํ ์ด๋ธ ๋๋ ๋ณด์กฐ ์ธ๋ฑ์ค์ ๋ชจ๋ ํญ๋ชฉ์ ์ฝ์ด์ค๋ ๋ฐฉ์- ๊ธฐ๋ณธ์ ์ผ๋ก ํ ์ด๋ธ์ด๋ ์ธ๋ฑ์ค์ ์ํ ํญ๋ชฉ์ ๋ฐ์ดํฐ ์์ฑ์ ๋ชจ๋ ๋ฐํํ๋ค.
- ProjectionExpression ํ๋ผ๋ฏธํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์ผ๋ถ ์์ฑ๋ง ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ํญ์ ๊ฒฐ๊ณผ ์งํฉ์ ๋ฐํํ๋๋ฐ, ๋ง์ฝ ์ผ์นํ๋ ํญ๋ชฉ์ด ์๋ค๋ฉด ๋น์ด์๋ ๊ฒฐ๊ณผ ์งํฉ์ด ๋ฐํ๋๋ค.
- ๋จ์ผ Scan ์์ฒญ์ ์ต๋ 1MB๊น์ง ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.
- ์ด๋ ์ต์ ์ผ๋ก ํํฐ ํํ์์ ์ ์ฉํ๋ฉด ๋ฐํ๋๋ ๊ฒฐ๊ณผ์ ๋ฒ์๋ฅผ ์ขํ ์๋ ์๋ค.
์ ๋ฆฌ :
Query๋ ํค ๊ฐ์ผ๋ก ์ฐพ๋ ๊ฒ์ด๊ณ ,Scan์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ํํฐ๋ง ํ๋ ๊ฒ
e.g. ํ๊ต์์ ํ์์ ์ฐพ๋๋ค๋ฉด,
Query๋ ํ๋ฒ์ผ๋ก ๊ณง๋ฐ๋ก ๋ถ๋ฅด๋ ๊ฒ- ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด์๋ Query๋ฅผ ์ฌ์ฉ
Scan์ 1๋ช ์ฉ ๋ถ๋ฌ์ ํ๋ฒ์ด ์ผ์นํ๋์ง ํ์ธํ๋ ๊ฒ
๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ธฐ ์ํด์๋ Query๋ฅผ ์ฌ์ฉํ๊ณ , Scan์ ์๋๋ ๋๋ฆฌ๊ณ ๋น์ธ๋ฏ๋ก ์ฌ๋งํ๋ฉด ์ฌ์ฉํ์ง ์๋๋ค.
7. (์ค์ต) DynamoDB ํ ์ด๋ธ ์ค๊ณ
DynamoDB์ ํ ์ด๋ธ ์ค๊ณ๋ ์ผ๋ฐ์ ์ธ DB์๋ ์กฐ๊ธ ๋ค๋ฅด๋ค.
- ์ ๊ต์์ ์ํ ์ ์๋ฅผ DynamoDB์ ๋ฃ์ด์ ๊ด๋ฆฌํ๋ ค๊ณ ํจ
- ํ์๋ค์ ์ ๋ง๋ค ๊ณ ์ ํ๋ฒ์ ๊ฐ๊ณ ์์
- ์ํ ๊ณผ๋ชฉ์ ์์ด, ๊ณผํ, ์ํ ์ด 3๊ณผ๋ชฉ
- ์๋์ ๊ฐ์ ๋ฐ์ดํฐ ์กฐํ๊ฐ ๊ฐ๋ฅํด์ผ ํจ
- ํ ํ์์ ์์ด, ๊ณผํ, ์ํ ์ ์๋ฅผ ๋ค ๊ฐ์ ธ์ค๊ธฐ
- ๊ฐ ๊ณผ๋ชฉ๋ณ ์ ์๋ก ์ ๋ ฌํ์ฌ ํ์ ๋ชฉ๋ก ๊ฐ์ ธ์ค๊ธฐ
7.1 ๊ธฐ๋ณธํค ๊ตฌ์ฑ
๋จ์ ๊ธฐ๋ณธ ํค๋ก ํ ๊ฒฝ์ฐ- ํํฐ์ ํค : ํ์์ ํ๋ฒ
๋ณตํฉ ๊ธฐ๋ณธ ํค๋ก ํ ๊ฒฝ์ฐ- ํํฐ์ ํค : ํ์์ ํ๋ฒ
- ์ ๋ ฌ ํค : ๊ณผ๋ชฉ๋ช
์กฐ๊ฑด์ ๋ง์กฑ์ํค๋ ค๋ฉด, ๋ณตํฉ๊ธฐ๋ณธํค๋ฅผ ์ฌ์ฉํ๊ณ ๋ณด์กฐ์ธ๋ฑ์ค๋ฅผ ์ถ๊ฐํด์ผ ํ๋ค.
7.2 ๋ณด์กฐ ์ธ๋ฑ์ค
๋ก์ปฌ ๋ณด์กฐ ์ธ๋ฑ์ค : ์ฌ๊ธฐ์๋ ๊ตณ์ด ํ์์์
๊ธ๋ก๋ฒ ๋ณด์กฐ ์ธ๋ฑ์ค :
- ๋ณตํฉ ๊ธฐ๋ณธ ํค
- ํํฐ์ ํค : ๊ณผ๋ชฉ๋ช
- ์ ๋ ฌํค : ์ ์
๊ณผ๋ชฉ๋ช ์ผ๋ก ํํฐ์ ์ ๋๋๊ณ ํํฐ์ ๋ด์์ ์ ์๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ ์ ์๋ค.
8. (์ค์ต) DynamoDB ํ ์ด๋ธ ์์ฑ
[DynamoDB] โ ์ผ์ชฝ ๋ฉ๋ด [ํ ์ด๋ธ]ํ์ด์ง๋ก ์ด๋ํด์ [ํ ์ด๋ธ ์์ฑ] ๋ฒํผ์ ํด๋ฆญ. ๊ทธ๋ฌ๋ฉด (ํ ์ด๋ธ ์์ฑ) ํ์ด์ง๊ฐ ๋์จ๋ค.
ํ ์ด๋ธ ์ด๋ฆ: StudentScoreํํฐ์ ํค: id, ์ซ์ ํ์์ ๋ ฌ ํค: subject, ๋ฌธ์์ด ํ์ํ ์ด๋ธ ์ค์ : ์ค์ ์ฌ์ฉ์ ์ง์ - ์ ํํ๋ฉด, ํ ์ด๋ธ ํด๋์ค, ์ฉ๋ ๊ณ์ฐ๊ธฐ ๋ฑ์ด ๋์จ๋ค.
- ๋ณด์กฐ ์ธ๋ฑ์ค์์ [๊ธ๋ก๋ฒ ์ธ๋ฑ์ค] ์์ฑ ๋ฒํผ์ ํด๋ฆญ
ํํฐ์ ํค: subject, ๋ฌธ์์ด ํ์์ ๋ ฌํค: score, ์ซ์ ํ์- [์ธ๋ฑ์ค ์์ฑ] ๋ฒํผ์ ํด๋ฆญ
- ๊ทธ๋ผ ๋ณด์กฐ์ธ๋ฑ์ค๊ฐ ๋ชฉ๋ก์ ์ถ๊ฐ๋ ๊ฒ์ ๋ณผ ์ ์๋ค.
- ํ๋ฉด์ ์ ์ผ ํ๋จ์ผ๋ก ๋ด๋ ค์ [ํ ์ด๋ธ ์์ฑ] ๋ฒํผ์ ํด๋ฆญํ๋ค.
- ํ ์ด๋ธ์ ์์ฑํ๋ ๊ฒ์ ๋๋ต 1, 2๋ถ ์ ๋๊ฐ ์์๋๋ค.
์์ฑ๋ ํ ์ด๋ธ์ ํด๋ฆญํด์ ์์ธ ์ ๋ณด๋ฅผ ๋ณด๋ฉด, ํํฐ์ ํค์ ์ ๋ ฌ ํค๋ ํ์ธ ๊ฐ๋ฅํ๋ค.
- [์ธ๋ฑ์ค] ํญ์ ํด๋ฆญํด๋ณด๋ฉด, ์์ฑํ ๊ธ๋ก๋ฒ ๋ณด์กฐ ์ธ๋ฑ์ค๊ฐ ๋ชฉ๋ก์ ๋์จ๋ค.
9. (์ค์ต) DynamoDB ํ ์ด๋ธ ์ ๋ ฅ
[ํ ์ด๋ธ ์์ธ] ํ์ด์ง์์ [์์ ] ๋ฉ๋ด๋ฅผ ํด๋ฆญํ๋ค.
- ์ดํ ๋์ค๋ ๋ชฉ๋ก์์ [ํญ๋ชฉ ์์ฑ]์ ํด๋ฆญํ๋ค.
- ๊ทธ๋ผ ํญ๋ชฉ์ ์์ฑํ ์ ์๋ ํ๋ฉด์ด ๋์จ๋ค.
- [์ ํญ๋ชฉ ์ถ๊ฐ] ๋ฒํผ์ ๋๋ฌ์ ํ์ ๋ณ๋ก ์ถ๊ฐํ ์ ์๋ค.
๋ค์๊ณผ ๊ฐ์ด ์ ๋ ฅํด์ค๋ค์ [ํญ๋ชฉ ์์ฑ] ๋ฒํผ์ ํด๋ฆญํ๋ค.
| ์์ฑ ์ด๋ฆ | ๊ฐ | ์ ํ |
|---|---|---|
| id | 1 | ์ซ์ |
| subject | Math | ๋ฌธ์์ด |
| score | 95 | ์ซ์ |
๋์ผํ ๊ณผ์ ์ ์ด 9๋ฒ ๋ฐ๋ณตํ์ฌ, ๋ค์ ๋ฐ์ดํฐ๋ค์ ๋ชจ๋ ์ ๋ ฅํ๋ค.
| id | subject | score |
|---|---|---|
| 1 | English | 95 |
| 1 | Math | 95 |
| 1 | Science | 88 |
| 2 | English | 80 |
| 2 | Math | 100 |
| 2 | Science | 92 |
| 3 | English | 99 |
| 3 | Math | 86 |
| 3 | Science | 89 |
10. (์ค์ต) DynamoDB ํ ์ด๋ธ ์กฐํ
10.1 ์ฟผ๋ฆฌ
[ํ ์ด๋ธ] ๋ฉ๋ด์์ ๋ชฉ๋ก์ ํด๋ฆญํด ์์ธํ์ด์ง๋ก ์ด๋ํ๋ค.
- [ํ ํญ๋ชฉ ํ์] ๋ฒํผ์ ํด๋ฆญํ๋ค.
- ์ฟผ๋ฆฌ๋ ํ
์ด๋ธ์ ํค๋ฅผ ์ด์ฉํด์ ํญ๋ชฉ์ ํ์ํ๋ ๋ฐฉ์์ด๊ธฐ ๋๋ฌธ์,
- [์ฟผ๋ฆฌ]๋ฅผ ์ ํํ๋ฉด, ์ธ๋ฑ์ค๋ฅผ ์ ํํ๋ ์ต์ ์ด ๋์จ๋ค.
- ์ฌ๊ธฐ์ ํ
์ด๋ธ ๋๋ ์ธ๋ฑ์ค ์ ํ ๋ฉ๋ด๋ฅผ ํผ์ณ๋ณด๋ฉด,
- ํ ์ด๋ธ์ ๊ธฐ๋ณธํค๋ก ์กฐํํ ๊ฒ์ธ์ง ๋ณด์กฐ์ธ๋ฑ์ค๋ก ์กฐํํ ๊ฒ์ธ์ง ์ ํํ ์ ์๋ค.
- ๋จผ์ ํ ์ด๋ธ์ ๊ธฐ๋ณธํค๋ก ์กฐํํ ๊ฒ์ด๋ค.
๋จผ์ 1๋ฒ ํ์์ ์ ๊ณผ๋ชฉ ์ ์๋ฅผ ์กฐํํ๋ ค๋ฉด,
id : 1์ ์ ๋ ฅํ๊ณ [์คํ] ๋ฒํผ์ ํด๋ฆญ
์ด๋ฒ์๋ ๊ณผ๋ชฉ์ผ๋ก ์กฐํํ๊ธฐ ์ํด์, ์ง์ ๋ง๋ ๊ธ๋ก๋ฒ ๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ ์ ํํ๋ค.
ํ ์ด๋ธ ๋๋ ์ธ๋ฑ์ค ์ ํ: ๋ง๋ค์ด๋ subject-score-index ์ ํ- ๊ธ๋ก๋ฒ ๋ณด์กฐ ์ธ๋ฑ์ค๋ฅผ ์ ํํ๋ฉด, ํํฐ์ ํค๊ฐ id๊ฐ ์๋ subject๋ก ๋ฐ๋๋ค.
- ์ฌ๊ธฐ์ ์กฐํํ๋ ค๋ ๊ณผ๋ชฉ๋ช ์ ์ ๋ ฅํ๋ฉด ๋๋ค. (cf. Math)
10.2 ์ค์บ
์ค์บ ๋ฐฉ์์ ์ ์ฒด ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์จ๋ค.
- [์ค์บ] ๋ฒํผ์ ๋๋ฅด๊ณ [์คํ] ๋ฒํผ์ ํด๋ฆญํ๋ค.
- ๊ทธ๋ฌ๋ฉด, ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ๋์จ๋ค.
- ์ค์บ์์ [ํํฐ] ๋ฒํผ์ ๋๋ฅด๋ฉด, ์ค์บ์์ ํํฐ๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
1๋ฒ ํ์์ ๋ชจ๋ ๊ณผ๋ชฉ ์ ์๋ฅผ ์กฐํํ๋ ค๋ฉด,
์์ฑ์ด๋ฆ: id์ ํ: ์ซ์์กฐ๊ฑด: ๊ฐ์๊ฐ: 1- ์์ ๊ฐ์ด ์ค์ ํ๊ณ [์คํ] ๋ฒํผ์ ํด๋ฆญ
์ํ ๊ณผ๋ชฉ์ ํ์ ๋ชฉ๋ก์ ์กฐํํ๋ ค๋ฉด,
์์ฑ์ด๋ฆ: subject์ ํ: ๋ฌธ์์ด์กฐ๊ฑด: ๊ฐ์๊ฐ: Math- ์์ ๊ฐ์ด ์ค์ ํ๊ณ [์คํ] ๋ฒํผ์ ํด๋ฆญ
11. (์ค์ต) DynamoDB ํ ์ด๋ธ ์ญ์
ํ ์ด๋ธ ์์ธ ํ์ด์ง์์ [์์ ] ๋ฉ๋ด๋ฅผ ํด๋ฆญํ๋ค.
- ์ดํ [ํ ์ด๋ธ ์ญ์ ]๋ฅผ ํด๋ฆญํฉ๋๋ค.
- ๊ทธ๋ฌ๋ฉด ํ
์ด๋ธ์ ์ญ์ ํ๊ธฐ ์ ์ ํ ๋ฒ ๋ ํ์ธํ๊ธฐ ์ํ ๋ค์ด์ผ๋ก๊ทธ๊ฐ ๋์จ๋ค.
- ์ฌ๊ธฐ์
ํ์ธ์ด๋ผ๊ณ ์ ๋ ฅํ๋ค. - ํ ์ด๋ธ ์ญ์ ๊ฐ ์งํ๋๊ณ , ์๊ฐ์ด ์กฐ๊ธ ์ง๋๋ฉด ํ ์ด๋ธ ์ญ์ ๊ฐ ์๋ฃ๋๋ค.
- ์ฌ๊ธฐ์