2020.06.30

칼럼ㅣ이렇게 많은 ‘데이터베이스’가 필요한가? 

Matt Asay | InfoWorld
오늘날 데이터를 저장하기 위해 선택할 수 있는 수백 개의 데이터베이스가 있다. 하지만 우리는 더 많은 데이터베이스가 필요하다. 

과거에는 약간의 데이터베이스만으로도 세상은 그럭저럭 돌아갔다. 이를테면 오라클(Oracle), 마이크로소프트 SQL 서버(Microsoft SQL Server), 인그레스(Ingres), IBM DB2와 같은 신뢰할 수 있는 관계형 데이터베이스를 예로 들 수 있겠다. 

그러나 얼마 지나지 않아 ‘MySQL’과 ‘PostgreSQL’이라는 오픈소스 데이터베이스가 등장하면서 상업용 DB 제품에 도전장을 내밀었다. 그 이후 ‘NoSQL’ 데이터베이스가 출시되면서 대표주자 격인 몽고DB(MongoDB), 레디스(Redis), 아파치 카산드라(Apache Cassandra) 등이 인기를 끌고 있다. 
 
ⓒGetty Images

숫자만 놓고 보자면 이 변화를 더 빠르게 체감할 수 있다. DB 엔진(DB-Engines)의 2013년 인기 순위 목록에는 총 109개의 데이터베이스가 있었다. 현재는 어떨까? 올해 목록에는 7년 전보다 3배 이상 늘어난 총 356개의 데이터베이스가 존재한다. 

이제 자연스럽게 의문이 들기 마련이다. 데이터베이스의 증가가 좋은 일인가? 무려 365개나 되는 데이터베이스가 정말 필요한가? PostgreSQL(DB엔진 순위 4위)이 계속 사용될 텐데 굳이 Yanza(336위)나 Upscaledb(299위)가 필요한가? 대답은 ‘그렇다’일 가능성이 크다. 

“소수만 성공할 것이다”
모두가 동의하는 것은 아니다. 이를테면 몽고DB의 CEO 데브 이티체리아는 한 인터뷰에서 “실제로 성공하는 플랫폼이나 기술은 소수다”라고 의견을 피력했다. 그렇다면 그 ‘소수’는 누구인가?

그는 “레거시 표준이나 관계형 데이터베이스(예: 오라클 또는 오픈소스)를 가진 기업들이 머지않아 ‘최신 표준’을 갖추게 될 것”이라고 전했다. 당연히 이티체리아는 몽고DB를 ‘최신 표준’으로 보고 있으며, 이 주장을 뒷받침할 충분한 증거를 가지고 있다고 언급했다. 

그렇다면 개발자들은 ‘365개’라는 수많은 옵션을 왜 검토하지 않을까? 이티체리아는 이와 관련해 다음과 같이 말했다. 

“개발자들은 모든 데이터베이스를 학습해야 하는 인지적 부담을 앉고 싶어 하지 않는다. [그들은] 어느 정도 지나면 투자 대비 회수율이 감소하게 된다고 생각한다. 그래서 사람들은 플랫폼을 통합하길 원한다. 관리하기 더 쉬워지는 것은 물론 해당 플랫폼을 알고 있는 개발자가 많아지기 때문이다.”

다시 말하지만, 그의 말은 일리가 있다. 필자가 몽고DB에서 근무할 당시 언급했던 의견과 정확히 같다. 하지만 문제는 몽고DB의 성공이 그 점을 간과하고 있다는 것이다. DB엔진 인기 순위의 상위 10개 데이터베이스를 살펴보면 절반 가까이(40%) 10년 전에 존재하지 않았거나 막 등장한 상태였다.

상위 25개 데이터베이스로 보면 이 현상이 더욱 뚜렷하게 나타난다. 10년 전에는 절반 이상이 존재하지 않았다. 이들이 새롭게 부상한 이유는 ‘데이터 변화’로 요약될 수 있다. ‘새로운 워크로드’의 ‘새로운 데이터’는 ‘새로운 관리 방법’이 필요하다. 

가려운 곳을 긁어주다
몽고DB가 앞서 언급한 내용의 적절한 예시라면 (2009년 설립된 몽고DB는 11년 후 전 세계에서 5번째로 인기 있는 데이터베이스가 됐다) 아마도 더 명확한 예시는 레디스일 것이다. 

개인적인 견해로 볼 때 레디스의 설립자 살바토르 산필리포는 MySQL을 실시간 애널리틱스 엔진으로 사용하고자 했을 것이다. 안타깝게도 이것이 비용 효율적인 방식으로 확장되지 않았기 때문에 그는 모든 종류의 규칙을 깨고 인메모리 NoSQL 데이터베이스를 만들었고, 이는 엄청난 인기를 얻게 됐다. 

