데이터가 저장된 곳에서 직접 AI 모델을 적용하고, AI를 통해 더욱 간단해진 앱 개발 및 미션 크리티컬 워크로드를 지원하는 Oracle Database 23ai의 다양한 기능들을 확인해 보세요.
이 웹페이지에는 Oracle Database 23ai의 빠른 시작을 지원하기 위한 새로운 기능 소개 및 관련 예제가 매주 업데이트됩니다. 즐겨찾기에 이 웹페이지를 추가하고, 매주 새로운 주요 기능들을 확인해 보세요.
Larry Ellison과 Juan Loaiza가 Oracle Database 23ai의 생성형 AI 전략을 소개합니다.
개발자를 위한 Oracle Database 23ai의 신기능을 살펴보세요.
AI Vector Search는 비즈니스 데이터를 사용한 생성형 AI 파이프라인을 데이터베이스 내에서 직접 구축할 수 있도록 지원하는 기능입니다. 개발자는 간편한 네이티브 벡터 기능을 사용하여 관계형 데이터베이스 프로세싱과 유사도 검색 및 검색 증강 생성을 결합한 차세대 AI 애플리케이션을 구축할 수 있습니다. 비즈니스 데이터가 저장된 곳에서 직접 벡터 검색을 실행하므로 데이터 이동은 물론 여러 데이터베이스를 관리하고 통합하는 데 따르는 복잡성, 비용, 데이터 일관성 문제가 해결됩니다.
Oracle Database 23ai에 추가되는 다른 개발자용 기능들은 다음과 같습니다.
Transparent Application Continuity 기능을 통해 기본 소프트웨어, 하드웨어, 통신, 스토리지 계층의 중단으로부터 C/C++, Java, .NET, Python, Node.js 애플리케이션을 보호할 수 있습니다...
DBMS_SEARCH는 Oracle Text 유비쿼터스 검색을 구현합니다. DBMS_SEARCH를 사용하면 여러 테이블 및 뷰에 대한 단일 인덱스를 손쉽게 생성할 수 있습니다...
Memoptimized Rowstore Fast Ingest에 파티셔닝, 압축 테이블, 직접 쓰기를 사용한 빠른 플러시, 직접 인메모리 열 저장 파퓰레이션 지원 등의 개선 사항을 추가했습니다...
Oracle Globally Distributed Database는 Oracle Database 23c의 Raft 복제 기능을 지원합니다. 이를 통해 노드 또는 데이터 센터 중단 시 데이터 손실 없이 매우 빠른(3초 미만) 페일오버를 수행할 수 있습니다...
Transparent Application Continuity 기능을 통해 기본 소프트웨어, 하드웨어, 통신, 스토리지 계층의 중단으로부터 C/C++, Java, .NET, Python, Node.js 애플리케이션을 보호할 수 있습니다. Oracle Database는 Oracle Real Application Clusters(RAC), Active Data Guard (ADG), Autonomous Database(공유 및 전용) 등의 다양한 서비스를 통해 노드 또는 RAC 클러스터의 하위 집합에 장애가 발생하거나, 유지보수를 위해 오프라인 상태가 되는 경우에도 지속적인 데이터 액세스를 보장합니다.
Oracle Database 23c에는 오픈 커서(세션 상태 안정 커서) 등의 배치 애플리케이션 지원을 비롯한 여러 개선 사항이 추가되었습니다.
특정 트랜잭션이 행 잠금을 유지하며 오랜 시간 동안 커밋하거나 롤백하지 않을 경우 우선순위가 높은 다른 트랜잭션이 차단될 수 있습니다. 관리자는 Automatic Transaction Rollback 기능을 사용하여 애플리케이션별 트랜잭션 우선순위를 할당하고, 각 우선순위별 시간 제한을 설정할 수 있습니다. 데이터베이스는 우선순위가 낮은 트랜잭션을 자동으로 롤백하고, 설정된 시간이 초과되어 우선순위가 높은 트랜잭션을 차단하는 경우 설정되었던 행 잠금을 해제하여 우선순위가 높은 트랜잭션이 계속 진행될 수 있도록 합니다.
Automatic Transaction Rollback은 관리 부담을 줄여 줌과 동시에 우선순위가 높은 트랜잭션의 트랜잭션 지연 시간/SLA를 유지하는 데에도 기여합니다.
DBMS_SEARCH는 Oracle Text 유비쿼터스 검색을 구현합니다. DBMS_SEARCH를 사용하면 여러 테이블 및 뷰에 대한 단일 인덱스를 손쉽게 생성할 수 있습니다. DBMS_SEARCH 인덱스를 생성한 뒤 테이블과 뷰를 추가하기만 하면 됩니다. VARCHAR, CLOB, JSON, 숫자 열을 포함한 모든 검색 가능한 값이 인덱스에 포함되며, 테이블 또는 뷰의 콘텐츠가 수정되면 자동으로 함께 수정됩니다.
파티셔닝, 압축 테이블, 직접 쓰기를 사용한 빠른 플러시, 직접 인메모리 열 저장 파퓰레이션 지원 등 Memoptimized Rowstore Fast Ingest에 개선 사항을 추가했습니다. 이와 같은 개선 사항들은 Fast Ingest 변수가 빠른 데이터 수집이 필요한 더 많은 상황에 보다 손쉽게 통합될 수 있게 해 줍니다. 이제 Oracle Database는 빠른 데이터 수집 기능을 필요로 하는 애플리케이션을 보다 효과적으로 지원합니다. 데이터는 동일한 데이터베이스 내에서 수집되고 처리됩니다. 덕분에 전용 로딩 환경의 필요성이 줄어들고, 그 결과 복잡성과 데이터 중복성이 줄어듭니다.
Oracle Globally Distributed Database는 Oracle Database 23c의 Raft 복제 기능을 지원합니다. 이를 통해 노드 또는 데이터 센터 중단 시 데이터 손실 없이 매우 빠른(3초 미만) 페일오버를 수행할 수 있습니다. Raft 복제는 합의 기반 커밋 프로토콜을 사용하고, 복제 계수를 지정하여 선언적으로 구성됩니다. Distributed Database의 모든 샤드는 데이터의 하위 집합에 대한 리더 및 팔로워 역할을 수행합니다. 이를 통해 모든 샤드가 애플리케이션 트래픽을 처리하는 액티브/액티브/액티브 대칭 분산형 데이터베이스 아키텍처를 구현할 수 있습니다.
Raft 복제 기능은 데이터 손실 없이 가용성을 개선하고, 관리를 간소화하고, Globally Distributed Database 환경의 하드웨어 활용도를 최적화하는 데 기여합니다.
이번 주에는 개발자가 보다 나은 SQL 문을 작성할 수 있도록 지원하는 손쉬운 기능인 SQL Analysis Report를 살펴보겠습니다. SQL Analysis Report는 SQL 문에 관한 일반적인 문제들을 보고합니다. 특히 SQL 성능 저하를 야기할 수 있는 문제들이 그 대상입니다. DBMS_XPLAN 및 SQL Monitor에서 이용 가능합니다.
Oracle Database 19c 릴리스부터 제공되는 블록체인 테이블과 불변 테이블은 암호화 방식의 보안 체계를 사용하여 외부 해커, 악의적이거나 침입당한 내부자 등으로 인한 데이터의 변조 및 삭제를 방지합니다...
SQL Firewall을 사용해 이상을 감지하고, SQL 주입 공격을 방지할 수 있습니다. SQL Firewall은 IP 주소, OS 사용자 등 세션 컨텍스트 정보를 포함한 모든 SQL을 검사합니다...
Oracle Database 23c에는 새로운 역할인 DB_DEVELOPER_ROLE이 포함되어 있습니다. 이 역할은 애플리케이션 개발자들에게 Oracle Databases에서 애플리케이션을 설계, 구현, 디버깅, 배포하는 데 필요한 모든 권한을 제공합니다...
Oracle Database 19c 릴리스부터 제공되는 블록체인 테이블과 불변 테이블은 암호화 방식의 보안 체계를 사용하여 외부 해커, 악의적이거나 침입당한 내부자 등으로 인한 데이터의 변조 및 삭제를 방지합니다. 관련 기능으로는 DBA를 비롯한 모든 사용자들에 의한 업데이트 또는 삭제를 불허하는 삽입 전용 제한, 암호화 해시 체인을 사용하는 검증, 서명된 테이블 다이제스트를 사용하는 모든 종류의 대규모 롤백 감지, 최종 사용자별 개인 키를 사용하는 삽입된 행 관련 서명 등이 있습니다. Oracle Database 23c에는 Oracle GoldenGate를 통한 논리적 복제 및 Active Data Guard를 통한 롤링 업그레이드 지원, 블록체인 테이블 관련 분산 트랜잭션 지원, 만료된 행들의 파티션 기반 대량 삭제, 삽입/커밋 관련 성능 최적화 등의 다양한 개선 사항들이 담겨 있습니다.
이번 릴리스에는 암호화 해시 체이닝에 영향을 주지 않고 열을 추가/삭제하는 기능, 사용자별 체인 및 필터링된 행에 대한 테이블 다이제스트, 위임 서명 기능, 데이터베이스 부서(countersigning) 기능 등도 추가되었습니다. 또한 블록체인 기록 테이블을 사용하도록 정의된 Flashback 아카이브를 통해 비블록체인 테이블의 기록 변경 사항을 감사할 수 있도록 만듦으로써 암호화 보안 데이터 관리 기능을 일반 테이블에까지 확대 적용하였습니다.
내장된 감사 추적 또는 저널링 관련 사용 사례에 적합한 Oracle Database의 블록체인 기능들은 재무 원장, 결제 내역, 규정 준수 현황 추적, 법적 로그, 나아가 데이터의 변조 또는 삭제가 심각한 법적 또는 재무적 문제나 평판의 하락을 초래할 수 있는 자산과 관련된 모든 데이터 등에 사용할 수 있습니다.
이제 Oracle Database는 기존의 객체, 시스템 및 관리 권한에 더해 스키마 권한까지 지원합니다. 이 기능은 데이터베이스 객체의 권한 부여 기능을 단순화함으로써 보안을 강화합니다. 이를 통해 최소 권한 원칙을 보다 효과적으로 구현하고, 누가 어떤 기능에 권한을 가져야 하는지를 명확히 알려줍니다.
SQL Firewall을 사용해 이상을 감지하고, SQL 주입 공격을 방지할 수 있습니다. SQL Firewall은 IP 주소, OS 사용자 등 세션 컨텍스트 정보를 포함한 모든 SQL을 검사합니다. 데이터베이스 커널에 내장된 SQL Firewall은 허가되지 않은 SQL을 기록 및 (활성화된 경우) 차단하여, 해당 SQL의 우회를 방지합니다. SQL 허용 목록과 승인 세션 컨텍스트를 적용함으로써 SQL Firewall은 많은 제로 데이 공격을 방지하고 계정 도용 또는 남용의 위험을 낮춥니다.
Oracle Database 23c에는 새로운 역할인 DB_DEVELOPER_ROLE이 포함되어 있습니다. 이 역할은 애플리케이션 개발자들에게 Oracle Databases에서 애플리케이션을 설계, 구현, 디버깅, 배포하는 데 필요한 모든 권한을 제공합니다. 이 역할을 사용하면 관리자들은 애플리케이션 개발에 어떤 권한이 필요한지 더 이상 추측할 필요가 없습니다.
이제 Oracle Database가 ISO SQL 표준 호환 Boolean 데이터 타입을 지원합니다. 고객은 이를 통해 테이블에 True 및 False 값을 저장하고 SQL 문에 Boolean 표현식을 사용할 수 있습니다...
이제 Oracle Database에서 FROM 절을 사용하여 UPDATE 및 DELETE 문의 대상 테이블을 다른 테이블에 조인할 수 있습니다. 조인 대상인 다른 테이블의 경우 변경 대상이 되거나 새 값의 소스가 되는 행을 제한할 수 있습니다...
이제 열 별칭 또는 SELECT 항목 포지션을 GROUP BY, GROUP BY CUBE, GROUP BY ROLLUP, GROUP BY GROUPING SETS 절에서 사용할 수 있습니다. 또한 HAVING 절이 열 별칭을 지원합니다...
이제 FROM 절 없이 SELECT 표현식 전용 쿼리를 실행할 수 있게 되었습니다. 본 신기능은 SQL 코드 이식성 및 개발자들의 사용 편의성을 향상시켜 줄 것입니다.
Oracle Database 23c는 데이터베이스 객체들에 대한 메타데이터를 저장 및 검색할 수 있는 주석(Annotations) 기능을 제공합니다. 이는 애플리케이션별 비즈니스 로직 또는 사용자 인터페이스의 커스터마이징에 사용할 수 있는 자유 형식 텍스트 필드입니다...
Usage Domains(SQL 또는 Application Usage Domains이라고도 불림)은 경량의 수정자 역할을 하고 애플리케이션에 대해 의도된 데이터 사용을 중앙에서 문서화하는 고급 딕셔너리 객체입니다...
이제 하나의 행에 더 많은 속성을 저장할 수 있으므로, 일부 애플리케이션의 경우 애플리케이션 설계 및 구현이 더욱 간소화될 수 있습니다....
이제 Oracle Database가 ISO SQL 표준 호환 Boolean 데이터 타입을 지원합니다. 고객은 이를 통해 테이블에 True 및 False 값을 저장하고 SQL 문에 Boolean 표현식을 사용할 수 있습니다. Boolean 데이터 타입은 Yes 및 No 값의 저장을 표준화하고 Oracle Database로의 마이그레이션을 손쉽게 해 줍니다.
이제 Oracle Database에서 FROM 절을 사용하여 UPDATE 및 DELETE 문의 대상 테이블을 다른 테이블에 조인할 수 있습니다. 조인 대상인 다른 테이블의 경우 변경 대상이 되거나 새 값의 소스가 되는 행을 제한할 수 있습니다. 직접 조인을 사용하여 데이터 변경 및 삭제용 SQL을 보다 간단히 작성할 수 있습니다.
이제 열 별칭 또는 SELECT 항목 포지션을 GROUP BY, GROUP BY CUBE, GROUP BY ROLLUP, GROUP BY GROUPING SETS 절에서 사용할 수 있습니다. 또한 HAVING 절이 열 별칭을 지원합니다. 이 새로운 Database 23c 개선 사항들 덕분에 GROUP BY 및 HAVING 절의 작성이 간편해졌고, SQL 쿼리의 읽힘성과 관리 용이성이 훨씬 개선되었으며, 더 나은 SQL 코드 이식성을 제공할 수 있게 되었습니다.
이제 Oracle Database가 DDL 개체 생성, 수정, 삭제시 IF EXISTS 및 IF NOT EXISTS 구문 수정자를 지원합니다. 해당 수정자들을 통해 지정된 객체가 존재할 때 또는 존재하지 않을 때 오류를 발생시킬지 여부를 제어할 수 있으므로 스크립트 및 애플리케이션 단위의 오류 처리가 간소화됩니다.
Oracle Database 23c는 개발자가 INTERVAL 값의 합계 및 평균 값을 손쉽게 계산할 수 있게 해 줍니다. 이 같은 개선 사항을 통해 이제 INTERVAL 데이터 타입을 SUM 및 AVG 집계 및 분석 함수에 전달할 수 있습니다.
INSERT, UPDATE, DELETE 문을 위한 RETURNING INTO 절이 개선되어 각각의 문에 영향을 받은 신/구 값을 보고합니다. 개발자들은 이를 통해 각 DML 유형에 대한 동일한 로직을 사용하여 사전/사후 문의 실행 값을 얻을 수 있습니다. 신/구 값은 UPDATE 문에 대해서만 유효합니다. INSERT 문은 구 값을 보고하지 않고, DELETE 문은 신 값을 보고하지 않습니다.
SQL 명령 실행의 일부인 INSERT, UPDATE, DELETE 문의 영향을 받은 신/구 값을 구하는 기능은 개발자들에게 이 값들을 읽고 데이터베이스가 수행해야 하는 작업의 양을 줄일 수 있도록 균일한 접근 방식을 제공합니다.
이제 FROM 절 없이 SELECT 표현식 전용 쿼리를 실행할 수 있게 되었습니다. 본 신기능은 SQL 코드 이식성 및 개발자들의 사용 편의성을 향상시켜 줄 것입니다.
SQL 매크로를 생성하여 일반적인 SQL 표현식 및 명령문을 다른 SQL 문에 사용할 수 있는 재사용 가능한 매개변수화된 구성으로 계수화합니다. SQL 매크로는 일반적으로 SELECT 리스트와 WHERE, GROUP BY 및 HAVING 절에서 사용되는 스칼라 표현식일 수 있습니다. SQL 매크로는 계산 및 업무 논리를 캡슐화하는 데 사용하거나 테이블 표현식으로(일반적으로 FROM 절에 사용됨) 사용할 수 있습니다. PL/SQL 생성자와 대조적으로 SQL 매크로는 성능을 개선할 수 있습니다. SQL 매크로는 개발자의 생산성을 높이고, 공동 개발을 간소화하고, 코드 품질을 높여줍니다.
가능한 경우 SQL 문 내의 PL/SQL 함수는 SQL 표현식으로 자동 변환(트랜스파일)됩니다. PL/SQL 함수를 SQL 문으로 트랜스파일하면 전반적인 실행 시간을 가속화할 수 있습니다.
이제 Oracle Database SQL 엔진이 다양한 명령문 유형에 대해 VALUES 절을 지원합니다. 덕분에 기존 테이블에 의존하지 않고 새 구문을 사용하여 데이터 행을 지정함으로써 데이터 행을 즉시 구체화할 수 있습니다. Oracle Database 23c는 SELECT, INSERT 및 MERGE 문에 대해 VALUES 절을 지원합니다. 새로운 VALUES 절의 도입으로 개발자는 더 적은 코드 작성으로도 임시 SQL 명령을 만들 수 있고, 적은 노력으로도 가독성을 높일 수 있습니다.
Oracle Database 23c는 데이터베이스 객체들에 대한 메타데이터를 저장 및 검색할 수 있는 주석(Annotations) 기능을 제공합니다. 이는 애플리케이션별 비즈니스 로직 또는 사용자 인터페이스의 커스터마이징에 사용할 수 있는 자유 형식 텍스트 필드입니다. 주석은 이름-값 쌍으로, 또는 단순히 이름만으로도 작성 가능합니다. 주석 기능을 통해 모든 애플리케이션에서 같은 방식으로 데이터베이스 객체를 사용할 수 있으므로 앱 개발은 더욱 단순화되고 데이터 품질은 향상됩니다.
Usage Domains(SQL 또는 Application Usage Domains이라고도 불림)은 경량의 수정자 역할을 하고 애플리케이션에 대해 의도된 데이터 사용을 중앙에서 문서화하는 고급 딕셔너리 객체입니다. Usage Domains은 애플리케이션 수준의 메타 데이터 없이도 데이터 사용을 정의하고, 운영을 표준화하여 체크 제약조건 세트, 디스플레이 속성, 규칙순 및 기타 사용 속성을 요약해 줍니다.
하나의 테이블 내에 포함된 하나 이상의 열에 대한 Usage Domains은 기본 데이터 타입을 수정하지 않으며, 따라서 애플리케이션을 손상시키거나 이식성 문제를 발생시키지 않고도 기존 데이터에 추가될 수 있습니다.
이제 하나의 행에 더 많은 속성을 저장할 수 있으므로, 일부 애플리케이션의 경우 애플리케이션 설계 및 구현이 더욱 간소화될 수 있습니다.
단일 데이터베이스 테이블 또는 뷰에 허용되는 열의 최대 갯수가 4,096개로 늘어났습니다. 이제 Wide Tables 기능을 통해 과거의 1,000개 열 제한에서 해방되어 단일 테이블에 원하는 속성을 모두 저장하는 애플리케이션을 구축할 수 있게 되었습니다. 머신러닝 및 스트리밍 사물인터넷(IoT) 애플리케이션 워크로드와 같은 일부 애플리케이션의 경우 1,000개 이상의 열이 존재하는 비정규화된 테이블을 사용해야 할 수도 있습니다.
이제 Oracle Database 23c 및 CMAN-TDM을 통해 암시적 접속 풀링, 멀티풀 DRCP, PDB별 PRCP를 비롯한 동급 최고의 연결 관리 및 모니터링 기능들을 사용할 수 있습니다...
Oracle Database 23c에서는 Pipelining 변수가 .NET, Java, C/C++ 애플리케이션이 서버의 응답을 기다릴 필요 없이 여러 요청을 데이터베이스에 전송할 수 있게 해 줍니다...
다국어 엔진(MLE) 모듈 호출 기능은 개발자가 SQL 및 PL/SQL의 모듈에 저장된 JavaScript 함수를 호출할 수 있게 해 줍니다. PL/SQL로 작성된 호출 사양은 JavaScript를 PL/SQL 코드 단위에 연결해 줍니다...
Oracle Database 23c는 연결 문자열과 같은 Oracle 구성 정보를 Microsoft Azure App Configuration 또는 Oracle Cloud Infrastructure(OCI) Object Storage에 저장할 수 있는 새로운 클라이언트 기능을 제공합니다...
관측 가능성의 3가지 중심축은 메트릭, 로깅, 분산 추적입니다. Oracle Database의 최신 릴리스는 향상된 로깅, 새로운 디버깅(첫 번째 실패 시 진단), 새로운 추적 기능을 제공합니다...
Oracle Database 23c에는 새로운 독립형 XMLType 저장 방식인 TBX(Transportable Binary XML)가 추가됩니다. TBX는 샤딩, XML 검색 인덱스, Exadata 푸시다운 작업을 지원하며, 다른 XML 스토리지 옵션들보다 월등한 성능 및 확장성을 제공합니다...
이제 Oracle Database 23c 및 CMAN-TDM을 통해 암시적 접속 풀링, 멀티풀 DRCP, PDB별 PRCP를 비롯한 동급 최고의 연결 관리 및 모니터링 기능들을 사용할 수 있습니다. DRCP 및 PRCP의 최신 기능들을 활용하여 기존 C, Java, Python, Node.js, ODP.NET 애플리케이션의 확장성 및 성능을 강화해 보세요. Oracle Database 23c에 새롭게 추가되는 V$TDM_STATS 다이내믹 뷰의 통계 기능을 활용하면 PRCP 풀의 사용량을 효과적으로 모니터링할 수 있습니다.
Oracle Database 23c에서는 Pipelining 변수가 .NET, Java, C/C++ 애플리케이션이 서버의 응답을 기다릴 필요 없이 여러 요청을 데이터베이스에 전송할 수 있게 해 줍니다. Oracle Database는 이와 같은 요청을 한 번에 하나씩 대기열에 넣어 처리하기 때문에 클라이언트 애플리케이션이 요청 완료 알림이 올 때까지 계속해서 작업을 이어갈 수 있습니다. 이와 같은 개선 사항은 최종 사용자 경험 향상, 데이터 기반 애플리케이션 응답성 개선, 엔드투엔드 확장성, 성능 병목 현상 방지, 서버 및 클라이언트 측에서의 효율적인 리소스 활용으로 이어집니다.
클라이언트의 요청에 대한 즉각적인 응답을 얻기 위해 Oracle Database Pipelining은 비동기 또는 반응적 API in .NET, Java, C/C++ 드라이버를 필요로 합니다. 이와 같은 매커니즘은 Database Pipelining의 유무와 관계없이 Oracle Database에서 사용할 수 있습니다.
Java의 경우 Oracle Database 23c가 Java Database Connectivity(JDBC), Universal Connection Pool(UCP), Oracle R2DBC Driver 내의 Reactive Extensions을 제공합니다. 또한 드라이버(Project Loom) 내 Java 가상 스레드와 Reactor, RxJava, Akka Streams, Vert.x 등 Reactive Streams 라이브러리도 지원합니다.
다국어 엔진(MLE) 모듈 호출 기능은 개발자가 SQL 및 PL/SQL의 모듈에 저장된 JavaScript 함수를 호출할 수 있게 해 줍니다. PL/SQL로 작성된 호출 사양은 JavaScript를 PL/SQL 코드 단위에 연결해 줍니다. 이 기능은 개발자가 PL/SQL 함수가 호출되는 모든 곳에서 JavaScript 함수를 사용할 수 있게 지원합니다.
Oracle Database 23c는 연결 문자열과 같은 Oracle 구성 정보를 Microsoft Azure App Configuration 또는 Oracle Cloud Infrastructure(OCI) Object Storage에 저장할 수 있는 새로운 클라이언트 기능을 제공합니다. 이 새로운 기능을 활용하면 애플리케이션 클라우드의 구성 및 배포, Oracle JDBC, .NET, Python, Node.js, Oracle Call Interface 데이터 액세스 드라이버와의 연결 등을 간소화할 수 있습니다. 구성 정보는 구성 제공자에 저장되므로, 애플리케이션 코드와 구성을 분리할 수 있다는 장점이 있습니다.
클라우드 및 데이터베이스용 OAuth 2.0 싱글 사인온 프레임워크와 함께 사용하면 관리 편의성이 더욱 향상됩니다. Oracle Database 23c 클라이언트는 Microsoft Entra ID, Azure Active Directory, Oracle Cloud Infrastructure(OCI) 액세스 토큰 등을 사용한 데이터베이스 사인온을 지원합니다.
관측 가능성의 3가지 중심축은 메트릭, 로깅, 분산 추적입니다. Oracle Database의 최신 릴리스는 향상된 로깅, 새로운 디버깅(첫 번째 실패 시 진단), 새로운 추적 기능을 제공합니다. 또한 JDBC 및 ODP.NET 드라이버가 데이터베이스 호출 추적을 위한 훅과 함께 계측되었고, 이 훅을 통해 OpenTelemetry를 사용한 분산 추적이 가능해졌습니다.
Oracle Database 23c에는 새로운 독립형 XMLType 저장 방식인 TBX(Transportable Binary XML)가 추가됩니다. TBX는 샤딩, XML 검색 인덱스, Exadata 푸시다운 작업을 지원하며, 다른 XML 스토리지 옵션들보다 월등한 성능 및 확장성을 제공합니다.
샤딩, Exadata 등 추가적인 데이터베이스 아키텍처를 지원하고, 서로 다른 서버, 컨테이너, PDB 간에 XML 데이터를 간단히 마이그레이션 및 교환할 수 있는 TBX 방식을 통해 귀사의 애플리케이션이 더 많은 플랫폼 및 아키텍처에서 새로운 XML 스토리지 포맷을 최대한 활용할 수 있도록 지원합니다.
다음과 같은 방법 중 하나를 선택하여 다른 형식의 기존 XMLType 스토리지를 TBX 형식으로 마이그레이션할 수 있습니다.
Insert-as select 또는 create-as-select
온라인 재정의
Oracle Data Pump
JSON 데이터 타입은 Oracle에 최적화된 이진 JSON 형식으로, OSON이라고도 불립니다. 릴리스 21c 이상의 데이터베이스 및 데이터베이스 클라이언트 내 빠른 쿼리 및 DML 성능을 위해 설계되었습니다...
Oracle Database 23c에 도입된 혁신 기술 JSON Relational Duality는 관계형 및 문서 데이터 모델을 통합하여 두 영역 최고의 장점들을 제공합니다...
Oracle Database는 스키마 유연성 데이터의 저장 및 처리를 위해 JSON을 지원합니다. Oracle Database 23c에서는 이제 Oracle Database가 JSON 데이터의 구조 및 값을 검증하는 JSON 스키마를 지원합니다...
PL/SQL JSON 생성자는 대응하는 PL/SQL 집계 유형의 인스턴스를 수용하여, 집계 유형 데이터를 통해 파퓰레이션된 JSON 객체 또는 배열 유형을 반환하도록 개선되었습니다.
MongoDB용 Oracle Database API를 통해 개발자는 Oracle의 다중 모델 기능 및 자율 구동 데이터베이스에 대한 액세스를 확보하는 동시에 Oracle Database에 연결된 MongoDB의 도구 및 드라이버를 계속해서 사용할 수 있습니다...
JSON 데이터 타입은 Oracle에 최적화된 이진 JSON 형식으로, OSON이라고도 불립니다. 릴리스 21c 이상의 데이터베이스 및 데이터베이스 클라이언트 내 빠른 쿼리 및 DML 성능을 위해 설계되었습니다.
Oracle Database 23c에 도입된 혁신 기술 JSON Relational Duality는 관계형 및 문서 데이터 모델을 통합하여 두 영역 최고의 장점들을 제공합니다. 개발자는 신뢰할 수 있는 단일 소스를 사용해 관계형 또는 JSON 패러다임으로 애플리케이션을 구축할 수 있고, 두 모델 모두의 장점을 활용할 수도 있습니다. 데이터는 한 번만 홀드되지만 두 접근 방식 모두를 통해 액세스, 작성, 수정될 수 있습니다. 개발자는 ACID 호환 트랜잭션 및 동시성 제어를 통해 이점을 얻을 수 있기 때문에 더 이상 복잡한 객체 관계형 매핑이나 데이터 불일치 문제 중 어느 하나를 감수할 필요가 없습니다.
Oracle Database는 스키마 유연성 데이터의 저장 및 처리를 위해 JSON을 지원합니다. Oracle Database 23c에서는 이제 Oracle Database가 JSON 데이터의 구조 및 값을 검증하는 JSON 스키마를 지원합니다. SQL 연산자 IS JSON 역시 JSON 스키마 수용을 위해 개선되었으며, JSON을 검증하고 테이블, 뷰, 타입 등 데이터베이스 객체를 JSON 스키마 문서로 설명하기 위해 다양한 PL/SQL 함수가 추가되었습니다.
기본적으로 JSON 데이터는 스키마리스이기 때문에 유연성이 높습니다. 하지만 JSON 데이터가 특정 구조 및 타입을 보유했는지 확인하고 싶은 경우, 산업 표준 JSON 스키마 검증을 통해 이를 확인할 수 있습니다.
JSON 스키마에 대한 기여
Oracle은 JSON 문서에 대한 주석 추가 및 검증을 지원하는 JSON 기반 선언형 언어 표준화를 위한 오픈 소스 활동인 JSON 스키마에 적극적으로 기여하고 있습니다. 현재 Request for Comments(RFC) 단계에 있습니다.
PL/SQL JSON 생성자는 대응하는 PL/SQL 집계 유형의 인스턴스를 수용하여, 집계 유형 데이터를 통해 파퓰레이션된 JSON 객체 또는 배열 유형을 반환하도록 개선되었습니다.
PL/SQL JSON_VALUE 연산자 역시 개선되어 반환 절이 연산자가 반환할 인스턴스 유형을 정의하는, 유형 이름을 수용할 수 있게 되었습니다. 집계 데이터 타입을 위한 JSON 생성자 지원은 JSON을 지원하는 PL/SQL 애플리케이션과 언어 사이의 데이터 상호 교환을 간소화해 줍니다.
MongoDB용 Oracle Database API를 통해 개발자는 Oracle의 다중 모델 기능 및 자율 구동 데이터베이스에 대한 액세스를 확보하는 동시에 Oracle Database에 연결된 MongoDB의 도구 및 드라이버를 계속해서 사용할 수 있습니다. MongoDB 워크로드는 Oracle Cloud Infrastructure(OCI)에서 구동 가능합니다. 기존 MongoDB 애플리케이션에 변경이 거의 또는 전혀 필요하지 않은 경우도 있습니다. 연결 문자열만 변경하면 되죠.
MongoDB용 Oracle Database API는 표준 Oracle REST Data Services에 포함됩니다. 또한 Oracle Autonomous Database의 일부로 완전 관리되며 사전 구성됩니다.
Oracle Database는 속성 그래프 데이터 구조 및 그래프 쿼리를 기본적으로 지원합니다. Oracle Database는 트랜잭션 데이터, JSON, Spatial 및 기타 다양한 데이터 타입별 그래프를 작성할 수 있는 유연성을 갖추었습니다. 이제 개발자들은 기존의 SQL 개발 도구와 프레임워크를 사용하여 SQL 그래프 애플리케이션을 간단히 구축할 수 있게 되었습니다.
2023년을 마무리하고, 동시에 작년 한 해 동안 우리가 강조했던 Oracle Database 23c의 새로운 기능들을 되짚어보려고 합니다. 아직 최신 Oracle Database 릴리스를 체험해 보지 않았다면(특히 본인이 개발자라면) 여기에서 또는 oracle.com/database/free를 통해 다양한 옵션들을 확인해 보세요.
Oracle Database 23c에는 통합관리 자동화, 소스와 대상 간의 호환성 진단 및 수정, 통합 사용자 경험 등을 통해 Oracle Advanced Queuing(AQ)에서 Transactional Event Queues(TxEventQ)로의 마이그레이션을 간소화시켜주는 온라인 마이그레이션 도구가 추가됩니다...
Lock-Free Reservations은 과도한 업데이트가 발생한 행의 업데이트가 중단되는 상황을 방지하고 동시 트랜잭션을 진행할 수 있도록 만들어 주는 기능입니다. Lock-Free Reservations을 사용하면 행 전체를 잠그는 대신 저장하고자 하는 값을 보관해 둘 수 있습니다...
Oracle은 새롭게 선보이는 Oracle Database용 Observability Exporter를 통해 클라우드 네이티브 및 Kubernetes 지원을 계속해서 확장해 나가고 있습니다...
Oracle Database 23c에 새롭게 추가된 Saga 프레임워크는 데이터베이스 내에서 비동기식 Saga 애플리케이션을 구축할 수 있는 통합 프레임워크를 제공합니다...
Oracle Database 23c에는 통합관리 자동화, 소스와 대상 간의 호환성 진단 및 수정, 통합 사용자 경험 등을 통해 Oracle Advanced Queuing(AQ)에서 Transactional Event Queues(TxEventQ)로의 마이그레이션을 간소화시켜주는 온라인 마이그레이션 도구가 추가됩니다. 마이그레이션 시나리오는 단기간 또는 장기간에 걸쳐, AQ 다운타임 유무와 관계없이 진행되므로 운영 중단을 방지할 수 있습니다.
더 높은 처리량 대기열, Kafka Java Client 및 Confluent와 유사한 REST API를 사용하는 Kafka 호환성 등에 관심이 있는 기존 AQ 고객은 AQ에서 TxEventQ로 쉽게 마이그레이션할 수 있습니다. TxEventQ가 제공하는 확장성, 성능, 키 기반 파티셔닝, 네이티브 JSON 페이로드 지원을 활용하면 Java, JavaScript, PL/SQL, Python 등의 다양한 언어로 이벤트 기반 마이크로서비스/애플리케이션을 간단히 구축할 수 있습니다.
Oracle Database 23c는 Oracle Database를 통해 Apache Kafka 애플리케이션에 보다 높은 수준의 호환성을 제공합니다. 이 새로운 기능은 Kafka Java 애플리케이션을 Transactional Event Queues(TxEventQ)로 손쉽게 마이그레이션할 수 있게 지원합니다. Kafka Java API는 이제 Oracle Database 서버에 연결될 수 있으며 TxEventQ를 메시징 플랫폼으로 사용할 수 있습니다.
개발자는JDBC Thin 드라이버를 사용해 Kafka를 사용하는 기존 Java 애플리케이션을 Oracle Database로 손쉽게 마이그레이션할 수 있습니다. 또한 Oracle Database 23c 클라이언트측 라이브러리 기능 덕분에 Kafka 애플리케이션은 Kafka 클러스터 대신 Oracle Database에 연결해 TxEventQ의 메시징 플랫폼을 투명하게 사용할 수 있습니다.
Lock-Free Reservations은 과도한 업데이트가 발생한 행의 업데이트가 중단되는 상황을 방지하고 동시 트랜잭션을 진행할 수 있도록 만들어 주는 기능입니다. Lock-Free Reservations을 사용하면 행 전체를 잠그는 대신 저장하고자 하는 값을 보관해 둘 수 있습니다. 업데이트의 성공 가능 여부를 확인하고, 트랜잭션 커밋 시간까지 업데이트를 연기할 수 있습니다. Lock-Free Reservations은 사용자 경험 및 트랜잭션 동시성을 향상시켜 줍니다.
Oracle은 Oracle Database용 새로운 Observability Exporter를 통해 클라우드 네이티브 및 Kubernetes 지원을 지속적으로 확장하고 있습니다. 이를 통해 고객은 업계 표준 Prometheus 형식으로 데이터베이스 및 애플리케이션 측정지표를 손쉽게 내보낼 수 있고, Grafana 대시보드를 간편하게 생성하여 사용 중인 Oracle Databases 및 애플리케이션의 성능을 모니터링할 수 있습니다.
Oracle Database 23c에 새롭게 추가된 Saga 프레임워크는 데이터베이스 내에서 비동기식 Saga 애플리케이션을 구축할 수 있는 통합 프레임워크를 제공합니다. Saga를 사용하면 최신 고성능 마이크로서비스 애플리케이션을 보다 쉽고 안정적으로 개발할 수 있습니다.
Saga는 일련의 독립적인 로컬 트랜잭션으로 구현되는, 여러 데이터베이스에 걸친 비즈니스 트랜잭션입니다. Saga를 사용하면 동기식 분산 트랜잭션에서 발생하는 글로벌 트랜잭션 기간 잠금을 방지하고 글로벌 애플리케이션 상태를 유지하기 위한 일관성 요구 사항을 간소화할 수 있습니다. 또한 Saga 프레임워크는 Oracle Database 23c의 Lock-Free 예약 가능 열과 통합되어 자동 Saga 보상을 제공함으로써 애플리케이션 개발을 간소화시켜줍니다.
Saga 프레임워크는 MicroProfile LRA 사양을 에뮬레이트합니다.