죄송합니다. 검색 내용과 일치하는 항목을 찾지 못했습니다.

원하시는 정보를 찾는 데 도움이 되도록 다음을 시도해 보십시오.

  • 검색에 사용하신 키워드의 철자가 올바른지 확인하십시오.
  • 입력한 키워드에 동의어를 사용하십시오. 예를 들어 “소프트웨어” 대신 “애플리케이션”을 사용해 보십시오.
  • 새로운 검색을 시작하십시오.
문의하기 Oracle Cloud에 로그인

앱 개발을 위한 컨버지드 데이터 아키텍처

참조 아키텍처는 모던 앱 개발의 핵심 요구 사항을 충족하기 위해 특정한 디자인 원칙을 적용합니다. 이와 같은 원칙은 개발자가 AI/ML, 데이터 기반 분석, 메시징 플랫폼을 통합한 웹/모바일 앱을 구축할 수 있게 해 줍니다. 이벤트 기반 아키텍처는 이벤트에 실시간으로 반응할 수 있습니다. 이 아키텍처 패턴은 재무, 소매 유통, 헬스케어, 에너지, 제조 분야에서 커스텀 앱 개발을 가속화하고, 패키지화된 Oracle Application을 확장하는 데에도 도움이 됩니다. 대부분의 엔터프라이즈 애플리케이션은 데이터 중심 애플리케이션이며, 컨버지드 데이터베이스 환경에서 가장 효율적으로 개발됩니다. 이 아키텍처 패턴은 Java, Python, Javascript, Go 등 인기 언어를 사용한 프로그래밍 역시 효과적으로 지원합니다. 로코드 앱 개발은 필요한 기술 계층을 압축하며, 이는 일부 애플리케이션에는 훌륭한 옵션입니다. Kubernetes가 관리하는 앱 및 데이터베이스 컨테이너는 이후 Oracle Cloud Infrastructure(OCI), 독립형 환경 및 기타 주요 퍼블릭 클라우드에 배포될 수 있습니다.

웹/모바일 지침

일반적으로 웹 및 모바일 애플리케이션에는 사용자게 표시되는 부분인 프론트 엔드, 쿼리 생성기, 데이터 계산을 수행하고 프론트엔드를 보조하는 백엔드 등이 포함됩니다. 웹 애플리케이션은 사용자 또는 API 요청에 응답하기 위해 요청을 전송한 API 또는 데이터베이스에 저장된 영구 데이터와 상호 작용합니다. 애플리케이션은 반드시 브라우저 및 모바일 기기와 같은 여러 클라이언트를 지원해야 하고, API 및 이벤트를 사용하여 다른 시스템 및 앱과 상호 작용해야 합니다. 백엔드는 반드시 보안성을 갖추고, 필요한 만큼 확장될 수 있어야 합니다.

다수의 애플리케이션 팀들이 각자 독립적으로 테스트, 배포, 소유할 수 있는 마이크로서비스들의 모음과 같은 웹 애플리케이션을 구축합니다. 서비스를 REST API 형식으로 노출시키고, 이벤트 및 메시지용 내장 이벤트 메시, 또는 마이크로 서비스별로 생성된 API를 사용하여 다른 마이크로서비스와 통신합니다. 데이터베이스의 REST 끝점을 통해 지능형 앱의 머신러닝 기능을 ML 모델들과 통합합니다.

웹 및 모바일 앱은 수요 급증을 처리하고, 고부하 환경에서도 저지연성을 유지하기 위한 확장성을 갖추어야 합니다. 또한 연중무휴로 이용 가능해야 하고, 요청이 있을 시 언제든 데이터를 작성할 수 있는 탄력성을 갖추어야 하고, 저장된 정보를 유실하는 일은 절대로 없어야 합니다.

모바일 앱은 React Native 또는 SwiftUI와 같은 종단간 프레임워크로 구축되어 모든 데이터 서비스 및 데이터 보강 서비스 이용과 관련하여 백엔드와 상호 작용할 수 있는 사용자 인터페이스를 생성합니다. 개발자는 워크플로 및 애플리케이션 로직에만 집중할 수 있으며, 탄력적이고, 안전하고, 자율적으로 확장되는 잘 정의된 API를 통해 백엔드에 접근할 수 있습니다.

인터넷상에 노출된 웹 앱의 보안은 극히 중요합니다. 데이터 암호화, TLS, DDoS 보호, 방화벽, 세분화된 사용자 및 데이터 액세스 관리 등이 필수적입니다. 데이터베이스 보안 및 애플리케이션 보안은 모두 중요하며, Oracle Database Wallet, OCI Vault 서비스를 통해 액세스 가능한 암호 및 키를 이용하여 처리됩니다.

설계 원칙

가벼운 오픈 소스 프레임워크 및 안정적 프로그래밍 언어 사용

Javascript(React) 또는 SwiftUI를 통해 모바일 및 웹 프론트엔드를 구축합니다. 백엔드 데이터 및 앱 서비스의 경우 다언어 지원(Python, Node.js, Java, PL/SQL, Go 등)을 통해 해당하는 언어들로 작성된 사용 사례 및 마이크로 서비스를 지원합니다. 데이터 처리는 데이터가 저장되는 곳과 가까운 위치에서 수행합니다.

API로 통신하는 서비스형 앱 개발

웹 또는 모바일 애플리케이션은 조직 외부의 다른 비즈니스 시스템 및 서비스와 접속하는 경우가 많습니다. 웹 애플리케이션에 포함된 서비스는 잘 정의된 API를 통해 외부와의 상호 작용 및 협업을 진행해야 합니다. Oracle REST Data Services(ORDS) 를 사용하여 데이터 API를 사용하거나, 신규 API를 개발할 수 있습니다. OML 서비스 및 OML4Py가 내장된 Python 실행 모델을 통해 사전 구축된 REST 끝점으로 머신러닝을 활용합니다. Oracle Cloud에서 사용 가능한 API 게이트웨이를 모든 클라이언트용 단일 시작점으로 사용하고, 각 API 요청 건을 해당하는 서비스로 라우팅합니다. 마이크로 서비스 간 API 통신 보안을 위해 로드 밸런서 서비스 및 수신 컨트롤러를 구성합니다.

완전 관리형 서비스를 활용한 애플리케이션 개발의 복잡성 해소, 런타임 단축, 데이터 관리 간소화

웹 또는 모바일 애플리케이션 인프라의 유지관리를 위해서는 현재의 셋업을 배포, 업그레이드, 패치 적용, 확장, 보호하기 위한 작업들이 요구됩니다. Oracle Autonomous Database 등의 관리형 서비스 및 Oracle Cloud에서 구동되는 다른 여러 관리형 서비스들을 사용하여 가용성 및 확장성을 극대화하고, 변화하는 웹 및 모바일 앱 관련 요구사항에 대응할 수 있습니다. 관리형 서비스는 애플리케이션의 연중무휴, 24시간 가용성을 보장하고, 관련 인프라가 호스팅되고 있는 데이터 센터에서의 장애 발생시 앱 데이터를 보호해야 합니다. 자가 관리형 서비스는 공급업체 관리형 서비스를 사용할 수 없는 경우에 한하여 사용합니다.

애플리케이션 계층을 무상태로 유지

애플리케이션의 중간 계층 구성 요소를 무상태(stateless)로 유지합니다. 애플리케이션 상태를 저장해야 하는 경우, Oracle Autonomous Database를 사용하여 애플리케이션 데이터 및 상태를 저장함으로써 애플리케이션의 일관성, 내구성 및 빠른 복구 가능성을 확보할 수 있습니다. 단일 데이터베이스에 전체 상태를 저장하는 것이 애플리케이션 복구에 있어 보다 간단하고 효율적입니다.

모든 데이터를 지원하는 완전한 기능 모음을 갖춘 컨버지드 데이터베이스 사용

웹 및 모바일 애플리케이션은 서로 다른 데이터 포맷을 사용하고, 데이터 저장소를 활용하여 데이터를 저장, 검색, 처리합니다. 앱이 작성하는 데이터의 성격으로는 테이블형(관계형), 비구조적, XML 및 JSON 형식 포맷, 공간, 또는 그래프 등이 있습니다. 과거에는 이러한 데이터 다양성을 관계형 데이터를 위한 관계형 데이터베이스, 구조화되지 않은 데이터를 위한 문서 데이터베이스, 계층적 링크 데이터를 위한 그래프 데이터베이스 등의 다양한 데이터베이스를 이용해 해결했습니다. 하지만 여러 데이터베이스의 사용은 운영상의 복잡성 및 데이터 비일관성을 야기합니다. 그와 같은 문제를 해결하고자 개발된 컨버지드 Oracle Autonomous Database를 활용하여 여러 유형의 데이터를 저장하고, 인덱스화하고, 저장된 데이터를 검색할 수 있는 방법을 제공하고, 모든 형식의 데이터를 활용하는 통합 분석을 수행할 수 있습니다.

종단간 모니터링 및 추적용 도구