산필리포의 말처럼 레디스는 현재 옵션들이 모든 잠재적 문제를 해결했다고 가정하는 데이터베이스 같은 분야에서도 ‘새로움을 발굴할 수 있는 가능성’을 보여주는 좋은 예다. 우리는 관계형 데이터베이스를 통해 수년 동안 반구조화되거나 구조화되지 않은 데이터를 정돈된 행(row)과 열(colum)에 주입하려고 시도해왔다. 하지만 이는 효과가 없었다. 

물론 이티체리아가 말한 것도 옳다. 365개 데이터베이스 중 대다수가 성공하지 못한 채 인기 순위 목록에만 속하게 된 것도 맞다. 그러나 몽고DB와 레디스가 증명한 바와 같이 개발자들이 좋아할 만한 새로운 데이터베이스를 개발하는 일은 아직 끝나지 않았다. 오늘날 데이터에 적합한 데이터베이스 승자는 어느 정도 정확하게 선택할 수 있을지 모르지만 미래의 데이터(혹은 데이터베이스)가 어떻게 될지 추측하는 것은 정말 어리석은 짓이다.  

간단히 말해 우리는 아직 모른다. 알고 있는 것은 개발자들이 몇 가지 범용 데이터베이스를 중심으로 모여드는 경향이 있는 동시에 다양한 목적에 맞는 옵션도 적극적으로 수용하고 있다는 점이다.

예를 들면 레디스는 초반에 캐시로 ‘그냥’ 사용되곤 했지만 그 이상으로 성장하기 시작했다. 아마도 다른 어떤 소프트웨어 영역보다 데이터베이스는 거듭되는 진화와 와해를 위한 ‘성숙된 영역’일 것이다. 이는 제한하기보다 오히려 축하해야 할 일이다. 

* Matt Asay는 현재 아마존 웹 서비스(AWS)의 부장급 실무자다. 어도비에서 개발자 에코시스템 책임자로, 몽고DB에서는 비즈니스 개발 및 마케팅 부문 부사장으로 근무한 경력이 있다. ciokr@idg.co.kr



2020.06.30

칼럼ㅣ이렇게 많은 ‘데이터베이스’가 필요한가? 

Matt Asay | InfoWorld
오늘날 데이터를 저장하기 위해 선택할 수 있는 수백 개의 데이터베이스가 있다. 하지만 우리는 더 많은 데이터베이스가 필요하다. 

과거에는 약간의 데이터베이스만으로도 세상은 그럭저럭 돌아갔다. 이를테면 오라클(Oracle), 마이크로소프트 SQL 서버(Microsoft SQL Server), 인그레스(Ingres), IBM DB2와 같은 신뢰할 수 있는 관계형 데이터베이스를 예로 들 수 있겠다. 

그러나 얼마 지나지 않아 ‘MySQL’과 ‘PostgreSQL’이라는 오픈소스 데이터베이스가 등장하면서 상업용 DB 제품에 도전장을 내밀었다. 그 이후 ‘NoSQL’ 데이터베이스가 출시되면서 대표주자 격인 몽고DB(MongoDB), 레디스(Redis), 아파치 카산드라(Apache Cassandra) 등이 인기를 끌고 있다. 
 
ⓒGetty Images

숫자만 놓고 보자면 이 변화를 더 빠르게 체감할 수 있다. DB 엔진(DB-Engines)의 2013년 인기 순위 목록에는 총 109개의 데이터베이스가 있었다. 현재는 어떨까? 올해 목록에는 7년 전보다 3배 이상 늘어난 총 356개의 데이터베이스가 존재한다. 

이제 자연스럽게 의문이 들기 마련이다. 데이터베이스의 증가가 좋은 일인가? 무려 365개나 되는 데이터베이스가 정말 필요한가? PostgreSQL(DB엔진 순위 4위)이 계속 사용될 텐데 굳이 Yanza(336위)나 Upscaledb(299위)가 필요한가? 대답은 ‘그렇다’일 가능성이 크다. 

“소수만 성공할 것이다”
모두가 동의하는 것은 아니다. 이를테면 몽고DB의 CEO 데브 이티체리아는 한 인터뷰에서 “실제로 성공하는 플랫폼이나 기술은 소수다”라고 의견을 피력했다. 그렇다면 그 ‘소수’는 누구인가?

