DI vs 서비스 로케이터 차이 #shorts #SAP #ABAP
1. 개요 및 이 글의 목표 ABAP 객체지향 설계에서 클래스 간 결합도를 낮추는 두 가지 대표적인 기법이 의존성 주입(Dependency Injection, DI) 과 서비스 로케이터(Service Locator) 패턴입니다. 두 기법 모두 "객체가 자신이 필요로 하는 의존 객체를 직
1. 개요 및 이 글의 목표 ABAP 객체지향 설계에서 클래스 간 결합도를 낮추는 두 가지 대표적인 기법이 의존성 주입(Dependency Injection, DI) 과 서비스 로케이터(Service Locator) 패턴입니다. 두 기법 모두 "객체가 자신이 필요로 하는 의존 객체를 직
1. 개요 및 이 글의 목표 ABAP CDS(Core Data Services)는 단순한 데이터베이스 뷰 정의 언어가 아니라, SAP HANA 옵티마이저에게 의도를 전달하는 선언적 메타데이터 계층 이다. CDS 어노테이션을 적절히 활용하면 같은 SELECT 문이라도 실행 계획이 달라지고
1. 개요 및 이 글의 목표 ABAP CDS(Core Data Services)는 데이터 모델링 계층을 SAP HANA 데이터베이스에 가깝게 끌어올린 핵심 기술입니다. 그런데 데이터 모델이 강력해질수록 "누가 어떤 행(row)을 볼 수 있는가"라는 질문이 더 중요해집니다. ABAP CD
1. 개요 및 이 글의 목표 조직도, 자재명세서(BOM), 비용 센터, 카테고리 트리처럼 "한 행이 다른 행을 부모로 가리키는" 데이터는 전통적인 SQL JOIN만으로 다루기 매우 까다롭습니다. 깊이가 가변적이고, 재귀적으로 모든 후손을 찾거나 특정 노드의 모든 조상을 끌어와야 하는 요
1. 개요 및 이 글에서 얻어갈 것 ABAP Open SQL 또는 ABAP SQL에는 BYPASSING BUFFER 라는 특수한 힌트가 있습니다. 이름 그대로 SAP 애플리케이션 서버에 존재하는 테이블 버퍼 를 우회하고 직접 데이터베이스로 SELECT를 던지는 기능입니다. 처음 본 개발
1. 개요 및 이 글에서 얻어갈 것 ABAP CDS(Core Data Services)를 처음 마주하면 보통 DEFINE VIEW 한 줄로 시작하지만, 실제 S/4HANA 표준 코드를 들여다보면 Virtual Data Model (이하 VDM)이라 부르는 거대한 뷰 계층 구조가 존재합니
1. 개요 및 이 글에서 얻어갈 것 ABAP 7.40 SP02부터 도입된 DATA(...) 인라인 선언은 단순한 문법 설탕(syntactic sugar)이 아니라, ABAP 개발 스타일 자체를 바꾼 핵심 기능입니다. 변수를 사용하는 위치 에서 곧바로 선언함으로써 코드의 가독성이 향상되고
개요와 이 글에서 얻어갈 것 SAP 표준 CDS 뷰는 SAP가 소유한 자산이라 직접 수정하면 업그레이드 시 충돌이 발생합니다. 그렇다고 같은 데이터에 컬럼 한두 개를 더 붙이려고 새 뷰를 통째로 복제하면 유지보수가 악몽이 됩니다. 이 글에서는 원본을 건드리지 않고 필드와 행을 확장하는
개요 및 이 글에서 다루는 것 ABAP CDS 뷰에서 검색 기능을 선언적으로 노출하려면 @Search 어노테이션 패밀리를 활용해야 합니다. 단순히 OData 필터로 동등 비교를 거는 것과 달리, @Search 는 Fiori Elements의 글로벌 검색창, SADL(서비스 어댑테이션 정
개요 및 이 글에서 다루는 것 ABAP RAP(RESTful Application Programming Model)에서 비즈니스 로직을 구현할 때 가장 자주 마주치는 함정 중 하나가 바로 FAILED와 REPORTED 테이블의 오용 입니다. 두 구조는 이름이 비슷하지만 역할이 완전히 다
개요 및 이 글에서 다루는 것 표준 SAP에서 제공하는 CDS 뷰(예: I_SalesDocument , I_PurchaseOrder )에 자사 비즈니스 요건에 맞는 필드 — 예컨대 "긴급 배송 플래그", "지역별 우선순위 코드", "사내 분류 등급" 등을 추가해야 하는 상황은 SAP S
개요 및 이 글에서 얻어갈 것 ABAP RESTful Application Programming Model(RAP)에서 Behavior Implementation 은 비즈니스 객체의 CRUD 및 액션 로직을 ABAP 클래스로 구현하는 핵심 계층입니다. 이 글에서는 BDEF(Behavio
개요 및 이 글에서 얻어갈 것 ABAP CDS(Core Data Services)는 단순한 SELECT 래퍼가 아니라, HANA Calculation Engine에서 직접 실행되는 강력한 데이터 모델링 레이어입니다. 그 중에서도 Built-in Functions 는 ABAP 레이어로 데
개요 및 이 글에서 다루는 것 ABAP CDS(Core Data Services)에서 금액 필드를 다룰 때 가장 까다로운 부분은 통화(Currency) 처리입니다. 한 회사가 KRW, USD, EUR을 동시에 다룰 때 단순한 DECIMAL 필드만으로는 의미가 불완전합니다. 이 글에서는
개요와 이 글에서 다루는 범위 ABAP Test Cockpit(이하 ATC)은 ABAP 코드의 정적 분석과 품질 게이트(Quality Gate) 역할을 담당하는 SAP의 코드 검사 프레임워크입니다. 이 글에서는 ABAP Cloud(Steampunk, BTP ABAP Environment
개요 및 이 글에서 다루는 범위 SAP RAP(ABAP RESTful Application Programming Model) 기반의 Fiori Elements 앱에서 사용자가 입력 필드를 클릭하면 나타나는 F4 도움말(Value Help)을 CDS 어노테이션만으로 구현하는 실전 예제입니
이 글에서 다루는 것 SAPUI5/OpenUI5 애플리케이션을 부트스트랩(bootstrap)하는 방식은 크게 두 가지로 나뉩니다. 하나는 SAP가 운영하는 CDN( sapui5.hana.ondemand.com 또는 openui5.hana.ondemand.com )에서 런타임 리소스를 직
이 글의 개요와 도달 지점 ABAP RESTful Application Programming Model(RAP)에서 Bound Action은 특정 비즈니스 객체 인스턴스에 묶여 동작하는 동작 단위입니다. 단순한 토글 버튼이라면 파라미터 없이도 충분하지만, 실무에서는 "승인하되 코드와 코
이 글에서 다루는 내용 ABAP RESTful Application Programming Model(RAP)에서 Draft Activate는 사용자가 작성 중인 데이터를 임시 저장(Draft)했다가 검증을 거쳐 정식 데이터(Active)로 전환하는 핵심 시나리오입니다. Fiori Ele
이 글에서 얻어갈 것 · 동시 편집 충돌 시나리오 정리 SAP S/4HANA Cloud 또는 ABAP Cloud 기반의 RAP(ABAP RESTful Application Programming) 환경에서 여러 사용자가 동일한 비즈니스 객체를 동시에 수정하려고 할 때 발생하는 데이터 정합