์ค๋ฉ
์ด ํ์ด์ง์ ๋ด์ฉ
- ์ค๋ฉ๋ ํด๋ฌ์คํฐ
- ์ค๋ ํค
- ์ฒญํฌ
- ๋ฐธ๋ฐ์ ๋ฐ ๊ท ์ผํ ๋ฐ์ดํฐ ๋ถ์ฐ
- ์ค๋ฉ์ ์ฅ์
- ์ค๋ฉ ์ ๊ณ ๋ ค ์ฌํญ
- ์ค๋ ๋ฐ ๋น์ค๋ ์ปฌ๋ ์
- ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐ
- ์ค๋ฉ ์ ๋ต
- ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๋ด ๊ตฌ์ญ
- ์ค๋ฉ ์ค ๋ฐ์ดํฐ ์ ๋ ฌ
- ๋ณ๊ฒฝ ์คํธ๋ฆผ
- ํธ๋์ญ์
- ์์ธํ ์์๋ณด๊ธฐ
์ค๋ฉ์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋จธ์ ์ ๋ถ์ฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค. MongoDB๋ ์ค๋ฉ์ ์ฌ์ฉํ์ฌ ๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ์ ๋์ ์ฒ๋ฆฌ๋ ์์ ์ ๋ฐฐํฌ๋ฅผ ์ง์ํฉ๋๋ค.
๋๊ท๋ชจ ๋ฐ์ดํฐ ์ธํธ ๋๋ ๋์ ์ฒ๋ฆฌ๋์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ์ถ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ์ ๋จ์ผ ์๋ฒ์ ์ฉ๋์ ๋ฌธ์ ๊ฐ ๋ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ฟผ๋ฆฌ ์๋๊ฐ ๋์ผ๋ฉด ์๋ฒ์ CPU ์ฉ๋์ด ๊ณ ๊ฐ๋ ์ ์์ต๋๋ค. ์์คํ ์ RAM๋ณด๋ค ์์ ์ธํธ ํฌ๊ธฐ๊ฐ ํฌ๋ฉด ๋์คํฌ ๋๋ผ์ด๋ธ์ I/O ์ฉ๋์ ๋ถ๋ด์ ์ค๋๋ค.
์์คํ ์ฆ๋์ ๋์ํ๋ ๋ฐฉ๋ฒ์๋ ์์ง์ ํ์ฅ๊ณผ ์ํ์ ํ์ฅ์ด ์์ต๋๋ค.
์์ง ํ์ฅ์๋ ๋ ๊ฐ๋ ฅํ CPU๋ฅผ ์ฌ์ฉํ๊ฑฐ๋, RAM์ ์ถ๊ฐํ๊ฑฐ๋, ์คํ ๋ฆฌ์ง ๊ณต๊ฐ์ ๋๋ฆฌ๋ ๋ฑ ๋จ์ผ ์๋ฒ์ ์ฉ๋์ ๋๋ฆฌ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค. ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธฐ์ ์ ์ ํ์ผ๋ก ์ธํด ๋จ์ผ ๋จธ์ ์ด ์ฃผ์ด์ง ์ํฌ๋ก๋๋ฅผ ๊ฐ๋นํ๊ธฐ์ ์ถฉ๋ถํ ๊ฐ๋ ฅํ์ง ์์ ์ ์์ต๋๋ค. ๋ํ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ ๊ณต์๋ ์ฌ์ฉ ๊ฐ๋ฅํ ํ๋์จ์ด ๊ตฌ์ฑ์ ๋ฐ๋ผ ์๊ฒฉํ ์ํ์ ์ ์ ์ฉํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์์ง ํ์ฅ์๋ ์ค์ง์ ์ธ ์ต๋์น๊ฐ ์์ต๋๋ค.
์ํ์ ํ์ฅ์ ์์คํ ๋ฐ์ดํฐ ์ธํธ์ ๋ก๋๋ฅผ ์ฌ๋ฌ ์๋ฒ๋ก ๋๋๊ณ ํ์์ ๋ฐ๋ผ ์๋ฒ๋ฅผ ์ถ๊ฐํ์ฌ ์ฉ๋์ ๋๋ฆฌ๋ ๊ฒ์ ๋๋ค. ๋จ์ผ ๋จธ์ ์ ์ ๋ฐ์ ์ธ ์๋๋ ์ฉ๋์ ๋์ง ์์ ์ ์์ง๋ง, ๊ฐ ๋จธ์ ์ด ์ ์ฒด ์ํฌ๋ก๋์ ์ผ๋ถ๋ฅผ ์ฒ๋ฆฌํ๋ฏ๋ก ์ ์ฌ์ ์ผ๋ก ๋จ์ผ ๊ณ ์ ๋์ฉ๋ ์๋ฒ๋ณด๋ค ๋ ๋์ ํจ์จ์ฑ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ๋ฐฐํฌ์๋ฒ์ ์ฉ๋์ ํ์ฅํ๋ ค๋ฉด ํ์์ ๋ฐ๋ผ ์๋ฒ๋ฅผ ์ถ๊ฐํ๊ธฐ๋ง ํ๋ฉด ๋๋ฏ๋ก ๋จ์ผ ๋จธ์ ์ ๊ณ ๊ธ ํ๋์จ์ด๋ณด๋ค ์ ์ฒด ๋น์ฉ์ด ์ ๋ ดํ ์ ์์ต๋๋ค. ๊ทธ ๋์ ๋ฐฐํฌ์๋ฒ๋ฅผ ์ํ ์ธํ๋ผ ๋ฐ ์ ์ง ๊ด๋ฆฌ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํฉ๋๋ค.
MongoDB๋ ์ค๋ฉ์ ํตํ ์ํ์ ํ์ฅ์ ์ง์ํฉ๋๋ค.
MongoDB Atlas์์ ํธ์คํ ๋๋ ๋ฐฐํฌ๋ฅผ ์ํด UI์์ ์ปฌ๋ ์ ์ ์ค๋ฉํ ์ ์์ต๋๋ค.
์ค๋ฉ๋ ํด๋ฌ์คํฐ
MongoDB ์ค๋ฉ๋ ํด๋ฌ์คํฐ๋ ๋ค์ ์ปดํฌ๋ํธ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ค๋: ๊ฐ ์ค๋์๋ ์ค๋ ๋ฐ์ดํฐ์ ํ์ ์งํฉ์ด ํฌํจ๋ฉ๋๋ค. ๊ฐ ์ค๋๋ ๋ณต์ ๋ณธ ์ธํธ๋ก ๋ฐฐํฌ๋์ด์ผ ํฉ๋๋ค.
mongos:
mongos
๋ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ ์ฟผ๋ฆฌ ๋ผ์ฐํฐ ์ญํ ์ ํฉ๋๋ค.mongos
๋ ํค์ง๋ ์ฝ๊ธฐ(hedged read)๋ฅผ ์ง์ํ์ฌ ์ง์ฐ ์๊ฐ์ ์ต์ํํ ์ ์์ต๋๋ค.config ์๋ฒ: config ์๋ฒ๋ ํด๋ฌ์คํฐ์ ๋ํ ๋ฉํ๋ฐ์ดํฐ์ ๊ตฌ์ฑ ์ค์ ์ ์ ์ฅํฉ๋๋ค. config ์๋ฒ๋ ๋ณต์ ๋ณธ ์ธํธ(CSRS)๋ก ๋ฐฐํฌ๋์ด์ผ ํฉ๋๋ค.
๋ค์ ๊ทธ๋ํฝ์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๋ด ๊ตฌ์ฑ ์์์ ์ํธ ์์ฉ์ ์ค๋ช ํฉ๋๋ค.
MongoDB๋ ์ปฌ๋ ์ ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ์ค๋ฉํ์ฌ ํด๋ฌ์คํฐ์ ์ค๋ ์ ์ฒด์ ์ปฌ๋ ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐํฉ๋๋ค.
์ค๋ ํค
MongoDB๋ ์ค๋ ํค๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ ์ ๋ฐ์์ ์ปฌ๋ ์ ๋ฌธ์๋ฅผ ๋ถ์ฐํฉ๋๋ค. ์ค๋ ํค๋ ๋ฌธ์์ ํ๋ ํ๋ ๋๋ ์ฌ๋ฌ ํ๋๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
์ค๋ฉ๋ ์ปฌ๋ ์ ์ ๋ฌธ์์๋ ์ค๋ ํค ํ๋๊ฐ ๋๋ฝ๋ ์ ์์ต๋๋ค. ๋๋ฝ๋ ์ค๋ ํค ํ๋๋ ๋ฌธ์๋ฅผ ์ฌ๋ฌ ์ค๋์ ๋ถ์ฐํ ๋๋ null ๊ฐ์ด ์๋ ๊ฒ์ผ๋ก ์ฒ๋ฆฌ๋์ง๋ง, ์ฟผ๋ฆฌ๋ฅผ ๋ผ์ฐํ ํ ๋๋ ๊ทธ๋ ์ง ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋๋ฝ๋ ์ค๋ ํค ํ๋๋ฅผ ์ฐธ์กฐํ์ธ์.
์ปฌ๋ ์ ์ค๋ฉ ์ ์ค๋ ํค๋ฅผ ์ ํํฉ๋๋ค.
MongoDB 5.0๋ถํฐ๋ ์ปฌ๋ ์ ์ ์ค๋ ํค๋ฅผ ๋ณ๊ฒฝํ์ฌ ์ปฌ๋ ์ ์ ๋ฆฌ์ค๋ํ ์ ์์ต๋๋ค.
๊ธฐ์กด ์ค๋ ํค์ ์ ๋ฏธ์ฌ ํ๋๋ ํ๋๋ฅผ ์ถ๊ฐํด ์ค๋ ํค๋ฅผ ์ธ๋ถํํ ์ ์์ต๋๋ค.
๋ฌธ์์ ์ค๋ ํค ๊ฐ์ ๋ฐ๋ผ ์ค๋ ์ ์ฒด์ ๋ํ ๋ถํฌ๊ฐ ๊ฒฐ์ ๋ฉ๋๋ค. ์ค๋ ํค ํ๋๊ฐ ๋ณ๊ฒฝ ๋ถ๊ฐ๋ฅํ _id
ํ๋๊ฐ ์๋ ๊ฒฝ์ฐ ๋ฌธ์์ ์ค๋ ํค ๊ฐ์ ์
๋ฐ์ดํธํ ์ ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ ๋ฌธ์์ ์ค๋ ํค ๊ฐ ๋ณ๊ฒฝ์ ์ฐธ์กฐํฉ๋๋ค.
์ค๋ ํค ์ธ๋ฑ์ค
์ฑ์์ง ์ปฌ๋ ์ ์ ์ค๋ฉํ๋ ค๋ฉด ์ปฌ๋ ์ ์ ์ค๋ ํค๋ก ์์ํ๋ ์ธ๋ฑ์ค๊ฐ ์์ด์ผ ํฉ๋๋ค. ๋น ์ปฌ๋ ์ ์ ์ค๋ฉํ ๋, ์ปฌ๋ ์ ์ ์ง์ ๋ ์ค๋ ํค์ ๋ํ ์ ์ ํ ์ธ๋ฑ์ค๊ฐ ์์ง ์๋ ๊ฒฝ์ฐ MongoDB๋ ์ง์ ์ธ๋ฑ์ค๋ฅผ ์์ฑํฉ๋๋ค. ์ค๋ ํค ์ธ๋ฑ์ค๋ฅผ ์ฐธ์กฐํ์ธ์.
์ค๋ ํค ์ ๋ต
์ค๋ ํค ์ ํ์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ์ฑ๋ฅ, ํจ์จ์ฑ ๋ฐ ํ์ฅ์ฑ์ ์ํฅ์ ์ค๋๋ค. ์ต์์ ํ๋์จ์ด์ ์ธํ๋ผ๋ฅผ ๊ฐ์ถ ํด๋ฌ์คํฐ๋ ์ค๋ ํค ์ ํ์ ๋ฐ๋ผ ๋ณ๋ชฉ ํ์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ์ค๋ ํค์ ๊ทธ ๋ฐฑ์ ์ธ๋ฑ์ค์ ์ ํ์ ํด๋ฌ์คํฐ๊ฐ ์ฌ์ฉํ ์ ์๋ ์ค๋ฉ ์ ๋ต์๋ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
๋ค์๋ ์ฐธ์กฐํ์ธ์.
์ฒญํฌ
MongoDB๋ ์ค๋ ๋ฐ์ดํฐ๋ฅผ ์ฒญํฌ๋ก ๋ถํ ํฉ๋๋ค. ๊ฐ ์ฒญํฌ์๋ ์ค๋ ํค์ ๋ฐ๋ผ ํฌ๊ด์ ์ธ ํ์ ๋ฒ์์ ๋ฐฐํ์ ์ธ ์์ ๋ฒ์๊ฐ ์์ต๋๋ค.
๋ฐธ๋ฐ์ ๋ฐ ๊ท ์ผํ ๋ฐ์ดํฐ ๋ถ์ฐ
ํด๋ฌ์คํฐ์ ๋ชจ๋ ์ค๋์ ๋ฐ์ดํฐ๋ฅผ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐํ๊ธฐ ์ํด ๋ฐธ๋ฐ์๊ฐ ๋ฐฑ๊ทธ๋ผ์ด๋์์ ์คํ๋์ด ์ค๋ ๊ฐ์ ๋ฒ์๋ฅผ ๋ง์ด๊ทธ๋ ์ด์ ํฉ๋๋ค.
๋ค์๋ ์ฐธ์กฐํ์ธ์.
์ค๋ฉ์ ์ฅ์
์ฝ๊ธฐ/์ฐ๊ธฐ
MongoDB๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ์ค๋ ์ ๋ฐ์ ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์ํฌ๋ก๋๋ฅผ ๋ถ์ฐ์์ผ ๊ฐ ์ค๋๊ฐ ํด๋ฌ์คํฐ ์์ ์ ํ์ ์งํฉ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ํฉ๋๋ค. ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ ์ํฌ๋ก๋๋ ๋ชจ๋ ๋ ๋ง์ ์ค๋๋ฅผ ์ถ๊ฐํ์ฌ ํด๋ฌ์คํฐ ์ ๋ฐ์์ ์ํ์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค.
์ค๋ ํค ๋๋ ๋ณตํฉ ์ค๋ ํค์ ์ ๋์ฌ๊ฐ ํฌํจ๋ ์ฟผ๋ฆฌ์ ๊ฒฝ์ฐ, mongos
๊ฐ ํน์ ์ค๋ ๋๋ ์ค๋ ์ธํธ์ ์ฟผ๋ฆฌ๋ฅผ ๋์์ผ๋ก ์ผ์ ์ ์์ต๋๋ค. ์ด๋ฌํ ํ๊ฒํ
๋ ์์
์ ์ผ๋ฐ์ ์ผ๋ก ํด๋ฌ์คํฐ์ ๋ชจ๋ ์ค๋์ ๋ธ๋ก๋์บ์คํธํ๋ ๊ฒ๋ณด๋ค ๋ ํจ์จ์ ์
๋๋ค.
mongos
๋ ํค์ง๋ ์ฝ๊ธฐ๋ฅผ ์ง์ํ์ฌ ์ง์ฐ ์๊ฐ์ ์ต์ํํ ์ ์์ต๋๋ค.
์ ์ฅ ์ฉ๋
์ค๋ฉ์ ํด๋ฌ์คํฐ์ ์ค๋ ์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ์์ผ ๊ฐ ์ค๋๊ฐ ์ ์ฒด ํด๋ฌ์คํฐ ๋ฐ์ดํฐ์ ํ์ ์งํฉ์ ํฌํจํ๋๋ก ํฉ๋๋ค. ๋ฐ์ดํฐ๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ์ถ๊ฐ ์ค๋๋ก ํด๋ฌ์คํฐ์ ์ ์ฅ ์ฉ๋์ ๋๋ฆด ์ ์์ต๋๋ค.
๊ณ ๊ฐ์ฉ์ฑ
config ์๋ฒ ๋ฐ ์ค๋๋ฅผ ๋ณต์ ๋ณธ ์ธํธ๋ก ๋ฐฐํฌํ๋ฉด ๊ฐ์ฉ์ฑ์ด ํฅ์๋ฉ๋๋ค.
ํ๋ ์ด์์ ์ค๋ ๋ณต์ ๋ณธ ์ธํธ๋ฅผ ์์ ํ ์ฌ์ฉํ ์ ์๊ฒ ๋๋๋ผ๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ๋ ๋ถ๋ถ์ ์ผ๋ก ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ๋ฅผ ๊ณ์ ์ํํ ์ ์์ต๋๋ค. ์ฆ, ์ฌ์ฉํ ์ ์๋ ์ค๋์ ์๋ ๋ฐ์ดํฐ์๋ ์ก์ธ์คํ ์ ์์ง๋ง, ์ฌ์ฉ ๊ฐ๋ฅํ ์ค๋๋ฅผ ๋์์ผ๋ก ํ๋ ์ฝ๊ธฐ ๋๋ ์ฐ๊ธฐ๋ ๊ณ์ ์ฑ๊ณต์ ์ผ๋ก ์ํํ ์ ์์ต๋๋ค.
์ค๋ฉ ์ ๊ณ ๋ ค ์ฌํญ
์ค๋ฉ๋ ํด๋ฌ์คํฐ ์ธํ๋ผ ์๊ตฌ ์ฌํญ๊ณผ ๋ณต์ก์ฑ์๋ ์ ์คํ ๊ณํ, ์คํ ๋ฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ํ์ํฉ๋๋ค.
์ผ๋จ ์ปฌ๋ ์ ์ด ์ค๋ฉ๋๊ณ ๋๋ฉด MongoDB๋ ์ค๋ ์ปฌ๋ ์ ์ ์ค๋ฉ์ ๋๋๋ฆฌ๋ ๋ฉ์๋๋ฅผ ์ ๊ณตํ์ง ์์ต๋๋ค.
๋์ค์ ์ปฌ๋ ์ ์ ๋ค์ ์ค๋ฉํ ์๋ ์์ง๋ง, ํ์ฅ์ฑ ๋ฐ ์ฑ๋ฅ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ํผํ๋ ค๋ฉด ์ค๋ ํค ์ ํ์ ์ ์คํ๊ฒ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋ค์๋ ์ฐธ์กฐํ์ธ์.
์ปฌ๋ ์ ์ค๋ฉ์ ๊ดํ ์ด์ ์๊ตฌ ์ฌํญ ๋ฐ ์ ํ ์ฌํญ์ ์ดํดํ๋ ค๋ฉด ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ์ด์ ์ ํ ์ฌํญ์ ์ฐธ์กฐํ์ธ์.
์ฟผ๋ฆฌ์ ์ค๋ ํค ๋๋ ๋ณตํฉ ์ค๋ ํค์ ์ ๋์ฌ๊ฐ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ, mongos
๊ฐ ๋ธ๋ก๋์บ์คํธ ์์
์ ์ํํ์ฌ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ์ค๋์ ๋ํด ์ฟผ๋ฆฌ๋ฅผ ์ค์ํฉ๋๋ค. ์ด๋ฌํ ๋ถ์ฐ/์์ง ์ฟผ๋ฆฌ๋ ์ฅ๊ธฐ๊ฐ ์คํ๋๋ ์์
์ด ๋ ์ ์์ต๋๋ค.
MongoDB 5.1๋ถํฐ ์ฌ์ฉํ์ฌ ์ค๋ ์๋ฒ๋ฅผ ์์, ๋ค์ ์์ํ๊ฑฐ๋ sh.addShard()
์ถ๊ฐํ ๋ CWWC(Cluster Wide Write Concern) ๋ฅผ ์ค์ ํด์ผ ํฉ๋๋ค.
0}์ด CWWC
์ค์ ๋์ด ์์ง ์๊ณ ๊ธฐ๋ณธ ์ฐ๊ธฐ ์ฐ๋ ค ์ฌํญ์ด ์ด ๋๋๋ก ์ค๋๊ฐ ๊ตฌ์ฑ๋ { w : 1 }
๊ฒฝ์ฐ, ์ค๋ ์๋ฒ๋ ์์ ๋๋ ์ถ๊ฐ์ ์คํจํ๊ณ ์ค๋ฅ๋ฅผ ๋ฐํํฉ๋๋ค.
๊ธฐ๋ณธ ์ฐ๊ธฐ ๊ด์ฌ์ฌ ๊ณ์ฐ ๋ฐฉ๋ฒ์ ๋ํ ์์ธํ ๋ด์ฉ์ ๊ธฐ๋ณธ ์ฐ๊ธฐ ๊ด์ฌ์ฌ ๊ณ์ฐ์ ์ฐธ์กฐํ์ธ์.
์ฐธ๊ณ
MongoDB์ ํ์ฑํ๋ ์ง์ ๊ณ์ฝ์ด ์๋ ๊ฒฝ์ฐ, ์ค๋ฉ๋ ํด๋ฌ์คํฐ ๊ณํ ๋ฐ ๋ฐฐํฌ์ ๋ํ ์ง์์ ๋ฐ์ผ๋ ค๋ฉด ๊ณ์ ๋ด๋น์์๊ฒ ๋ฌธ์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ค๋ ๋ฐ ๋น์ค๋ ์ปฌ๋ ์
๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ค๋ ์ปฌ๋ ์ ๊ณผ ๋น์ค๋ ์ปฌ๋ ์ ์ด ํผํฉ๋์ด ์์ ์ ์์ต๋๋ค. ์ค๋ ์ปฌ๋ ์ ์ ํด๋ฌ์คํฐ์ ์ค๋์ ๋ถํ ๋์ด ๋ถ์ฐ๋ฉ๋๋ค. ๋น์ค๋ ์ปฌ๋ ์ ์ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋์ ์ ์ฅ๋ฉ๋๋ค. ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ๊ณ ์ ํ ํ๋ผ์ด๋จธ๋ฆฌ ์ค๋๊ฐ ์์ต๋๋ค.
์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ์ฐ๊ฒฐ
์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ์ปฌ๋ ์ ๊ณผ ์ํธ ์์ฉํ๋ ค๋ฉด mongos ๋ผ์ฐํฐ์ ์ฐ๊ฒฐํด์ผ ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ค๋ ์ปฌ๋ ์ ๊ณผ ํจ๊ป ๋น์ค๋ ์ปฌ๋ ์ ๋ ํฌํจ๋ฉ๋๋ค. ํด๋ผ์ด์ธํธ๋ ์ฝ๊ธฐ ๋๋ ์ฐ๊ธฐ ์์ ์ ์ํํ๊ธฐ ์ํด ๋จ์ผ ์ค๋์ ์ฐ๊ฒฐํด์๋ ์ ๋ฉ๋๋ค.
mongosh
๋๋ MongoDB ๋๋ผ์ด๋ฒ๋ฅผ ์ฌ์ฉํ์ฌ mongod
์ ์ฐ๊ฒฐํ๋ ๊ฒ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก mongos
์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
์ค๋ฉ ์ ๋ต
MongoDB๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ ์ ๋ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐํ๊ธฐ ์ํ ๋ ๊ฐ์ง ์ค๋ฉ ์ ๋ต์ ์ง์ํฉ๋๋ค.
ํด์ ์ค๋ฉ
ํด์ ์ค๋ฉ์๋ ์ค๋ ํค ํ๋ ๊ฐ์ ํด์๋ฅผ ๊ณ์ฐํ๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ๊ฐ ์ฒญํฌ์๋ ํด์ ์ค๋ ํค ๊ฐ์ ๋ฐ๋ผ ๋ฒ์๊ฐ ํ ๋น๋ฉ๋๋ค.
ํ
MongoDB๋ ํด์๋ ์ธ๋ฑ์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ํด๊ฒฐํ ๋ ํด์๋ฅผ ์๋์ผ๋ก ๊ณ์ฐํฉ๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ํด์๋ฅผ ๊ณ์ฐํ ํ์๊ฐ ์์ต๋๋ค.
์ค๋ ํค์ ๋ฒ์๋ 'close' ์ผ ์ ์์ง๋ง, ํด์ ๊ฐ์ด ๊ฐ์ ์ฒญํฌ์ ์์ ๊ฐ๋ฅ์ฑ์ ๋ฎ์ต๋๋ค. ํด์๋ ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ ๋ฐ์ดํฐ ๋ถ์ฐ์ ํนํ ์ค๋ ํค๊ฐ ๋จ์กฐ๋กญ๊ฒ ๋ณ๊ฒฝ๋๋ ๋ฐ์ดํฐ ์ธํธ์์ ๋์ฑ ๊ท ์ผํ ๋ฐ์ดํฐ ๋ถ์ฐ์ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค.
๊ทธ๋ฌ๋ ํด์๋ ๋ถ์ฐ์ ์ค๋ ํค์ ๋ํ ๋ฒ์ ๊ธฐ๋ฐ ์ฟผ๋ฆฌ๊ฐ ๋จ์ผ ์ค๋๋ฅผ ๋์์ผ๋ก ํ ๊ฐ๋ฅ์ฑ์ด ์ ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ฉฐ, ๊ทธ ๊ฒฐ๊ณผ ํด๋ฌ์คํฐ ์ ์ฒด์ ๋ํ ๋ธ๋ก๋์บ์คํธ ์์ ์ด ์ฆ๊ฐํฉ๋๋ค.
์์ธํ ๋ด์ฉ์ ํด์๋ ์ค๋ฉ์ ์ฐธ์กฐํ์ธ์.
๋ฒ์ ์ง์ ๋ ์ค๋ฉ
๋ฒ์๊ฐ ์ง์ ๋ ์ค๋ฉ์๋ ์ค๋ ํค ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฒ์๋ก ๋๋๋ ์์ ์ด ํฌํจ๋ฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ค๋ ํค ๊ฐ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฐ ์ฒญํฌ์ ๋ฒ์๊ฐ ํ ๋น๋ฉ๋๋ค.
๊ฐ์ด 'close' ์ธ ๋ค์ํ ์ค๋ ํค๋ ๋์ผํ ์ฒญํฌ์ ์กด์ฌํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. mongos
๋ ํ์ํ ๋ฐ์ดํฐ๊ฐ ํฌํจ๋ ์ค๋๋ก๋ง ์์
์ ๋ผ์ฐํ
ํ ์ ์์ผ๋ฏ๋ก ํ๊ฒํ
๋ ์์
์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ฒ์๊ฐ ์ง์ ๋ ์ค๋ฉ์ ํจ์จ์ฑ์ ์ ํํ ์ค๋ ํค์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค. ์ค๋ ํค๋ฅผ ์ ๋๋ก ๊ณ ๋ คํ์ง ์์ผ๋ฉด ๋ฐ์ดํฐ๊ฐ ๊ณ ๋ฅด์ง ์๊ฒ ๋ถ์ฐ๋์ด ์ค๋ฉ์ ์ผ๋ถ ์ด์ ์ ๋ฌดํจํํ๊ฑฐ๋ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์ด๋ํ ์ ์์ต๋๋ค. ๋ฒ์ ๊ธฐ๋ฐ ์ค๋ฉ์ ์ํ ์ค๋ ํค ์ ํ์ ์ฐธ์กฐํ์ธ์.
์์ธํ ๋ด์ฉ์ ๋ฒ์๊ฐ ์ง์ ๋ ์ค๋ฉ์ ์ฐธ์กฐํ์ธ์.
์ค๋ฉ๋ ํด๋ฌ์คํฐ ๋ด ๊ตฌ์ญ
๊ตฌ์ญ์ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ผํฐ์ ๊ฑธ์ณ ์๋ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ฐ์ดํฐ ์ง์ญ์ฑ์ ๊ฐ์ ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
์ค๋ฉ๋ ํด๋ฌ์คํฐ์์๋ ์ค๋ ํค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ ๋ฐ์ดํฐ์ ์์ญ์ ๋ง๋ค ์ ์์ต๋๋ค. ๊ฐ ์์ญ์ ํด๋ฌ์คํฐ์ ์๋ ํ๋ ์ด์์ ์ค๋์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ์ค๋๋ ์ฌ๋ฌ ๊ฐ์ ์์ญ๊ณผ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค. ๊ท ํ ์กํ ํด๋ฌ์คํฐ์์ MongoDB๋ ์์ญ์ ํฌํจ๋ ์ฒญํฌ๋ฅผ ํด๋น ์์ญ๊ณผ ๊ด๋ จ๋ ์ค๋๋ก๋ง ๋ง์ด๊ทธ๋ ์ด์ ํฉ๋๋ค.
๊ตฌ์ญ์ ํ๋ ์ด์์ ์ค๋ ํค ๊ฐ ๋ฒ์๋ฅผ ๋ค๋ฃน๋๋ค. ๊ตฌ์ญ์ด ํฌํจํ๋ ๊ฐ ๋ฒ์๋ ํญ์ ํํ์ ๋ฅผ ํฌํจํ๋ฉฐ ์ํ์ ์ ์ ์ธํฉ๋๋ค.
ํฌํจํ ๊ตฌ์ญ์ ๋ํ ์ ๋ฒ์๋ฅผ ์ ์ํ ๋ ์ค๋ ํค์ ํฌํจ๋ ํ๋๋ฅผ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ณตํฉ ์ค๋ ํค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ๋ฒ์์๋ ์ค๋ ํค์ ์ ๋์ฌ๊ฐ ํฌํจ๋์ด์ผ ํฉ๋๋ค. ์์ธํ ๋ด์ฉ์ ๊ตฌ์ญ ๋ด ์ค๋ ํค๋ฅผ ์ฐธ์กฐํ์ธ์.
์ค๋ ํค๋ฅผ ์ ํํ ๋๋ ํฅํ ๊ตฌ์ญ ์ฌ์ฉ ๊ฐ๋ฅ์ฑ์ ๊ณ ๋ คํด์ผ ํฉ๋๋ค.
ํ
๋น์ด ์๊ฑฐ๋ ์กด์ฌํ์ง ์๋ ์ปฌ๋ ์ ์ ์ค๋ฉํ๊ธฐ ์ ์ ๊ตฌ์ญ๊ณผ ๊ตฌ์ญ ๋ฒ์๋ฅผ ์ค์ ํ๋ฉด ๊ตฌ์ญ๋ณ ์ค๋ฉ์ ๋ ๋น ๋ฅด๊ฒ ์ค์ ํ ์ ์์ต๋๋ค.
์์ธํ ๋ด์ฉ์ ๊ตฌ์ญ์ ์ฐธ์กฐํ์ธ์.
์ค๋ฉ ์ค ๋ฐ์ดํฐ ์ ๋ ฌ
๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ๋ ฌ์ด ์๋ ์ปฌ๋ ์
์ ์ค๋ฉํ๋ ค๋ฉด shardCollection
๋ช
๋ น๊ณผ collation :
{ locale : "simple" }
์ต์
์ ํจ๊ป ์ฌ์ฉํ์ธ์. ์ฑ๊ณต์ ์ธ ์ค๋ฉ์ ์ํด์๋ ๋ค์ ์ฌํญ์ด ํ์ํฉ๋๋ค.
์ปฌ๋ ์ ์๋ ์ ๋์ฌ๊ฐ ์ค๋ ํค์ธ ์ธ๋ฑ์ค๊ฐ ์์ด์ผ ํฉ๋๋ค.
์ธ๋ฑ์ค๋ ๋ค์ ๋ฐ์ดํฐ ์ ๋ ฌ์ ๋ณด์ ํด์ผ ํฉ๋๋ค.
{ locale: "simple" }
๋ฐ์ดํฐ ์ ๋ ฌ์ ์ฌ์ฉํ์ฌ ์ ์ปฌ๋ ์ ์ ์์ฑํ๋ ๊ฒฝ์ฐ, ์ปฌ๋ ์ ์ ์ค๋ฉํ๊ธฐ ์ ์ ์ด๋ฌํ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋๋์ง ํ์ธํ์ธ์.
์ฐธ๊ณ
์ค๋ ์ปฌ๋ ์
์ ๋ํ ์ฟผ๋ฆฌ๋ ์ปฌ๋ ์
์ ๋ํด ๊ตฌ์ฑ๋ ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ๋ ฌ์ ๊ณ์ ์ฌ์ฉํฉ๋๋ค. ์ค๋ ํค ์ธ๋ฑ์ค์ simple
๋ฐ์ดํฐ ์ ๋ ฌ์ ์ฌ์ฉํ๋ ค๋ฉด ์ฟผ๋ฆฌ์ ๋ฐ์ดํฐ ์ ๋ ฌ ๋ฌธ์์์ {locale : "simple"}
๋ฅผ ์ง์ ํฉ๋๋ค.
์ค๋ฉ ๋ฐ ๋ฐ์ดํฐ ์ ๋ ฌ์ ๋ํ ์์ธํ ๋ด์ฉ์ shardCollection
๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ณ๊ฒฝ ์คํธ๋ฆผ
MongoDB 3.6๋ถํฐ๋ ๋ณต์ ๋ณธ ์ธํธ์ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์ ๋ํด ๋ณ๊ฒฝ ์คํธ๋ฆผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋ณ๊ฒฝ ์คํธ๋ฆผ์ ํตํด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณต์กํ ๋ฐฉ์ ๋ฐ oplog๋ฅผ ํ ์ผ๋งํ๋ ์ํ ์์ด ์ค์๊ฐ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ณ๊ฒฝ ์คํธ๋ฆผ์ ์ฌ์ฉํ์ฌ ๋จ์ผ ๋๋ ๋ณต์ ์ปฌ๋ ์ ์ ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ ๊ตฌ๋ ํ ์ ์์ต๋๋ค.
ํธ๋์ญ์
๋ถ์ฐ ํธ๋์ญ์ ์ด ๋์ ๋จ์ ๋ฐ๋ผ ์ค๋ฉ๋ ํด๋ฌ์คํฐ์์ ๋ค์ค ๋ฌธ์ ํธ๋์ญ์ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
ํธ๋์ญ์ ์ด ์ปค๋ฐ๋ ๋๊น์ง ํธ๋์ญ์ ์์ ๋ณ๊ฒฝ๋ ๋ฐ์ดํฐ๋ ํธ๋์ญ์ ์ธ๋ถ์ ํ์๋์ง ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํธ๋์ญ์
์ด ์ฌ๋ฌ ์ค๋์ ์ฐ๊ธฐ๋ฅผ ์ํํ๋ ๊ฒฝ์ฐ, ๋ชจ๋ ์ธ๋ถ ์ฝ๊ธฐ ์์
์ด ์ปค๋ฐ๋ ํธ๋์ญ์
์ ๊ฒฐ๊ณผ๊ฐ ์ค๋ ์ ์ฒด์ ํ์๋ ๋๊น์ง ๊ธฐ๋ค๋ฆด ํ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ํธ๋์ญ์
์ด ์ปค๋ฐ๋๊ณ ์ฐ๊ธฐ 1์ด ์ค๋ A์ ํ์๋์ง๋ง ์ฐ๊ธฐ 2๊ฐ ์ค๋ B์ ์์ง ํ์๋์ง ์๋ ๊ฒฝ์ฐ, ์ฝ๊ธฐ ๊ณ ๋ ค "local"
์ ์ธ๋ถ ์ฝ๊ธฐ๋ ์ฐ๊ธฐ 2๋ฅผ ๋ณด์ง ์๊ณ ์ฐ๊ธฐ 1์ ๊ฒฐ๊ณผ๋ฅผ ์ฝ์ ์ ์์ต๋๋ค.
์์ธํ ์์๋ณด๊ธฐ
์ค์ฉ์ ์ธ MongoDB ์ง๊ณ(์ ์์ฑ )
์ค๋ฉ์ด ์ง๊ณ์ ํจ๊ป ์๋ํ๋ ๋ฐฉ์์ ๋ํ ์์ธํ ๋ด์ฉ์ ์ค์ฉ์ ์ธ MongoDB ์ง๊ณ ์ ์์ฑ ์์ ์ค๋ฉ ์ฅ์ ์ฝ์ด๋ณด์ธ์.