๊ธฐ๋ก๋ฐฉ

DataGrip์œผ๋กœ MongoDB ์‚ฌ์šฉํ•˜๊ธฐ ๋ณธ๋ฌธ

Tips

DataGrip์œผ๋กœ MongoDB ์‚ฌ์šฉํ•˜๊ธฐ

Soom_1n 2023. 10. 31. 22:37
๐Ÿ’ก JetBrains์˜ DB๊ด€๋ฆฌํˆด์ธ DataGrip์„ ์ด์šฉํ•ด MongoDB๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์ž

 

DataGrip ๋ฉ”์ธํ™”๋ฉด

 

 

DataGrip: The Cross-Platform IDE for Databases & SQL by JetBrains

A powerful IDE from JetBrains for SQL on macOS, Windows, and Linux.

www.jetbrains.com

 


1. DataGrip ์„ค์น˜ & ์‹คํ–‰

๋‹ค์Œ์€ DataGrip์˜ ๋ฉ”์ธํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋ฐ›๊ฑฐ๋‚˜, JetBrains Toolbox๋ฅผ ์ด์šฉํ•ด ๋‹ค์šด๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

๋‚˜๋Š” IntelliJ๋ฅผ Toolbox์—์„œ ์“ฐ๊ณ  ์žˆ์œผ๋ฏ€๋กœ ๊ทธ๋Œ€๋กœ ๋‹ค์šด๋ฐ›์•„ ์‚ฌ์šฉํ–ˆ๋‹ค.

 

์ฐธ๊ณ ๋กœ ์ด ๊ธ€์€ ๋”ฐ๋กœ ๊ธฐ๋Šฅ์„ ๊ณต๋ถ€ํ•ด์„œ ์‚ฌ์šฉํ•ด ๋ณธ๊ฒƒ์ด ์•„๋‹Œ, ํ˜ผ์ž ๋š๋”ฑ๊ฑฐ๋ฆฌ๋ฉด์„œ ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ฐพ์•„ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์„ ์ ์€ ๊ฒƒ์ด๋‹ค. ์ƒˆ๋กญ๊ฒŒ ์•Œ๊ฒŒ๋˜๋Š” ๊ธฐ๋Šฅ์ด ์žˆ์œผ๋ฉด ์—…๋ฐ์ดํŠธ ํ•  ์ƒ๊ฐ์ด๋‹ค.

 

Toolbox๋Š” ๊ฐ„๋‹จํ•˜๊ฒŒ IntelliJ์˜ ์„œ๋น„์Šค๋“ค์„ ์ด์šฉํ•˜๊ณ  ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์žˆ์–ด์„œ ํŽธ๋ฆฌํ•˜๋‹ค.

 

2. ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

๋‚œ ์ด๋ฏธ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์•„์–˜ ์ฒ˜์Œ ์‹œ์ž‘ํ•œ ํ™”๋ฉดํ•˜๊ณ ๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ ๊ธฐ๋Šฅ์€ ๋น„์Šทํ• ํ…๋ฐ, ๋จผ์ € New Project๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.

์•„์ฃผ ๋š๋”ฑ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ๋Š”๋ฐ, ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์ด์ œ ๋ญ˜ ํ•  ์ˆ˜ ์žˆ์„๊นŒ ์‹ถ์„ ๊ฒƒ์ด๋‹ค.

๋‚œ DBeaver๋ฅผ ์ด๋ฏธ ์‚ฌ์šฉํ•ด๋ดค๊ณ , ๋น„์Šทํ•œ ํˆด์ด๋ผ๊ณ  ๋“ค์—ˆ๊ธฐ๋•Œ๋ฌธ์— ์–ด๋ ต์ง€ ์•Š๊ฒŒ ๋‹ค์Œ ์ž‘์—…์œผ๋กœ DB๋ฅผ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

์™ผ์ชฝ Database Exploer ์ฐฝ์—์„œ +๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ DB ์ปค๋„ฅ์…˜์„ ์ถ”๊ฐ€ํ•˜์ž.

 

