EdgeDB, 한번 망했던 ORDBMS의 희망이 될까?

 

EdgeDB

https://www.edgedb.com/

EdgeDB는 PostgreSQL을 기반으로 개발된 고성능 객체-관계형 데이터베이스 시스템: Object-Relational Database Management System (ORDBMS)입니다.

ORDBMS는 객체 지향 데이터 모델의 특징, 예를 들어 캡슐화, 상속, 다형성 등을 관계형 데이터베이스 시스템과 통합하려는 시도를 하였습니다. 이를 통해 개발자가 관계형 데이터베이스의 안정성, 확장성 및 성능을 유지하면서도 객체 지향 프로그래밍의 강력한 기능을 활용할 수 있는 장점이 있었습니다. 이러한 장점에도 불구하고 ORDBMS는 오래전 한번 망한 경험이 있습니다.

왜 망했냐?

다양하고 복잡한 이유들이 있었지만, 결국 가장 큰 원인은 인기가 없었기 때문이죠.

  • 기술적 복잡성: ORDBMS는 오브젝트 지향 개념과 관계형 데이터베이스 개념을 모두 이해해야 합니다. 이로 인해 개발자들이 새로운 기술을 익히고 이해하는 데 어려움을 겪었습니다.
  • 성능 문제: ORDBMS는 관계형 데이터베이스에 비해 상대적으로 낮은 성능을 보여주기도 합니다. 이는 오브젝트 지향 기능이 관계형 데이터베이스의 성능에 영향을 주기 때문입니다.
  • 경쟁 기술의 발전: NoSQL 데이터베이스 및 관계형 데이터베이스의 지속적인 발전으로 인해 ORDBMS의 중요성이 상대적으로 감소했습니다. NoSQL 데이터베이스는 대규모 데이터를 처리하는 데 효과적이며, 관계형 데이터베이스는 안정성과 트랜잭션 처리에 강점을 가지고 있습니다.
  • 개발 및 유지보수 비용: ORDBMS의 복잡성으로 인해 개발 및 유지보수 비용이 높아질 수 있습니다. 이는 기업들이 ORDBMS 대신 다른 데이터베이스 관리 시스템을 선호하는 이유 중 하나입니다.
  • 시장 점유율: 관계형 데이터베이스 시스템이 시장에서 이미 큰 점유율을 차지하고 있어, ORDBMS가 시장에서 인기를 얻기가 어려웠습니다. 대표적인 관계형 데이터베이스 제품인 Oracle, MySQL, PostgreSQL, SQL Server 등이 시장의 주류를 이루고 있었습니다.

일부 주장에 따르면, ORDBMS는 객체 지향 프로그래밍과 관계형 데이터베이스의 세계를 완벽하게 통합하지 못했다고 합니다. 이로 인해 ORDBMS는 복잡한 쿼리 최적화 및 성능 문제와 같은 여러가지 이유로 한계 점이 뚜렷했고, 결국 시장에서 외면 받은 불운의 데이터베이스 였습니다.

그러나 지난 몇 년 동안 데이터베이스 기술의 발전으로 인해 ORDBMS와 유사한 아이디어가 부활하였고, 그 중 하나가 EdgeDB입니다. EdgeDB는 객체-관계형 데이터 모델과 PostgreSQL의 성능과 안정성을 결합하여, 관계형 데이터베이스와 객체 지향 프로그래밍 사이의 격차를 줄이고자 노력한 결과물인 것이죠.

EdgeDB에 대해 포스팅 하는 이유는 최근 EdgeDB를 사용한 개발자로부터 엄청난 찬양을 받은 것을 계기로 관심을 두었고, ChatGPT가 엄청난 인기를 끌며 AI 기술들이 화제가 되면서 EdgeDB도 Open AI의 프로젝트의 한 축에  이름을 올린 것을 보고 관심을 두게 되었습니다.

 

