๋ฌธ์„œ ๋ฉ”๋‰ด

๋ฌธ์„œ ํ™ˆ โ†’ ๋ณด๊ธฐ & ๋ฐ์ดํ„ฐ ๋ถ„์„ โ†’ MongoDB Shell

๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ธฐ

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

์ด ํŽ˜์ด์ง€์—์„œ๋Š” MongoDB Shell์„ ์‚ฌ์šฉํ•˜์—ฌ MongoDB deployment์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. MongoDB Atlas ํด๋ผ์šฐ๋“œ ํ˜ธ์ŠคํŒ… ๋ฐฐํฌ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜, ๋กœ์ปฌ ๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜, MongoDB Shell์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MongoDB Shell์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐํ•  MongoDB deployment๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MongoDB Shell์„ ์‚ฌ์šฉํ•˜์—ฌ 4.2 ์ด์ƒ ๋ฒ„์ „์˜ MongoDB์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ ˆ์ฐจ๋Š” mongosh๊ฐ€ ์ด๋ฏธ ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. mongosh ์„ค์น˜์— ๊ด€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋Š” mongosh ์„ค์น˜์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

์…ธ์—์„œ MongoDB Atlas ๋ฐฐํฌ์„œ๋ฒ„์— ์ง์ ‘ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1

MongoDB ์…ธ์—์„œ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด Atlas ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. Atlas UI์—์„œ Atlas ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์„ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ MongoDB Atlas ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ์ฐพ๊ธฐ ๊ฐ€์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

2

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ฌ์šฉ์ž๋ฅผ ์•„์ง ์ƒ์„ฑ ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Atlas์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉ์ž ์ด๋ฆ„์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. Atlas์— ์—ฐ๊ฒฐํ•  ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ์…ธ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

3

์—ฐ๊ฒฐ์„ ์„ค์ •ํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ๋ฐ ์—ฐ๊ฒฐ ์„ค์ • ์˜ต์…˜์„ ํฌํ•จํ•˜์—ฌ mongosh ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์—๋Š” ๋‹ค์Œ ์š”์†Œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  • ํด๋Ÿฌ์Šคํ„ฐ ์ด๋ฆ„

  • ํ•ด์‹œ

  • API ๋ฒ„์ „์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ

  • ์—ฐ๊ฒฐ์— ์‚ฌ์šฉํ•  ์‚ฌ์šฉ์ž ์ด๋ฆ„์— ๋Œ€ํ•œ ํ”Œ๋ž˜๊ทธ

๋‹ค์Œ ๋ฌธ์ž์—ด๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

mongosh "mongodb+srv://YOUR_CLUSTER_NAME.YOUR_HASH.mongodb.net/" --apiVersion YOUR_API_VERSION --username YOUR_USERNAME

์ฐธ๊ณ 

์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ

๋‹ค๋ฅธ ์—ฐ๊ฒฐ ๋ณด์•ˆ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ mongosh ์„(๋ฅผ) ํ†ตํ•ด Atlas์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”ผ์–ด๋ง ๋˜๋Š” ๋น„๊ณต๊ฐœ ์—”๋“œํฌ์ธํŠธ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด ๋น„๊ณต๊ฐœ IP๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ mongosh๋ฅผ ํ†ตํ•œ Atlas ์—ฐ๊ฒฐ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ธฐ๋ณธ ํฌํŠธ 27017๋กœ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋Š” MongoDB ๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์˜ต์…˜ ์—†์ด mongosh๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

mongosh

์ด๋Š” ๋‹ค์Œ ๋ช…๋ น๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

mongosh "mongodb://localhost:27017"

๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์—์„œ ์—ฐ๊ฒฐํ•  ํฌํŠธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋ช…๋ น์€ ๋‹ค์Œ์—์„œ ์‹คํ–‰๋˜๋Š” ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. localhost ํฌํŠธ 28015:

mongosh "mongodb://localhost:28015"
mongosh --port 28015

๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์™€ ํฌํŠธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์„ ํƒํ•œ ํ˜ธ์ŠคํŠธ ๋ฐ ํฌํŠธ๊ฐ€ ํฌํ•จ๋œ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ์ž…๋‹ˆ๋‹ค.

  • ๋ฐ --host ๋ฐ --port ๋ช…๋ น์ค„ ์˜ต์…˜. --port ์˜ต์…˜์„ ์ƒ๋žตํ•˜๋ฉด mongosh๋Š” ๊ธฐ๋ณธ ํฌํŠธ 27017์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ๋ช…๋ น์€ mongodb0.example.com ํ˜ธ์ŠคํŠธ ๋ฐ 28015 ํฌํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ธ MongoDB ๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

mongosh "mongodb://mongodb0.example.com:28015"
mongosh --host mongodb0.example.com --port 28015

์ฐธ๊ณ 

MongoDB Atlas์— ์—ฐ๊ฒฐ

