Offcanvas

개발자 / 서버 / 스토리지

칼럼 | 범용 DB의 귀환? 애초에 물러난 적이 없다

2022.04.19 Matt Asay  |  InfoWorld
데이터베이스는 범용 모델에서 특화 모델로 발전해왔다. 하지만 최근 범용 모델로 돌아가려는 움직임이 보인다. 정말 그럴까? 
 
ⓒ Jimee, Jackie, Tom & Asha (CC BY-SA 2.0)

작년 레드몽크(RedMonk) 애널리스트 스티븐 오그레이디는 ‘A Return to the General Purpose Database’(범용 데이터베이스의 귀환)이라는 제목의 글을 썼다. 글에 따르면 데이터베이스 시장 요구에 따라 ‘바닐라DB’(VanillaDB) 같은 관계형 데이터베이스를 넘어 NoSQL 같은 수많은 특화 데이터베이스가 만들어졌다(심지어 AWS는 수많은 종류의 맞춤형 데이터베이스를 만들어 판매했다). 그런데 10년 넘게 이어져 왔던 전환의 추세가 뒤집히는 듯했다는 것이 글의 핵심 주장이었다.

실제로 데이터베이스 관리 시스템별 사용률을 추적하는 DB엔진을 살펴보면 한때는 소수였던 데이터베이스가 2022년에는 무려 391개로 늘어났다. 오그레이디에 따르면 이제 소수의 범용 데이터베이스로 다시 간추려질 차례다. 과연 그럴까? 

애초에 시장은 범용 데이터베이스를 떠난 적이 없다. 

데이터 관리 도구를 만드는 모달 랩스(Modal Labs)의 CEO 에릭 베른하르트는 “궁극적으로 범용 도구(프로그래밍 언어, 데이터베이스, 프레임워크 등등)는 특화된 도구보다 더 많이 쓰일 수밖에 없다. 성능과 같은 특정한 측면에서 10배가 넘는 우위를 가졌더라도 말이다”라고 설명했다. 그는 “지난 10년 동안 데이터베이스, 프로그래밍 언어, 프레임워크의 역사를 통틀어봐도 범용 도구가 대부분 마지막 승자로 이름을 올려왔다”라고 덧붙였다. 

왜일까? 개발자가 잡다한 특화 도구를 배울 여력이 없기 때문이다.  

10년이 지나도 같은 도구가 상위권 유지 
DB 엔진에 따르면 2012년 10월에 가장 많이 쓰인 데이터베이스는 다음과 같다.
 
  1. 오라클(Oracle)
  2. 마이크로소프트 SQL 서버(Microsoft SQL Server)
  3. 마이SQL(MySQL) 
  4. 마이크로소프트 액세스(Microsoft Access)
  5. 디비투(DB2)
  6. 포스트그레스큐엘(PostgreSQL)
  7. 몽고DB(MongoDB)
  8. SQLite
  9. 카산드라(Cassandra)
  10. 맴캐시드(Memcached)

2022년 현재 순위는 다음과 같다.
 
  1. 오라클(Oracle)
  2. 마이SQL(MySQL) 
  3. 마이크로소프트 SQL 서버(Microsoft SQL Server)
  4. 포스트그레스큐엘(PostgreSQL)
  5. 몽고DB(MongoDB)
  6. 레디스(Redis)
  7. 엘라스틱서치(Elasticsearch)
  8. IBM 디비투(IBM Db2)
  9. 마이크로소프트 액세스(Microsoft Access)
  10. SQLite

순위에 변동은 있었지만, 10위 권 안에 있는 데이터베이스는 거의 비슷하다. 프로그래밍 언어는 어떨까? 레드몽크는 오랫동안 프로그래밍 언어의 변화 추세를 추적해왔지만 최근 데이터를 살펴보면 가장 큰 ‘변화’는 변화가 거의 없다는 것이다. “지난 몇 분기에 걸친 추세의 핵심은 ‘안정’이다. 몇 가지 예외를 빼면 최근 몇 년을 살펴봐도 프로그래밍 언어의 추세는 크게 바뀌지 않았다”라고 오그레이디는 설명했다

