Clean Core 확장성 Best Practices 살펴보기

Objective

After completing this lesson, you will be able to clean Core 확장성 베스트 프랙티스를 살펴봅니다.

1세대: 3계층 확장성 모델(현재 종료)

원래의 3계층 확장성 모델(현재 종료)은 고객이 확장을 구현하는 방법을 결정할 수 있는 프레임워크를 제공합니다. 계층 1(ABAP 클라우드 기반)과 계층 2(클라우드 API 지원)가 권장됩니다. 반드시 필요한 경우에만 Tier 3(클래식)을 사용하십시오.

원래의 3계층 확장성 모델은 이제 새로운 레벨 기반 Clean Core 개념을 선호하지만, 이 섹션에서는 새로운 레벨 기반 접근법으로의 진화를 이해하는 데 유용합니다. 또한 원래의 3계층 가이드(특히 2계층 래퍼)에 따라 설계 및 구현된 고객 코드도 반드시 새로운 레벨 기반 접근법으로 마이그레이션할 필요는 없습니다.

고객 확장 개발에 대한 원래의 계층 기반 접근 방식은 다음 3가지 계층을 중심으로 이루어졌습니다.

  • Tier 1(ABAP Cloud): 선호되는 미래 대비 및 업그레이드 안전 방식 모든 신규 개발용입니다. 클라우드에 최적화된 제한된 ABAP 버전을 사용하며 릴리스된 SAP API에만 액세스할 수 있습니다.
  • 계층 2(클라우드 API 지원): "브리지" 계층 1에 대해 아직 릴리스되지 않은 표준 SAP 오브젝트 또는 기존 커스텀 코드(계층 3에서) 래핑 이 앱의 목적은 계층 1에서 사용할 수 있도록 재사용 가능한 안정적인 API를 생성하는 것입니다.
  • 티어 3(기존 ABAP): "기존" 또는 기존 방식 기존 코드 및 심층 확장의 경우 계층 1에서 사용할 수 없는 복합 확장입니다. 이 코드는 시스템과 긴밀하게 결합되어 업그레이드 시 문제가 될 수 있으므로 마지막 수단으로 사용하도록 권장되었습니다.

이 접근 방식은 고객이 실용적인 방식으로 사용할 수 있는 프레임워크를 생성했지만, 진화하고 더 유연한 접근 방식을 선호하여 폐기되었습니다.

2세대: Clean Core 레벨 개념

진화: 유연한 접근 방식에서 더욱 유연한 접근 방식으로 전환

진화: 유연한 접근 방식에서 더욱 유연한 접근 방식으로 전환

처음에, "Clean Core" 메시지는 종종 "당신은 깨끗하거나 그렇지 않다"는 모든 또는 아무것도없는 원리로 인식되었다. 그럼에도 불구하고 효과적이지만이 접근 방식은 공식적으로 "릴리스"되지 않은 일부 API가 상당히 안정적이어서 업그레이드 시나리오에서 문제를 일으킬 가능성이 낮다는 사실과 관련하여 고객에게 몇 가지 문제를 야기했지만 실제 문제는 고객이 기존의 모든 사용자 정의 코드를 간단히 포기하는 것은 현실적이지 않습니다.

이를 인식하여 SAP는 3계층 모델을 발전시켜 수준 기반의 보다 실용적인 접근 방식을 포괄함으로써 고객이 커스텀 코드를 관리할 수 있는 리스크 기반 접근 방식에 유연하게 참여할 수 있도록 했습니다. 이 접근 방식은 모든 확장이 동일하게 생성되는 것은 아니며 개발자와 설계자를 위한 명확하고 구조화된 프레임워크를 제공합니다. Clean Core 확장성을 엄격한 규칙에서 실행 가능한 로드맵으로 변환합니다.

Clean Core 확장성 모델 개요

Clean Core 확장성 모델은 SAP S/4HANA 확장의 투명성을 개선하고 기술 부채를 줄이는 것을 목표로 합니다. 다음과 같은 방식으로 이 작업을 수행합니다.

  • 레벨 A 가 최고 품질인 네 가지 레벨(A ~ D)의 보다 유연한 Clean Core 레벨 개념입니다.
  • 고객은 가능한 가장 높은 레벨의 SAP S/4HANA Cloud Private Edition을 확장하는 것이 좋습니다.
  • Clean Core 레벨이 높을수록 기술 부채가 감소하고 업그레이드가 간소화되며 SAP 베스트 프랙티스에 부합합니다.
  • 익스텐션은 해당 확장에서 가장 낮은 순위의 기술을 기반으로 평가됩니다.

