OLTP란 무엇인가?

OLTP의 정의

OLTP(온라인 트랜잭션 처리)는 온라인 뱅킹, 쇼핑, 주문 입력 또는 텍스트 메시지 전송 등 동시에 발생하는 다수의 트랜잭션을 실행하는 데이터 처리 유형입니다. 이러한 트랜잭션은 전통적으로 경제 또는 재무 트랜잭션이라고 칭하며, 기업이 회계 또는 보고 목적으로 언제든 정보에 액세스할 수 있도록 기록 및 보호됩니다.

과거에 OLTP는 화폐, 제품, 정보, 서비스 요청 등 일종의 교환이 이루어지는 실제 상호작용에만 한정적으로 적용되었습니다. 하지만 이와 같은 맥락에서의 트랜잭션의 정의는 지난 몇 년간 확대되었고, 특히 인터넷의 등장으로 인해 모든 웹 연결 센서를 통한 전 세계 모든 곳에서 발생하는 모든 종류의 디지털 상호작용 또는 비즈니스 거래를 포함하게 되었습니다. 또한 웹페이지에서 pdf 다운로드하기, 특정 비디오 시청하기등 모든 종류의 행동과 비즈니스가 고객에게 더 나은 서비스를 제공하기 위해 기록하는 소셜 채널 자동 유지관리 트리거 또는 댓글 등 모든 종류의 상호작용을 포함합니다.


트랜잭션의 주요 정의(경제 또는 재무)는 여전히 대부분의 OLTP 시스템의 근간으로 남아있습니다. 그래서 온라인 트랜잭션 처리는 보통 데이터 스토어 내의 소규모 데이터 삽입, 업데이트 및/또는 삭제를 통해 해당 트랜잭션을 수집, 관리 및 보호하는 작업을 포함합니다. 일반적으로 웹, 모바일 또는 기업 애플리케이션은 고객, 공급업체 또는 파트너와의 모든 상호 작용 또는 거래를 추적하고, 이를 OLTP 데이터베이스에 업데이트합니다. 데이터베이스에 저장된 이 트랜잭션 데이터는 기업에 핵심적이며, 보고서 작성용으로 사용되고, 데이터 중심의 의사결정에 활용하기 위해 분석됩니다.

Retraced, Archaeological Park of Pompeii, Jasci, Siemens 등 기업들이 클라우드에서 트랜잭션 처리 워크로드를 성공적으로 구축할 수 있었던 이유에 대해 읽어보세요.

기업은 보통 OLTP 및 OLAP 이렇게 두 가지 유형의 데이터 처리 기능을 보유합니다.

OLTP vs. OLAP

두 시스템은 이름이 비슷하고, 둘 모두 온라인 데이터 처리 시스템이긴 하지만 이 두 시스템 사이에는 극명한 차이가 존재합니다.

OLTP는 여러 사람이 다수의 트랜잭션을 실시간으로 실행할 수 있게 해주는 반면, OLAP(온라인 분석 처리)는 일반적으로 분석을 목적으로 데이터베이스 내의 트랜잭션(레코드라고도 불림)을 질의하는 작업을 포함합니다. OLAP는 기업이 트랜잭션 데이터로부터 더 많은 인사이트를 추출하여 양질의 정보를 기반으로 한 의사결정을 내리는 데 활용할 수 있게 해줍니다.

아래 표는 OLTP 시스템과 OLAP 시스템을 특징을 비교한 것입니다.

OLTP 시스템

OLAP 시스템

다수의 사용자에 의한 대량의 데이터베이스 트랜잭션을 실시간으로 실행할 수 있도록 지원

일반적으로 분석을 목적으로 데이터베이스 내 다수의 레코드(또는 모든 레코드)에 대한 질의 작업 포함

빛의 속도에 가까운 빠른 응답시간 필요

OLTP에 대비 엄청나게 느린 응답시간 필요

적은 양의 데이터를 자주 수정하고, 일반적으로 읽기 및 쓰기 작업 간 균형이 유지됨

데이터를 전혀 수정하지 않음. 일반적으로 읽기 집약적인 작업

인덱스화된 데이터를 사용해 응답 시간 개선

대량의 레코드에 손쉽게 액세스할 수 있도록 컬럼 형식으로 데이터 저장