오늘 날 가장 많이 쓰이는 프로그래밍 언어 10가지는 다음과 같다.
 
  1. 자바스크립트 
  2. 파이썬
  3. 자바
  4. PHP
  5. (tie) CSS
  6. (tie) C#
  7. C++
  8. 타입스크립트(TypeScript)
  9. 루비
  10. C

10년 전 순위는 다음과 같았다.
 
  1. 자바스크립트
  2. 자바
  3. PHP
  4. 파이썬
  5. 루비
  6. C#
  7. C++
  8. C
  9. 오브젝티브-C
  10. 쉘(Shell)

마찬가지로 순위가 동일하지는 않지만 주요 언어는 거의 비슷하다. 이렇듯 대부분 기술의 주요 도구가 잘 바뀌지 않는 이유는 무엇일까? 

결국 범용 도구가 선택받는다 
“모든 선언형 프로그래밍 언어는 결국 쓰기 끔찍한 범용 언어가 된다”라고 자바 언어 설계자 브라이언 괴츠는 말했다. 런던 킹스 대학에서 컴퓨터 공학을 가르치는 스티븐 켈은 “C 언어가 이토록 오래, 널리 쓰이는 이유는 거의 한계가 없는 개방성 덕분이다. 외부 메모리, FFI, 동적 연결 같은 기능을 통해 다른 시스템과 자유자재로 상호작용할 수 있다”라고 주장했다. 말하자면 C 언어는 수많은 기능을 제공해 개발자가 더 다양한 작업에 쓸 수 있어 널리 쓰이는 것이다. 

“업계 전체적으로 범용 도구를 편애한다. 개발자를 고용하기 더 쉽고, 이미 널리 쓰여 많은 설명서와 가이드가 제공되기 때문이다. 그래서 유지 보수가 더 잘 이루어지며 앞으로도 오래 쓰일 것이라고 확신할 수 있다”라고 머신러닝 엔지니어 티모시 울로드코는 설명했다. 단순히 네트워크 효과의 결과라고 볼 수도 있지만 더 중요한 것은 어떻게 범용 언어가 네트효과를 유발하는지다. 

베른하르트손이 쓴 글에 달린 댓글은 자바 같은 범용 프로그래밍 언어가 어떻게 네트워크 효과를 유발했는지 설명한다. 이 댓글에는 “범용 대 특화의 문제가 아니다. 결국 중요한 것은 적절하게 진화하는 능력이다. 이런 도구가 시장을 지배한다”라고 적혀있다. 업계가 매번 요구하는 새로운 기능을 수용해 알맞게 진화했으므로 성공한 것이다.

데이터베이스도 마찬가지다. “특화됐던 데이터 저장소가 점점 줄어들고 있다. MySQL 등의 범용 데이터베이스가 NoSQL과 같은 특화 데이터베이스가 만든 혁신적 기능을 따오는 경우가 종종 있음에도 말이다”라고 오그레이디는 덧붙였다. 

그렇다면 결국 모두가 같은 언어와 도구만을 쓰게 된다는 것일까? 그건 아니다. 파이썬은 C와 다르고, 오라클은 몽고DB나 DB2와도 다르다. 각 범용 언어, 프레임워크 및 데이터베이스는 고유의 특성을 가지고 있다. 최상위 1개가 아니라 상위 10개 언어의 순위를 매기는 이유이기도 하다.  

물론 기업과 기업에 속한 개발자는 앞으로도 어떤 언어나 도구를 써야 할지 결정해야 할 것이다. 하지만 크게 고민할 필요는 없다. 높은 개발자 생산성과 기업 민첩성을 제공하는 범용 도구가 대부분 더 효과적이다. 

개발자는 멋있어 보이는 새 프로그래밍 언어를 얼마든지 취미 삼아 배울 수 있다. 단지 커리어로 삼을 생각은 하지 않았으면 좋겠다. ciokr@idg.co.kr
추천 테크라이브러리

회사명:한국IDG 제호: ITWorld 주소 : 서울시 중구 세종대로 23, 4층 우)04512
등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 편집인 : 박재곤 청소년보호책임자 : 한정규
사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.