[디지털데일리 이종현기자] “DB는 자동차로 치면 엔진입니다. 스포츠카에는 최고 성능을 발휘할 수 있는 엔진이, 일반 승용차에는 성능과 효율을 밸런스 있게 갖춘 엔진이, 경차에는 성능보다는 효율성을 발휘하는 엔진이 필요하죠. 차종에 따라 적합한 엔진을 장착하듯, 시스템 환경에 따라 적합한 DB를 선택해야 합니다.”(오라클 장성우 전무)
데이터의 저장 및 접근 방식은 크게 파일 시스템과 데이터베이스(DB)로 구분된다. 당초 활용됐던 기술은 파일 시스템이다. 다만 복수의 사람이 동시에 접속하는 데 제약이 있는 데다 데이터의 무결성을 보장하지 못하는 등, 기업 환경에서 활용하는 데는 여러 문제가 있어 이를 보완한 기술, DB가 등장하게 됐다.
엄밀히 따지면 DB는 데이터베이스관리시스템(DBMS)이라고 불리는 소프트웨어(SW)에 의해 제어되는 데이터의 모음이다. 솔루션을 지칭할 때는 DBMS라고 부르는 게 더 정확하나, 통상 DB라고 지칭한다.
관계형DB, 오브젝트DB, 네트워크DB 등 여러 유형이 있으나 현재 사용되고 있는 대부분의 DB는 관계형DB다. 구조적 질의 언어(Structured Query Language, 이하 SQL)라는 관계형DB의 데이터 관리를 위한 프로그래밍 언어를 사용하는 것이 특징이다.
◆대규모 기업 환경, 전문적인 DB 필요
오라클 장성우 전무는 <디지털데일리>와의 인터뷰에서 “DB의 핵심은 동시 사용과 정합성”이라고 강조했다.
그는 “가령 금융회사의 계정 데이터가 있다고 할 때, 이 데이터에는 여러 부서가 접근해서 사용해야 한다. 데이터를 활용하기 위해 번호표 뽑아서 대기할 수는 없다. 모두 함께 사용할 수 있어야 한다. 그리고 데이터는 정확해야 한다. 100만원 있는 계좌에 1억원이 있다고 오류가 나서는 안 된다”고 말했다.
DB의 역할은 다른 시스템에서 요구하는 정보를 빠르고, 정확하게 찾아 전달하는 것이다. 백업 및 복구는 기본 중의 기본이다.
가령 통신사의 경우 고객의 유심정보가 저장돼 있는 DB를 운영하고 있는데, 통화를 할 때 유심정보와 가장 가까이 있는 곳의 기지국을 실시간으로 찾아 연결하는 구조다. KTX 등 고속으로 이동할 경우 전화를 연결하는 기지국이 계속해서 바뀌는데, 이용자 입장에서는 변화를 느낄 수 없을 만큼 빠르게 연결이 이뤄진다.
장 전무는 “통신사는 통화내역기록(CDR)을 일일이 저장한다. 누가, 누구에게, 언제 전화했는지 하는 내용들인데, 이를 기반으로 한 달에 한번씩 과금을 한다”며 “그런데 가입자가 수천만명인 이동통신사의 경우 고객 1명이 하루 10통화씩만 하더라도 일별 수억건의 데이터가 쌓인다. 이걸 엑셀로 처리할 수 있겠나. 불가능하다”며 DB의 활용 배경을 설명했다.
◆여러 종류의 DB··· 뭐가 다를까
통상 DB라고 하면 데이터가 저장돼 있는 스토리지를 떠올리기 쉽다. 하지만 DB는 직접 데이터를 저장하는 스토리지와는 구분된다.
정리하자면, 하드디스크(HDD)나 솔리드스테이트드라이브(SSD)와 같은 물리적인 스토리지 기기에 이를 관리하는 스토리지 SW가 구동된다. 통상 블록·파일·오브젝트 스토리지 등이다. 이는 스토리지 서버에서 구동된다.
DB는 스토리지 서버가 아닌 웹 서버 또는 DB 서버 등에서 구동된다. 특정 시스템의 구동을 위해 데이터가 필요할 경우 DB가 스토리지에서 빠르고, 정확하게 데이터를 가져오는 것이 핵심 역할이다. 물리 스토리지 → 스토리지 SW(블록·파일·오브젝트 등) → DB → 데이터 활용 시스템 등의 구조를 지닌다.
DB라고 해서 하나의 브랜드만 있는 것은 아니다. 복수의 브랜드가 경쟁하는 중인데, 오라클DB가 줄곧 1위를 차지하고 있다. 오라클에 이어 2위는 마이에스큐엘(MySQL)인데, 오라클이 썬마이크로시스템즈를 인수함에 따라 MySQL도 오라클의 DB 브랜드가 됐다.
장 전무는 “최고의 성능을 제공하는 것은 여전히 오라클DB다. 스포츠카의 엔진을 연상하면 된다. 하지만 모든 차량에 스포츠카의 엔진을 탑재할 수는 없다. 비용적인 문제가 크다. 오라클DB를 선택하기에는 비용이 부담스럽거나, 꼭 오라클DB가 아니어도 되는 시스템이라면 MySQL을 선택할 수도 있다”고 전했다.
오라클의 DB는 메이저 업그레이드를 통해 여러 기능을 추가하고 있다. 같은 오라클DB라고 하더라도 몇 버전이냐에 따라 색다른 기능을 탑재한다. 최신 버전은 작년 출시한 21c 버전이다. 최근에는 마이크로소프트(MS)와의 협력을 통해 MS의 클라우드 애저(Azure)에서 오라클 클라우드 인프라스트럭처(OCI)의 오라클DB 서비스를 이용할 수 있게 됐는데, 클라우드 시장에서의 영향력 확대에 박차를 가하는 중이다.
앞서 최근 대부분의 DB는 관계형DB라고 정리했으나 예외도 있다. 낫온리(Not Only) SQL, 통상 ‘NoSQL’이라고 불리는 비관계형DB로, 몽고DB가 대표적인 예다.
장 전무는 “페이스북과 같은 사회관계망서비스(SNS)에서 친구가 내 포스팅에 좋아요를 눌렀을 때, DB를 사용한다면 좋아요를 눌렀다는 알림이 자신과 다른 친구들에게 즉시 보일 거다. 하지만 좋아요 정보는 실시간으로, 빠르게 전달할 필요가 없는 정보다. 2초, 5초 후에 보여줘도 된다. 이럴 때 NoSQL을 활용하는 편”이라고 밝혔다.
대용량의 데이터를 처리하고자 하는 수요에서 탄생한 아파치 하둡의 하둡분산파일시스템(HDFS)도 있다. 비용 부담이 적어 빅데이터 처리에 특히 유용하게 활용되나 기존 DB 대비 속도가 느리고 지원이 원활하지 않다는 단점이 있다.
◆오라클이 게임 체인저로 내세우는 ‘엑사데이터’
DB 시장에서 오라클은 부동의 1·2위 브랜드를 모두 가진 절대강자다. 조금 더 세부적으로 살피면 상용 DB 1위와 오픈소스 DB 1위를 함께 보유하고 있는 셈이다. 주기적인 메이저 업데이트를 통해 자율운영 및 지원 데이터 유형 확대, 인메모리 옵션 등 다양한 기능을 선보이고 있다.
이런 가운데 오라클이 DB 시장의 게임 체인저로 내세우는 것은 오라클DB를 구동하는 데 최적화된 컴퓨팅 플랫폼 ‘엑사데이터(Exadata)’다.
DB가 작동될 때는 스토리지 서버에서 네트워크를 거쳐 DB 서버로 데이터를 불러오는데, 스토리지의 경우 IBM이나 휴렛팩커드엔터프라이즈(HPE), 델 등 기업의 SW를 통해 관리된다. 서로 다른 벤더의 제품이기 때문에 최적화 등에서 제약이 발생할 수밖에 없다.
이에 오라클은 DB 성능을 극대화할 수 있도록 엑사데이터를 통해 스토리지 서버부터 네트워크, DB 서버까지 랙(Rack)을 한 번에 제공한다. 클라우드에 올인하고 있는 오라클의 기조에 맞게 온프레미스뿐만 아니라 클라우드를 통해서도 이용할 수 있다.
장 전무는 “사용자 수가 늘고, 데이터의 크기가 커질수록 느려질 수밖에 없다. 또 사용자가 많아질수록 오류가 발생할 가능성도 커진다. 그런데 비즈니스에서는 이게 용납되지 않는다. 필요로 하는 시간 내에 답이 나와야 하고, 그 답은 정확해야 한다. 제대로 검색이 되지 않는 DB는 아무런 의미가 없다”고 강조했다.
이어서 “효율적인 DB를 원한다면 MySQL을, 최고의 성능을 원한다면 오라클DB를 선택하라고 권해드린다. 그리고 엑사데이터는 거기서 한발 나아가 오라클DB를 가장 빠르고, 안전하게 활용할 수 있도록 지원한다”고 덧붙였다.