데이터베이스에 대한 빈번한 또는 동시 백업 필요

훨씬 적은 빈도의 데이터베이스 백업 필요

상대적으로 적은 스토리지 공간 필요

대량의 기록 데이터를 저장하기 때문에 일반적으로 상당한 양의 스토리지 공간 필요

일반적으로 하나 또는 몇 개의 레코드를 포함하는 단순한 쿼리 실행

다수의 레코드를 포함하는 복잡한 쿼리 실행

종합하자면, OLTP가 온라인 데이터 수정 시스템이라면 OLAP는 분석을 목적으로 대량의 데이터를 검색하는 데 사용되는 다차원 온라인 기록 데이터 저장소 시스템입니다. OLAP는 일반적으로 하나 이상의 OLTP 시스템에서 수집한 데이터에 대한 분석을 제공합니다.

OLTP 시스템 요구 사항

트랜잭션 데이터를 사용하는 OLTP 시스템의 가장 일반적인 구조는 프레젠테이션 계층, 비즈니스 논리 계층 및 데이터 저장소 계층으로 구성된 3계층 구조입니다. 프리젠테이션 계층은 트랜잭션이 인적 상호 작용을 통해 시작되거나 시스템에 의해 생성되는 프론트 엔드를 말합니다. 논리 계층은 트랜잭션을 검증하고 트랜잭션을 완료하는 데 필요한 모든 데이터를 확인하는 규칙들로 구성됩니다. 데이터 저장소 계층은 트랜잭션 및 이와 관련된 모든 데이터를 저장합니다.

온라인 트랜잭션 처리 시스템의 주요 특징은 다음과 같습니다:

  • ACID 준수: OLTP 시스템은 전체 트랜잭션이 올바르게 기록되었는지 확인해야 합니다. 트랜잭션이란 일반적으로 여러 단계 또는 작업의 실행을 필요로 하는 단일 프로그램의 실행을 의미합니다. 트랜잭션은 모든 당사자가 트랜잭션을 확인하거나, 제품/서비스가 전달되었거나, 데이터베이스 내 특정 테이블에서 특정 수량의 업데이트가 이루어졌을 때 완료됩니다. 포함된 모든 단계가 실행 및 기록된 경우에만 트랜잭션이 올바르게 기록됩니다. 한 단계에라도 오류가 발생한다면 전체 트랜잭션은 중단되어야 하고, 모든 단계가 시스템에서 삭제되어야 합니다. 따라서 OLTP 시스템은 원자성, 일관성, 고립성, 영속성(ACID)을 준수하여 시스템 내 데이터의 정확성을 보장해야 합니다.
    • 원자성: 원자성 제어는 트랜잭션 내 모든 단계가 하나의 그룹으로서 성공적으로 완료되도록 보장합니다. 트랜잭션 사이의 단계가 실패하는 경우 다른 모든 단계 역시 실패하거나 복원되어야 한다는 뜻이죠. 성공적인 트랜잭션 완료를 커밋이라고 부르고, 트랜잭션 실패는 중단이라고 부릅니다.
    • 일관성: 트랜잭션은 데이터베이스의 내부 일관성을 유지합니다. 처음부터 일관성 있는 데이터베이스에서 트랜잭션이 자체 실행되도록 할 경우, 트랜잭션이 데이터베이스 실행을 완료했을 때도 여전히 일관성이 유지됩니다.
    • 고립성: 트랜잭션은 다른 트랜잭션 없이 단독으로 실행되는 것처럼 행동합니다. 즉 트랜잭션 세트를 실행하는 것과 한 번에 하나의 트랜잭션을 실행하는 것이 같은 효과를 내죠. 이러한 동작을 직렬화 성질이라고 하며 일반적으로 테이블의 특정 행을 잠그는 방식으로 구현됩니다.
    • 영속성: 트랜잭션이 실패한다 해도 트랜잭션의 결과가 손실되지 않습니다.
  • 동시성: OLTP 시스템은 동일한 데이터에 동시에 액세스하려는 수많은 사용자들을 수용할 수 있습니다. 시스템은 해당 시스템에서 읽기 또는 쓰기 작업을 하려는 모든 사용자가 동시에 원하는 작업을 할 수 있게 해주어야 합니다. 동시성 제어는 데이터베이스 시스템 안의 동일한 데이터를 두 명의 사용자가 동시에 액세스하는 경우 데이터를 변경할 수 없게 하거나, 한 사용자가 처리를 완료한 후에만 다른 사용자가 데이터를 변경할 수 있게 합니다.
  • 확장성: OLTP 시스템은 시스템에 액세스하려는 사용자 수와 관계없이 트랜잭션 볼륨을 실시간으로 관리하고 트랜잭션을 동시에 실행하기 위해 즉시 확장 및 축소할 수 있어야 합니다.
  • 가용성: OLTP 시스템은 항상 트랜잭션을 수락할 수 있도록 늘 가용한 상태로 준비되어 있어야 합니다. 트랜잭션의 손실은 수익 손실 또는 법적 책임으로까지 이어질 수 있습니다. 트랜잭션은 언제든 전 세계 어느 곳에서나 실행될 수 있기 때문에 시스템 역시 연중무휴 24시간 내내 사용할 수 있어야 합니다.
  • 높은 처리량 및 짧은 응답 시간: OLTP 시스템은 기업 사용자들의 생산성을 유지하고 고객의 높은 기대치를 충족하기 위해 10밀리초 미만의 응답 시간을 필요로 합니다.
  • 신뢰성: OLTP 시스템은 일반적으로 매우 선택적으로 소량의 데이터만을 읽고 조작합니다. 언제 사용자 및 애플리케이션이 해당 데이터에 액세스하더라도 데이터베이스 내의 데이터를 신뢰할 수 있어야 한다는 점이 대단히 중요합니다.
  • 보안성: 이러한 시스템은 매우 민감한 고객 트랜잭션 데이터를 저장하기 때문에 데이터 보안성이 핵심입니다. 어떠한 종류든 데이터 침해가 발생하면 기업은 이에 관해 대단히 큰 비용을 치르게 되죠.
  • 복구성: OLTP 시스템은 어떤 종류의 하드웨어 또는 소프트웨어 오류가 발생하더라도 시스템을 복구할 수 있어야 합니다.

