backend/DataBase

[CouchDB] 1. CouchDB가 뭐지?

버리야 2009. 7. 7. 10:34
반응형
CouchDB???가 뭐지 하고 찾아보니
CouchDB는 아파치 오픈소스 프로젝트이고, DB이지만 Non-Relational Database이고 document-oriented기반이라고 합니다.

뭔가..새로운 포스가 느껴지는데..  뭔가 개성이 강한 느낌..으로 조금 더 살펴보면,




Couch를 사전에서 찾아보면 이런 뜻을 가지고 있는데..
1a 긴 의자, 소파 《기댈 수 있는 등받이와 팔걸이가 있는》
2 《문어·시어》 침상, 잠자리
3 《일반적으로》 휴식처 《풀밭 등》;(야생 동물의) 은신처, 굴(lair)


딱 이름만 듣고는 이런 DB를 만들고 싶지 않았을까란 생각은 들지만,
Cluster Of Unreliable Commodity Hardware의 약자라고 하네요..

특징은

    * RESTful API
    * Schema-less document store (document in JSON format)
    * Multi-Version-Concurrency-Control model
    * User-defined query structured as map/reduce
    * Incremental Index Update mechanism
    * Multi-Master Replication model
    * Written in Erlang (Erlang is good)

가장 중요한 점은 RESTful API를 이용한다는 것!

허걱 Erlang(얼랭)으로 쓰여져있다고 하고 스키마 필요없는 document을 저장하는 방식이고 이 document는 JSON format으로 데이터를 교환한다고 하는군요. 그리고 query는 map/reduce 구조를 이용합니다.


CouchDB는 요런 구조로 생겼다고 하네요.


CouchDB은 처음에 C++로 만들어졌지만 도중에 Erlang으로 교체되었고, CouchDB의 default view server는 C를 사용한 모질라의 Spidermonkey Javascript library를 이용합니다.

Apache 2.0 License 이고, CouchDb설치시에 웹서버가 같이 설치되어 Client와 HTTP로 통신하고 Data(Document)를 JSON으로 주고 받는다고 합니다.

처음에 호기심 가지고 보다보니 참 개성강한 듯 하군요.


반응형