Clean Core 레벨 개념이 고객의 확장성 옵션을 확장하는 방법

3계층 확장성 모델에서 Clean Core 레벨 개념으로 전환하면 확장성 평가가 크게 세 가지 방식으로 향상됩니다.

  • 실용적 분류: 새로운 수준 기반 접근 방식은 업그레이드 안정성과 위험한 확장의 미묘한 구분을 제공합니다.
  • ABAP 클래식: 기존 ABAP 오브젝트는 더 이상 고위험으로 균일하게 범주화되지 않으므로 보다 유연한 평가를 수행할 수 있습니다.
  • 양쪽의 장점: Clean Core 레벨 개념은 기존 코드와 최신 확장의 가치를 모두 인식하는 동시에 분리를 촉진합니다.

그렇다면 레벨은 어떻게 작동합니까?

Clean Core 레벨은 업그레이드 안정성을 위한 SAP 표준 준수를 기준으로 확장을 분류합니다.

  • 레벨 A 확장은 릴리스된 API를 사용하며 SAP에서 완벽하게 지원하여 최대 업그레이드 안정성을 보장합니다.
  • 레벨 B 확장은 클래식 API와 기술을 활용하여 확장의 범위를 더 넓힙니다.
  • 레벨 C 확장은 내부 오브젝트에 액세스하고 (관리 가능한) 리스크를 발생시키며 특정 고객 요구사항을 지원합니다.
  • 레벨 D 확장은 권장되지 않는 오브젝트를 사용하며 이는 가장 높은 리스크와 기술 부채를 나타냅니다.

이러한 개념을 살펴보겠습니다.

새로운 분류 시스템

이전 단락에서는 ABAP 오브젝트를 분류하는 데 사용되는 전체 용어 세트를 강조표시했습니다.

  • 릴리스된 API: 고객과 파트너가 확장 개발에 사용할 수 있도록 안정적이고 지원되며 안전합니다.
  • 클래식 API: 최신 프레임워크를 기반으로 빌드되지 않은 기존 ABAP 아티팩트는 업그레이드 안전성으로 인식되어 다음과 같이 분류됩니다.
  • 내부 오브젝트: "클래식 API"로 분류되지 않은 아티팩트 변경 로그 기반 접근 방식을 통해 조직은 주요 업그레이드 프로젝트 전에 정보에 입각한 의사결정을 지원하여 "내부 오브젝트"의 업그레이드 위험을 사전에 평가할 수 있습니다.
  • 권장되지 않는 오브젝트: 고객이 프로젝트 초기에 위험한 확장을 방지하는 데 도움이 되도록 업그레이드 과제를 도입하는 것으로 알려진 아티팩트

레벨 A: 릴리스된 API를 기반으로 하는 클린 확장

레벨 A: 릴리스된 API를 기반으로 하는 클린 확장

  • 레벨 A 개요:

    • SAP 확장성의 가장 높은 표준입니다.
    • 최대 업그레이드 안정성으로 미래에 대비한 솔루션을 보장합니다.
    • 릴리스된 API, 확장 지점, 최신 기술, 프레임워크, 개발 패턴을 사용합니다.
    • SAP의 Clean Core 비전에 부합합니다.
  • 적용 범위:

    • 릴리스된 SAP API 및 확장 지점을 기반으로 빌드된 확장만 포함됩니다.
    • SAP BTP(SAP Build for CAP 및 ABAP Cloud)의 병렬 구현과 SAP S/4HANA 시스템 내의 온스택 개발에 모두 적용됩니다.
    • 온스택 확장은 관련 ABAP 언어 버전과 함께 주요 사용자 또는 개발자 확장성 툴을 사용해야 합니다.
    • SAP S/4HANA Cloud Private Edition의 전체 범위는 다루지 않습니다.
  • SAP 참여:

    • 확장은 안정성 계약에 따라 공식적으로 릴리스된 SAP 오브젝트를 사용합니다.
    • 인터페이스와 확장 지점은 SAP Business Accelerator Hub, Cloudification Repository 에서, 그리고 시스템에서 직접 찾을 수 있습니다.
  • SAP S/4HANA Cloud 퍼블릭 에디션

    • 레벨 A는 SAP S/4HANA Cloud 퍼블릭 에디션의 개발 방식에 부합합니다.
    • SAP S/4HANA 프라이빗 에디션용으로 생성된 온스택 확장은 일반적으로 퍼블릭 클라우드에 맞게 조정할 수 있어야 합니다.
    • SAP BTP의 병렬 확장은 코어 시스템에서 비즈니스 로직을 분리하므로 퍼블릭 클라우드와 호환될 가능성이 높습니다.
    • SAP S/4HANA 버전 간에 API 가용성과 어플리케이션 범위가 다르기 때문에 완전한 동등성이 보장되지 않습니다.