OLTP 워크로드를 위한 데이터베이스

관계형 데이터베이스는 트랜잭션 애플리케이션을 위해 특별히 제작되었습니다. 대용량 트랜잭션을 저장하고 처리하는 데 필요한 모든 필수 요소를 수용하는 동시에, 풍부한 트랜잭션 데이터로부터 더 많은 가치를 추출하기 위해 새로운 기능 및 성능이 지속적으로 업데이트됩니다. 관계형 데이터베이스는 처음부터 최고 수준의 가용성과 최고 속도의 성능을 제공하도록 설계되었습니다. 동시성을 제공하고 ACID를 준수하기 때문에 데이터가 정확하고, 항상 이용 가능하며, 손쉬운 접근이 가능합니다. 관계형 데이터베이스는 데이터 사이의 관계를 추출한 뒤 데이터를 테이블에 저장합니다. 이를 통해 SSOT가 보장되기 때문에 모든 애플리케이션에서 데이터를 사용할 수 있죠.

트랜잭션 처리 데이터베이스의 진화

전 세계 모든 곳에서 모든 소스 또는 기기로부터 발생하는 특성 때문에 트랜잭션이 점점 복잡해지는 반면, 전통적인 관계형 데이터베이스는 오늘날의 트랜잭션 워크플로의 니즈를 충족할 만큼 충분히 발전하지 못했습니다. 관계형 데이터베이스는 오늘날의 트랜잭션, 이기종 데이터, 전 세계적인 규모, 무엇보다도 혼합 워크로드 실행을 위해 진화해야 했죠. 관계형 데이터베이스는 관계형 데이터뿐 아니라 xml, html, JSON, Apache Avro and Parquet, 고유한 형식의 문서 등을 대단한 변환 없이 저장 및 처리하는 멀티모드 데이터베이스로 변환되었습니다. 관계형 데이터베이스는 또한 클러스터링, 샤딩 등 더 많은 기능을 추가하여 전 세계적으로 배포되고 무한히 확장될 수 있어야 했습니다. 그래야 점점 증가하는 데이터를 저장 및 처리하고, 클라우드에서 보다 저렴한 스토리지를 활용할 수 있게 되기 때문이죠. 인메모리, 고급 분석, 시각화, 트랜잭션 이벤트 대기열 등 다른 기능들과 함께 이 데이터베이스들은 이제 다양한 워크로드를 실행할 수 있습니다(트랜잭션 데이터에서 분석 실행, 스트리밍 데이터 처리(사물인터넷) 또는 공간 및 그래프 분석 실행 등).