์ฐธ๊ณ ๋กœ ์ƒ๋‹จ UI๊ฐ€ ๋‹ค๋ฅผ ์ˆ˜ ์žˆ๋Š”๋ฐ, IntelliJ์—์„œ ์ƒˆ๋กœ ๋‚˜์˜จ Enable new UI๋ฅผ ์ฒดํฌํ•ด๋’€๋”๋‹ˆ DataGrip๋„ ๊ทธ UI๊ฐ€ ๊ทธ๋Œ€๋กœ ์ ์šฉ๋˜์—ˆ๋‹ค. ๊น”๋”ํ•˜๊ณ  ์ด์˜๊ธดํ•˜๋‹ค.

๋˜ ํ•˜๋‚˜, Exploer์ฐฝ์ด ๊บผ์ง„๋‹ค๋ฉด ์ƒ๋‹จ ๋ฉ”๋‰ด์—์„œ View - Tool Windows - Database Exploer๋กœ ๋‹ค์‹œ ์—ด ์ˆ˜ ์žˆ๋‹ค.

 

3. MongoDB ์—ฐ๊ฒฐ

Data Source๋ฅผ๋ณด๋ฉด ๋งŽ์€ DB์ข…๋ฅ˜๋“ค์ด ์žˆ๋‹ค. ์ด DB๋“ค๊ณผ์˜ ์—ฐ๊ฒฐ์„ ๋™์‹œ์— ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚˜๋„ ์จ๋ณด์ง„ ์•Š์•˜๋Š”๋ฐ, ์•„๋ž˜ Data Source from URL์€ SSH๋กœ ์—ฐ๊ฒฐํ•˜๋“ฏ์ด DB์ด๋ฆ„๊ณผ ์‚ฌ์šฉ์ž ์•„์ด๋””/๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ์ด ํฌํ•จ๋œ ํ•œ์ค„ ์ฃผ์†Œ๋กœ๋„ ์—ฐ๊ฒฐ์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์–ด๋ณด์ธ๋‹ค.

 

์นธ๋“ค์ด ๋‹ค ๋น„์–ด์žˆ๋Š”๋ฐ, ์›๋ž˜ DB๋ฅผ ์™ธ๋ถ€์—์„œ ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ํ•„์š”ํ•œ ๊ฒƒ๋“ค์ด host, port, user, pw ๋ฅผ ๊ธฐ๋ณธ์œผ๋กœ ์•”ํ˜ธํ‚ค ๋“ฑ์ด ํ•„์š”ํ•˜๋‹ค. Name์ด๋‚˜ Comment๋Š” DataGrip์•ˆ์—์„œ ๊ตฌ๋ถ„ํ•˜๋ ค๊ณ  ์žˆ๋Š” ๊ฒƒ์ธ ๊ฒƒ ๊ฐ™์•„ ๋งˆ์Œ๋Œ€๋กœ ์ด๋ฆ„์„ ์ง€์—ˆ๋‹ค.

 

 

MongoDB์˜ ๊ธฐ๋ณธ ํฌํŠธ๋ฒˆํ˜ธ๋Š” 27017์ด๋ฏ€๋กœ ๋”ฑํžˆ ๊ฐ€๋ฆฌ์ง„ ์•Š์•˜๊ณ , ๋‹ค๋ฅธ๊ฑฐ๋“ค์€ ์กฐ์‹ฌํ•˜์ž.

์—ฌ๊ธฐ์„œ MongoDB๋Š” ์—ฐ๊ฒฐํ•  ๋•Œ ๊ผญ ์•”ํ˜ธํ™”๋ฅผ ๋ช…์‹œํ•ด์ค˜์•ผํ•˜๋Š”๋ฐ, SCRAM-SHA-1์„ ์„ ํƒํ•ด์คฌ๋‹ค.

