2020.07.01

IDG 블로그 | 이렇게 많은 데이터베이스가 필요한가?

Matt Asay | InfoWorld
세상은 소수의 데이터베이스에 의존하고 있었다. 모두가 알고 있는 믿을 만한 관계형 데이터베이스인 오라클, 마이크로소프트 SQL, 인그레스, IBM DB2 정도이다. 하지만 얼마 지나지 않아 오픈소스가 MySQL과 포스트그레SQL로 이 진영을 깨트렸다. 그리고 조금 뒤, NoSQL 데이터베이스가 시장에 진입했고, 몽고DB, 레디스, 아파치 카산드라 등은 점점 더 인기를 얻고 있다. 숫자로 보면, 2013년 데이터베이스 인기도를 매기는 DB-Engines에는 109가지 데이터베이스가 올랐다. 그렇다면, 2020년 현재는 어떨까? DB-Engines에는 총 356가지 데이터베이스가 올라와 있는데, 7년 전의 3배 이상이다.
 
ⓒ Getty Images Bank

의문이 생기지 않을 수 없다. 이렇게 데이터베이스가 번창하는 것은 좋은 일인가? 정말로 356가지 데이터베이스가 필요할까? 그러니까 포스트그레SQL(인기 순위 4위)는 계속 사용하겠지만, 얀자(Yanza, 336위)나 업스케일디비(Upscaldb, 299위) 같은 데이터베이스가 필요할까?
대답은 ‘그렇다’인 것 같다.
 

탈출 속도에 도달하는 것은 소수에 불과

물론 모두가 동의하는 것은 아니다. 몽고DB CEO 데브 이티체리아는 한 인터뷰에서 “탈출 속도에 도달하는 플랫폼과 기술은 소수에 불과할 것”이라고 주장했다. 그리고는 기업에는 “일부 레거시 표준과 일부 관계형 데이터베이스가 있고, 그 다음에 일부 현대적인 표준을 갖추게 될 것”이라고 덧붙였다. 이티체리아는 당연히 몽고DB를 그런 표준으로 보고 있으며, 이런 주장을 뒷받침할 증거도 풍부하다.

개발자가 356가지 옵션을 헤매고 다니지 않을 이유는 무엇일까? 이티체리아의 답변은 다음과 같다. 

“개발자는 이 모든 종류의 데이터베이스를 학습하는 인지적 부담을 지지 않으려 한다. 일정 수준이 지나면 효과가 감소할 것이라고 생각한다. 사람들은 플랫폼을 통합하고자 하는데, 관리하기 쉽고 해당 플랫폼을 잘 아는 개발자도 더 많은 등의 여러 장점 때문이다.”

필자가 몽고DB에서 일할 때와 같은 관점이다.

문제는 몽고DB의 성공이 이런 주장과 모순된다는 것이다. DB-Engines에서 상위 10위의 데이터베이스를 살펴보면, 이중 거의 절반(40%)이 10년 전만 해도 존재하지도 않았거나 막 출시된 수준이었다. 25위까지 살펴보면, 이런 경향은 더 심해진다. 절반 이상이 10년 전에는 없었다. 많은 데이터베이스가 데이터의 변화에 의해 시장에 호출됐기 때문이다. 새로운 워크로드의 새로운 데이터는 새로운 관리 방법이 필요하다. 
 

새로운 가려움증

몽고DB는 훌륭한 예지만(2009년에 설립해 11년 만에 5위의 인기 데이터베이스가 되었다), 더 확실한 사례는 레디스(Redis)이다. 레디스 설립자 살바토르 산필리포는 자신의 실시간 분석 엔진에 MySQL만 사용하는 것은 좋아했다. 하지만 안타깝게도 MySQL은 비용 효율적인 방법으로 확장할 수 없었다. 그래서 산필리포는 기존의 관행을 깨고 인메모리 NoSQL 데이터베이스를 만들었다. 지금 미칠 듯한 인기를 얻고 있는 레디스의 탄생 배경이다.

