[CouchDB] ์๊ฐ
CouchDB๋ 2005๋
์ ๋ง๋ค์ด์ง ๋๊ท๋ชจ ๋ถ์ฐ DB๋ฅผ ์ํ ์์คํ
์ด๋ค.
Erlang์ผ๋ก ๋ง๋ค์ด์ก๊ณ , Apache์ ์ํด ๊ด๋ฆฌ๋๋ฉฐ, Document ๊ธฐ๋ฐ์ NoSQL์ด๋ค.
ํน์ง
https://www.javatpoint.com/couchdb-tutorial
MongoDB์ ๋น์ทํ๊ฒ JSON Document๋ฅผ ์ ์ฅ ํ์์ผ๋ก ์ฌ์ฉํ๋ค.
๊ทธ๋ฆฌ๊ณ multi master ๊ธฐ๋ฐ์ ๋ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๋ฉฐ, ๋์ ๊ฐ์ฉ์ฑ๊ณผ ๊ฐ๋ ฅํ ์ต์ข ์ผ๊ด์ฑ ๋ณด์ฅ์ ์ฃผ์ ์ฅ์ ์ผ๋ก ๋ด์ธ์ด๋ค.
NoSQL์ผ๋ก์๋ ๋ ํนํ๊ฒ LSM Tree๊ฐ ์๋ B-Tree๋ฅผ ๊ธฐ๋ณธ ์ธ๋ฑ์ค ๋งค์ปค๋์ฆ์ผ๋ก ์ฌ์ฉํ๋ค.
query ๋ฐฉ์์ map-reduce ๋ฐฉ์์ ์ฃผ๋ก ์ฌ์ฉํ๋ค.
ํน์ดํ๊ฒ DB๋ก์ ์์ฒด ํ๋กํ ์ฝ์ ์ฌ์ฉํ์ง ์๊ณ HTTP/REST ํต์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ ์ฒ๋ฆฌํ๋ค. ๊ทธ๋์ ์กฐ๊ธ ๋๋ฆด ์๋ ์๋ค.
vs MongoDB
Document DB๋ผ๋ ๊ณตํต์ ๋๋ฌธ์ MongoDB์ ๊ณง์ ๋น๊ต๋๊ณค ํ๋๋ฐ, ์ฐจ์ด์ ์ด ๊ฝค ๋ง์ ํธ์ด๋ค.
1. ๋ณต์
MongoDB๋ single master - multi slave ๊ตฌ์กฐ๋ก ๋ณต์ ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ๋ฉด, Couch๋ multi master๋ก ๋ณต์ ๋ฅผ ์ฒ๋ฆฌํ๋ค. ์ด๋ฌํ ๊ตฌ์กฐ ํ์ ๊ฐ์ฉ์ฑ ์ธก๋ฉด์์๋ Couch๊ฐ ๋ ์ ๋ฆฌํ๋ค.
2. ๋์ ์ ์ด
Couch๋ ํ์์คํฌํ ๊ธฐ๋ฐ์ผ๋ก ๋์ ์ ์ด๋ฅผ ์ํํ๊ณ ๋๊ด์ ์ธ Lock ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. ๊ทธ๋์ write๊ฐ read๋ฅผ ์ฐจ๋จํ์ง ์๋๋ค.
๋ง์ฝ ์ฌ๋ฌ๊ฐ์ ๋ช
๋ น์ด ๋์์ ๋ค์ด์์ ์ถฉ๋์ด ๋ฐ์ํ๋ค๋ฉด ๊ฐ์ฅ ๋จผ์ ๋ค์ด์จ ๊ฒ์ ์ ์งํ๊ณ ๋์ค์ ๋ค์ด์จ ๊ฒ์ ๋ฒ๋ฆฌ๋ ๋ฐฉ์์ ์ทจํ๋ค. ๊ทธ๋์ Application ์์ค์์ ์ถฉ๋์ ์ฒ๋ฆฌํ๋๊ฒ ๋ ๋ณต์กํ ์๋ ์๋ค.
3. ํธ๋์ญ์
MongoDB๋ ๋ถ์์ ํ๊ฒ๋๋ง ํธ๋์ญ์
๊ธฐ๋ฅ์ ์ ๊ณตํ๋, Couch๋ ๊ทธ๋ฐ๊ฒ ๋ฑํ ์๋ค.
4. ์ฑ๋ฅ
์ผ๋ฐ์ ์ธ ์ฝ๊ธฐ ์ฑ๋ฅ์ด๋ ๋๊ท๋ชจ ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๋ ๋ฅ๋ ฅ์ MongoDB๊ฐ Couch๋ณด๋ค๋ ๋์ ํธ์ด๋ค.
5. ์ธ๋ฑ์ค
MongoDB๋ RDB ์์ค์ ๋ค์ํ ์ธ๋ฑ์ค ๊ธฐ๋ฅ์ด ์ง์๋๋, Couch๋ ์ ์ง์๋์ง ์๋๋ค.
6. query
MongoDB๋ ์์ฒด์ ์ธ json ํ์์ query๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋, couch๋ HTTP Request๋ฅผ ํตํด query๋ฅผ ๋ ๋ฆฐ๋ค.
์ ๋ฐ์ ์ธ ํธ์์ฑ์์๋ MongoDB๊ฐ ๋ ์ ํฉํ ํธ์ด๋ค.
Couch๋ ์ผ๋ฐ์ ์ธ ๋น์ฆ๋์ค ์๋น์ค์ ๋ฉ์ธ DB๋ก๋ ์ฌ์ฉํ๋๋ฐ ํ๊ณ๊ฐ ์๋ค.
vs Couchbase
Couch ํ๊ฒฝ์ ์ ํ ๋ ๊ฐ์ฅ ํผ๋์ค๋ฌ์ด ๊ฒ ์ค ํ๋๊ฐ Couch* ์๋ฆฌ์ฆ์ ๊ดด์ํ ์์ข ๋ค์ด ๊ต์ฅํ ๋ง๋ค๋ ๊ฒ์ด๋ค.
๊ทธ ์ค ๋ํ์ ์ธ ๊ฒ์ด Couchbase์ธ๋ฐ, ์ข ๋ค๋ฅธ ๋ฌผ๊ฑด์ด์ง๋ง ๋ณดํต CouchDB์ ์ํฐํ๋ผ์ด์ฆ ๋ฒ์ ์ด๋ผ๊ณ ์ธ์์ด ๋๋ ํธ์ด๋ค.
ํ์ง๋ง ์์ ํ ๋ณ๊ฐ์ ํ๋ก์ ํธ๊ณ , ๊ตฌ์กฐ๋ ๋ค๋ฅด๋ค. ์ผ๋ถ ์ญ์ฌ๋ฅผ ๊ณต์ ํ ๋ฟ์ด๋ค.
์ญ์ฌ๋ฅผ ๋์ถฉ ์ ๋ฆฌํ์๋ฉด, CouchDB๋ฅผ ๋ง๋ค์๋ ํ์ฌ๊ฐ Memcached๋ฅผ ๋ง๋ ํ์ฌ์ ํฉ์ฐฉํด์ Membase๋ผ๋ ๊ฒ์ ๋ง๋ค์๋๋ฐ, ๊ทธ๊ฒ Couchbase๊ฐ ๋ ๊ฒ์ด๋ค. ๊ทธ๋์ ์ด๊ฑด ํ๋กํ ์ฝ๋ Memcached์ ๊ฒ์ ์ฌ์ฉํ๋ค.
์ฐธ์กฐ
https://stackoverflow.com/questions/3375494/nosql-mongodb-vs-couchdb
https://stackoverflow.com/questions/5578608/what-is-the-difference-between-couchdb-and-couchbase
https://www.javatpoint.com/couchdb-tutorial
https://ko.wikipedia.org/wiki/%EC%B9%B4%EC%9A%B0%EC%B9%98DB
https://www.integrate.io/blog/couchdb-vs-mongodb/