레벨 B: 클래식 API 사용

레벨 B: 클래식 API 사용

  • 레벨 B 개요:

    • 릴리스된 API에서만 충족되지 않는 주소 요구사항입니다.
    • 잘 구축되고 폭넓게 권장되며 철저하게 문서화된 "클래식 API"를 활용합니다.
    • 레벨 A 에 비해 프로세스 개선 및 커스터마이징을 위한 광범위한 범위를 제공합니다.
    • 업그레이드 안정성에 대한 SAP의 베스트 프랙티스를 따릅니다.
    • 확장은 SAP의 내부 품질 보증을 활용하고 리스크가 낮은 옵션을 나타냅니다.
  • 적격성:

    • 확장은 클래식 API 또는 릴리스된 API로 분류된 SAP 오브젝트 및 개발 패턴만 사용하는 경우 레벨 B 에 해당합니다.
    • 여기에는 다음이 포함됩니다.
      • 레벨 A 어플리케이션에서의 사용을 용이하게 하는 클래식 API 관련 래퍼(예: BAPI_PO_CREATE1 사용)
      • 기존 ABAP 확장(예: Dynpro 내 ABAP 리스트 뷰어 구현 또는 CL_GUI_ALV_GRID와 같은 클래식 API 사용)
      • ABAP 언어 버전 "표준"을 사용하여 개발된 사용자 정의 오브젝트로서, 제한되거나 지원되지 않는 SAP 오브젝트를 참조하지 않습니다.
    • 레벨 B 확장은 검증된 개발 관행을 준수하여 높은 업그레이드 안정성을 유지합니다.
  • SAP 참여:

    • 공식적인 안정성 계약이 없음에도 불구하고 SAP 전문가가 클래식 API로 명시적으로 지정한 오브젝트와 확장 지점을 포함합니다.
    • SAP S/4HANA 온프레미스 및 SAP ERP에서 고객이 사용할 수 있도록 노출되는 SAP GUI 및 ABAP List Viewer 그리드와 같은 다양한 기존 API, User Exit, BAdI 및 설정된 프레임워크가 포함되어 있습니다.
    • 릴리스된 API를 사용할 수 없는 경우 클래식 API 및 확장 지점은 차선책 확장성 옵션을 제공합니다.
    • 클래식 API와 확장 기술을 식별하기 위한 핵심 리소스는 Cloudification Repository(다음 소단원에서 설명)입니다.

레벨 C: 내부 오브젝트 사용