산필리포가 밝혔듯, 레디스는 “새로운 것을 탐색하는 것”이 어떻게 가능한지를 보여주는 좋은 사례이다. 심지어 데이터베이스처럼 사람들이 현재의 옵션이 잠재적인 문제를 모두 해결했다고 생각하는 영역도 마찬가지이다. 우리는 이미 수년에 걸쳐 관계형 데이터베이스에서 이런 일을 했으며, 반구조화 또는 비구조화 데이터를 모두 깔끔하게 정돈된 행과 열에 욱여넣으려 했다. 물론 그렇게 되지는 않았다.

물론 이들 356가지 데이터베이스 중 대다수가 ‘탈출 속도’에 이르지 못하고 떨어지고 말 것이라는 점에서 이티체리아의 말은 옳다. 하지만 몽고DB나 레디스가 증명했듯이, 우리는 아직 개발자가 사랑하는 새로운 데이터베이스를 발명해내지 못하고 있다. 오늘날의 데이터에 맞는 데이터베이스 승자를 다소 정확하게 골라낼 수 있을지는 모르지만, 내일의 데이터와 데이터베이스가 어떨지 함부로 추정한다면 바보가 되고 말 것이다.

아직은 알 수 없는 일이다. 

우리가 아는 것은 개발자가 몇 가지 범용 데이터베이스를 모으는 경향이 있는 한편, 특정 용도로 개발된 데이터베이스를 적극적으로 수용한다는 사실이다. 예를 들어, 레디스는 초기에 주로 캐시 용도로만 사용됐지만, 이후 본격적으로 성장하기 시작했다. 소프트웨어의 다른 어떤 영역보다 데이터베이스는 지속적인 진화와 붕괴의 가능성이 높은 영역이다. 이는 축하할 일이지 걱정할 일이 아니다. editor@itworld.co.kr


2020.07.01

IDG 블로그 | 이렇게 많은 데이터베이스가 필요한가?

Matt Asay | InfoWorld
세상은 소수의 데이터베이스에 의존하고 있었다. 모두가 알고 있는 믿을 만한 관계형 데이터베이스인 오라클, 마이크로소프트 SQL, 인그레스, IBM DB2 정도이다. 하지만 얼마 지나지 않아 오픈소스가 MySQL과 포스트그레SQL로 이 진영을 깨트렸다. 그리고 조금 뒤, NoSQL 데이터베이스가 시장에 진입했고, 몽고DB, 레디스, 아파치 카산드라 등은 점점 더 인기를 얻고 있다. 숫자로 보면, 2013년 데이터베이스 인기도를 매기는 DB-Engines에는 109가지 데이터베이스가 올랐다. 그렇다면, 2020년 현재는 어떨까? DB-Engines에는 총 356가지 데이터베이스가 올라와 있는데, 7년 전의 3배 이상이다.
 
ⓒ Getty Images Bank

의문이 생기지 않을 수 없다. 이렇게 데이터베이스가 번창하는 것은 좋은 일인가? 정말로 356가지 데이터베이스가 필요할까? 그러니까 포스트그레SQL(인기 순위 4위)는 계속 사용하겠지만, 얀자(Yanza, 336위)나 업스케일디비(Upscaldb, 299위) 같은 데이터베이스가 필요할까?
대답은 ‘그렇다’인 것 같다.
 

탈출 속도에 도달하는 것은 소수에 불과

물론 모두가 동의하는 것은 아니다. 몽고DB CEO 데브 이티체리아는 한 인터뷰에서 “탈출 속도에 도달하는 플랫폼과 기술은 소수에 불과할 것”이라고 주장했다. 그리고는 기업에는 “일부 레거시 표준과 일부 관계형 데이터베이스가 있고, 그 다음에 일부 현대적인 표준을 갖추게 될 것”이라고 덧붙였다. 이티체리아는 당연히 몽고DB를 그런 표준으로 보고 있으며, 이런 주장을 뒷받침할 증거도 풍부하다.

