카우치DB

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기
아파치 카우치DB
카우치DB의 Futon Administration 인터페이스, 사용자 데이터베이스
카우치DB의 Futon Administration 인터페이스, 사용자 데이터베이스
원저자Damien Katz, Jan Lehnardt, Noah Slater, Christopher Lenz, J. Chris Anderson, Paul Davis, Adam Kocoloski, Jason Davies, Benoit Chesneau, Filipe Manana, Robert Newson
개발자아파치 소프트웨어 재단
발표일2005
안정화 버전
2.1.1 / 2017년 11월 7일 (22달 전)(2017-11-07)
저장소github.com/apache/couchdb
프로그래밍 언어얼랭
운영 체제크로스 플랫폼
종류도큐먼트 지향 데이터베이스
라이선스아파치 라이선스 2.0
웹사이트couchdb.apache.org

아파치 카우치DB(Apache CouchDB)는 스케일러블 아키텍처를 쉽게 이용하고 보유하는데 초점을 둔 오픈 소스 데이터베이스 소프트웨어이다. 도큐먼트 지향 NoSQL 데이터베이스 구조를 갖추고 있으며 얼랭으로 구현되어 있다. JSON을 사용하여 데이터를 저장하고, 자바스크립트를 쿼리 언어로 사용(맵리듀스 사용)하며 API를 위해 HTTP를 사용한다.[1]

카우치DB는 2005년에 첫 출시되었으며 나중에 2008년에 아파치 소프트웨어 재단 프로젝트로 되었다.

관계형 데이터베이스과는 달리 카우치DB 데이터베이스는 테이블에 데이터와 관계를 저장하지 않는다. 그 대신 각 데이터베이스는 독립된 도큐먼트들의 모음집이 된다. 각 도큐먼트는 자신만의 데이터와 스스로 포함하는 스키마를 정비한다. 애플리케이션은 여러 개의 데이터베이스, 이를테면 사용자 휴대전화에 저장된 것과 서버에 저장된 것에 접근할 수 있다. 도큐먼트 메타데이터는 리비전 정보를 포함하고 있어서 데이터베이스의 접속이 끊긴 동안 발생할 수 있는 차이를 병합하는 것이 가능하다.

카우치DB는 다중 버전 동시성 제어(MVCC)의 형태를 구현하므로 쓰기 중에 데이터베이스 파일을 잠그지 않는다. 충돌은 애플리케이션이 해결하도록 내버려둔다. 충돌을 해결하는 것은 일반적으로 데이터를 처음에 도큐먼트 중 하나로 병합하여 오래된 것을 삭제하는 것을 수반한다.[2]

그 밖의 기능들로는 결과 무결성을 포함한 도큐먼트 수준의 ACID 시맨틱, (증강) 맵리듀스, (증강) 복제를 포함한다. 카우치DB의 독특한 기능 중 하나는 멀티 마스터 복제(multi-master replication)이며 여러 머신들로 하여금 스케일할 수 있게 함으로써 고성능 시스템을 구축할 수 있게 한다. Fauxton(과거 이름은 Futon)라는 이름의 내장된 웹 애플리케이션은 관리를 돕는다.

같이 보기[편집]

각주[편집]

  1. Apache Software Foundation. “Apache CouchDB”. 2012년 4월 15일에 확인함. 
  2. Smith, Jason. “What is the CouchDB replication protocol? Is it like Git?”. 《StackOverflow》. Stack Exchange. 2012년 4월 14일에 확인함. 

참고문헌[편집]

외부 링크[편집]