MongoDB ์ ์ฉ ๊ฐ์ด๋
MongoDB ์ ์ฉ ์์ธ ์ค์ ๊ฐ์ด๋๋ฅผ ์ด๊ณณ์์ ์ ๊ณตํฉ๋๋ค.
- 1 MongoDB ์ปค๋ฅ์
๋ฑ๋กํ๊ธฐ
- 1.1 1. MongoDB์ ๊ธฐ๋ณธ์ ์ธ Connection String ๊ตฌ์กฐ ์ดํดํ๊ธฐ
- 1.2 2. MongoDB ์ปค๋ฅ์ ์์ฑํ๊ธฐ
- 1.3 3. Replica Set ํํ๋ก ์ค์ ํ๊ธฐ
- 1.3.1 < Standard Connection >
- 1.3.2 < +srv Connection >
- 1.4 4. Sharded Cluster(Sharding) ํํ๋ก ์ค์ ํ๊ธฐ
- 1.4.1 < Standard Connection >
- 1.4.2 < +srv Connection >
- 2 Proxy๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ TLS(SSL) ์ค์
- 3 MongoDB ๋ฐ์ดํฐ ์ ์ฑ ๋ฐ ๊ท์น ์ค์
MongoDB ์ปค๋ฅ์ ๋ฑ๋กํ๊ธฐ
MongoDB๋ ๋จ์ผ ํธ์คํธ๋ก ๊ตฌ์ฑ๋๋ ๊ฒฝ์ฐ ๋ณด๋ค Replica Set ๋๋ Sharded Cluster(Sharding)ํํ์ ๋ฉํฐ ํธ์คํธ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด ๊ฒฝ์ฐ ๋ฉํฐ ํธ์คํธ ๋ฐฉ์์ ์ปค๋ฅ์ ์ ์์ฑํด์ผํฉ๋๋ค.
1. MongoDB์ ๊ธฐ๋ณธ์ ์ธ Connection String ๊ตฌ์กฐ ์ดํดํ๊ธฐ
MongoDB์ connection string์ standard, +srv ๋๊ฐ์ง๊ฐ ์์ต๋๋ค.
< Standard connection string์ ๊ตฌ์กฐ >
mongodb://[Hostname or IP]:[port],[Hostname or IP]:[port],[Hostname or IP]:[port]..../?[options]
mongodb:// : standard connection string scheme
Hostname or IP : mongodb ํด๋ฌ์คํฐ ๋ฉค๋ฒ ํธ์คํธ์ ์ ์ฒด ๋๋ฉ์ธ์ด๋ฆ ๋๋ IP ์ฃผ์
options : /? ๋ค์ ๋ถ๋ ์ ์์ ๊ด๋ จ๋ ์ต์ . ์ฌ๋ฌ๊ฐ์ ์ต์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ &๋ก ๋ถ์ฌ์ ์ฌ์ฉํฉ๋๋ค.
ex. /?authSource=admin&replicaSet=rs0
replica set ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ /? ๋ค์ replicaSet=[replica set ์ด๋ฆ] ์ ์ ๋ ฅํด์ผ ํฉ๋๋ค. ex. /?replicaSet=rs0
ย
< +srv connection string์ ๊ตฌ์กฐ >
mongodb+srv://<FQDN>/?[options]
mongodb+srv:// : +srv connection string scheme
FQDN : Fully qualified domain name - DNS์ ๋ฑ๋ก๋์ด ์๋ ํธ์คํธ๋ค์๊ณผ ๋๋ฉ์ธ๋ค์์ ์กฐํฉ์ผ๋ก ์ด๋ฃจ์ด์ง ์ด๋ฆ ex. server1.example.com
options : /? ๋ค์ ๋ถ๋ ์ ์์ ๊ด๋ จ๋ ์ต์ . ์ฌ๋ฌ๊ฐ์ ์ต์ ์ ์ฌ์ฉํ ๊ฒฝ์ฐ &๋ก ๋ถ์ฌ์ ์ฌ์ฉํฉ๋๋ค.
ex. /?authSource=admin&replicaSet=rs0
+srv ๋ ํด๋ฌ์คํฐ์ ํฌํจ๋์ด ์๋ ๊ฐ๊ฐ์ ํธ์คํธ์ ์ฃผ์๊ฐ ๋์ ์ผ๋ก ๋ฐ๋ ์ ์๊ธฐ ๋๋ฌธ์ QueryPie์์ +srv๋ฅผ ์ง์ ์ปค๋ฅ์ ์ ์ฌ์ฉํ ์๋ ์๊ณ standard connection string์ผ๋ก ๋ณํํด์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค. ์ด๋ฐ ๋ณํ๊ณผ์ ์ผ๋ก ์ธํด ํ์ฌ +srv ๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํ๋ ๊ฒฝ์ฐ ํ์ ์ธ์คํด์ค์ ์ง์ ์ ์์ ์ง์ํ์ง ์์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ +srv ์ ์ ํ๊ฒฝ์ ํ์ ํธ์คํธ์ ๋ํ ์ง์ ์ ์์ด ํ์ํ ๊ฒฝ์ฐ, ์ฌ์ฉ์๊ฐ nslookup ๋ช ๋ น์ ์ฌ์ฉํ์ฌ DNS ์กฐํ๋ฅผ ํตํด ๊ฐ ํธ์คํธ ์ ๋ณด๋ฅผ ํ์ธ ํ ๋ณ๋ standard connection string์ ์ฌ์ฉํ ์ปค๋ฅ์ ์ ์์ฑํด์ ์ ์์ ํด์ผํฉ๋๋ค.
2. MongoDB ์ปค๋ฅ์ ์์ฑํ๊ธฐ
Administrator > Databases > Connection Management > DB Connections ๋ฉ๋ด๋ก ์ด๋ํฉ๋๋ค.
์ฐ์ธก ์๋จ์
Create Connection
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.๋ฐ์ดํฐ ์์ค ์ ํ ๋จ๊ณ์์ mongoDB๋ฅผ ์ ํํฉ๋๋ค.
3. Replica Set ํํ๋ก ์ค์ ํ๊ธฐ
< Standard Connection >
Allowed Zone์ ์๋ง์ ๋คํธ์ํฌ zone ์ค์ ์ ํฉ๋๋ค.
Connection Name์ ์ง์ ํฉ๋๋ค.
Cluster
์ค์์น๋ฅผ ๋ฅผ ์ผ์ ํด๋ฌ์คํฐ ์ ๋ ฅ์ ํ์ฑํํ ํ ๋ค์์ ์ ๋ณด๋ค์ ์ ๋ ฅํฉ๋๋ค.Type : ์ปค๋ฅ์ ์ ๋ณด์ ๋ ธ์ถ๋๋ ์์ญ์ ๋๋ค. Primary ์ญํ ์ด ๋์ ์ผ๋ก ๋ฐ๋ ์ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ๊ฐ์ธ
Primary
๋ฅผ ์ ํํฉ๋๋ค.Expose : Connection ์ ๋ณด ํ๋ฉด ๋๋ agent์ ์ ์๋์ ๋ชฉ๋ก์ ํด๋ฌ์คํฐ์ ํ์ ๋ ธ๋(ํธ์คํธ ๋๋ ์ธ์คํด์ค)๋ฅผ ํผ์ณ ๋ณผ์ ์๋๋ก ํ๋ ค๋ฉด โ
Expandable
"์, ํผ์ณ ๋ณผ์ ์๋๋ก ํ๋ ค๋ฉด "Unexpandable
"์, ํด๋ฌ์คํฐ๋ฅผ ์จ๊ธฐ๊ณ ํ์ ๋ ธ๋(ํธ์คํธ ๋๋ ์ธ์คํด์ค)๋ค๋ง ํ์ํ๋ ค๋ฉด "Hidden
"์ ์ ํํฉ๋๋ค.Connection String :
Scheme ์ ํํญ๋ชฉ์์
mongodb://
๋ฅผ ์ ํํฉ๋๋ค.ํ์ ํธ์คํธ ์ด๋ฆ๊ณผ ํฌํธ๋ฅผ ์ผํ๋ก ๊ตฌ๋ถํ์ฌ ์ ๋ ฅํฉ๋๋ค.
Add Instance
๋ฒํผ์ ๋๋ฌ ๊ฐ ๋ฉค๋ฒ ํธ์คํธ๋ฅผ ์ธ์คํด์ค๋ก ์ถ๊ฐํฉ๋๋ค.Instance Name : ๊ฐ๊ฐ์ ํธ์คํธ๋ฅผ ๊ตฌ๋ณํ ์ ์๋ ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
Connection String : ๊ฐ ํธ์คํธ๋ฅผ
ํธ์คํธ๋ค์(๋๋ฉ์ธ์ฃผ์ ๋๋ IP):[port]
ํ์์ผ๋ก ์ ๋ ฅํฉ๋๋ค.Expose ๋ ์ปค๋ฅ์ ์ ๋ณด์์์ ๊ฐ๋ณ ์ธ์คํด์ค์ ๋ ธ์ถ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์๋ ์ต์ ์ ๋๋ค.
๋ฉํฐํธ์คํธ ๊ธฐ๋ฅ์ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๋ฐ๋์ ์ธ์คํด์ค๊ฐ expose ์ํ์ฌ์ผ ํ๋ฏ๋ก ๋ฐ๋์Expose
์ต์ ์ ํ์ฑํ ์ํต๋๋ค.
Authentication DB : Authentication DB(authSource)์ ๊ฐ์ ์ ๋ ฅํฉ๋๋ค.
Other Options : Connection string์ ์ฌ์ฉํ๋ ์ต์ ์ค authSource๋ฅผ ์ ์ธํ ๋๋จธ์ง ๊ฐ์ ์ ๋ ฅํฉ๋๋ค.
์์ 1) ๋จ์ผ ์ต์ ๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ์ ( [Key]=[Value] ) : replicaSet=rs0
์์ 2) ๋ค์ค ์ต์ ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ์ ( [Key]=[Vaule]&[Key]=[Value] ) : replicaSet=rs0&tls=true
replica set ๊ตฌ์ฑ์ธ ๊ฒฝ์ฐ replicaSet=[replicaset name] ์ต์ ์ ์ ๋ ฅํด์ผ ํฉ๋๋ค.Secret Store : ์ํธ ๋ฐ ํค ๊ด๋ฆฌ๋ฅผ 3rd party๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ฅผ ์ํ ์ต์ ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ Querypie๋ QueryPie ๋ด๋ถ์์ ๊ด๋ฆฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
User Name & Password : ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
Test Connection
๋ฒํผ์ ํด๋ฆญํ์ฌ, ์ ๋ ฅํ ์ ์ ์ ๋ณด๊ฐ ์ ํจํ์ง ํ์ธํ ์ ์์ต๋๋ค.Next
๋ฒํผ์ ํตํด ๋ง๋ฌด๋ฆฌํ๊ณ ์ ์ฅํฉ๋๋ค.
Cluster ๋ชจ๋์ ๋ํ ๋ ์์ธํ ๋ด์ฉ์ DB Connections์์๋ ํ์ธํ์ค ์ ์์ต๋๋ค.
< +srv Connection >
Allowed Zone์ ์๋ง์ ๋คํธ์ํฌ zone ์ค์ ์ ํฉ๋๋ค.
Connection Name์ ์ง์ ํฉ๋๋ค.
Cluster
์ค์์น๋ฅผ ๋ฅผ ์ผ์ ํด๋ฌ์คํฐ ์ ๋ ฅ์ ํ์ฑํํ ํ ๋ค์์ ์ ๋ณด๋ค์ ์ ๋ ฅํฉ๋๋ค.Type : ์ปค๋ฅ์ ์ ๋ณด์ ๋ ธ์ถ๋๋ ์์ญ์ ๋๋ค. Primary ์ญํ ์ด ๋์ ์ผ๋ก ๋ฐ๋ ์ ์์ผ๋ฏ๋ก ๊ธฐ๋ณธ๊ฐ์ธ
Primary
๋ฅผ ์ ํํฉ๋๋ค.Expose : Connection ์ ๋ณด ํ๋ฉด ๋๋ agent์ ์ ์๋์ ๋ชฉ๋ก์ ํด๋ฌ์คํฐ์ ํ์ ๋ ธ๋(ํธ์คํธ ๋๋ ์ธ์คํด์ค)๋ฅผ ํผ์ณ ๋ณผ์ ์๋๋ก ํ๋ ค๋ฉด โ
Expandable
"์, ํผ์ณ ๋ณผ์ ์๋๋ก ํ๋ ค๋ฉด "Unexpandable
"์, ํด๋ฌ์คํฐ๋ฅผ ์จ๊ธฐ๊ณ ํ์ ๋ ธ๋(ํธ์คํธ ๋๋ ์ธ์คํด์ค)๋ค๋ง ํ์ํ๋ ค๋ฉด "Hidden
"์ ์ ํํฉ๋๋ค.Connection String :
Scheme ์ ํํญ๋ชฉ์์
mongodb+srv://
๋ฅผ ์ ํํฉ๋๋ค.๋๋ฉ์ธ ํ์์ ํธ์คํธ ์ด๋ฆ(FQDN)์ ์ ๋ ฅํฉ๋๋ค.
Lookup
๋ฒํผ์ ๋๋ฆ ๋๋ค. ์ ์์ ์ผ๋ก DNS ์กฐํ๊ฐ ๋์๋ค๋ฉด ํด๋ฌ์คํฐ ํฌํจ๋ ๋ ธ๋๊ฐ ์ธ์คํด์ค๋ก ์๋์ผ๋ก ์ถ๊ฐ ๋ฉ๋๋ค.
Authentication DB ๋ฐ Other Options
Authentication DB ๊ฐ๊ณผ Other Options์๋ DNS์ TXT๋ ์ฝ๋์์ ์กฐํ๋ ๊ฐ์ด ์๋์ผ๋ก ์ ๋ ฅ๋ฉ๋๋ค.
+srv ์คํด์ TLS ์ต์ ์ด ์๋์ผ๋ก true์ด๋ฏ๋ก standard string์ผ๋ก ๋ณํํ๋ฉด tls=true๋ฅผ ์๋์ผ๋ก ์ ๋ ฅํด์ค์ผ ํฉ๋๋ค. (TXT ๋ ์ฝ๋์ TLS ์ต์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.) ๋ฐ๋ผ์ Other options ํญ๋ชฉ์ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด &tls=true๋ฅผ ์ ๋ ฅํฉ๋๋ค.
Secret Store : ์ํธ ๋ฐ ํค ๊ด๋ฆฌ๋ฅผ 3rd party๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ฅผ ์ํ ์ต์ ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ Querypie๋ QueryPie ๋ด๋ถ์์ ๊ด๋ฆฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
User Name & Password : ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
Test Connection
๋ฒํผ์ ํด๋ฆญํ์ฌ, ์ ๋ ฅํ ์ ์ ์ ๋ณด๊ฐ ์ ํจํ์ง ํ์ธํ ์ ์์ต๋๋ค.Next
๋ฒํผ์ ํตํด ๋ง๋ฌด๋ฆฌํ๊ณ ์ ์ฅํฉ๋๋ค
4. Sharded Cluster(Sharding) ํํ๋ก ์ค์ ํ๊ธฐ
Sharded Cluster๋ Replica Set๊ณผ Connection String์ ์ต์ ๋ง ๋ค๋ฅด๊ณ ์ค์ ๋ฐฉ๋ฒ์ ๊ฐ์ต๋๋ค. Replica Set์ replicaSet=[replica set name] ์ต์ ์ด ํ์ํ์ง๋ง Sharded Cluster๋ ์ด ์ต์ ์ด ํ์ ์์ต๋๋ค.
< Standard Connection >
Cluster
์ค์์น๋ฅผ ๋ฅผ ์ผ์ ํด๋ฌ์คํฐ ์ ๋ ฅ์ ํ์ฑํํ ํ ๋ค์์ ์ ๋ณด๋ค์ ์ ๋ ฅํฉ๋๋ค.Type : ์ปค๋ฅ์ ์ ๋ณด์ ๋ ธ์ถ๋๋ ์์ญ์ ๋๋ค. Primary ์ญํ ์ด ๋์ ์ผ๋ก ๋ฐ๋ ์ ์์ผ๋ฏ๋ก Primary ๊ฐ์ ์ ์งํฉ๋๋ค.
Connection String :
Scheme ์ ํํญ๋ชฉ์์
mongodb://
๋ฅผ ์ ํํฉ๋๋ค.๊ฐ mongos์ ํธ์คํธ ์ด๋ฆ๊ณผ ํฌํธ๋ฅผ ์ผํ๋ก ๊ตฌ๋ถํ์ฌ ์ ๋ ฅํฉ๋๋ค.
Add Instance
๋ฒํผ์ ๋๋ฌ ๊ฐ mongos๋ฅผ ์ธ์คํด์ค๋ก ์ถ๊ฐํฉ๋๋ค.mongodb://ํธ์คํธ๋ค์(๋๋ฉ์ธ์ฃผ์ ๋๋ IP):[port] ํ์์ผ๋ก ์ ๋ ฅ ํ Instance Name์ ์๋ง๊ฒ ์ ๋ ฅํฉ๋๋ค.
Expose ๋ ์ปค๋ฅ์ ์ ๋ณด์์์ ๋ ธ์ถ ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์๋ ๊ฐ์ ๋๋ค.
Authentication DB : Authentication DB(authSource)์ ๊ฐ์ ์ ๋ ฅํฉ๋๋ค.
Other Options : Sharded cluster๋ ๋ณ๋ ์ถ๊ฐ ์ต์ ์ด ํ์ํ์ง ์์ ์ ์์ต๋๋ค.
Secret Store : ์ํธ ๋ฐ ํค ๊ด๋ฆฌ๋ฅผ 3rd party๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ฅผ ์ํ ์ต์ ์ ๋๋ค. ๊ธฐ๋ณธ๊ฐ Querypie๋ QueryPie ๋ด๋ถ์์ ๊ด๋ฆฌํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
User Name & Password : ํด๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ์ ์ด๋ฆ๊ณผ ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํฉ๋๋ค.
Test Connection
๋ฒํผ์ ํด๋ฆญํ์ฌ, ์ ๋ ฅํ ์ ์ ์ ๋ณด๊ฐ ์ ํจํ์ง ํ์ธํ ์ ์์ต๋๋ค.Next
๋ฒํผ์ ํตํด ๋ง๋ฌด๋ฆฌํ๊ณ ์ ์ฅํฉ๋๋ค.
< +srv Connection >
standard string์ผ๋ก ๋ณํ๋ ๋ค tls=true ์ต์ ๋ง Other options์ ์ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค. replica set ์ค์ ๊ณผ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
Cluster ๋ชจ๋์ ๋ํ ๋ ์์ธํ ๋ด์ฉ์ DB Connections์์๋ ํ์ธํ์ค ์ ์์ต๋๋ค.
Proxy๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ TLS(SSL) ์ค์
์์์ ์๋ด๋ ๋ฐ์ ๊ฐ์ด QueryPie์ SQL editor๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ํ๋ ๊ฒฝ์ฐ ์ปค๋ฅ์ ์คํธ๋ง์ tls=true๊ฐ ํ์ํฉ๋๋ค.
+srv ์คํด์ TLS ์ต์ ์ด ์๋์ผ๋ก true์ด๋ฏ๋ก standard string์ผ๋ก ๋ณํํ๋ฉด tls=true๋ฅผ ์๋์ผ๋ก ์ ๋ ฅํด์ค์ผ ํฉ๋๋ค. (TXT ๋ ์ฝ๋์ TLS ์ต์ ์ด ์๊ธฐ ๋๋ฌธ์ ๋๋ค.) ๋ฐ๋ผ์ Other options ํญ๋ชฉ์ ์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด &tls=true๋ฅผ ์ ๋ ฅํฉ๋๋ค.
Proxy๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ DataGrip๋ฑ์ SQL Client์์ TLS ์ค์ ๊ณผ ๋ณ๊ฐ๋ก QueryPie์์๋ SSL ์ค์ ์ด ํ์ํฉ๋๋ค.
SSL Configurations๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ค์ ํ ์ปค๋ฅ์
์ SSL ์ค์ ์ ๋ฐ์ํด์ผ ํฉ๋๋ค.
ย
MongoDB ๋ฐ์ดํฐ ์ ์ฑ ๋ฐ ๊ท์น ์ค์
MongoDB ์ ๊ฐ์ธ์ ๋ณด ๋๋ ๋ฏผ๊ฐ์ ๋ณด์ ๊ฐ์ด ์ ๊ทผ ์ ํ์ด ํ์ํ ๋ฐ์ดํฐ๋ ์กฐํ ์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ํ์ธํ ์ ์๋๋ก Collection, JSON Value์ ๋ํด ๋ฐ์ดํฐ ์ ๊ทผ ์ ํ ๋ฐ ๋ง์คํน ์ ์ฑ ์ ์ค์ ํ ์ ์์ต๋๋ค. QueryPie์์ ์ง์ํ๋ DBMS ์ค MongoDB์ ๊ฒฝ์ฐ ํญ์ ๋ฐ์ดํฐ๋ฅผ JSON ํํ๋ก ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ๋ณ๋์ ํฌ๋งทํ ๋ก์ง์ ์ฌ์ฉํ๊ฒ ๋ฉ๋๋ค.
ย
์ต์ด ์ ์ฑ ์์ฑ์ ์๋ ๋งํฌ๋ฅผ ํ์ธํด์ฃผ์ธ์.
๋ง์คํน ์ ์ฑ ์ ๊ท์น ๋ฑ๋กํ๊ธฐ
์ ์ฑ ์ ์์ฑํ๊ณ ๋๋ฉด, ์ค์ ๋ก ์ ์ฑ ์ ์ ์ฉํ ๋ฐ์ดํฐ์ ๊ฒฝ๋ก๋ฅผ ๊ท์น์ผ๋ก ๋ฑ๋กํฉ๋๋ค.
Data Masking ๋ฉ๋ด์์ ์์ฑํ ์ ์ฑ ์ ํด๋ฆญํฉ๋๋ค.
์ ์ฑ ์ธ๋ถ ์ ๋ณด ๋ฐ ๊ท์น ๋ฑ๋ก ํ๋ฉด์ด ํ์๋๊ณ ์ฐ์ธก์์
Add Rule List
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.์ ์ฑ ์ ์ ์ฉํ ๋ฐ์ดํฐ์ ๊ฒฝ๋ก๋ฅผ ์ฐจ๋ก๋๋ก ์ ํํฉ๋๋ค.
Database Name : ๊ท์น ๋ฑ๋ก์ ์ํ ํ์ ๊ฐ์ ๋๋ค.
Table Name : MongoDB ์ ๊ฒฝ์ฐ Collection ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
Column Name : MongoDB ์ ๊ฒฝ์ฐ Document ๋ด์์ ๋ง์คํน์ ์ ์ฉํ JSON Attribute ๊ฐ์ ์ ๋ ฅํฉ๋๋ค.
๋ง์คํน ํจํด์ ์ ์ฉํฉ๋๋ค.
3๋ฒ์์ ์ ํํ ์ปฌ๋ผ์ ์ ์ฉํ ๋ง์คํน ํจํด์ 1๊ฐ ์ด์ ์ ํํฉ๋๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก 20์ฌ๊ฐ์ง์ ๊ฐ์ธ์ ๋ณด ๋ฐ ๋ฏผ๊ฐ์ ๋ณด๋ฅผ ๋ง์คํนํ๋ ํจํด์ ์ ๊ณตํฉ๋๋ค.
Masking Pattern ๋ฉ๋ด์์ ์ ๊ท์์ ํตํด ์ง์ ํ์ง ํจํด๊ณผ ๋ง์คํน ํจํด์ ์์ฑํ ์ ์์ต๋๋ค.
ํด๋น ๋ฐ์ดํฐ ์กฐํ๊ฐ ํ์ํ ์ฌ์ฉ์ ๋๋ ๊ทธ๋ฃน์ ํํด ๋ง์คํน ๊ท์น์ ์์ธ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
Allowed Users : ํด๋น ๊ท์น์ ์์ธ์ฒ๋ฆฌํ ์ฌ์ฉ์ ๋๋ ๊ทธ๋ฃน์ ์ ํํฉ๋๋ค.
Ok
๋ฒํผ ํตํด ์ ์ฅํฉ๋๋ค.
Rule List ํญ์์ ๊ท์น์ด ๋ฑ๋ก๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด์ ์ฌ์ฉ์๊ฐ MongoDB ์์ ํด๋น Collection ์ Document ๋ฅผ ์กฐํํ ๊ฒฝ์ฐ ์ ์ฉํ ๋ง์คํน ํจํด์ ๋ฐ๋ผ ์ฌ์ ์ ์ง์ ํ Attribute ์ Value ๊ฐ์ด โ*****@gmail.comโ์ ๊ฐ์ด ๋ง์คํน๋์ด ํ์๋ฉ๋๋ค.
Collection / JSON Value ์ ๊ทผ ์ ํ ์ ์ฑ ์ ๊ท์น ๋ฑ๋กํ๊ธฐ
์ ์ฑ ์ ์์ฑํ๊ณ ๋๋ฉด, ์ค์ ๋ก ์ ์ฑ ์ ์ ์ฉํ ๋ฐ์ดํฐ์ ๊ฒฝ๋ก๋ฅผ ๊ท์น์ผ๋ก ๋ฑ๋กํฉ๋๋ค.
Data Access ๋ฉ๋ด์์ ์์ฑํ ์ ์ฑ ์ ํด๋ฆญํฉ๋๋ค.
์ ์ฑ ์ธ๋ถ ์ ๋ณด ๋ฐ ๊ท์น ๋ฑ๋ก ํ๋ฉด์ด ํ์๋๊ณ ์ฐ์ธก์์
Add Rule List
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.์ ์ฑ ์ ์ ์ฉํ ๋ฐ์ดํฐ์ ๊ฒฝ๋ก๋ฅผ ์ฐจ๋ก๋๋ก ์ ํํฉ๋๋ค.
Database Name : ๊ท์น ๋ฑ๋ก์ ์ํ ํ์ ๊ฐ์ ๋๋ค.
Table Name : ๊ท์น ๋ฑ๋ก์ ์ํ ํ์ ๊ฐ์ ๋๋ค. ํ ์ด๋ธ๋ง ์ ํํ ๊ฒฝ์ฐ, ํด๋น ํ ์ด๋ธ ์กฐํ ์์ฒด๊ฐ ๋ถ๊ฐ๋ฅํ๋๋ก ์ ํ๋ฉ๋๋ค. MongoDB ์ ๊ฒฝ์ฐ Collection ์ด๋ฆ์ ์ ๋ ฅํฉ๋๋ค.
Column Name : MongoDB ์์๋ Document ๋ด์ ํน์ Value ์ ๋ํ์ฌ ๋ฐ์ดํฐ ์ ๊ทผ์ ์ ํํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ JSON Attribute ๊ฐ์ ์ ๋ ฅํฉ๋๋ค.
ํด๋น ๋ฐ์ดํฐ ์กฐํ๊ฐ ํ์ํ ์ฌ์ฉ์ ๋๋ ๊ทธ๋ฃน์ ํํด ์ ๊ทผ ์ ํ ๊ท์น์ ์์ธ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
Allowed Users : ํด๋น ๊ท์น์ ์์ธ์ฒ๋ฆฌํ ์ฌ์ฉ์ ๋๋ ๊ทธ๋ฃน์ ์ ํํฉ๋๋ค.
Ok
๋ฒํผ ํตํด ์ ์ฅํฉ๋๋ค.
Rule List ํญ์์ ๊ท์น์ด ๋ฑ๋ก๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด์ ์ฌ์ฉ์๊ฐ ํด๋น ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๋ฉด, ํ ์ด๋ธ์ ์ ์ฑ ์ด ์ ์ฉ๋ ๊ฒฝ์ฐ ํ ์ด๋ธ ์์ฒด๋ฅผ ์กฐํํ ์ ์๊ณ , ์ปฌ๋ผ์ ๊ท์น์ด ์ ์ฉ๋ ๊ฒฝ์ฐ {RESTRICTED} ๋ก ํ์๋ฉ๋๋ค.
JSON PATH ์์
์ ์ฑ ์ ์ ์ฉํ MongoDB์ ๋ฐ์ดํฐ์ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
{
_id: ObjectId("64b3f7ad344ac8c881a09dc6"),
item: "journal",
qty: 25,
tags: ["blank", "red"],
size: {
h: 14,
w: 21,
uom: "cm"
}
}
Case 1. item ์์ฑ ์ ๊ทผ ์ ํ
ํ๋์ ์์ฑ์ ๋ํด ์ ๊ทผ์ ํ ์ ์ฑ
์ ์ค์ ํ ๊ฒฝ์ฐ โColumn Nameโ ํญ๋ชฉ์ ํด๋นํ๋ item์ ์
๋ ฅ ํ OK
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด item(โT_PWDโ) ์์ฑ์ ๊ฐ์ด โRestricted Columnโ์ผ๋ก ํ์๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Case 2. size.h ์์ฑ ์ ๊ทผ ์ ํ
sizeํ์์ h์์ฑ์ ๋ํด ์ ๊ทผ์ ํ ์ ์ฑ
์ ์ค์ ํ ๊ฒฝ์ฐ โColumn Nameโ ํญ๋ชฉ์ $.size.h์ ์
๋ ฅ ํ OK
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด size ํ์์ h์์ฑ์ ๊ฐ์ด โRestricted Columnโ์ผ๋ก ํ์๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Case 3. size ํ์ ๋ชจ๋ ์์ฑ ์ ๊ทผ ์ ํ
size ํ์์ ๋ชจ๋ ์์ฑ์ ๋ํด ์ ๊ทผ์ ํ ์ ์ฑ
์ ์ค์ ํ ๊ฒฝ์ฐ โColumn Nameโ ํญ๋ชฉ์ $.size์ ์
๋ ฅ ํ OK
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด size ํ์์ ๋ชจ๋ ์์ฑ์ ๊ฐ์ด โRestricted Columnโ์ผ๋ก ํ์๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
Case 4. tags ์์ฑ์ ๋ฆฌ์คํธ 2๋ฒ์งธ ๊ฐ์ ๋ํ ์ ๊ทผ ์ ํ
tags์์ฑ์ ๋ฆฌ์คํธ ๊ฐ ์ค 2๋ฒ์งธ ๊ฐ์ ๋ํ ์ ๊ทผ์ ํ ์ ์ฑ
์ ์ค์ ํ ๊ฒฝ์ฐ โColumn Nameโ ํญ๋ชฉ์ $.tags[1]์ ์
๋ ฅ ํ OK
๋ฒํผ์ ํด๋ฆญํฉ๋๋ค.
์ ์คํฌ๋ฆฐ์ท๊ณผ ๊ฐ์ด tags์์ฑ์ 2๋ฒ์งธ ๊ฐ์ด โRestricted Columnโ์ผ๋ก ํ์๋๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.