카우치DB
아파치 카우치DB(Apache CouchDB)는 스케일러블 아키텍처를 쉽게 이용하고 보유하는데 초점을 둔 오픈 소스 데이터베이스 소프트웨어이다. 도큐먼트 지향 NoSQL 데이터베이스 구조를 갖추고 있으며 얼랭으로 구현되어 있다. JSON을 사용하여 데이터를 저장하고, 자바스크립트를 쿼리 언어로 사용(맵리듀스 사용)하며 API를 위해 HTTP를 사용한다.[2]
원저자 | Damien Katz, Jan Lehnardt, Noah Slater, Christopher Lenz, J. Chris Anderson, Paul Davis, Adam Kocoloski, Jason Davies, Benoit Chesneau, Filipe Manana, Robert Newson |
---|---|
개발자 | 아파치 소프트웨어 재단 |
발표일 | 2005 |
안정화 버전 | 3.4.2[1]
/ 2024년 10월 20일 (45일 전) |
저장소 | github |
프로그래밍 언어 | 얼랭 |
운영 체제 | 크로스 플랫폼 |
종류 | 도큐먼트 지향 데이터베이스 |
라이선스 | 아파치 라이선스 2.0 |
상태 | 개발 중 |
웹사이트 | couchdb |
카우치DB는 2005년에 첫 출시되었으며 나중에 2008년에 아파치 소프트웨어 재단 프로젝트로 되었다.
관계형 데이터베이스과는 달리 카우치DB 데이터베이스는 테이블에 데이터와 관계를 저장하지 않는다. 그 대신 각 데이터베이스는 독립된 도큐먼트들의 모음집이 된다. 각 도큐먼트는 자신만의 데이터와 스스로 포함하는 스키마를 정비한다. 애플리케이션은 여러 개의 데이터베이스, 이를테면 사용자 휴대전화에 저장된 것과 서버에 저장된 것에 접근할 수 있다. 도큐먼트 메타데이터는 리비전 정보를 포함하고 있어서 데이터베이스의 접속이 끊긴 동안 발생할 수 있는 차이를 병합하는 것이 가능하다.
카우치DB는 다중 버전 동시성 제어(MVCC)의 형태를 구현하므로 쓰기 중에 데이터베이스 파일을 잠그지 않는다. 충돌은 애플리케이션이 해결하도록 내버려둔다. 충돌을 해결하는 것은 일반적으로 데이터를 처음에 도큐먼트 중 하나로 병합하여 오래된 것을 삭제하는 것을 수반한다.[3]
그 밖의 기능들로는 결과 무결성을 포함한 도큐먼트 수준의 ACID 시맨틱, (증강) 맵리듀스, (증강) 복제를 포함한다. 카우치DB의 독특한 기능 중 하나는 멀티 마스터 복제(multi-master replication)이며 여러 머신들로 하여금 스케일할 수 있게 함으로써 고성능 시스템을 구축할 수 있게 한다. Fauxton(과거 이름은 Futon)라는 이름의 내장된 웹 애플리케이션은 관리를 돕는다.
같이 보기
편집각주
편집- ↑ “Release 3.4.2”. 2024년 10월 20일. 2024년 10월 21일에 확인함.
- ↑ Apache Software Foundation. “Apache CouchDB”. 2012년 4월 15일에 확인함.
- ↑ Smith, Jason. “What is the CouchDB replication protocol? Is it like Git?”. 《StackOverflow》. Stack Exchange. 2012년 4월 14일에 확인함.
참고 문헌
편집- Anderson, J. Chris; Slater, Noah; Lehnardt, Jan (2009년 11월 15일), 《CouchDB: The Definitive Guide》 1판, 오라일리 미디어, 300쪽, ISBN 0-596-15816-5
- Lennon, Joe (2009년 12월 15일), 《Beginning CouchDB》 1판, en:Apress, 300쪽, ISBN 1-4302-7237-6, 2010년 12월 5일에 원본 문서에서 보존된 문서, 2018년 2월 18일에 확인함
- Holt, Bradley (2011년 3월 7일), 《Writing and Querying MapReduce Views in CouchDB》 1판, 오라일리 미디어, 76쪽, ISBN 1-4493-0312-9
- Holt, Bradley (2011년 4월 11일), 《Scaling CouchDB》 1판, 오라일리 미디어, 72쪽, ISBN 1-4493-0343-9
- Brown, MC (2011년 10월 31일), 《Getting Started with CouchDB》 1판, 오라일리 미디어, 50쪽, ISBN 1-4493-0755-8
- Thompson, Mick (2011년 8월 2일), 《Getting Started with GEO, CouchDB, and Node.js》 1판, 오라일리 미디어, 64쪽, ISBN 1-4493-0752-3
외부 링크
편집- 카우치DB - 공식 웹사이트
- CouchDB: The Definitive Guide
- Complete HTTP API Reference
- Simple PHP5 library to communicate with CouchDB
- Asynchronous CouchDB client for Java
- Asynchronous CouchDB client for Scala
- Lehnardt, Jan (2008). “Couch DB at 10,000 feet”. 《Erlang eXchange 2008》. 2012년 11월 9일에 원본 문서에서 보존된 문서. 2012년 4월 15일에 확인함.
- Lenhardt, Jan (2009). “CouchDB for Erlang Developers”. 《Erlang Factory London 2009》. 2011년 6월 19일에 원본 문서에서 보존된 문서. 2012년 4월 15일에 확인함.
- Katz, Damien (January 2009). “CouchDB and Me”. 《RubyFringe》. InfoQ. 2011년 4월 27일에 원본 문서에서 보존된 문서. 2012년 4월 15일에 확인함.