์›๊ฒฉ ํ˜ธ์ŠคํŠธ๊ฐ€ Atlas cluster์ธ ๊ฒฝ์šฐ Atlas UI์—์„œ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์„ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด Atlas ์„ค๋ช…์„œ์—์„œ ํด๋Ÿฌ์Šคํ„ฐ์— ์—ฐ๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์–‘ํ•œ ์—ฐ๊ฒฐ ์˜ต์…˜์„ ์ง€์ •ํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ธ์ฆ์ด ํ•„์š”ํ•œ MongoDB ๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด --username ๋ฐ --authenticationDatabase ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. mongosh๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•˜๋ฉฐ, ์ž…๋ ฅํ•˜๋Š” ๋ฉ”์‹œ์ง€๋Š” ์ˆจ๊ฒจ์ง‘๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ์ž alice๋กœ ์ธ์ฆํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์„ธ์š”.

mongosh "mongodb://mongodb0.example.com:28015" --username alice --authenticationDatabase admin

ํ”„๋กฌํ”„ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  ์—ฐ๊ฒฐ ๋ช…๋ น์˜ ์ผ๋ถ€๋กœ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ œ๊ณตํ•˜๋ ค๋ฉด --password ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋“œ๋ผ์ด๋ฒ„์™€ ๊ฐ™์ด mongosh ์„ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

OpenID Connect ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด --authenticationMechanism ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๊ณ  MONGODB-OIDC ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. mongosh ๋Š” ID ์ œ๊ณต์ž์˜ ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ €๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜ ๋‚ด์šฉ์€ MONGODB-OIDC๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ์ปฌ ๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

mongosh "mongodb://localhost/" --authenticationMechanism MONGODB-OIDC

LDAP๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • --username ๋ฅผ security.ldap.authz.queryTemplate ๋˜๋Š” ๊ตฌ์„ฑ๋œ security.ldap.userToDNMapping ํ…œํ”Œ๋ฆฟ์„ ์ค€์ˆ˜ํ•˜๋Š” ์‚ฌ์šฉ์ž ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • --password๋ฅผ ์ ์ ˆํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์ค„ ์˜ต์…˜์— ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด --password mongosh ์—์„œ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • --authenticationDatabase๋ฅผ $external๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์…ธ์ด $external์„ ๋ณ€์ˆ˜๋กœ ํ•ด์„ํ•˜๋Š” ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด $external ์ธ์ˆ˜๋ฅผ ํฐ๋”ฐ์˜ดํ‘œ๊ฐ€ ์•„๋‹Œ ์ž‘์€๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • --authenticationMechanism์„ PLAIN๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

LDAP ์ธ์ฆ์— ์ผํšŒ์šฉ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์— ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ์˜ต์…˜ maxPoolSize=1&srvMaxHosts=1 ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ์—ฐ๊ฒฐ ์‹คํŒจ ๊ฐ€๋Šฅ์„ฑ์„ ์ค„์ด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

MongoDB ๋ฐฐํฌ์„œ๋ฒ„์˜ --host์™€ --port ๋ฐ ๋ฐฐํฌ์„œ๋ฒ„์™€ ๊ด€๋ จ๋œ ๋‹ค๋ฅธ ์˜ต์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ ์ž‘์—…์€ LDAP ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ๋ฅผ ํ†ตํ•ด ์‹คํ–‰ ์ค‘์ธ MongoDB deployment๋ฅผ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

mongosh --username alice@dba.example.com --password --authenticationDatabase '$external' --authenticationMechanism "PLAIN" --host "mongodb.example.com" --port 27017

์•„๋ž˜ ๋ฐฉ๋ฒ• ์ค‘ ํ•œ ๊ฐ€์ง€๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DNS ์‹œ๋“œ ๋ชฉ๋ก ์—ฐ๊ฒฐ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์— +srv ์ˆ˜์ •์ž๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด server.example.com์—์„œ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

mongosh "mongodb+srv://server.example.com/"

์ฐธ๊ณ 

+srv TLS ๋™์ž‘

+srv ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ์ˆ˜์ •์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ MongoDB๊ฐ€ --tls ์—ฐ๊ฒฐ ์˜ต์…˜์„ true๋กœ ์ž๋™ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋™์ž‘์„ ์žฌ์ •์˜ํ•˜๋ ค๋ฉด --tls๋ฅผ false๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์—์„œ ๊ฐœ๋ณ„ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ 3๊ฐœ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ replA๋ผ๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mongosh "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"

์ฐธ๊ณ 

directConnection ๋งค๊ฐœ๋ณ€์ˆ˜ ์ž๋™ ์ถ”๊ฐ€