그는 “레거시 표준이나 관계형 데이터베이스(예: 오라클 또는 오픈소스)를 가진 기업들이 머지않아 ‘최신 표준’을 갖추게 될 것”이라고 전했다. 당연히 이티체리아는 몽고DB를 ‘최신 표준’으로 보고 있으며, 이 주장을 뒷받침할 충분한 증거를 가지고 있다고 언급했다. 

그렇다면 개발자들은 ‘365개’라는 수많은 옵션을 왜 검토하지 않을까? 이티체리아는 이와 관련해 다음과 같이 말했다. 

“개발자들은 모든 데이터베이스를 학습해야 하는 인지적 부담을 앉고 싶어 하지 않는다. [그들은] 어느 정도 지나면 투자 대비 회수율이 감소하게 된다고 생각한다. 그래서 사람들은 플랫폼을 통합하길 원한다. 관리하기 더 쉬워지는 것은 물론 해당 플랫폼을 알고 있는 개발자가 많아지기 때문이다.”

다시 말하지만, 그의 말은 일리가 있다. 필자가 몽고DB에서 근무할 당시 언급했던 의견과 정확히 같다. 하지만 문제는 몽고DB의 성공이 그 점을 간과하고 있다는 것이다. DB엔진 인기 순위의 상위 10개 데이터베이스를 살펴보면 절반 가까이(40%) 10년 전에 존재하지 않았거나 막 등장한 상태였다.

상위 25개 데이터베이스로 보면 이 현상이 더욱 뚜렷하게 나타난다. 10년 전에는 절반 이상이 존재하지 않았다. 이들이 새롭게 부상한 이유는 ‘데이터 변화’로 요약될 수 있다. ‘새로운 워크로드’의 ‘새로운 데이터’는 ‘새로운 관리 방법’이 필요하다. 

가려운 곳을 긁어주다
몽고DB가 앞서 언급한 내용의 적절한 예시라면 (2009년 설립된 몽고DB는 11년 후 전 세계에서 5번째로 인기 있는 데이터베이스가 됐다) 아마도 더 명확한 예시는 레디스일 것이다. 

개인적인 견해로 볼 때 레디스의 설립자 살바토르 산필리포는 MySQL을 실시간 애널리틱스 엔진으로 사용하고자 했을 것이다. 안타깝게도 이것이 비용 효율적인 방식으로 확장되지 않았기 때문에 그는 모든 종류의 규칙을 깨고 인메모리 NoSQL 데이터베이스를 만들었고, 이는 엄청난 인기를 얻게 됐다. 

산필리포의 말처럼 레디스는 현재 옵션들이 모든 잠재적 문제를 해결했다고 가정하는 데이터베이스 같은 분야에서도 ‘새로움을 발굴할 수 있는 가능성’을 보여주는 좋은 예다. 우리는 관계형 데이터베이스를 통해 수년 동안 반구조화되거나 구조화되지 않은 데이터를 정돈된 행(row)과 열(colum)에 주입하려고 시도해왔다. 하지만 이는 효과가 없었다. 

물론 이티체리아가 말한 것도 옳다. 365개 데이터베이스 중 대다수가 성공하지 못한 채 인기 순위 목록에만 속하게 된 것도 맞다. 그러나 몽고DB와 레디스가 증명한 바와 같이 개발자들이 좋아할 만한 새로운 데이터베이스를 개발하는 일은 아직 끝나지 않았다. 오늘날 데이터에 적합한 데이터베이스 승자는 어느 정도 정확하게 선택할 수 있을지 모르지만 미래의 데이터(혹은 데이터베이스)가 어떻게 될지 추측하는 것은 정말 어리석은 짓이다.  

간단히 말해 우리는 아직 모른다. 알고 있는 것은 개발자들이 몇 가지 범용 데이터베이스를 중심으로 모여드는 경향이 있는 동시에 다양한 목적에 맞는 옵션도 적극적으로 수용하고 있다는 점이다.

예를 들면 레디스는 초반에 캐시로 ‘그냥’ 사용되곤 했지만 그 이상으로 성장하기 시작했다. 아마도 다른 어떤 소프트웨어 영역보다 데이터베이스는 거듭되는 진화와 와해를 위한 ‘성숙된 영역’일 것이다. 이는 제한하기보다 오히려 축하해야 할 일이다. 

* Matt Asay는 현재 아마존 웹 서비스(AWS)의 부장급 실무자다. 어도비에서 개발자 에코시스템 책임자로, 몽고DB에서는 비즈니스 개발 및 마케팅 부문 부사장으로 근무한 경력이 있다. ciokr@idg.co.kr

X