๋ชจ๋‘ ์ž…๋ ฅ ํ›„ ์™ผ์ชฝํ•˜๋‹จ์˜ Test Connection์„ ๋ˆŒ๋Ÿฌ ํ™•์ธํ•ด๋ณด์ž. ์˜ค๋ฅ˜๊ฐ€ ๋œฌ๋‹ค๋ฉด ๊ตฌ๊ธ€๋ง์ด ํ•„์š”ํ•˜๋‹ค.

 

์—ฐ๊ฒฐ์ด ์„ฑ๊ณตํ–ˆ๋‹ค๊ณ  ๋œจ๋ฉด OK๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋น ์ ธ๋‚˜์˜จ๋‹ค.

 

์™ผ์ชฝ์— ๋ฐฉ๊ธˆ ๋งŒ๋“  ์ปค๋„ฅ์…˜์ด ์ถ”๊ฐ€๋˜์–ด์žˆ๋‹ค. 

 

4. MongoDB ๋งŒ์ ธ๋ณด๊ธฐ

ํ˜„์žฌ ์ง„ํ–‰์ค‘์ธ ํ”„๋กœ์ ํŠธ์˜ MongoDB๋ฅผ ์—ฐ๊ฒฐํ•ด๋ดค๋Š”๋ฐ, ๊ฐ๊ฐ ์„ค๋ช…ํ•˜์ž๋ฉด sapier๊ฐ€ ํ”„๋กœ์ ํŠธ์˜ MongoDB ์ด๋ฆ„, collections์— ํ•˜์œ„ ์ปฌ๋ ‰์…˜๋“ค์ธ book, Colelction, Request, User, WorkSpace๊ฐ€ ๋ชจ์—ฌ์žˆ๋‹ค.

Collection์ด๋‚˜ Request๊ฐ™์€ ์ด๋ฆ„์˜ ์ปฌ๋ ‰์…˜์— ํ—ท๊น”๋ฆฌ์ง€ ๋ง๋„๋ก ์ฃผ์˜ํ•˜์ž. ๊ทธ๋ƒฅ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์—์„œ ์ปฌ๋ ‰์…˜ ์ด๋ฆ„์„ ์ €๋ ‡๊ฒŒ ์ง€์ • ํ•  ํ•„์š”๊ฐ€ ์žˆ๋˜ ๊ฒƒ์ด๋‹ค.

์ฐธ๊ณ ๋กœ Refresh๋ฅผ ์ž์ฃผํ•ด์ค˜์•ผํ• ํ…๋ฐ, ์ƒ๋‹จ์˜ ์ˆœํ™˜ ์•„์ด์ฝ˜์ด๊ณ  ๋‹จ์ถ•ํ‚ค๋Š” Ctrl+F5์ด๋‹ค. 

์ปฌ๋ ‰์…˜์„ ํŽผ์น˜๋ฉด ํ•˜์œ„ ํด๋”๋กœ fields๊ฐ€ ์žˆ์ง€๋งŒ, ๊ทธ๋ƒฅ ์†์„ฑ๋“ค์„ ๊ฐ„๋‹จํžˆ ๋ณด๊ณ ์‹ถ์„๋•Œ ์“ฐ๊ณ , ๋ฐ์ดํ„ฐ๋Š” ์ปฌ๋ ‰์…˜์„ ๋”๋ธ” ํด๋ฆญํ•˜๋ฉด ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

 

 

์ด๊ฑฐ์ €๊ฑฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ณ ์žˆ์–ด์„œ ์ง€์ €๋ถ„ํ•œ ๋ชจ์Šต์ด๋‹ค...

ํ‘œ์˜ ์ตœ์ƒ๋‹จ์— ์†์„ฑ๋“ค์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, NoSQL๋‹ต์ง€ ์•Š๊ฒŒ ํ‘œํ˜•์‹์œผ๋กœ ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹๊ธฐ๋„ํ•˜๊ณ  ๋ถˆํŽธํ•˜๊ธฐ๋„ ํ•˜๋‹ค.

