본문 바로가기

AMDP/ADMP 기초

1. AMDP Introduction Overview

이 책에서 이전에 배운 내용을 간략히 되짚어보겠습니다. 아래 그림에 나와있는 고전적인 코딩 스타일에서 개발자들은 FOR ALL ENTRIES, JOIN, 또는 ABAP Dictionary 뷰와 같은 데이터베이스 배열 연산을 사용하여 한 번에 모든 데이터를 검색하여 애플리케이션을 설계했습니다. 이 접근 방식은 애플리케이션과 데이터베이스 서버 간의 데이터 전송 요청을 제한함으로써 데이터베이스 서버의 부하를 줄였습니다.

이후의 데이터 처리 작업은 애플리케이션 서버의 내부 테이블에서 수행되어 원하는 결과를 얻게 됩니다. 그러나 이 접근 방식의 단점은 데이터 검색을 위해 복잡한 SQL 쿼리가 형성되었다는 것이었습니다. 불필요한 데이터가 애플리케이션 계층에서 검색, 필터링 및 처리되어 성능 문제가 발생했습니다.

 

이러한 기본적인 변화로, ABAP 프로그래밍 모델에서 코드 및 데이터 처리를 데이터베이스로 옮기는 것이 선호되는 코드-데이터 패러다임으로 불리며, 그림 6.1에서 볼 수 있는 것처럼 고전적인 데이터-코드 접근 방식과 대조됩니다.


SAP HANA에서는 데이터 중심적인 계산을 데이터베이스 계층에서 구현하기 위해 여러 코드-데이터 기술이 제공됩니다. SAP HANA는 SAP HANA 뷰 또는 프로시저를 사용하여 데이터 중심적인 계산을 데이터베이스 계층에서 수행합니다. 이러한 아티팩트들은 후에 ABAP 애플리케이션에서 여러 코드-데이터 기술을 사용하여 활용됩니다. 이러한 기술을 사용해야 하는지 여부는 랜드스케이프에서 사용하는 SAP NetWeaver Application Server for ABAP (AS ABAP) 버전에 따라 달라집니다.


그림 6.2에서 보이듯이, SAP NetWeaver AS ABAP 7.4 SP02 이하를 사용하는 경우에는 SAP HANA 뷰나 프로시저와 같은 SAP HANA 저장소 객체를 ABAP 애플리케이션에서 직접 Native SQL을 사용하여 액세스합니다. 그러나 SAP NetWeaver AS ABAP 7.4 SP02 이상을 사용하는 경우에는 이러한 객체를 Native SQL을 사용하는 제한 사항을 극복하기 위해 외부 뷰나 데이터베이스 프로시저 프록시와 같은 ABAP 프록시 객체를 사용하여 액세스합니다.

SAP NetWeaver AS ABAP 7.4 SP05 이전에 사용되던 기술은 하향식 접근법(bottom-up approach)으로 알려져 있습니다. 이는 SAP HANA 뷰나 프로시저가 데이터베이스 계층에서 생성되는 접근법입니다. 이 뷰들은 Modeler 관점에서 데이터베이스 사용자를 사용하여 생성되며, 후에 Native SQL 또는 프록시 객체를 사용하여 ABAP 계층에서 사용됩니다. 이러한 기술들은 데이터 처리를 데이터베이스 계층에서 수행하는 이점을 제공하지만, 하향식 접근법을 사용하는 한 가지 제한은 복잡한 라이프사이클 관리 요구사항입니다. 예를 들어, SAP HANA 저장소 객체를 처리하는 것은 배달 단위와 ABAP 프록시 객체를 통해 별도로 이뤄져야 하며, SAP HANA 전송 컨테이너를 사용하여 객체를 다른 시스템으로 가져와야 합니다. 게다가, 어떤 프로시저 뷰가 변경되면 모든 환경에서 모든 SAP HANA 아티팩트를 올바르게 동기화해야 합니다. 이러한 단점은 SAP NetWeaver AS ABAP 7.4 SP05의 출시로 ABAP-관리 데이터베이스 프로시저 (AMDP) 및 핵심 데이터 서비스 (CDS)와 같은 점진적 코드 푸시다운 기술을 도입함으로써 나중에 처리되었습니다. 이러한 기술은 상향식 접근법(top-down approach)이라고도 하며, 전체 라이프사이클 관리가 ABAP 계층에서 수행됩니다. SAP HANA 뷰와 프로시저와 같은 아티팩트들은 자동으로 데이터베이스에 생성됩니다.

예를 들어, AMDP 클래스와 메소드가 정의되면, 처음으로 AMDP 메소드가 호출 프로그램에서 처음 호출될 때 데이터베이스에 프로시저가 생성되며, 이후 호출에서는 변경되었다면 갱신됩니다. 이에 반해, CDS 뷰의 경우 CDS 뷰가 활성화될 때 SAP HANA 뷰가 생성됩니다.

반응형

'AMDP > ADMP 기초' 카테고리의 다른 글

2.2 Implementing AMDP Methods  (0) 2023.08.22
2.1 Prerequisites  (0) 2023.08.21
2. Creating AMDP Classes  (0) 2023.08.19
1.2 Development Environment for AMDP  (0) 2023.08.19
1.1 ABAP-Managed Database Procedure Framework  (1) 2023.08.19