๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
CS/Database

MongoDB, compass(MongoDB GUI Client) ์„ค์น˜ํ•˜๊ธฐ(MacOS)

by ์ฃผ๋ฐœ2 2021. 7. 21.
๋ฐ˜์‘ํ˜•

์•ˆ๋…•ํ•˜์„ธ์š”! ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” MacOS์— ๋ชฝ๊ณ ๋””๋น„๋ฅผ ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

๋ชฝ๊ณ ๋””๋น„๋ฅผ ์„ค์น˜ํ•˜๊ธฐ์ „์— ๋ชฝ๊ณ ๋””๋น„์™€ NoSQL์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ์‚ดํŽด๋ณด๊ณ , ์„ค์น˜๋ฅผ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

โ€ป ๋ชฝ๊ณ ๋””๋น„๋Š” ์ฒ˜์Œ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ๋•Œ๋ฌธ์— ์ž˜๋ชป๋œ ๋‚ด์šฉ์ด ์กด์žฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๐Ÿ˜ญ

 

 

 

NoSQL ์ด๋ž€?

Wiki์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹จ์–ด ๋œป ์ž์ฒด๋ฅผ ๋”ฐ์ง€๋ฉด "Not only SQL"๋กœ SQL๋งŒ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์ง€์นญํ•˜๋Š” ๋‹จ์–ด์ž…๋‹ˆ๋‹ค.

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์˜๋ฏธ๊ฐ€ ์•„๋‹Œ, ์—ฌ๋Ÿฌ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

 

๋˜ํ•œ ๊ธฐ์กด์˜ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ•œ๊ณ„๋ฅผ ๊ทน๋ณตํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ์†Œ๋กœ ๋ฌธ์„œ, ๊ทธ๋ž˜ํ”„, key-value, ์ธ๋ฉ”๋ชจ๋ฆฌ, ๊ฒ€์ƒ‰ ๋“ฑ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

์ž์„ธํ•œ ๋‚ด์šฉ์€ mongoDB์˜ ๊ณต์‹๋ฌธ์„œ์— ๋ณด๋‹ค ์ž์„ธํžˆ ์„ค๋ช…์ด ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

 

MongoDB ๋ž€?

๊ณต์‹๋ฌธ์„œ์—๋Š” ๋ชฝ๊ณ ๋””๋น„๋ฅผ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋ชฝ๊ณ ๋””๋น„๋Š” ํ•„์š”ํ•œ ์ฟผ๋ฆฌ ์ œ๊ณต ๋ฐ ์ธ๋ฑ์‹ฑ์„ ํ™œ์šฉํ•ด ์›ํ•˜๋Š” ์ˆ˜์ค€์˜ ํ™•์žฅ์„ฑ๊ณผ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž…๋‹ˆ๋‹ค.

 

๋ชฝ๊ณ ๋””๋น„๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

  • JSON ํ˜•์‹์˜ ๋ฐ์ดํ„ฐ๊ตฌ์กฐ๋กœ ๋ฌธ์„œ(Document)์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ์ฆ‰, ํ•„๋“œ๊ฐ€ ๋ฌธ์„œ์— ๋”ฐ๋ผ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์‹œ๊ฐ„์— ๋”ฐ๋ผ ๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฌธ์„œ ๋ชจ๋ธ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์˜ ๊ฐ์ฒด๋“ค๋กœ ๋งตํ•‘ํ•˜๋ฉฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ž‘์—…ํ•˜๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
  • ์ž„์‹œ ์ฟผ๋ฆฌ, ์ธ๋ฑ์‹ฑ, ์‹ค์‹œ๊ฐ„ ์ง‘ํ•ฉ ๊ฐ•๋ ฅํ•œ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๋ฐ ๋ถ„์„ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • MongoDB๋Š” ์ฝ”์–ด์—์„œ ๋ฐฐํฌ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋†’์€ ๊ฐ€์šฉ์„ฑ ๋ฐ ์ˆ˜ํ‰์  ํ™•์žฅ ๋“ฑ ์‚ฌ์šฉ์ด ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค.
  • Sharding(๋ถ„์‚ฐ) / Replica(๋ณต์ œ) ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

MongoDB ์•„ํ‚คํ…์ฒ˜ 

 

 

 

 

MongoDB ์„ค์น˜ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ

์ด์ œ ๋ชฝ๊ณ ๋””๋น„๋ฅผ ์„ค์น˜ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ €๋Š” MacOS(M1)์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, Homebrew๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃฐ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

โ€ป ํ˜น์‹œ Homebrew ์„ค์น˜๋ฅผ ์•ˆํ•˜์‹ ๊ฒฝ์šฐ M1 Homebrew ์„ค์น˜ ๋งํฌ๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

 

1) ๋จผ์ € ํ„ฐ๋ฏธ๋„์— ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.

brew tap mongodb/brew

brew install mongodb-community

 

 

2) ๋ชฝ๊ณ ๋””๋น„ ์‹คํ–‰(start) ๋ฐ ์ •์ง€(stop) ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

brew services start mongodb-community

brew services stop mongodb-community

brew services start mongodb-community ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ๋ชฝ๊ณ ๋””๋น„๋ฅผ ์‹คํ–‰ํ•˜๊ณ , ๋ชฝ๊ณ ๋””๋น„ ๊ธฐ๋ณธํฌํŠธ(27017)๋กœ ์ ‘์†ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

