๋ถ๋ฅ:๋ฐ์ดํฐ๋ฒ ์ด์ค
์ด ๋ฌธ์์ ์๋ณธ์ ์ธ๋ถ ์ํค์์ ๊ฐ์ ธ์์ต๋๋ค.
1. ๊ฐ์[ํธ์ง]
NoSQL DBMS์ ํ ์ข
๋ฅ.
MongoDB๋ NoSQL๋ก ๋ถ๋ฅ๋๋ ํฌ๋ก์ค ํ๋ซํผ ๋ํ๋จผํธ ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ด๋ค. MySQL ์ฒ๋ผ ์ ํต์ ์ธ ํ ์ด๋ธ-๊ด๊ณ ๊ธฐ๋ฐ์ RDBMS๊ฐ ์๋๋ฉฐ SQL์ ์ฌ์ฉํ์ง ์๋๋ค.
์ด๋ฆ์ mongo๋ humongous๋ฅผ ์ค์ธ ํํ์ด๋ค. ์ฆ '๊ฒ๋ ํฐ DB' ๋ผ๋ ๋ป.
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์์ผ๋ก๋ ๋ชจ์ง๋ผ์ spidermonkey๋ฅผ ์ฌ์ฉํ๋ค.
MongoDB๋ NoSQL๋ก ๋ถ๋ฅ๋๋ ํฌ๋ก์ค ํ๋ซํผ ๋ํ๋จผํธ ์งํฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ด๋ค. MySQL ์ฒ๋ผ ์ ํต์ ์ธ ํ ์ด๋ธ-๊ด๊ณ ๊ธฐ๋ฐ์ RDBMS๊ฐ ์๋๋ฉฐ SQL์ ์ฌ์ฉํ์ง ์๋๋ค.
์ด๋ฆ์ mongo๋ humongous๋ฅผ ์ค์ธ ํํ์ด๋ค. ์ฆ '๊ฒ๋ ํฐ DB' ๋ผ๋ ๋ป.
์๋ฐ์คํฌ๋ฆฝํธ ๋ฐํ์์ผ๋ก๋ ๋ชจ์ง๋ผ์ spidermonkey๋ฅผ ์ฌ์ฉํ๋ค.
2. ๋ผ์ด์ ์ค[ํธ์ง]
2018๋
๊น์ง๋ GNU Affero General Public License(AGPL)์ ๊ธฐ๋ฐํ์ฌ ๊ณต๊ฐ๋์๋ค. ๊ทธ๋ฌ๋ ํด๋ผ์ฐ๋ ์
์ฒด๋ค์ด MongoDB๋ฅผ ๊ทธ๋๋ก ์ด์ฉํ๋ฉด์ ๋ผ์ด์ ์ค ๊ณ์ฝ ์์ด ์์ต์ ์ฑ๊ธฐ๊ณ , ์คํ์์ค ์ปค๋ฎค๋ํฐ์๋ ๊ธฐ์ฌ๋ฅผ ํ์ง ์์ 2018๋
10์ ๋ผ์ด์ ์ค๋ฅผ AGPL์ ๊ธฐ๋ฐํ Server Side Public License(SSPL)๋ก ๋ณ๊ฒฝํ๋ค.
SSPL์, ์๋ฒ์์ ํ๋ก๊ทธ๋จ์ ์คํํ ๊ฒฝ์ฐ ๊ธฐ์กด AGPL์์๋ ๋ผ์ด์ ์ค ๋์ ํ๋ก๊ทธ๋จ์ ์์ค์ฝ๋๋ง์ ๊ณต๊ฐํ๋ฉด ๋์๋ ๊ฒ์ ์์ ํ์ฌ, ํ๋ก๊ทธ๋จ์ด 'Software as a Service' ํํ๋ก ์ ๊ณต๋ ๊ฒฝ์ฐ ๊ทธ ํ๋ก๊ทธ๋จ๊ณผ ์ฐ๋๋์ด ์คํ๋๋ ๊ด๋ฆฌ ์ํํธ์จ์ด ๋ฑ์ ๋ชจ๋ ๊ณต๊ฐํด์ผ ํ๋ค๋ ์กฐํญ์ผ๋ก ๋ฐ๊พธ์๋ค.
SSPL์ ์คํ์์ค ์ปค๋ฎค๋ํฐ์์ ๋ผ์ด์ ์ค๊ฐ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์๊น์ง ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ๋ํด ๋นํ์ ๋ฐ์๊ณ ์คํ์์ค ์ด๋์ ํฐ๋ธ์์๋ ๋ผ์ด์ ์ค ์น์ธ ์ ์ฐจ๋ฅผ ์ค๋จํ๋ค.
SSPL์, ์๋ฒ์์ ํ๋ก๊ทธ๋จ์ ์คํํ ๊ฒฝ์ฐ ๊ธฐ์กด AGPL์์๋ ๋ผ์ด์ ์ค ๋์ ํ๋ก๊ทธ๋จ์ ์์ค์ฝ๋๋ง์ ๊ณต๊ฐํ๋ฉด ๋์๋ ๊ฒ์ ์์ ํ์ฌ, ํ๋ก๊ทธ๋จ์ด 'Software as a Service' ํํ๋ก ์ ๊ณต๋ ๊ฒฝ์ฐ ๊ทธ ํ๋ก๊ทธ๋จ๊ณผ ์ฐ๋๋์ด ์คํ๋๋ ๊ด๋ฆฌ ์ํํธ์จ์ด ๋ฑ์ ๋ชจ๋ ๊ณต๊ฐํด์ผ ํ๋ค๋ ์กฐํญ์ผ๋ก ๋ฐ๊พธ์๋ค.
SSPL์ ์คํ์์ค ์ปค๋ฎค๋ํฐ์์ ๋ผ์ด์ ์ค๊ฐ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์๊น์ง ์ํฅ์ ๋ฏธ์น๋ ๊ฒ์ ๋ํด ๋นํ์ ๋ฐ์๊ณ ์คํ์์ค ์ด๋์ ํฐ๋ธ์์๋ ๋ผ์ด์ ์ค ์น์ธ ์ ์ฐจ๋ฅผ ์ค๋จํ๋ค.
3. ํน์ง[ํธ์ง]
MongoDB๋ MySQL์ ํ
์ด๋ธ๊ณผ ๊ฐ์ ์คํค๋ง๊ฐ ๊ณ ์ ๋ ๊ตฌ์กฐ ๋์ JSON ํํ์ ๋์ ์คํค๋งํ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋๋ฐ, ์ด๋ฅผ MongoDB ์์๋ BSON์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.
MongoDB๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ๋ฅผ Document ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด๋ MySQL๊ฐ์ RDBMS์์๋ row์ ํด๋น๋๋ค. ์ด Document์ ์งํฉ์ Collection์ด๋ผ๊ณ ํ๋๋ฐ, RDBMS์์๋ ํ ์ด๋ธ(Table)์ ํด๋น๋๋ค. Collection์ ์งํฉ์ DB์ด๊ณ , ์ด๋ RDBMS์์๋ ๋์ผํ๋ค.
๋๊ฐ์ ์กฐ๊ฑด์ผ๋ก ์ค๊ณ๋์์ ์ ๊ธฐ์กด RDBMS ์๋๋ณด๋ค ๊ต์ฅํ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์๋ค. ์ด๋ฐ ์๋๋ ACID๋ฅผ ํฌ๊ธฐํ ๋๊ฐ๋ก ์ป์ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ(Consistency)์ด ๊ฑฐ์ ํ์ ์๊ณ ์กฐ์ธ ์ฐ์ฐ์ Embed๋ก ๋์ฒดํ ์ ์๋ ๊ฒฝ์ฐ์๋ MongoDB๊ฐ ํ์คํ ๋์์ด ๋ ์ ์๋ค. ๋ฐ๋๋ก ์ ์ฅํ๋ ๋ฐ์ดํฐ๊ฐ ์ํ ๋ฐ์ดํฐ ๊ฐ์ด ์ผ๊ด์ฑ(Consistency)์ด ๋งค์ฐ ์ค์ํ ์์ ์๋ MongoDB๋ฅผ ์ฐ๊ธฐ ๋งค์ฐ ํ๋ค๋ค.
MongoDB ์ธก์์ MongoDB์ MySQL์ ๋น๊ตํ ๊ฒ์ ๋ฌธ์๋ก ๋ง๋ ๊ฒ์ด ์๋๋ฐ, MySQL์์ MongoDB๋ก ๊ฐ์ํ๋ ค๋ ์ ์ ๋ค์ ์ฐธ๊ณ ํ๋๋ก ํ์. https://www.mongodb.com/compare/mongodb-mysql
MongoDB๋ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํฐ๋ฅผ Document ๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด๋ MySQL๊ฐ์ RDBMS์์๋ row์ ํด๋น๋๋ค. ์ด Document์ ์งํฉ์ Collection์ด๋ผ๊ณ ํ๋๋ฐ, RDBMS์์๋ ํ ์ด๋ธ(Table)์ ํด๋น๋๋ค. Collection์ ์งํฉ์ DB์ด๊ณ , ์ด๋ RDBMS์์๋ ๋์ผํ๋ค.
๋๊ฐ์ ์กฐ๊ฑด์ผ๋ก ์ค๊ณ๋์์ ์ ๊ธฐ์กด RDBMS ์๋๋ณด๋ค ๊ต์ฅํ ๋น ๋ฅด๋ค๋ ์ฅ์ ์ด ์๋ค. ์ด๋ฐ ์๋๋ ACID๋ฅผ ํฌ๊ธฐํ ๋๊ฐ๋ก ์ป์ ๊ฒ์ด๋ค. ๋ฐ๋ผ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ(Consistency)์ด ๊ฑฐ์ ํ์ ์๊ณ ์กฐ์ธ ์ฐ์ฐ์ Embed๋ก ๋์ฒดํ ์ ์๋ ๊ฒฝ์ฐ์๋ MongoDB๊ฐ ํ์คํ ๋์์ด ๋ ์ ์๋ค. ๋ฐ๋๋ก ์ ์ฅํ๋ ๋ฐ์ดํฐ๊ฐ ์ํ ๋ฐ์ดํฐ ๊ฐ์ด ์ผ๊ด์ฑ(Consistency)์ด ๋งค์ฐ ์ค์ํ ์์ ์๋ MongoDB๋ฅผ ์ฐ๊ธฐ ๋งค์ฐ ํ๋ค๋ค.
MongoDB ์ธก์์ MongoDB์ MySQL์ ๋น๊ตํ ๊ฒ์ ๋ฌธ์๋ก ๋ง๋ ๊ฒ์ด ์๋๋ฐ, MySQL์์ MongoDB๋ก ๊ฐ์ํ๋ ค๋ ์ ์ ๋ค์ ์ฐธ๊ณ ํ๋๋ก ํ์. https://www.mongodb.com/compare/mongodb-mysql