클라우드에 내장된 모던 관계형 데이터베이스는 데이터베이스의 다양한 관리 및 운영 측면을 자동화함으로써 사용자가 손쉽게 프로비저닝 및 사용할 수 있게 해줍니다. 또한 자동화된 프로비저닝, 보안, 복구, 백업 및 확장을 제공하기 때문에 DBA 및 IT 팀은 프로비저닝을 유지 관리하는 데 드는 시간을 크게 줄일 수 있죠. 또한 데이터 양, 동시 사용자 수 또는 쿼리의 복잡성과 관계없이 데이터베이스 쿼리 성능이 일관되게 유지되도록 데이터를 자동으로 튜닝 및 인덱스화하는 인텔리전스를 갖추고 있습니다. 또한 이러한 클라우드 데이터베이스에는 셀프 서비스 기능 및 REST API가 포함되어 있어 개발자와 분석가가 데이터에 쉽게 액세스하고, 사용할 수 있습니다. 그 결과 애플리케이션 개발이 간소화되어 개발자들이 새로운 기능 및 사용자 정의 기능을 애플리케이션에 손쉽게 구축할 수 있게 됩니다. 또한 분석 과정도 간소화되어 분석가 및 데이터 과학자들이 인사이트 추출에 데이터를 손쉽게 사용할 수 있죠.

OLTP 워크로드에 적합한 데이터베이스를 선택하는 방법

IT 부서가 비즈니스의 속도를 따라가는 데 어려움을 겪고 있다면, 운영 데이터베이스를 선택할 때 즉각적인 데이터 니즈와 장기적인 데이터 요구사항을 모두 고려하는 게 중요합니다. 트랜잭션 저장, 기록 시스템 유지, 콘텐츠 관리를 위해서는 높은 동시성, 높은 처리량, 낮은 대기시간과 고가용성, 데이터 보호, 재해 복구 등 미션 크리티컬 특성을 갖춘 데이터베이스가 필요합니다. 워크로드는 하루, 한 주, 일 년 내내 변동될 가능성이 높기 때문에, 데이터베이스에 자동 스케일 기능이 탑재되어 있으면 비용을 크게 줄일 수 있습니다. 또한 특수 목적으로 구축된 데이터베이스를 사용할 것인지, 범용 목적의 데이터베이스를 사용할 것인지도 결정해야 할 수 있습니다. 특정 유형의 데이터용 데이터베이스가 필요한 경우, 특수 목적으로 구축된 데이터베이스가 적합할 것입니다. 하지만 이를 위해 귀사에 필요한 다른 특성들을 포기해서는 안 됩니다. 애플리케이션 계층에 이와 같은 특성들을 추후에 구축하려면 비용과 리소스가 많이 들기 때문이죠. 또한 귀사의 데이터 니즈가 늘어나거나, 애플리케이션의 기능을 확장하고 싶을 때 단일 목적의 또는 모든 용도에 걸맞은 데이터베이스를 추가하는 것은 데이터 사일로를 야기하여 데이터 관리 문제를 증폭시킬 뿐입니다. 수집 요구사항, 컴퓨트 요구사항 하향 조정, 크기 제한 등 귀사의 특정 워크로드에 필요한 다른 기능들 역시 고려해야 합니다.

셀프 서비스 기능을 갖춘 미래형 클라우드 데이터베이스를 선택하면 모든 데이터 관리가 자동화됩니다. 덕분에 귀사의 데이터 소비자(개발자, 분석가, 데이터 엔지니어, 데이터 과학자, DBA)들이 데이터를 더욱 효과적으로 활용할 수 있고, 애플리케이션 개발 속도를 높일 수 있죠.

링크를 통해 클라우드 OLTP 데이터베이스 서비스인 Oracle Autonomous Transaction Processing Database에 대해 더 자세히 살펴보세요. 무료 체험도 가능합니다.