์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์— ๊ฐœ๋ณ„ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋…ธ๋“œ๋ฅผ ์ง€์ •ํ•œ ๊ฒฝ์šฐ ์•„๋ž˜ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์— ํ•ด๋‹นํ•˜์ง€ ์•Š๋Š” ํ•œ mongosh๊ฐ€ directConnection=true๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • replicaSet ์ฟผ๋ฆฌ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์— ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์ด mongodb+srv:// ํ˜•์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์— ์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ๊ฐ€ ํฌํ•จ๋œ ์‹œ๋“œ ๋ชฉ๋ก์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์— ์ด๋ฏธ directConnection ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

directConnection=true์ผ ๊ฒฝ์šฐ ๋ชจ๋“  ์ž‘์—…์€ ์—ฐ๊ฒฐ URI๊ฐ€ ์ง€์ •ํ•œ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ์ž‘์—… ์ค‘ ํ•˜๋‚˜๋ฅผ ์‹คํ–‰ํ•˜์—ฌ TLS๋ฅผ ์ด์šฉํ•ด ๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • DNS ์‹œ๋“œ ๋ชฉ๋ก ์—ฐ๊ฒฐ ํ˜•์‹ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. +srv ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ์ˆ˜์ •์ž๋Š” ํ•ด๋‹น ์—ฐ๊ฒฐ์— ๋Œ€ํ•ด tls ์˜ต์…˜์„ true ์œผ)๋กœ ์ž๋™ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด tls๋ฅผ ํ™œ์„ฑํ™”ํ•˜์—ฌ DNS ์‹œ๋“œ ๋ชฉ๋ก์—์„œ ์ •์˜ํ•œ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    mongosh "mongodb+srv://server.example.com/"
  • ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์—์„œ --tls ์˜ต์…˜์„ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ์˜ต์…˜์œผ๋กœ tls๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    mongosh "mongodb://mongodb0.example.com:28015/?tls=true"
  • --tls ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ๋ฅผ ๋“ค์–ด tls๊ฐ€ ํ™œ์„ฑํ™”๋œ ์ƒํƒœ๋กœ ์›๊ฒฉ ํ˜ธ์ŠคํŠธ์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    mongosh "mongodb://mongodb0.example.com:28015" --tls

ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด URI ๊ฒฝ๋กœ ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. URI ๊ฒฝ๋กœ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด test ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์—์„œ qa ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์•„๋ž˜ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

mongosh "mongodb://localhost:27017/qa"

MongoDB Shell์—์„œ ์ด๋ฏธ ๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ, Mongo() ๋˜๋Š” connect() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MongoDB Shell ๋‚ด์—์„œ ๋‹ค๋ฅธ ๋ฐฐํฌ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋ฐฐํฌ์— ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด ์ƒˆ ์—ฐ๊ฒฐ ์—ด๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํ˜„์žฌ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜๋ ค๋ฉด db.getMongo() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฉ”์„œ๋“œ๋Š” ํ˜„์žฌ ์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด URI ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ์„œ๋ฒ„์˜ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•˜๊ณ  mongosh๋ฅผ ์ข…๋ฃŒํ•˜๋ ค๋ฉด ์•„๋ž˜ ์กฐ์น˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค:

  • .exit์ด๋‚˜ exit, exit()๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  • quit ๋˜๋Š” quit()๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

  • Ctrl + D๋ฅผ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

  • Ctrl + C๋ฅผ ๋‘ ๋ฒˆ ๋ˆ„๋ฆ…๋‹ˆ๋‹ค.

์ •ํ’ˆ์ด ์•„๋‹Œ MongoDB ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ฉด ์…ธ์— ๊ฒฝ๊ณ  ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์ •ํ’ˆ์ด ์•„๋‹Œ ์ธ์Šคํ„ด์Šค๋Š” ๋ˆ„๋ฝ๋˜๊ฑฐ๋‚˜, ์ผ๊ด€๋˜์ง€ ์•Š๊ฑฐ๋‚˜, ๋ถˆ์™„์ „ํ•œ ๊ธฐ๋Šฅ์œผ๋กœ ์ธํ•ด ๊ณต์‹ MongoDB ์ธ์Šคํ„ด์Šค์™€ ๋‹ค๋ฅด๊ฒŒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • Kerberos ์ธ์ฆ ์€ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์— authMechanismProperties=CANONICALIZE_HOST_NAME:true|false ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • authMechanismProperties=CANONICALIZE_HOST_NAME:forward

    • authMechanismProperties=CANONICALIZE_HOST_NAME:forwardAndReverse

    • authMechanismProperties=CANONICALIZE_HOST_NAME:none

  • mongosh ํ˜„์žฌ zlib ์••์ถ•๊ธฐ ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์••์ถ•๊ธฐ๋Š” ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    • zstd

    • snappy

  • mongosh 2.0.0๋ถ€ํ„ฐ ์‹œ์ž‘.

    ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด ์˜ ๋ถ€์šธ ๊ฐ’์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    • true ๋˜๋Š” false ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • true ๋Œ€์‹  1, y, yes, t๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

    • false ๋Œ€์‹  -1, 0, n, no, f๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

โ†ย ์„ค์น˜ mongosh

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