EdgeDB의 주요 특징과 이점

  • 객체-관계형 모델: EdgeDB는 객체와 관계 사이의 강력한 매핑을 제공하여, 복잡한 데이터 구조를 쉽게 표현하고 관리할 수 있습니다.
  • EdgeQL 쿼리 언어: EdgeQL은 EdgeDB의 고유한 쿼리 언어로, 간결하고 표현력이 뛰어납니다. EdgeQL을 사용하여 데이터를 조회하고 조작할 수 있으며, 직관적인 구문과 강력한 기능을 제공합니다.
  • 강력한 유형 시스템: EdgeDB는 강력한 형식 시스템을 제공하여 데이터 무결성을 보장하고, 오류를 줄이며, 코드의 가독성을 높입니다. 사용자 정의 형식과 제약 조건을 적용할 수 있으며, 이를 통해 데이터 구조를 더 정확하게 정의할 수 있습니다.
  • 성능: EdgeDB는 PostgreSQL의 성능을 기반으로 하며, 여러 최적화 및 개선을 통해 높은 성능을 제공합니다. 이로 인해 높은 읽기 및 쓰기 처리량과 낮은 지연 시간을 달성할 수 있습니다.
  • 확장성: EdgeDB는 수직 및 수평 확장이 가능한 설계를 가지고 있으며, 데이터베이스 클러스터를 통해 높은 가용성과 부하 분산을 지원합니다.
  • 데이터 마이그레이션: EdgeDB는 데이터 마이그레이션 도구를 포함하여 스키마 변경을 쉽게 관리하고, 애플리케이션의 전체 수명주기 동안 일관된 데이터를 유지할 수 있습니다.
  • 개발자 친화적: EdgeDB는 다양한 프로그래밍 언어와 통합되는 클라이언트 라이브러리를 제공하며, 개발자가 효율적으로 작업할 수 있는 환경을 제공합니다.

이러한 특징들 덕분에 EdgeDB는 웹 애플리케이션, 모바일 애플리케이션, 마이크로서비스 아키텍처, 데이터 분석 및 기계 학습 등 다양한 유형의 프로젝트에 적합한 데이터베이스라고 소개 합니다.

 

하지만 EdgeDB를 사용한다는 것은

EdgeDB의 출시는 비교적 최근(2021년)이라서 현재까지의 정보로는 국내외 대표적인 서비스에 대한 명확한 정보를 찾기 어렵습니다. 즉, 이렇다 할 레퍼런스가 없습니다.

그에 따라 개인적으로는 얼마나 더 성장할 수 있을지 의문입니다. ORDBMS가 한번 망한 경험도 있습니다.

그리고 EdgeDB를 설치하고 어느 정도 사용을 해봤는데, PostgreSQL을 기반으로 했는데도 전혀 다른 UI를 가지고 있고, SQL이 아닌 EdgeQL을 익히는 것은 데이터베이스 생성, 테이블 생성 하나 하는 것도 되게 생소한 느낌이었습니다. 몽고나 엘라스틱을 다루면서 충분히 익숙해진 JSON 형식도 아니고 독자적인 형식이기 때문에 진입 장벽이 낮다 라고 말하기는 어려울 것 같습니다.

type Movie {
  required property title -> str;
  required link director -> Person;
}

type Person {
  required property name -> str;
}

이런식으로 스키마를 정의 합니다.. DBA들 입장에선 엄청 생소합니다.

일단 러닝 커브가 제법되는 편이어서 실제 운영 수준의 테스트를 하지는 못했지만, 그 정도 노력이 필요하다면 이미 검증된 다른 데이터베이스를 선택할 것 같다는 생각이 많이 들었습니다. 이미 시장에 검증된 RDBMS와 NoSQL, 특히 비슷한 성향을 보이는 그래프DB인 Neo4j나 ArangoDB 같은 녀석들은 배우면 배웠지, 아직 DB-engines Ranking에 300위권 안에 오르지도 못해 인지도도 떨어지고, 사용에 있어서 실험적 단계라고 밖엔 안되는 것 같습니다.

만약 도입한다면 유지 보수는 전적으로 도입한 사람의 책임이 되고, 아직까지 어떤 문제점이 발생할 지 모른다는 것도 아무리 신기술을 좋아하고 새 버전을 테스트하기 좋아하는 저로서도 어려운 제품이긴 합니다.

아직 출시가 얼마 되지 않은 제품이기 때문에 성공을 예측하기는 어려우나, 요즘 개발에 흥미가 좀 있는 저로서는 관심이 가는 데이터베이스 중에 하나 라고는 생각합니다. 하지만 지금 바로 서비스에 쓰기는 좀 어려울 것 같습니다.

그냥 세상에 이런 DB도 있구나 하면 될 것 같기도 합니다.

 

소셜 미디어로 공유하기

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.