레벨 C: 내부 오브젝트 사용

  • 레벨 C 개요:

    • 고객이 사용할 수 없는 SAP 내부 오브젝트의 사용을 포함합니다.
    • 이러한 오브젝트는 공식적으로 릴리스, 권장 또는 클라우드 지원 대상이 아니며 SAP의 공식 지원 범위에 포함되지 않습니다.
    • 장기적인 안정성이나 사용 보증이 없는 문서는 불완전하거나 부재중일 수 있습니다.
    • 고급 기술 기능을 제공하지만 향후 업그레이드 안정성에 위험을 초래합니다.
    • SAP 오브젝트의 새로운 변경 로그를 통해 고객은 잠재적 업그레이드 영향을 분석하고 계획할 수 있습니다.
  • 적격성:

    • 공식적으로 릴리스되지 않았거나 성숙함(레벨 B)으로 지명되지 않은 오브젝트 또는 개발 패턴(레벨 A)을 사용할 경우 확장은 레벨 C에 속합니다.
    • 예를 들어 내부 함수 모듈의 직접 사용, 클래스 또는 외부 사용을 보증하지 않은 SAP 테이블에 대한 읽기 전용 액세스 등이 있습니다.
    • 이러한 확장은 상위 레벨 API에 포함되지 않지만 향후 비호환 위험이 있는 특정 고객 요구사항을 충족합니다.
  • SAP 참여:

    • 릴리스된 API나 클래식 API로 지정되지 않았으며 명시적으로 권장되지 않는 항목으로 분류되지 않는 SAP 오브젝트를 포함합니다.
    • 내부 오브젝트는 통지 또는 호환성 보증 없이 변경될 수 있습니다.
    • SAP는 내부 오브젝트를 "클래식 API" 또는 "권장되지 않음"으로 재분류하여 레벨을 B 또는 D로 각각 이동할 수 있습니다.
    • 이러한 변경은 고객 피드백, 진화하는 제품 전략 또는 관찰된 업그레이드 과제에 의해 좌우됩니다.
  • SAP 오브젝트 변경 로그:

    • 레벨 C 리스크 관리에서 투명성을 높이고 고객을 지원하기 위해 도입되었습니다.
    • 기능은 다음과 같습니다.
      • 자동 ABAP 테스트 콕피트 점검을 통해 커스텀 코드를 분석하고 호환되지 않는 변경사항을 감지합니다.
      • 향후 호환되지 않는 변경사항에 대한 정보에 조기 액세스
      • 계획 신뢰성과 투명성이 향상되어 적시에 리소스를 할당할 수 있습니다.
    • 가능하면 개발자에게 릴리스된 API나 클래식 API로 확장을 리팩터링하도록 장려합니다.
    • 변경 로그를 채택하면 업그레이드 리스크를 최소화하고 선제적인 변경 관리를 달성하며 SAP 소프트웨어 버전 간 원활한 전환을 보장할 수 있습니다.

레벨 D: Clean Core 아님

레벨 D: Clean Core 아님

  • 레벨 D 개요:

    • Clean Core 레벨 개념 내에서 가장 높은 리스크 범주를 나타냅니다.
    • 시스템 안정성, 데이터 무결성 및 비즈니스 민첩성에 대한 중대한 기술 부채, 유지보수 노력 및 리스크와 관련이 있습니다.
    • 호환성 문제로 인한 혁신을 보완합니다.
    • SAP의 지원 가이드라인에 부합하고 장기적인 운영 안정성을 보장하려면 즉각적인 시정을 권장합니다.
  • 적격성:

    • 권장되지 않음으로 명시적으로 표시된 SAP 오브젝트 또는 개발 패턴을 사용할 경우 확장은 레벨 D에 해당합니다.
    • 예를 들면
      • SAP 테이블에서 수정, 확장 및 지원되지 않는 쓰기 작업
      • 암시적 인핸스먼트
      • 고객 사용 범위 외로 지정된 오브젝트의 이용률입니다.
  • SAP 참여:

    • 외부용으로 권장되지 않는 것으로 공식적으로 선언된 모든 오브젝트와 패턴을 포함합니다.
    • "noAPI"로 설정된 "상태"를 필터링하여 클라우드 저장소에서 식별 가능한 "noAPI" 지정으로 레이블이 지정된 오브젝트를 포함합니다. 이 내용은 아래 연습문제에 나와 있습니다.
    • 수정사항, 특정 오브젝트 사용 패턴(예: SAP 코어 테이블에 대한 직접 쓰기 액세스)과 암시적 인핸스먼트 같은 권장되지 않는 개발 기술을 다룹니다.
    • 고객이 SAP 랜드스케이프에서 이러한 고위험 요소를 식별하고 제거하는 데 도움이 되도록 권장되지 않는 오브젝트와 패턴의 포괄적인 리스트를 통해 투명성을 제공합니다.

ABAP Cloud 및 ABAP Classic Development에 대한 개발자 권한 설정