하나의 웹 또는 모바일 애플리케이션에는 다수의 애플리케이션 및 비즈니스 팀이 소유한 수백 개의 서비스들이 포함될 수 있습니다. 개방형 도구 인터페이스를 사용한 통합 관측 기능은 그와 같이 분산되어 있는 시스템 내부 동작 파악에 있어 중요한 역할을 합니다. 메트릭, 로그를 사용하여 관측 가능성 솔루션을 중앙화하고, 애플리케이션 및 데이터 레이어의 모든 계층으로부터 내보낸 데이터를 추적합니다. 이러한 서비스들은 프론트엔드부터 백엔드까지의 전체 스택을 모니터링하여 애플리케이션의 문제를 빠르게 파악 및 수정하고, 지속적인 성능 튜닝을 위한 플랫폼 역할을 합니다.

자동화된 데이터 복제 및 장애 복구를 통해 SPOF 제거

웹 및 모바일 애플리케이션은 반드시 탄력성 및 장애 복구, 다운타임 최소화, 데이터 손실 방지 등을 위한 기능들을 갖추어야 합니다. 다중화는 단일 장애 지점 최소화에 기여합니다. Kubernetes를 사용하여 데이터베이스 컨테이너 및 앱 컨테이너의 복원성을 관리할 수 있습니다. Oracle Database Kubernetes 오퍼레이터는 해당 작업을 위해 설계되었으며, 데이터 계층을 포함하는 CI/CD 파이프라인을 사용합니다. Kubernetes 클러스터 내에 최소 3개의 노드로 이루어진 노드 풀을 설정합니다. 각 노드는 OCI의 다중 가용성 도메인 영역 내의 개별 가용성 도메인에 존재합니다. OCI의 단일 가용성 도메인 영역 내에서 각각 별도의 결함 도메인 내의 노드들로 이루어진 Kubernetes 노드 풀을 설정합니다. Kubernetes의 데이터 중복성 확보를 위해 단일 퍼블릭 로드 밸런서 및 다수의 수신 컨트롤러를 갖춘 다중 프라이빗 로드 밸런서를 사용합니다.

운영 다운타임 및 데이터 손실을 최소화할 수 있는 Autonomous Data Guard를 사용하여 Autonomous Database를 설정함으로써 가용성을 최대화합니다.

최소 권한의 원칙에 따라 각 사용자 및 서비스 계정에 각자의 작업을 수행하기 위한 필요 최소한의 권한만이 부여되었는지 여부를 확인합니다. Cloud Identity and Access Management(IAM)를 사용하여 데이터베이스 및 각종 웹 애플리케이션 구성요소에 접근할 수 있는 사용자 권한을 제어합니다. 관리자는 IAM의 강력한 다중 인증 기능을 통해 애플리케이션 구성요소 및 데이터베이스에 대한 액세스를 제어할 수 있습니다.

아키텍처

이러한 웹 또는 모바일 애플리케이션용 컨버지드 데이터 아키텍처 패턴은 단일 종단간 서비스 및 Oracle Autonomous Database의 다양한 앱 및 데이터 서비스를 활용하여 구축된 다수의 마이크로서비스 및 백엔드로 구성됩니다. 선택적으로, 데이터베이스에 저장되지 않은 서비스의 경우 컨테이너화된 마이크로서비스들을 단일 Kubernetes 클러스터를 활용하여 관리합니다.

아래의 도표는 설명드린 바와 같은 참조 아키텍처를 시각화한 것입니다.

웹 참조 아키텍처

본 아키텍처의 구성요소들은 다음과 같습니다(각 구성요소는 Oracle Cloud Infrastructure(OCI)의 완전 관리형 서비스, 또는 다른 배포 환경의 동급 서비스입니다. 예를 들어, Oracle Autonomous Database는 OCI를 통해 제공되는 관리형 서비스이고, Oracle Database의 구동 환경은 다릅니다).

  • Oracle Autonomous Database
    Oracle Autonomous Database는 모든 유형의 데이터를 저장, 처리, 분석할 수 있는 각종 데이터 서비스를 제공합니다. 해당하는 서비스로는 운영 데이터베이스, 데이터 웨어하우스, 데이터 분석 등이 있습니다. 또한 내장된 이벤트 및 메시징 플랫폼(Transactional Event Queues), 머신러닝, REST API 및 로 코드 개발 환경이 포함된 애플리케이션 서비스들을 제공합니다. 마이크로서비스 방식으로 개발된 모던 웹/모바일 앱을 완벽히 지원하는 데이터 플랫폼입니다.
  • Container Engine for Kubernetes(OKE)
    Kubernetes 서비스는 컨테이너화된 애플리케이션의 클라우드 배포에 사용 가능한, 확장성 및 고가용성을 갖춘 완전 관리형 서비스입니다. 사용자가 앱에 필요한 컴퓨팅 리소스를 지정하면 Container Engine이 OCI에서 기존 테넌시로 프로비저닝합니다. Container Engine은 Kubernetes를 사용하여 다수의 호스트 클러스터에 대한 컨테이너화된 앱의 배포, 확장, 관리를 자동화합니다.
  • Load balancer
    Oracle Cloud Infrastructure Load Balancing 서비스는 단일 시작점에서 백엔드의 여러 서버로 자동으로 트래픽을 분산해 줍니다.
  • Oracle Cloud Infrastructure Identity and Access Management(OCI IAM)
    OCI IAM은 강력한 인증, MFA, 소셜 로그인, 최종 사용자용 자체 등록, ID 관리, Single Sign-On(SSO), 애플리케이션용 ID 관리 등의 다양한 기능을 제공합니다.

사용 사례