Tree๋‚˜ Text๋กœ ๋ณด๊ธฐ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฐ์ดํ„ฐ ์ˆ˜์ •์€ Table ๋ณด๊ธฐ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

๊ฐ„๋‹จํžˆ ์œ„์— +์™€ -๋Š” Row ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•˜๋Š” ์•„์ด์ฝ˜์ด๋‹ค.

 

ํ‘œ์—์„œ ์šฐํด๋ฆญํ•ด๋„ ์ฐพ์•„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ ์„ธ๋กœ ๊ฐ’์ธ ์ปฌ๋Ÿผ ์†์„ฑ์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ง€์šธ ์ˆ˜๋„ ์žˆ๋‹ค.

์ปฌ๋Ÿผ์€ ์ดˆ๋ฐ˜์—๋งŒ ์ˆ˜์ • ํ•  ์ผ์ด ์žˆ์—ˆ์–ด์„œ ๋‹จ์ถ•ํ‚ค๋ฅผ ์ž ์‹œ ๊ธฐ์–ตํ•˜๊ณ  ์‚ฌ์šฉํ–ˆ๋‹ค. ์ง€๊ธˆ์€ ๋˜ ๊นŒ๋จน์—ˆ๋‹ค.

 

์ด๊ฒŒ ์ข€ ์ค‘์š”ํ•œ๋ฐ, ์•„๋ฌด๋ฆฌ ์ˆ˜์ •์„ํ–ˆ๋”๋ผ๋„ ์ƒ๋‹จ์˜ ์ดˆ๋ก์ƒ‰ ํ™”์‚ดํ‘œ๋ฅผ ๋ˆŒ๋Ÿฌ Submit์„ํ•ด์•ผ ์ €์žฅ์ด ๋˜๊ณ  DB์— ๋ฐ˜์˜๋œ๋‹ค.

๋ˆ„๋ฅด์ง€ ์•Š๊ณ  ์ƒˆ๋กœ๊ณ ์นจํ•˜๊ฑฐ๋‚˜ View๋ฅผ ๋‹ค์‹œ ํ‚ค๋Š” ๋“ฑ ํ•˜๋ฉด ๊ฒจ์šฐ ๋งŒ๋“ค์–ด๋†“์€ ์†์„ฑ์ด ๋‚ ์•„๊ฐ€๋Š” ๋ผˆ์•„ํ”ˆ ์ผ์ด ๋ฐœ์ƒํ•œ๋‹ค....

 

๋ฐ์ดํ„ฐ ์‚ฝ์ž…์— ์˜ค๋ฅ˜๊ฐ€๋‚ฌ๋Š”๋ฐ ๊ทธ๋ƒฅ key-value ํ˜•์‹์„ ์•ˆ์ง€ํ‚ค๊ณ  key๋งŒ ์ ์–ด์„œ ๊ทธ๋ ‡๋‹ค.

 

์‚ฌ์‹ค ์ฒ˜์Œ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์œผ๋ฉด ํšŒ์ƒ‰ ๊ธ€์ž๋กœ ๋œฐํ…๋ฐ, String์œผ๋กœ ์ธ์‹๋˜์–ด์„œ ๊ทธ๋ ‡๋‹ค. Object๋กœ ์ธ์‹์‹œ์ผœ์•ผ ์ดˆ๋ก์ƒ‰์œผ๋กœ ๋‚˜ํƒ€๋‚œ๋‹ค. key-value๋กœ ๋‚˜ํƒ€๋‚ด๊ณ ์‹ถ์œผ๋ฉด Object๋กœ ๋ฐ”๊ฟ”์•ผํ•˜๋Š”๋ฐ, ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ ๋ชจ๋ฅด๊ฒ ๊ณ  ๋‚ด๊ฐ€ ์ฐพ์€ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