๋ชฝ๊ณ ๋””๋น„๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋œ ๊ฒฝ์šฐ์—๋Š” ์œ„์™€ ๊ฐ™์€ ๋ฌธ๊ตฌ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

 

๋‹ค์Œ์œผ๋กœ ๋ชฝ๊ณ ๋””๋น„ ํ…Œ์ŠคํŠธ ๋ฐ GUI ํˆด์ธ compass๋ฅผ ์„ค์น˜ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

https://zetawiki.com/wiki/%EC%9D%BC%EC%96%B4%EB%82%98_%EC%BD%94%EB%94%A9%ED%95%B4%EC%95%BC%EC%A7%80

 

 

 

 

๋ชฝ๊ณ ๋””๋น„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ

CLI ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ปฌ๋ ‰์…˜ ์ƒ์„ฑ ๋ฐ ์‚ญ์ œ๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

๋ชฝ๊ณ ๋””๋น„๋ฅผ ์‹คํ–‰ํ•œ ์ƒํƒœ์—์„œ mongo ๋ฅผ ์ž…๋ ฅํ•œ ํ›„ ์œ„ ์‚ฌ์ง„์ฒ˜๋Ÿผ > ๊ฐ€ ์ถœ๋ ฅ๋˜๋„๋ก ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

๋ชฝ๊ณ ๋””๋น„์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์ปฌ๋ ‰์…˜ ๊ด€๋ จํ•ด์„œ ๋ฌธ๋ฒ•์„ ๊ฐ„๋žตํžˆ ๋‚˜ํƒ€๋‚ด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

// ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ
use ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ช…

// ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™•์ธ
show dbs;

// ์ปฌ๋ ‰์…˜ ์ƒ์„ฑ
db.createCollection('์ปฌ๋ ‰์…˜๋ช…');

// ์ปฌ๋ ‰์…˜ ํ™•์ธ
show collections;

// ์ปฌ๋ ‰์…˜ ์‚ญ์ œ
db.์ปฌ๋ ‰์…˜๋ช….drop();

// ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‚ญ์ œ
db.dropDatabase()

 

 

 

 

 

compass(๋ชฝ๊ณ ๋””๋น„ GUI) ์„ค์น˜ ๋ฐ ์‹คํ–‰ํ•˜๊ธฐ

์ €๋Š” ์ฃผ๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ธ MySQL์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ์š”, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ• ๋•Œ๋Š”

์œ„์™€๊ฐ™์ด CLI๊ฐ€ ์•„๋‹Œ MySQL Workbench ๋ผ๋Š” GUI ๊ธฐ๋ฐ˜์˜ ํˆด์„ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

๋”ฐ๋ผ์„œ ๋ชฝ๊ณ ๋””๋น„๋„ ์œ„์™€ ๊ฐ™์€ ํ„ฐ๋ฏธ๋„ํ˜•์‹์ด ์•„๋‹Œ, ์ข€ ๋” ํŽธ๋ฆฌํ•œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•œ GUI ๊ธฐ๋ฐ˜์˜ compass ๋ผ๋Š” ํ”„๋กœ๊ทธ๋žจ์„

์„ค์น˜ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

โ€ป ๋ชฝ๊ณ ๋””๋น„๋Š” compass์™€ Studoi 3T, Robo 3T ๋“ฑ ์ด 9๊ฐ€์ง€์˜ GUI Client Tools์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ compass๋Š” ๋ชฝ๊ณ ๋””๋น„์—์„œ ๊ณต์‹์ ์œผ๋กœ ๋ฐฐํฌํ•˜๊ณ  ์žˆ๋Š” ํˆด์ด๊ธฐ ๋•Œ๋ฌธ์—, ํ•ด๋‹น ํˆด์„ ์„ค์น˜ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

 

 

1) ๋จผ์ € ์•„๋ž˜ ์‚ฌ์ดํŠธ์—์„œ MacOS ์ „์šฉ ํŒŒ์ผ์„ ๋‹ค์šด๋ฐ›๊ณ  ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

https://www.mongodb.com/try/download/compass

 

MongoDB Compass Download

MongoDB Compass, the GUI for MongoDB, is the easiest way to explore and manipulate your data. Download for free for dev environments.

www.mongodb.com

 

 

 

2) ๋ชฝ๊ณ ๋””๋น„ compass Connect

์œ„์—์„œ ์‹คํ–‰ํ•œ ๋ชฝ๊ณ ๋””๋น„์™€ ์—ฐ๊ฒฐ์„ ์œ„ํ•ด Fill in connection fields individually ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

 

 

๋ฐ”๋กœ Connect๋ฅผ ํด๋ฆญํ•ด์„œ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

 

 

๊ทธ๋Ÿผ ๊ฐ„๋‹จํžˆ ์—ฐ๊ฒฐ์ด ๋˜๋ฉด์„œ ์ด์ „์— ์ƒ์„ฑํ–ˆ๋˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋””ํดํŠธ๋กœ ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋“ค(admin, config, local)์ด

์กด์žฌํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ‘

 

์ด์ƒ์œผ๋กœ ๋ชฝ๊ณ ๋””๋น„์˜ ์„ค์น˜ ๋ฐ GUI ํด๋ผ์ด์–ธํŠธ ํˆด(compass)๋ฅผ ์„ค์น˜ํ•˜๊ณ , ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ๋ชฝ๊ณ ๋””๋น„๋ฅผ ํ†ตํ•ด ๊ฐ„๋‹จํ•œ CRUD ์ž‘์—…์„ ์ง„ํ–‰ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค :)

 

 

 

References

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€