본 사용 사례는 GrabDish라는 이름의 모바일 식품 배달 애플리케이션 샘플을 활용하여 작성되었습니다. 해당 앱은 Autonomous Database의 Microservices 아키텍처 및 각 서비스별로 컨테이너화된 데이터베이스(Container Database 내의 Pluggable Database)를 활용하였습니다. 내장된 메시징 플랫폼인 Transactional Event Queues(TEQ)를 사용하여 개발자용 공통 마이크로서비스 패턴을 간소화합니다. GrabDish에는 AI/ML 서비스 및 다양한 데이터 유형이 사용되었으며, 여러 언어를 통해 프로그래밍되었습니다. 자세한 내용은 Livelabs on GrabDish(http://bit.ly/simplifymicroservices)를 참조해 주세요.

자세히 살펴보기

관련 리소스들을 자세히 살펴보세요.

이벤트 기반 지침

메시징 솔루션은 온프레미스 시스템에 저장된 것들을 비롯한 각종 애플리케이션 구성요소를 클라우드 솔루션과 연결합니다. 메시지 페이로드란 애플리케이션이 생성한 이벤트, 사용자 입력, 데이터 변경 내역, 또는 장치가 생성한 이벤트 등을 비롯한 각종 이벤트를 의미합니다. 메시징 솔루션을 통해 이벤트 및 데이터 전송을 잘 정의된 분산 처리 파이프라인의 일부로 활용하거나, 데이터를 처리, 강화, 분석하는 여러 독립 다운스트림 시스템에 메시지 및 이벤트를 게시할 수 있습니다. 마이크로서비스로 구축된 대부분의 현대적 앱은 이벤트 기반 아키텍처에 의존합니다. 이벤트 메시를 통해 시스템에서 생성된 모든 이벤트를 분산 시스템 내의 다른 모든 위치에서 안전하게 활용할 수 있으며, 해당 과정에는 하나 또는 그 이상의 이벤트 브로커가 사용됩니다. 이벤트 프로세싱이 완료되면 해당 데이터(페이로드)는 데이터 레이크하우스에 저장되어 분석 및 AI/ML 모델 학습에 사용됩니다.

가용성, 신뢰성, 유연성이 뛰어난 메시징 솔루션을 구축합니다. Oracle의 컨버지드 데이터베이스 플랫폼, 클라우드 서비스, 모범 사례를 활용하여 다양한 비즈니스 니즈에 대응하기 위한 메시징 및 이벤트 기반 솔루션들을 제공합니다. 이상의 권장 사항들을 활용하여 개발 통합 작업, 배포 오버헤드, 장기적 관리에 따른 부담 등을 최소화할 수 있습니다.

메시징 솔루션은 온프레미스 시스템에 저장된 것들을 비롯한 각종 애플리케이션 구성요소를 클라우드 솔루션과 연결합니다. 메시징 솔루션을 통해 데이터 전송을 잘 정의된 분산 및 융합 처리 파이프라인의 일부로 활용하거나, 독립적으로 운용 및 개발되는 여러 다운스트림 시스템에 메시지 및 이벤트를 게시할 수 있습니다.

또한 해당 솔루션은 데이터를 버퍼링하고 동적으로 프로세스 리소스를 조정하여 예상치 못한 사용량 급증이 발생하더라도 메시지 로드에 투명하게 반영해야 합니다. 과거에는 기업이 그와 같은 목표를 충족하고 신뢰할 수 있는 메시징 솔루션을 배포 및 관리하기란 어려운 일이었습니다. 많은 비용 및 복잡성이 야기되었기 때문입니다. 그러나 이제는 클라우드의 확장성 및 성능을 바탕으로 설계된 강력한 메시징 서비스를 간편하게 구현할 수 있게 되었습니다.

설계 원칙

다음과 같은 설계 원칙들을 기반으로 컨버지드 데이터 아키텍처를 활용하여 메시징 애플리케이션 또는 플랫폼을 구축합니다.

API를 통해 통신하는 서비스형 앱 개발

Oracle Transactional Event Queues와의 메시징에는 JMS 또는 Kafka API를 사용합니다. 표준 API를 활용하여 애플리케이션 이식성을 확보하고, 하이브리드 및 멀티클라우드 메시징 애플리케이션을 원활하게 구축할 수 있습니다.

완전 관리형 서비스를 활용하여 애플리케이션 개발, 런타임, 데이터 관리 전반의 복잡성을 해소합니다.

내장된 인프라 유지보수 및 보안 패치 적용 기능을 갖춘 완전 관리형 서비스를 사용하여 애플리케이션을 구동합니다. 사용량 변화에 대응하기 위해 확장 자동화 기능을 활용할 수 있습니다. OCI에서 구동되는 완전 관리형 Oracle Database 서비스인 Oracle Autonomous Database를 사용합니다. Oracle Transactional Event Queues는 OCI 리전을 통해 사용할 수 있는 모든 데이터베이스에 내장된 기능입니다.

모든 데이터를 지원하는 완전한 기능 모음을 갖춘 컨버지드 데이터베이스 사용

JSON, 관계형, 그래프, 공간 및 기타 다양한 데이터 유형들을 기본적으로 지원하는 Oracle Autonomous Database를 사용합니다. 데이터베이스 기능을 사용하여 애플리케이션 로직을 단순화합니다. 예를 들어, 쿼리, 조인, 분석에는 SQL을 사용합니다. 트랜잭션을 사용하여 데이터의 일관성 및 상호 격리를 보장하고, 내장된 머신러닝 알고리즘 및 분석 기능을 사용하여 불필요한 데이터 전송을 방지합니다. 데이터베이스의 보안 및 액세스 제어 기능을 통해 중요 데이터를 보호하고, 복제 기능을 활용하여 앱의 가용성, 확장성, 탄력성을 향상시킵니다.

종단간 모니터링 및 추적용 도구

하나의 메시징 애플리케이션에는 다양한 애플리케이션 및 비즈니스 팀이 소유한 수백 개의 서비스들이 포함될 수 있습니다. 이러한 복잡한 분산 시스템의 동작을 파악하는 데에는 개방형 도구 인터페이스를 사용한 통합 관측 가능성 기능이 중요한 역할을 합니다. 각 팀이 자체 솔루션을 구축하는 대신, 애플리케이션의 모든 계층에서 익스포트된 메트릭, 로그, 트레이싱을 중앙화합니다. 디버깅 및 성능 튜닝 워크플로용 Grafana 대시보드를 지원하기 위해 Prometheus로 TEQ 메트릭을 익스포트할 수 있습니다.

수평 확장을 통해 단일 장애 지점을 제거하고, 장애 복구를 자동화합니다.

TEQ는 Oracle Autonomous Database에 포함되어 있으므로, 추가 작업 없이도 애플리케이션에 High Availability 및 리전 간 Disaster Recovery 기능을 활용할 수 있습니다.

또한 TEQ의 트랜잭션 메시징은 외부 장애로 인한 복구 과정을 단순화해 줍니다.

앱 수명 주기 전반에 걸친 보안성 확보를 위한 심층 방어 체계 적용

Identity and Access Control(IAM) 정책을 구현하여 승인된 사용자만 스트림에서 데이터를 생성, 전송 또는 수신할 수 있도록 합니다. 끝점에 최소 접근성의 원칙을 적용하기 위해 인터넷으로부터의 접근을 제한하는 mTLS 및 서비스 게이트웨이를 사용하여 메시징 끝점에 대한 접근을 보호합니다. 저장 및 전송 중인 데이터를 암호화하여 데이터 기밀성을 확보합니다. Database Wallet을 사용하여 데이터베이스 연결에 사용되는 인증서를 보호합니다.

아키텍처

컨버지드 데이터베이스 아키텍처는 모던 애플리케이션에서 메시징 패턴을 구현하기 위한 설계를 제공합니다. 해당 패턴은 Oracle Autonomous Database에 내장된 Transactional Event Queues(TEQ)를 사용합니다.

해당 아키텍처는 외부 스트리밍 또는 대기열 서비스를 활용할 필요를 없애고, 공통 마이크로서비스 패턴을 단순화하는 트랜잭션 메시징 기능을 제공함으로써 메시징을 단순화해 줍니다.

컨버지드 데이터베이스 아키텍처 이미지

애플리케이션 설계자는 컨버지드 데이터베이스 아키텍처의 확장성, 성능, 단순성을 고려해야 합니다.

  • 비동기 메시징을 위해 Oracle Database의 Transactional Event Queues(TEQ) 사용
    컨버지드 Oracle Database는 확장 가능한 인프라에서 데이터 및 메시지 처리를 결합함으로써 데이터베이스에 저장된 모든 데이터 및 메시지의 전체 수명 주기에 걸친 관리 및 보안을 간소화해 줍니다. 별도의 메시징 인프라를 통해 관리하는 방식에 비해 데이터 저장소와 보다 가까운 장소에서 데이터를 처리함으로써 더 나은 성능, 더 높은 보안, 더 쉬운 업그레이드 및 유지 관리를 가능케 합니다.

    데이터베이스에 포함된 Transactional Event Queues 기능은 메시징 및 데이터베이스 작업 전반에 걸친 트랜잭션을 제공하므로 보다 간편히 마이크로서비스를 구축할 수 있습니다. Transactional Outbox 패턴은 추가 코드 없이, 일회성 메시징을 사용할 수 있도록 지원함으로써 애플리케이션을 보다 간단히 작성할 수 있도록 합니다. 트랜잭션 롤백 기능을 통해 네트워크 또는 서버 문제 발생 시에도 간단히 복구할 수 있습니다.
  • 높은 처리량을 지원하는 Oracle TEQ 메시징은 확장을 통해 일일 최대 1조 개의 메시지를 처리 가능
    가장 까다로운 메시징 워크로드들에도 대응할 수 있도록, Oracle TEQ는 대기열 추가 및 삭제 작업용 인메모리 가속기 캐시를 통한 높은 처리량을 지원합니다. TEQ는 일반적 이벤트 처리에 사용되는 소규모 메시지 및 비즈니스 워크플로에 사용되는 대규모 페이로드를 모두 지원합니다. TEQ는 메시지 캐시의 메타데이터 관리에서 페이로드를 분리함으로써 보다 큰 규모의 메시지를 지원합니다.
  • 이벤트 메시로서도 활용 가능한 Oracle TEQ
    TEQ는 메시징 외에도 Kafka와의 상호 운용을 통한 보안 이벤트 메시로서의 기능 또한 수행합니다. 클라우드에 구축된 기업용 애플리케이션들을 위해 각각의 이벤트를 적합한 애플리케이션으로 실시간 전송합니다. 이벤트 변환은 내장된 규칙 엔진을 통해 지원되며, 콜백 매커니즘을 사용한 이벤트 처리 기능을 메시지 대기열 추가 및 삭제에 사용할 수 있습니다. 이 콜백 매커니즘은 Java, PL/SQL 또는 OCI Functions을 실행할 수 있습니다.

    TEQ는 Kafka Connectors를 통한 다양한 이벤트 생성자 및 소비자 유형의 상호 운용을 지원합니다. 상호 운용을 통해 이벤트 메시를 설정할 수 있으며, 이러한 상호 운용성은 확장 가능한 기업용 마이크로서비스 애플리케이션 개발 환경의 근간으로 활용됩니다.
  • 단일 플랫폼에서 최고의 JMS 메시징 및 Kafka와 유사한 Pub/Sub를 제공하는 Oracle TEQ
    Oracle TEQ를 통해 단일 메시징 시스템에서 최상의 JMS 메시징 및 Pub/Sub 스트리밍을 구현합니다. Oracle TEQ는 Kafka의 Topics/Partitions과 유사하게 분할되어 있습니다. 컨버지드 Oracle Database에서 이벤트 교환용 메시징 패턴을 사용하는 가장 까다로운 데이터 집약적 이벤트 중심 애플리케이션을 운용하는 데 활용할 수 있는 최적의 메시징 엔진입니다.

사용 사례

FedEx는 1,500만 건의 일간 택배물 발송 관련 미수금 관리를 위해 Oracle E-Business Suite 및 Oracle TEQ로 구축된 비즈니스 이벤트 관리자를 사용하고 있습니다.

  • FedEx는 Exadata Cloud Service를 사용하여 온프레미스 E-Business Suite를 Oracle Cloud Infrastructure(OCI)로 이전했습니다. E-Business Suite 워크플로 및 비즈니스 이벤트 시스템은 전적으로 Oracle Advanced Queuing(AQ) 메시징에 기반하여 구축되었습니다.
  • Oracle AQ는 간단하게 사용할 수 있고, 고성능을 요하는 대기열을 처리할 수 있습니다. Oracle TEQ는 하나의 대기열에 여러 이벤트 스트림을 사용하는, 드롭인 방식 대체를 지원하는 보다 고성능의 솔루션입니다.

Oracle Transactional Event Queues를 통해 일회용 패스워드(OTP)를 사용하는 다양한 2단계 인증(2-FA) 시나리오를 적용할 수 있습니다.

  • 2-FA는 전 세계의 소매업계 패키지 배송 내역을 검증하는 데 사용됩니다. 업체용 앱에서 고객용 앱 및 배달자용 앱으로 메시지가 전송됩니다.
  • 2-FA는 ATM에서 현금 인출자의 신원을 검증하는 데에도 사용됩니다. 해당 사용 사례의 경우 ATM용 앱, 은행용 앱, 고객의 휴대전화 간에 인증을 위한 메시지 교환이 이루어집니다.

자세히 살펴보기

관련 리소스들을 자세히 살펴보세요.

로 코드 지침

로 코드 플랫폼은 비즈니스 관계자와의 협업을 통한 신속한 기회 포착용 애플리케이션 구축, 데이터 보고 및 분석 앱 구축, SaaS 앱 확장, 레거시 애플리케이션 현대화등의 작업에 적합합니다. 모든 코딩에는 작성, 유지 관리, 디버깅, 업그레이드, 보안 관련 비용이 발생합니다. 개발자는 Oracle Application Express(APEX)가 제공하는 직관적 그래픽 기반 개발 경험을 통해 고급 구성요소와 공통 설계 패턴을 활용함으로써 비용 발생을 방지할 수 있습니다.

로 코드 플랫폼을 사용하면 기존 수동 코딩 방식보다 빠르게 기업용 앱을 구축할 수 있습니다. 로 코드 플랫폼은 비즈니스 관계자와의 협업을 통한 신속한 기회 포착용 애플리케이션 구축, 데이터 보고 및 분석 앱 구축, SaaS 앱 확장, 레거시 애플리케이션 현대화등의 작업에 적합합니다.

로 코드 플랫폼을 사용하면 웹 애플리케이션 개발의 복잡성과 씨름하는 대신, 비즈니스 문제 해결에 집중할 수 있습니다. 개발을 복잡하게 만드는 요인들로는 보안, 접근성, 효율적 데이터 액세스, 성능, 세계화 등이 있습니다. 로 코드 플랫폼은 유지 관리해야 하는 코드 양을 획기적으로 줄임으로써 그러한 복잡성을 해소합니다.

개발자는 Oracle Application Express(APEX)가 제공하는 직관적 그래픽 기반 개발 경험을 통해 고급 구성요소와 공통 설계 패턴을 활용함으로써 기존의 앱 개발 방식에 따른 비용 발생을 방지할 수 있습니다.

Oracle Cloud Infrastructure(OCI)는 가장 까다로운 애플리케이션 구동에 필요한 안전하고, 안정적이고, 확장 가능한 고성능 인프라를 제공합니다. OCI에서 구동되는 애플리케이션은 OCI의 확장성을 이용하여 소규모 작업 그룹으로부터 수백만 명의 최종 사용자에 이르기까지 모든 규모의 사용자들을 지원할 수 있습니다. 본 지침은 로 코드 애플리케이션 설계를 위한 원칙 및 최적의 구현 경로에 대한 설명을 제공합니다.

설계 원칙

로 코드 패턴 구현 시에는 다음과 같은 Modern App Development 설계 원칙을 적용합니다.

완전 관리형 서비스를 활용하여 애플리케이션 개발, 런타임, 데이터 관리 전반의 복잡성 해소

앱 개발 시 메타데이터 기반의 로 코드 접근 방식을 채택합니다. 가능한 경우 선언형 애플리케이션 로직을 사용하고, 필요한 경우에만 코드를 작성합니다. 데이터베이스 내의 데이터와 SQL을 사용하여 직접 상호 작용합니다. 가용성 및 확장성을 극대화함으로써 로 코드 앱 관련 요구 사항 변화 내역을 처리할 수 있는 Oracle Autonomous Database 및 Oracle APEX Application Development(APEX Service)와 같은 완전 관리형 서비스를 사용합니다. 또한 Oracle Real Application Clusters(RAC) 및 Oracle Data Guard와 같은 데이터베이스 기능을 통해 로 코드 앱을 연중무휴로 사용 가능하도록 보장하고, 관련 인프라를 호스팅하는 데이터 센터에서의 문제 발생시 데이터 복구를 수행합니다.

구축, 테스트, 배포 자동화

OCI Resource Manager를 사용하여 Oracle Autonomous Databases 및 APEX 환경의 프로비저닝을 자동화합니다. Oracle SQL Developer Command Line(SQLcl)을 Liquibase와 함께 사용하여 데이터 모델 변경 사항의 배포를 자동화합니다. APEX 원클릭 애플리케이션 배포 기능을 통해 변경 사항을 서로 다른 환경에 수동으로 배포할 수 있습니다.

애플리케이션 계층을 무상태로 유지

Oracle APEX는 무상태(stateless)이자 서버리스이고, 런타임 애플리케이션 상태는 테이블에 저장되므로 다수의 사용자들이 연결을 재사용할 수 있습니다. 결과적으로 연결 수가 훨씬 줄어들고, 높은 사용자 동시성을 지원할 수 있게 됩니다.

귀사의 모든 데이터에 대한 완전한 기능 모음을 지원하는 컨버지드 데이터베이스 사용

로 코드 애플리케이션은 일반적으로 구조적(관계형), 비구조적(XML/JSON 문서), 공간 및 기타 다양한 형식의 데이터를 사용해야 합니다. APEX는 Autonomous Database에 포함되어 있으므로, 사용자는 SQL, PL/SQL 및 서버 측의 JavaScript 등을 통해 모든 데이터 형식을 이용한 작업을 수행할 수 있습니다. 또한 지연 시간이 없는 데이터 액세스를 가능케 하는 APEX의 고유한 아키텍처는 앱 사용을 위한 최적의 성능을 제공합니다.

종단간 모니터링 및 추적용 도구

사용자 단위의 자세한 추적 및 디버깅 정보가 포함된 내장 Activity Monitoring 기능을 통해 APEX 애플리케이션 작업을 모니터링 및 추적합니다. APEX Administration Services에서 작업 영역 단위 및 인스턴스 단위 작업을 검토합니다. Performance Hub를 사용하여 데이터베이스 작업을 모니터링하고, Automatic Workload Repository(AWR) 보고서를 검토하여 최상위 리소스 소비자를 식별하고, 튜닝 권장 사항을 파악할 수 있습니다.

자동화된 데이터 복제 및 장애 복구를 통한 단일 장애 지점 제거

Oracle Autonomous Database에 포함된 APEX는 데이터 계층(Exadata 및 RAC)과 중간 계층(중복 Oracle REST Data Services 노드)을 포괄하는 고가용성 아키텍처를 사용하여 배포됩니다. Autonomous Data Guard를 사용하여 앱의 가용성을 한층 강화함으로써 가용성 도메인 장애로부터 보호합니다.

앱 수명 주기 전반에 걸친 보안성 확보를 위한 심층 방어 체계 적용

APEX 애플리케이션의 권한 부여 체계로는 OCI Identity and Access Management(IAM)를 사용합니다. APEX 앱 및 앱 구성요소에 권한 부여 체계를 지정하여 사용자 역할 또는 권한을 기준으로 하는 액세스 제어를 적용합니다. APEX의 내장된 선언형 기능을 사용하여 Session State Protection(SSP) 및 항목 레벨 암호화를 처리함으로써 앱 및 데이터를 보호합니다. SQL 쿼리에 바인드 변수를 사용하여 SQL 주입 공격을 방지합니다. 시간 초과(timeouts)를 적절히 구성하여 비활성 세션이 자동으로 종료되도록 합니다. 내장된 APEX Advisor를 실행하여 보호되지 않는 페이지, 항목, 버튼 등의 잠재적 보안 문제를 감지합니다. 선언적 이스케이핑 및 프로그래밍 방식의 이스케이핑 API를 사용하여 교차 사이트 스크립팅(XSS)으로부터의 보호 체계를 구축합니다.

아키텍처

본 아키텍처는 Oracle APEX Application Development(APEX Service) 및 모든 Oracle Autonomous Database 서비스를 사용하는 로 코드 앱 개발 및 배포를 위한 것입니다. 해당하는 서비스들을 배포하면 전체 스택에 필요한 모든 구성요소들 또한 자동으로 프로비저닝되고, 완전히 관리됩니다. 해당하는 구성요소에는 게이트웨이, 로드 밸런서, Oracle REST Data Services 등이 있습니다.

로 코드 아키텍처

본 이미지는 Oracle APEX Application Development 및 모든 Oracle Autonomous Database 서비스를 사용하는 로 코드 앱 개발 및 배포용 기반 아키텍처입니다. 퍼블릭 서브넷 및 프라이빗 서브넷이 포함된 완전 관리형 환경을 보여줍니다. 완전 관리형 환경 바깥에는 APEX Applications, Oracle REST Data Services API, External REST API가 표시되어 있습니다. 해당 서비스들은 인터넷 게이트웨이 또는 NAT 게이트웨이를 통해 완전 관리형 환경에 접근합니다.

퍼블릭 서브넷에는 로드 밸런서가 포함되어 있으며, 프라이빗 서브넷에는 Oracle REST Data Services 인스턴스 및 Oracle Autonomous Database 인스턴스가 포함되어 있습니다. Autonomous Database의 경우 해당 데이터베이스에서 구동되는 Oracle APEX 인스턴스도 포함됩니다.

APEX Applications 및 Oracle REST Data Services API로부터의 트래픽은 인터넷 게이트웨이를 통해 로드 밸런서로 라우팅되며, 로드 밸런서는 해당 트래픽을 프라이빗 서브넷의 Oracle REST Data Services(ORDS) 인스턴스로 양방향 전송합니다. ORDS 서비스는 Oracle Autonomous Database와 양방향으로 통신합니다. Autonomous Database 인스턴스에서 구동되는 Oracle APEX로부터의 트래픽은 NAT 게이트웨이를 통해 외부 REST API로 직접 라우팅됩니다.

모든 애플리케이션 아티팩트들은 데이터베이스 계층에 배치됩니다. 애플리케이션과 데이터베이스 계층 간의 네트워크 트래픽이 필요하지 않으므로, 지연 시간이 없는 데이터 액세스를 제공할 수 있습니다.

  • 게이트웨이 및 로드 밸런서
    본 인프라는 자동으로 프로비저닝되고, 완전 관리형으로 제공되고, APEX 서비스에 대한 접근을 지원합니다. 게이트웨이 및 로드 밸런서 서비스들은 로 코드 방식을 사용하는 APEX 애플리케이션 개발자들을 위한 완전한 투명성을 제공합니다.
  • Oracle APEX
    Autonomous Database에서 구동되는 Oracle APEX는 애플리케이션 개발 및 배포를 위한 사전 구성되고, 완전 관리되고, 안전한 환경을 제공합니다.
  • Autonomous Database
    Oracle Autonomous Database는 트랜잭션 처리 워크로드에 최적화된 자동 구동, 자가 보안, 자가 복구 데이터베이스 서비스입니다. 사용자가 직접 하드웨어를 구성 또는 관리하거나 소프트웨어를 설치할 필요가 없습니다. OCI가 직접 데이터베이스를 생성하고 백업, 패치, 업그레이드, 튜닝을 관리합니다. Autonomous Database는 해당하는 모든 데이터 유형을 저장, 인덱스화, 검색, 조작할 수 있는 통합 데이터베이스를 제공합니다.
  • Oracle REST Data Services
    Oracle REST Data Services(ORDS)는 HTTPS와 귀사의 Oracle Database를 연결해 줍니다. 중간 계층 Java 애플리케이션인 Oracle REST Data Services는 데이터베이스 관리 REST API, SQL Developer Web, APEX 애플리케이션용 PL/SQL 게이트웨이, 그리고 Oracle Database에 저장된 데이터 및 내장 프로시저와 상호작용하기 위한 RESTful 웹 서비스를 게시할 수 있는 기능을 제공합니다.

기타 고려사항

로 코드 패턴을 구현할 때는 다음과 같은 사항을 고려해야 합니다.

  • APEX를 사용하여 개발된 애플리케이션은 REST API를 직접 사용하거나, 로컬 REST 데이터를 자동으로 동기화하는 방식으로 외부 서비스 및 시스템과 통합할 수 있습니다.
  • 또한 내장된 REST Data Workshop 및 Oracle REST Data Services를 사용하여 APEX로 개발한 기능들을 외부에서의 사용을 위한 REST API 형식으로 게시할 수도 있습니다.

대안 및 안티패턴

본 패턴에 설명된 아키텍처의 대안을 고려하고, 안티패턴을 구현하지 않도록 주의합니다.

  • 대안
    특정 에지 사례에 대응하기 위해 고도의 커스터마이징이 가능한 기술을 활용하여 로 코드 앱을 강화시키는 것은 흔한 방식입니다. 로 코드 앱 개발에 적합하지 않은 앱 구성 요소의 경우, Java 또는 JavaScript 앱을 사용하여 동일한 데이터에 액세스하고 단일한 공통 데이터 저장소를 사용할 수 있습니다. 이러한 패턴은 특정 사용 사례를 위한 가장 적합한 기술을 사용하고, 나머지 사용 사례들은 로 코드 방식으로 처리할 수 있는 유연성을 제공합니다.
  • 안티패턴
    Oracle은 대부분의 비즈니스 애플리케이션을 직접 코딩하지 않기를 권장합니다. 보안, 접근성, 효율적 데이터 액세스, 성능, 세계화 등 신속한 기회 포착용 앱을 개발하는 데에는 수많은 복잡성이 수반됩니다. 그러나 로 코드 플랫폼을 사용한다면 그러한 복잡성을 보다 효율적으로 해결할 수 있습니다.

사용 사례

로 코드 패턴의 효율성에 대한 몇 가지 사례들은 다음과 같습니다.

  • 신속한 기회 포착용 앱
    새로운 비즈니스 기회가 발생하였을 때, 해당 기회를 포착하기 위해 새로운 애플리케이션을 신속하게 구축해야 하는 경우가 있습니다. 기업들은 변화하는 비즈니스 요구 사항들을 충족하고 경쟁력을 유지하기 위해 막대한 양의 앱 백로그를 보유하고 있습니다. 기존의 앱 백로그를 잘못 정의하는 경우도 있고, 비즈니스적 우선 순위가 빠르게 변경될 수도 있으므로, 필요한 순간에 빠르게 구축하고 쉽게 업데이트할 수 있는 앱이 필요합니다. APEX를 사용하여 그러한 앱들을 간편히 구축 및 유지관리할 수 있습니다.
  • 데이터 보고 및 분석
    기업 전체적으로, 심지어는 그 대상을 한 부서로 한정짓더라도, 현재의 상황을 정확하게 파악하기 어려운 경우가 많습니다. 데이터들이 여러 시스템에 나뉘어 저장되고, 기존 보고서들을 제한적으로만 열람 가능하고, 정보에 기반한 사업적 의사 결정을 내리는 데 필요한 세부정보를 제공받지 못하는 경우도 발생합니다. 인원별 데이터 열람 권한을 제한하고 데이터 침해를 방지하는 것 역시 어려운 일이며, 사전 준비된 보고서들의 분석만 해도 몇 시간씩 소요되기도 합니다. APEX 및 APEX의 다양한 보고 및 데이터 시각화 관련 기능들을 사용하여 다양한 사용자 커뮤니티 각각에 적합한 대시보드를 훨씬 간단하게 개발할 수 있습니다.
  • SaaS 및 EBS 확장
    ERP 시스템은 광범위한 기능들을 제공하지만, 귀사에 정확히 필요한 보고서를 작성하는 기능을 갖추지 못했거나, 귀사나 귀사가 소속된 업계에서 필요로 하는 기능을 제공하지 못하는 경우도 있습니다. ERP 시스템상의 공통 비즈니스 프로세스를 완료하기까지 너무 많은 단계를 수행해야 함으로써 효율이 저하되기도 합니다. 이러한 경우 APEX를 사용하여 확장 프로그램을 구축하면 정보 전달의 적절성, 생산성, 사용자 경험 등을 크게 향상시킬 수 있습니다.
  • 레거시 앱 현대화
    Oracle Forms 앱의 경우 오래된 클라이언트/서버 사용자 환경을 제공하는 경우가 많습니다. 이러한 레거시 시스템들은 유용성 및 접근성 문제들을 야기하고, 다양한 브라우저를 통한 작업을 제대로 지원하지 않고, 모바일 친화적이지 않습니다. Oracle APEX는 각종 Oracle Forms 애플리케이션을 최신 웹 앱으로 간단히 전환할 수 있는 확실한 플랫폼입니다. APEX는 Forms과 동일한 내장 프로시저 및 PL/SQL 패키지들을 지원하므로 관련 개발이 매우 간단해집니다.
  • 스프레드시트 교체
    거의 모든 조직은 스프레드시트를 통해 데이터를 전달하고, 데이터 관련 보고를 수행합니다. 그 이유는 무엇일까요? 스프레드시트 파일을 작성하기가 매우 간단하기 때문입니다. 누구든지 데이터만 있다면 해당 데이터를 활용해 스프레드시트를 작성할 수 있습니다. 작성자는 데이터 업데이트 차원에서 작성 완료한 스프레드시트를 동료들에게 전송하는 경우가 많습니다. 따라서 서로 다른 데이터들이 저장되고, 관련 비즈니스 프로세스가 제대로 갖춰지지 못한 수많은 스프레드시트 사본들이 작성되게 됩니다. 그보다 훨씬 더 나은 솔루션은 브라우저 기반 앱을 통해 모든 관계자들이 데이터를 유지 관리하는 데 사용할 수 있는, 완전한 보안 체계를 갖춘 데이터베이스를 기반으로 단일 데이터 출처를 사용하는 것입니다.

자세히 살펴보기

관련 리소스들을 자세히 살펴보세요.

AI/ML 지침

빅 데이터는 데이터베이스, 비디오, 양식, 문서, 로그 파일, 웹 페이지 또는 이미지와 같은 소스에서 제공되는 모든 데이터 유형(구조화되지 않은, 반구조화된/구조적)을 관리, 수집, 저장, 준비, 처리 및 분석할 수 있는 일련의 기능과 패턴입니다. 또한 머신러닝 플랫폼은 완전 관리형으로 제공되어야 하고, 데이터 엔지니어 및 데이터 과학자가 모델 개발 수명 주기 전반에 걸쳐 필요한 모든 단계들을 수행할 수 있도록 지원해야 합니다.

Oracle은 다양한 서비스 및 도구를 통해 빅 데이터 기능을 제공하므로, 각 사용자는 보유한 기술 및 선호도에 기반한 빅 데이터 여정을 시작할 수 있습니다. 컨버지드 Oracle 데이터베이스를 사용하면 다양한 데이터들을 저장하고, 수PB 단위의 볼륨으로 확장하고, 데이터 및 이벤트를 신속하게 수집하고(Transactional Event Queues 활용), 내장된 보안 기능으로 모든 데이터를 보호할 수 있습니다. 컨버지드 데이터 아키텍처는 Oracle Autonomous Database의 컨버지드 데이터베이스 플랫폼을 활용하여 데이터의 볼륨, 다양성, 속도, 정확성을 확보합니다.

데이터 과학자 및 머신러닝 엔지니어가 직접 인프라 프로비저닝, 업그레이드, 패치 적용, 보안 관련 작업을 수행하지 않아도 됩니다. 관리 작업 대신 비즈니스에 활용 가능한 모델을 구축, 학습, 배포하는 데 집중할 수 있습니다. 머신러닝 플랫폼은 완전 관리형으로 제공되어야 하고 모델 개발 수명 주기의 모든 단계를 지원해야 합니다(개발, 학습, 배포, 모니터링). 머신러닝에 사용되는 데이터는 출처로부터의 영향을 받지 않아야 하고, 데이터 과학자의 모델 구축, 학습, 배포 과정 전반에 걸쳐 그 일관성 및 신뢰성을 유지해야 합니다.

대부분의 최신 머신러닝 툴킷은 오픈 소스 기반이며 Python으로 작성됩니다. 따라서 머신러닝 플랫폼은 오픈 소스 프레임워크 및 Python을 기본적으로 지원해야 합니다. 또한 자체 라이브러리를 설치하거나, 이미 설치된 라이브러리를 업그레이드하여 머신러닝 환경을 커스터마이징할 수 있는 기능 또한 갖추어야 합니다. 머신러닝 플랫폼은 데이터 과학자가 다수의 컴퓨팅 리소스를 활용하여 추출, 변환, 로드(ETL) 프로세스 또는 모델 학습 단계를 수직 또는 수평적으로 확장하고, 구조적, 비구조적 또는 반구조적 데이터로 모델을 학습시킬 수 있도록 지원해야 합니다.

마지막으로, 머신러닝 플랫폼은 머신러닝 모델의 실시간 활용을 위한 배포 과정에서의 마찰을 최소화함으로써 간단한 배포를 보장하고(간단한 REST 호출 방식이 이상적), 배포된 모델 내역을 보존하여 감사 및 재현할 수 있도록 해야 합니다.

설계 원칙

빅 데이터 및 분석 패턴을 구현하기 위해서는 다음과 같은 모던 앱 개발용 설계 원칙을 적용해야 합니다.

완전 관리형 서비스를 활용하여 애플리케이션 개발, 런타임, 데이터 관리 전반의 복잡성 해소

데이터의 가치는 그 사용자의 데이터 활용 능력과 비례합니다. 현재 오픈 소스 커뮤니티에서 널리 사용되는 다양한 빅 데이터 도구들이 있으며, 최신 데이터베이스들 또한 그와 거의 동일한 기능을 제공합니다. 개중에서도 특히 데이터 웨어하우징, 분석, AI/ML 모델 학습 및 배포와 관련된 유사한 기능들을 제공하고 있습니다. 컨버지드 Oracle Database는 그러한 빅데이터 플랫폼 중 하나입니다.

Oracle Autonomous Data Warehouse 외부 테이블 및 SQL과 같은 Oracle만의 강력한 기능들을 통해 Oracle 데이터베이스 및 OCI 객체 저장소 기반 데이터 레이크하우스를 사용하여 페타바이트 단위의 데이터를 실시간으로 저장 및 분석할 수 있습니다.

구축, 테스트, 배포 자동화

DataOps는 빅 데이터 파이프라인으로부터 최대한의 가치를 창출함에 있어 중요한 역할을 합니다. Oracle Cloud Infrastructure Data Integration 서비스를 사용하여 데이터를 수집하고, ETL 프로세싱 및 ELT 푸시다운을 구현하고, 다수의 작업들을 일정한 순서로 또는 동시에 프로세싱하기 위한 파이프라인을 생성할 수 있습니다. 해당 파이프라인에는 Oracle Cloud 내외부의 널리 사용되고 다양한 데이터 출처들이 포함될 수 있습니다. Data Integration의 스케줄링 기능을 사용하여 각 작업을 실행할 시기 및 빈도를 정의합니다. Oracle Database Cloud Service Management를 사용하여 일정에 따라 특정 데이터베이스 집합을 대상으로 실행하는 데이터베이스 작업을 정의합니다. 앱 개발자용 CI/CD 파이프라인 및 통합 관측 가능성 기능을 통해 자동화 과정을 개선합니다.

모든 데이터를 지원하는 완전한 기능 모음을 갖춘 컨버지드 데이터베이스 사용

비즈니스 가치 극대화를 위해 데이터 통합 과정을 단순화, 자동화, 가속화해 주는 최고의 도구를 사용합니다. 데이터 웨어하우스, 부서별 데이터 마트, 구조화된 데이터로 구성된 계층 제공 및 프리젠테이션 등을 위해서는 해당 시나리오들에 최적화된 Autonomous Database를 사용합니다. Autonomous Data Warehouse 기능은 Oracle Analytics Cloud와 같은 분석, 비즈니스 인텔리전스, 보고용 도구들에 대한 연결성 또한 갖추고 있습니다.

앱 수명 주기 전반에 걸친 보안성 확보를 위한 심층 방어 체계 적용

데이터 보안을 위한 계획을 수립해야 합니다. 데이터 레이크에서 수행되는 모든 데이터 불러오기 및 내보내기 작업을 추적하고, 데이터 계보 메타데이터를 보관하고, 지속적으로 최신 액세스 제어 정책을 적용합니다.

최소 권한의 원칙에 따라 각 사용자 및 서비스 계정에 각자의 작업을 수행하기 위한 필요 최소한의 권한만이 부여되었는지 여부를 확인합니다. Oracle Cloud Infrastructure Identity and Access Management를 활용하여 데이터 플랫폼 구성요소에 접근할 수 있는 사용자 권한을 제어합니다. Oracle Cloud Infrastructure Identity and Access Management의 다중 인증 기능을 사용하여 강력한 관리자용 인증 체계를 구축합니다. Oracle Datasafe의 데이터베이스 보안기능을 통해 모든 데이터, 사용자, 액세스 패턴 관련 보안 상태를 파악할 수 있습니다. 암호 및 인증 토큰과 같은 중요한 정보들을 Oracle Vault 서비스에 저장합니다.

아키텍처

기업 운영을 위해 데이터를 생성하고 모든 유형의 데이터를 저장 및 분석하는, 확장 가능한 컨버지드 데이터베이스(트랜잭션 처리 및 데이터 웨어하우스)를 사용합니다. 본 아키텍처는 데이터 통합 서비스(Oracle GoldenGate) 및 Oracle Transactional Event Queues를 활용하여 다양한 데이터 소스(최종 사용자, 장치, 이벤트, 센서, 애플리케이션 등)의 데이터들을 데이터베이스에 저장합니다. 데이터들은 Oracle Autonomous Database(Oracle Autonomous Transaction Processing 및 Oracle Autonomous Data Warehouse)에 저장되고, 일부 데이터의 경우 외부 테이블에 SQL을 사용하는 빅데이터용 OCI 객체 저장소를 함께 사용합니다. 머신러닝 모델 구축 및 배포에는 Oracle Machine Learning을 사용하고, 데이터를 활용한 인사이트 확보에는 Oracle Analytics Cloud를 사용합니다.

데이터 탐색 및 준비, 머신러닝 모델 구축, 평가, 배포에는 Oracle Autonomous Database에서 구동되는 Oracle Machine Learning(OML Notebooks, OML AutoML UI, OML Services, OML4Py)을 사용합니다.

모델 학습용 데이터가 데이터베이스에 저장되고, 저장된 곳과 가까운 위치에서 해당 데이터를 프로세싱하는 경우 본 아키텍처 패턴의 강력한 기능을 활용할 수 있습니다. 본 패턴은 OML 학습용 데이터 탐색에 활용할 수 있는 다양한 데이터 소스 및 이벤트를 갖추고 있으며, OML의 OML4Py기능을 통해 SQL, Python을 사용하거나, 노 코드 AutoML 기능을 사용하여 모델을 구축, 학습, 배포합니다. OCI Data Science(예: Tensorflow 또는 PyTorch) 및 기타 다른 서비스를 통해 학습시킨 모델을 ONNX 모델 포맷을 활용하여 OML 서비스로 가져옵니다.

본 패턴은 '알고리즘을 데이터로 이동'시키는 접근법을 사용합니다. 모든 데이터는 외부 테이블을 사용하여 소스로부터 액세스 또는 수집되고, ML 모델 학습을 위한 처리를 거쳐 컨버지드 데이터베이스에 저장됩니다. 데이터베이스에서의 모델 학습이 완료되면 SQL 쿼리를 사용하여 직접 배포하거나(PREDICTION 연산자 사용), OML4Py API를 사용하여 배포할 수 있습니다. 외부에서 학습시킨 모델은 OML 서비스를 사용하여 배포할 수 있습니다. 또한 Autonomous Database를 통해 텍스트, 공간, 그래프 분석 머신러닝도 수행 가능합니다.

AI/ML 아키텍처

본 아키텍처는 다음과 같은 구성 요소들을 사용합니다.

  • 자율운영 데이터베이스
  • OCI Data Catalog
  • Oracle Machine Learning(OML) – SQL, OML4Py 포함
  • OML 서비스
  • Oracle Transactional Event Queues(TEQ)
  • GoldenGate Data Integration
  • Oracle Spatial Studio
  • Oracle Graph Studio
  • Oracle Text

다음과 같은 데이터 소스를 지원합니다.

  • 기업용 애플리케이션
  • 기기
  • 최종 사용자
  • 이벤트
  • 센서
  • 모든 디지털 자산

본 아키텍처는 VCN 내에 다음과 같은 구성요소를 갖추고 있습니다.

  • 가상 클라우드 네트워크(VCN)
    VCN은 사용자가 Oracle Cloud Infrastructure(OCI) 리전 내에 설정하는, 커스터마이징 가능하고 소프트웨어적으로 정의되는 네트워크입니다. 기존 방식의 데이터 센터 네트워크와 마찬가지로 VCN은 사용자에게 네트워크 환경에 대한 완벽한 제어 기능을 제공합니다. 하나의 VCN은 VCN 생성 이후 변경 가능한, 서로 중복되지 않는 다수의 CIDR 블록들을 가질 수 있습니다. 하나의 VCN을 서브넷으로 분할할 수 있고, 그 범위는 하나의 리전 또는 하나의 가용성 도메인으로 지정할 수 있습니다. 각각의 서브넷은 VCN 내의 다른 서브넷과 중복되지 않는 범위 내의 연속적인 주소들로 구성됩니다. 서브넷 생성 이후 그 크기를 변경할 수 있습니다. 서브넷은 퍼블릭 또는 프라이빗으로 설정할 수 있습니다.
  • Data Integration
    Oracle Cloud Infrastructure Data Integration은 완전 관리형 서버리스 클라우드 서비스로서 데이터 과학 및 분석용 데이터를 수집 및 변환합니다. Oracle의 모던 노 코드 데이터 플로 디자이너를 통해 데이터 레이크 및 웨어하우스로의 복잡한 ETL 및 ELT를 간소화해 줍니다. join, aggregate, expression 및 기타 즉시 사용할 수 있는 연산자 중 하나를 선택하여 데이터를 구성할 수 있습니다.
  • ADB에서 구동되는 Oracle Cloud Infrastructure Transactional Event Queues(TEQ)
    자율운영 데이터베이스에서 구동되는 Oracle Transactional Event Queues는 데이터베이스 통합 메시지 대기열 기능을 제공합니다. 매우 최적화되고 분할된 본 구현 방식은 Oracle 데이터베이스의 각종 기능을 활용하여 메시지를 영구적으로 저장함으로써 데이터 생산자 및 활용자 간의 메시지 교환을 위한 높은 처리량을 제공하고, 서로 다른 데이터베이스 내 대기열 간의 메시지 교환을 지원합니다. Oracle Transactional Event Queues는 대기열당 여러 이벤트 스트림을 배정하는 고성능 분할 구현 방식을 사용합니다.
  • Oracle Autonomous Database
    Oracle Autonomous Database는 데이터 웨어하우징 워크로드에 최적화된 자동 구동, 자동 보안, 자동 복구 데이터베이스 서비스입니다. 사용자가 직접 하드웨어를 구성 또는 관리하거나 소프트웨어를 설치할 필요가 없습니다. Oracle Cloud Infrastructure(OCI)가 자동으로 데이터베이스를 생성합니다.

    Oracle Autonomous Database는 데이터 웨어하우스 운영, 데이터 보안, 데이터 기반 애플리케이션 개발에 수반되는 복잡성을 없애 주는 클라우드 데이터 웨어하우스 서비스입니다. 데이터 웨어하우스의 프로비저닝, 구성, 보안, 조정, 확장, 백업을 자동화합니다. 셀프 서비스 데이터 로딩, 데이터 변환, 비즈니스 모델, 자동 인사이트, 그리고 여러 데이터 유형 및 머신러닝 분석과 관련된 보다 간단한 쿼리를 지원하는 내장된 컨버지드 데이터베이스 기능들을 갖추고 있습니다.
  • OCI Object Storage
    오브젝트 스토리지를 통해 데이터베이스 백업, 분석용 데이터, 이미지 및 비디오 등의 리치 콘텐츠를 비롯한 모든 유형의 구조적 및 비구조적 콘텐츠 데이터에 빠르게 액세스할 수 있습니다. 인터넷으로부터 직접 또는 클라우드 플랫폼 내에서 안전하게 데이터를 저장 및 검색합니다. 성능 또는 서비스 안정성 저하 없이 원활하게 스토리지를 확장합니다. 빠르고 즉각적이며 잦은 액세스가 필요한 '핫' 스토리지에는 표준 스토리지를 사용합니다. 장기간 보존하고 거의 액세스하지 않는 '콜드' 스토리지에는 아카이브 스토리지를 사용합니다.

    인터넷 규모의 고성능 스토리지 플랫폼인 OCI Object Storage를 활용하여 안전하고 비용 효율적으로 데이터 내구성을 확보할 수 있습니다. Object Storage 서비스는 분석용 데이터, 이미지 및 비디오 등의 리치 콘텐츠를 비롯한 모든 유형의 구조화되지 않은 콘텐츠 데이터를 무제한으로 저장할 수 있습니다.
  • Oracle Autonomous Database에서 구동되는 Oracle Machine Learning
    Oracle Autonomous Database(Autonomous Transaction Processing 및 Autonomous Data Warehouse)를 활용하여 Oracle Machine Learning을 구동할 수 있습니다. ML은 공간 및 그래프 처리 외에도 패키지 배송을 위한 라우팅 단순화, 자금 세탁 방지 작업용 신속한 이상거래 감지 등의 다양한 사용 사례에 활용됩니다.
  • Oracle Analytics Cloud
    모던 클라우드 분석을 위한 동급 최고의 플랫폼인 Oracle Analytics Cloud를 통해 비즈니스 분석가 및 소비자를 지원할 수 있습니다. Oracle Analytics Cloud는 데이터 준비, 검색, 시각화를 위한 모던 AI 기반 셀프서비스 분석 기능을 제공합니다. 지능형 엔터프라이즈 및 온디맨드 보고서 생성 기능과 증강 분석 기능을 갖추고 있습니다. 자연어 처리 및 생성 기능 역시 지원합니다. 비즈니스 분석가, 데이터 엔지니어, 데이터 과학자, 부서 관리자, 도메인 전문가, 경영자 등 다양한 사용자들이 Oracle Analytics Cloud를 통해 데이터를 인사이트로 전환할 수 있습니다.
  • 분석, ML 및 커스텀 앱
    분석 서비스, Oracle Machine Learning, 커스텀 애플리케이션 등을 통해 빅 데이터를 카탈로그화, 준비, 처리, 분석합니다.
  • OCI Data Catalog
    Oracle Cloud Infrastructure Data Catalog는 엔터프라이즈 데이터를 위한 완전 관리형 셀프 서비스 데이터 검색 및 거버넌스 솔루션입니다. 본 솔루션을 통해 데이터 엔지니어, 데이터 과학자, 데이터 관리인, 최고 데이터 책임자 등이 기업의 기술, 비즈니스, 운영 메타데이터 관리를 위한 단일 협업 환경을 활용할 수 있습니다.

    Oracle Cloud Infrastructure(OCI) Data Catalog는 데이터 전문가가 데이터를 검색하고 데이터 거버넌스를 지원하는 데 도움을 주는 메타데이터 관리 서비스입니다.
  • Oracle GoldenGate
    이 완전 관리형 서비스는 오늘날의 트랜잭션 기반 애플리케이션의 니즈 충족을 위해 실시간 로그 기반 CDC와 복제 소프트웨어 플랫폼을 제공합니다. 이 서비스가 제공하는 각종 소프트웨어를 통해 이기종 환경 전반의 트랜잭션 데이터를 실시간으로 수집, 라우팅, 변환, 전달할 수 있습니다.

고려 사항 및 안티패턴

빅 데이터 및 분석 관련 고려 사항은 다음과 같습니다.

  • 데이터 사본 및 이동 감소
    데이터 이동에는 많은 비용이 발생하고, 리소스 및 시간이 소비되고, 결과적으로 데이터 충실도가 감소됩니다. 데이터 유형, 데이터 품질, 요구되는 변환 내역에 따라 데이터의 저장 및 처리에 활용할 올바른 서비스를 선택해야 합니다. 컨버지드 Oracle Database를 모든 유형의 로 데이터를 저장하는 데이터 레이크로 활용하여 최대 수 페타바이트에 달하는 볼륨의 운영 및 분석 데이터를 관리합니다. 적절한 객체 저장소로 해당 저장소를 확장합니다. Oracle Autonomous Data Warehouse를 사용하여 프리젠테이션용으로 변환된 데이터를 저장합니다. 적절한 저장소를 사용함으로써 데이터 복제 및 이동을 방지하고, 지속적 유지 관리 및 동기화가 어려운 중복 데이터 사본들을 줄일 수 있습니다.
  • 사용자가 필요로 하는 데이터 인터페이스 제공
    기업용 데이터 및 분석 플랫폼의 사용자 유형은 다양합니다. 데이터 엔지니어, 데이터 분석가, 애플리케이션 개발자, 빅 데이터 엔지니어, 데이터베이스 관리자, 비즈니스 분석가, 데이터 과학자, 데이터 관리인 및 기타 다양한 사용자 유형이 있습니다. 각 사용자 유형별로 데이터 활용과 관련된 다양한 요구 사항 및 선호도가 존재합니다. 모든 관련 사용 사례 및 데이터 소비자들의 요구 사항을 이해하는 것은 중요한 일입니다. SQL 쿼리 및 비즈니스 인텔리전스 도구등과의 인터페이싱에는 Autonomous Data Warehouse를 사용합니다.

머신러닝 및 인공 지능을 구현하는 경우 다음과 같은 옵션을 고려합니다.

  • ETL 및 데이터 처리 단계, 모델 학습 단계, 모델 배포 단계 등 모델 개발 수명 주기의 전 단계를 위한 수평 확장성을 제공합니다. 모델 재현성을 보장합니다. 모델은 감사되어야 하고, 재생성이 가능해야 합니다. 모델 재생성을 위해서는 모델을 저장할 때 소스 코드 참조 경로, 학습 및 검증 데이터세트, 관련 환경(타사 라이브러리 및 아키텍처) 등을 함께 저장해야 합니다. Git 저장소 관련 참조를 사용하고 해시를 커밋하여 코드를 추적합니다. Object Storage를 사용하여 학습 및 검증 데이터세트의 스냅샷을 저장합니다.
  • 코드, 기능, 모델의 버전을 제어합니다. 본 고려 사항은 모델의 재현성에 기여합니다.
  • 타사 런타임 종속관계를 패키지화, 공유, 재사용합니다. 동일한 Python 노트북, 작업, 모델 배포 방식을 재사용합니다. 또한 이와 같은 방식은 각 단계별 타사 종속관계의 불일치 위험을 최소화해 줍니다.
  • 데이터 전송을 제한하고, 데이터 소스로부터의 영향을 차단합니다. 모델 학습 환경으로 데이터를 전송하는 데에는 많은 시간이 소요됩니다. 노트북 환경이나 학습 작업 간에 공유 가능한 데이터베이스 내 데이터를 최대한 사용합니다. 모델 학습 및 검증을 위해 로컬 데이터세트 스냅샷을 보관합니다.

안티패턴

구현 방식을 설계할 때는 다음 사항을 고려합니다.

  • 컨버지드 데이터베이스를 사용하지 않을 경우 데이터 파편화, 복제본 오염, 데이터 보안 위험 등이 발생할 수 있습니다.
  • 데이터 카탈로그화 및 거버넌스가 부족한 경우 데이터 레이크가 데이터 스웜프(data swamps)로 변모할 수 있습니다.

대안 및 안티패턴

본 패턴에 설명된 아키텍처의 대안을 고려하고, 안티패턴을 구현하지 않도록 주의합니다.

  • 대안
    특정 에지 사례에 대응하기 위해 고도의 커스터마이징이 가능한 기술을 활용하여 로 코드 앱을 강화시키는 것은 흔한 방식입니다. 로 코드 앱 개발에 적합하지 않은 앱 구성 요소의 경우, Java 또는 JavaScript 앱을 사용하여 동일한 데이터에 액세스하고 단일한 공통 데이터 저장소를 사용할 수 있습니다. 이러한 패턴은 특정 사용 사례를 위한 가장 적합한 기술을 사용하고, 나머지 사용 사례들은 로 코드 방식으로 처리할 수 있는 유연성을 제공합니다.
  • 안티패턴
    Oracle은 대부분의 비즈니스 애플리케이션을 직접 코딩하지 않기를 권장합니다. 보안, 접근성, 효율적 데이터 액세스, 성능, 세계화 등 신속한 기회 포착용 앱을 개발하는 데에는 수많은 복잡성이 수반됩니다. 그러나 로 코드 플랫폼을 사용한다면 그러한 복잡성을 보다 효율적으로 해결할 수 있습니다.

사용 사례

다음은 Oracle Cloud Infrastructure(OCI) 데이터 및 분석 서비스를 사용하여 빅 데이터를 수집, 저장, 카탈로그화, 준비, 처리, 분석하는 구현 사례입니다.

  • 데이터 웨어하우징 및 기업용 분석

    Oracle Autonomous Data Warehouse를 Oracle Analytics Cloud용 데이터 웨어하우스 또는 데이터 마트로 사용합니다.

    • Data Integration은 지정된 소스로부터 데이터를 수집합니다. 사용되는 데이터 통합의 유형은 배치, 스트리밍 또는 동기화된 데이터베이스 레코드 등의 데이터 형식 차이 및 온프레미스 및 클라우드 등의 데이터 위치 차이에 따라 달라집니다.
    • 클라우드 서비스를 통해 데이터를 Object Storage에 저장하여 공유 액세스를 실현하고, Autonomous Data Warehouse 또는 Big Data 서비스를 통해 저장하기 전 사전 처리를 수행할 수 있습니다. 또한 데이터를 Autonomous Data Warehouse에 직접 저장한 뒤 ELT 기능을 사용하여 변환할 수도 있고, 다른 데이터베이스의 레코드를 직접 수집할 수도 있습니다.
    • Oracle Analytics Cloud는 머신러닝 결과를 포함한 데이터베이스 내의 데이터에 대한 시각화 기능을 제공합니다. Oracle Analytics Cloud는 데이터 플로 프로세싱을 위해 가능한 한 많은 프로세싱을 Autonomous Data Warehouse로 푸시다운합니다.
    • Object Storage는 활성 아카이브 또는 데이터 공유를 위한 선택 사항입니다. 활성 아카이브는 자주 사용하지 않는 데이터를 ADW에서 저비용 스토리지 계층(Object Storage)으로 이동시키는 위치를 의미합니다. Object Storage에 저장된 데이터 또한 동일하게 쿼리할 수 있지만 응답 속도는 보다 느립니다. Object Storage는 클라우드 서비스 간에 공유되는 데이터 저장에도 사용할 수 있습니다.
    • Oracle Cloud Infrastructure(OCI) Data Catalog는 Autonomous Data Warehouse 및 Object Storage 데이터 소스에서 메타데이터를 수집합니다. Data Catalog와의 상호작용을 통해 카탈로그를 사용 및 관리합니다.
  • 레이크 하우스 패턴 구현을 위해 데이터 레이크 및 데이터 웨어하우스를 활용하여 모든 유형의 데이터를 관리합니다.

    Autonomous Data Warehouse에서 데이터를 관리하고, Oracle Analytics Cloud를 사용하여 데이터를 시각화합니다.

    • Data Integration은 지정된 소스로부터 데이터를 수집합니다. 사용되는 데이터 통합의 유형은 배치, 스트리밍 또는 동기화된 데이터베이스 레코드 등의 데이터 형식 차이 및 온프레미스 및 클라우드 등의 데이터 위치 차이에 따라 달라집니다.
    • 클라우드 서비스를 통해 컨버지드 Oracle Database로 데이터를 전달하고, Autonomous Data Warehouse를 활용해 데이터 및 이벤트 프로세싱을 수행할 수 있습니다. 또한 데이터를 Autonomous Data Warehouse로 직접 전달한 뒤 ELT 기능을 사용하여 변환하거나, 다른 데이터베이스의 레코드를 직접 수집할 수도 있습니다.
    • Autonomous Data Warehouse는 SQL을 사용하거나, Oracle Cloud Infrastructure Data Integration의 관련 지원을 활용하여 Object Storage에 저장된 데이터를 쿼리하고 Object Storage로부터 데이터를 수집할 수 있습니다.

자세히 살펴보기

관련 리소스들을 자세히 살펴보세요.