๋ฐ์ดํ„ฐ๋ฅผ ์šฐํด๋ฆญํ•˜๋ฉด Open in Value Ediotr๋ผ๊ณ  ์žˆ๋‹ค. ์—ด์–ด๋ณธ๋‹ค.

 

์ด๋ ‡๊ฒŒ ์šฐ์ธก์— ์—ด๋ฆฌ๋Š”๋ฐ, ์ตœ๋Œ€ ๊ฐ€๋กœ ํญ 50%๊นŒ์ง€ ํ‚ค์šธ ์ˆ˜ ์žˆ๋‹ค.

์ผœ์ง„ ์ฐฝ์—์„œ ์šฐ์ธก ์ƒ๋‹จ์„ ๋ณด๋ฉด ์ž๋ฃŒํ˜•์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ Object๊ฐ€ ์žˆ๋‹ค.

 

Object๋กœ ๋ฐ”๊พธ๋ฉด ๊ธ€์ž๊ฐ€ ์ดˆ๋ก์ƒ‰์œผ๋กœ ๋ฐ”๋€Œ๊ฒŒ ๋˜๊ณ , ๋Œ€๊ด„ํ˜ธ๋ฅผ ์”Œ์›Œ์ฃผ๋ฉด Array๋กœ ์ž๋™์œผ๋กœ ๋ฐ”๋€๋‹ค.

 

 

5. ๋งˆ์น˜๋ฉฐ

์‚ฌ์‹ค ๊ทธ๋ ‡๊ฒŒ ์นœ์ ˆํ•˜๊ฒŒ ์•Œ๋ ค์ฃผ๋Š” ํˆด์€ ์•„๋‹Œ ๊ฒƒ ๊ฐ™์€๋ฐ, ์ผ๋‹จ UI๊ฐ€ JetBrains ํŠน์œ ์˜ ๋‹คํฌ ํ…Œ๋งˆ๋กœ ์ด์˜๊ธด ํ•˜๋‹ค.

์•„์ง ์‚ฌ์šฉ๋ฒ•์ด ์ธํ„ฐ๋„ท์— ๋งŽ์ด ์žˆ์ง€๋Š” ์•Š์•„๋ณด์ด๋Š”๋ฐ, Dbeaver๋ฅผ ์จ๋ณด๊ณ  ํ–ˆ์œผ๋ฉด ๊ฐ„๋‹จํ•œ ๊ธฐ๋Šฅ๋“ค์€ ๊ธˆ๋ฐฉ๊ธˆ๋ฐฉ ์ฐพ์•„์„œ ์‚ฌ์šฉ ํ•  ์ˆœ ์žˆ์—ˆ๋‹ค. ๋‹ค๋ฅธ Mysql ์ด๋‚˜ Redis ๋“ฑ์€ ์‚ฌ์šฉ์ด ๋” ํŽธ๋ฆฌํ•  ๊ฒƒ ๊ฐ™์€๋ฐ MongoDB๋ผ์„œ ์ข€ ๋” ๋ถˆํŽธํ•จ์„ ๋Š๋‚€ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๋‹ค.

๊ทธ๋ž˜๋„ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ๋‚ด๋‚ด ์‚ฌ์šฉํ•ด ๋ณผ ์˜ˆ์ •์ธ๋ฐ ํ•˜๋ฃจ๋งŒ์— ๊ธˆ๋ฐฉ ์‚ฌ์šฉ๋ฒ•์„ ์ตํž ์ˆ˜ ์žˆ๋Š”๊ฑฐ ๋ณด๋‹ˆ, ํŽธ๋ฆฌํ•˜๊ธด ํ•œ ๊ฒƒ ๊ฐ™๊ธฐ๋„ ํ•˜๊ณ ...์ผ๋‹จ ๊ณ„์† ์‚ฌ์šฉํ•ด ๋ณด๋ฉฐ ์•Œ์•„๋ณผ ์ƒ๊ฐ์ด๋‹ค.

728x90