개발자가 356가지 옵션을 헤매고 다니지 않을 이유는 무엇일까? 이티체리아의 답변은 다음과 같다. 

“개발자는 이 모든 종류의 데이터베이스를 학습하는 인지적 부담을 지지 않으려 한다. 일정 수준이 지나면 효과가 감소할 것이라고 생각한다. 사람들은 플랫폼을 통합하고자 하는데, 관리하기 쉽고 해당 플랫폼을 잘 아는 개발자도 더 많은 등의 여러 장점 때문이다.”

필자가 몽고DB에서 일할 때와 같은 관점이다.

문제는 몽고DB의 성공이 이런 주장과 모순된다는 것이다. DB-Engines에서 상위 10위의 데이터베이스를 살펴보면, 이중 거의 절반(40%)이 10년 전만 해도 존재하지도 않았거나 막 출시된 수준이었다. 25위까지 살펴보면, 이런 경향은 더 심해진다. 절반 이상이 10년 전에는 없었다. 많은 데이터베이스가 데이터의 변화에 의해 시장에 호출됐기 때문이다. 새로운 워크로드의 새로운 데이터는 새로운 관리 방법이 필요하다. 
 

새로운 가려움증

몽고DB는 훌륭한 예지만(2009년에 설립해 11년 만에 5위의 인기 데이터베이스가 되었다), 더 확실한 사례는 레디스(Redis)이다. 레디스 설립자 살바토르 산필리포는 자신의 실시간 분석 엔진에 MySQL만 사용하는 것은 좋아했다. 하지만 안타깝게도 MySQL은 비용 효율적인 방법으로 확장할 수 없었다. 그래서 산필리포는 기존의 관행을 깨고 인메모리 NoSQL 데이터베이스를 만들었다. 지금 미칠 듯한 인기를 얻고 있는 레디스의 탄생 배경이다.

산필리포가 밝혔듯, 레디스는 “새로운 것을 탐색하는 것”이 어떻게 가능한지를 보여주는 좋은 사례이다. 심지어 데이터베이스처럼 사람들이 현재의 옵션이 잠재적인 문제를 모두 해결했다고 생각하는 영역도 마찬가지이다. 우리는 이미 수년에 걸쳐 관계형 데이터베이스에서 이런 일을 했으며, 반구조화 또는 비구조화 데이터를 모두 깔끔하게 정돈된 행과 열에 욱여넣으려 했다. 물론 그렇게 되지는 않았다.

물론 이들 356가지 데이터베이스 중 대다수가 ‘탈출 속도’에 이르지 못하고 떨어지고 말 것이라는 점에서 이티체리아의 말은 옳다. 하지만 몽고DB나 레디스가 증명했듯이, 우리는 아직 개발자가 사랑하는 새로운 데이터베이스를 발명해내지 못하고 있다. 오늘날의 데이터에 맞는 데이터베이스 승자를 다소 정확하게 골라낼 수 있을지는 모르지만, 내일의 데이터와 데이터베이스가 어떨지 함부로 추정한다면 바보가 되고 말 것이다.

아직은 알 수 없는 일이다. 

우리가 아는 것은 개발자가 몇 가지 범용 데이터베이스를 모으는 경향이 있는 한편, 특정 용도로 개발된 데이터베이스를 적극적으로 수용한다는 사실이다. 예를 들어, 레디스는 초기에 주로 캐시 용도로만 사용됐지만, 이후 본격적으로 성장하기 시작했다. 소프트웨어의 다른 어떤 영역보다 데이터베이스는 지속적인 진화와 붕괴의 가능성이 높은 영역이다. 이는 축하할 일이지 걱정할 일이 아니다. editor@itworld.co.kr


X