NoSQL에 대한 오해는 오랫동안 존재해 왔습니다. 이 블로그 시리즈는 이제 '가장 두려운'의 의미와 데이터베이스에 메모리를 제공한다는 것이 무엇을 의미하는지에 대한 논의로 마무리됩니다.

이 시리즈의 이전 포스팅도 꼭 확인하시기 바랍니다:

이 게시물에서는 다시 한 번 몽고DB가 카우치베이스와 NoSQL에 대해 오해하고 있는 것들.

Couchbase는 "가장 무서운 데이터베이스"인가요?

몽고 는 2년이 지난 2020년의 스택 오버플로 개발자 설문조사에 주목할 것을 촉구합니다. 이 설문조사에서 Couchbase가 낮은 순위를 차지한 것은 사실입니다. 하지만 개발자들이 "이 데이터베이스가 두렵다"는 확인란을 선택했기 때문이 아닙니다(내년에 계획된 프로젝트에 대한 확인란을 통해 유추할 수 있습니다).

또한, "Couchbase"라는 이름은 이름이 비슷하지만 매우 다른 "CouchDB"와 혼동되는 경우가 많습니다. 몽고조차도 실수한 일반적인 가정입니다. 웹페이지에서). 이는 가장 최근의 결과에서 입증되었습니다. 2022 개발자 설문조사에서 CouchDB를 별개의 옵션으로 추가했습니다. 2020년 이후 2021년과 2022년 조사 결과에서 카우치베이스는 지속적으로 상승했으며, 2021년 이후 11점 이상 상승했습니다.

그리고 더 중요한 점은 Couchbase가 인지도 측면에서 아직 해야 할 일이 많지만, 설문조사에서 상위 두 데이터베이스는 PostgreSQL과 Redis라는 점입니다. 이 두 데이터베이스는 개별 제품으로서 뛰어난 SQL 지원과 캐싱을 제공하는 데이터베이스입니다. 분명히 SQL과 메모리 우선 아키텍처는 개발자가 원하는 두 가지 요소이며, Couchbase는 이미 이 두 가지를 함께 제공합니다.

몽고 작업을 '두려워하는' 6,803명의 개발자는 다음을 확인해 보세요. 카우치베이스 카펠라의 유연성과 SQL의 친숙함을 원하신다면 (설문조사에서 상위 3개 언어 중 2개는 결국 JavaScript와 SQL입니다), JSON을 선택하실 수 있습니다.

스택 오버플로의 개발자 설문조사는 매우 중요하며, Couchbase는 항상 개발자 경험을 개선하기 위해 노력하고 있습니다. Couchbase가 좋은 성적을 거둔 다른 설문조사 및 수상 내역에 관심이 있으시다면 확인해 보세요:

네, 아직 해야 할 일이 많습니다. 하지만 카우치베이스는 개발자를 중요하게 생각하며 여러분의 요구를 충족하기 위해 계속 개선해 나갈 것입니다.

모든 데이터베이스가 메모리를 사용할 수 없나요?

마지막 오해는 데이터베이스의 메모리 사용 방식에 관한 것입니다. 복잡한 문제일 수 있지만 일반적으로 데이터베이스의 메모리 사용량은 크게 두 가지 범주로 나뉩니다:

    • 버퍼링
    • 캐싱

이 용어는 매우 다른 것을 설명하지만 종종 (실수로) 같은 의미로 사용됩니다.

버퍼란 무엇인가요?

간단히 말해 버퍼 는 데이터가 이동하는 속도를 원활하게 하는 데 사용됩니다. 쿼리 결과는 버퍼에 저장되어 클라이언트가 쿼리 프로세스에서 직접 읽는 대신 버퍼에서 읽을 수 있습니다. 결과가 소비되면 데이터는 더 이상 버퍼에 남아 있지 않습니다.

캐시란 무엇인가요?

반면에 캐싱 는 데이터에 반복적으로 빠르게 액세스하는 데 사용됩니다. 디스크에서 처음 가져온 키-값 조회 결과는 다음에 액세스해야 할 때를 대비해 메모리에 저장할 수 있습니다. 데이터는 '무효화'(만료되거나 쫓겨나거나 캐싱 메커니즘이 무엇이든)될 때까지 캐시에 유지됩니다.

이 프레젠테이션은 카우치베이스 고객 UPS 에서는 Couchbase의 매니지드 캐시 구현과 매니지드 캐시의 이점에 대해 설명합니다:

거의 모든 데이터베이스가 버퍼링을 사용하는 것은 사실이며 버퍼링 공간을 조정할 수 있고 이를 통해 성능을 향상시킬 수 있는 것은 사실입니다. 하지만 모든 데이터베이스에 관리형 캐시가 내장되어 있다는 것은 사실이 아닙니다. 예를 들어, Redis(캐싱 시스템)는 종종 다음과 같은 데이터베이스와 짝을 이루는 이유입니다. 하지 마십시오. 캐싱 기능이 있는지 확인합니다.

카우치베이스는 내장된 관리형 캐시를 사용하면 캐싱을 위해 별도의 도구를 추가하거나 동기화되지 않을까 걱정할 필요가 없으며, 모든 것이 자동으로 이루어집니다.

따라서 데이터베이스 메모리 구성을 평가할 때 버퍼링, 캐싱 또는 둘 다에 영향을 미치는지 여부를 염두에 두어야 합니다.

모든 것을 메모리에 저장해야 하나요?

물론이죠. 한 가지 방법이 있습니다. 특정 데이터베이스 크기의 경우 이 방법이 실현 가능하고 저렴합니다. 데이터베이스 크기가 큰 경우(예: 수 테라바이트)에는 이 방법이 가장 경제적인 방법이 아닐 수 있습니다. 그리고 어차피 정기적으로 해당 데이터를 충분히 사용하지 않을 수도 있습니다.

입력하세요: 카우치베이스의 새로운 마그마 스토리지 엔진를 사용하면 1%의 낮은 메모리 대 데이터 비율로 데이터에 수 테라바이트를 지원할 수 있습니다.

다음 단계는 무엇인가요?

NoSQL 오해에 대한 이 시리즈를 읽어주셔서 감사합니다.

더 자세히 논의하고 싶으신가요? 언제든지 카우치베이스 디스코드 를 통해 Couchbase 직원 및 커뮤니티와 더 많은 대화, 질문, 답변을 나눌 수 있습니다. 또한 새로운 카우치베이스 커뮤니티 허브.

작성자

게시자 매튜 그로브스

Matthew D. Groves는 코딩을 좋아하는 사람입니다. C#, jQuery, PHP 등 무엇이든 풀 리퀘스트를 제출할 정도로 코딩을 좋아합니다. 90년대에 부모님의 피자 가게를 위해 QuickBASIC POS 앱을 만든 이후로 전문적으로 코딩을 해왔습니다. 현재 Couchbase의 선임 제품 마케팅 관리자로 일하고 있습니다. 여가 시간에는 가족과 함께 축구 경기를 관람하고 개발자 커뮤니티에 참여하며 시간을 보냅니다. 그는 .NET의 AOP, .NET의 프로 마이크로서비스, Pluralsight 저자, Microsoft MVP의 저자이기도 합니다.

댓글 남기기