Singleton vs 일반 클래스 — ABAP 전역 인스턴스 관리 #shorts #SAP #ABAP
1. 개요 및 이 글의 목표 ABAP Objects의 Singleton 패턴 은 특정 클래스의 인스턴스가 단일 세션 내에서 단 하나만 존재하도록 보장하는 객체 생성 패턴입니다. 설정 관리자, 캐시, 로거, 데이터베이스 연결과 같이 시스템 전반에서 동일한 상태를 공유해야 하는 컴포넌트를
1. 개요 및 이 글의 목표 ABAP Objects의 Singleton 패턴 은 특정 클래스의 인스턴스가 단일 세션 내에서 단 하나만 존재하도록 보장하는 객체 생성 패턴입니다. 설정 관리자, 캐시, 로거, 데이터베이스 연결과 같이 시스템 전반에서 동일한 상태를 공유해야 하는 컴포넌트를
1. 개요 및 이 글의 목표 ABAP CDS(Core Data Services)는 데이터 모델링 계층을 SAP HANA 데이터베이스에 가깝게 끌어올린 핵심 기술입니다. 그런데 데이터 모델이 강력해질수록 "누가 어떤 행(row)을 볼 수 있는가"라는 질문이 더 중요해집니다. ABAP CD
1. 개요 및 이 글의 목표 SAPUI5에서 날짜를 다루는 컨트롤은 여러 가지가 있지만, 그중에서도 sap.ui.unified.Calendar 는 단순한 입력 필드가 아닌 전체 달력 뷰 를 화면에 펼쳐 보여주는 컨트롤입니다. 예약 시스템, 휴가 신청, 일정 관리 화면처럼 사용자가 한 달
1. 개요 및 이 글에서 얻어갈 것 ABAP Unit 테스트는 단순히 cl_abap_unit_assert 를 호출하는 것만으로 끝나지 않습니다. 동일한 테스트 메서드라도 실행 순서 에 따라 결과가 달라지는 경우가 빈번하게 발생하는데, 이를 순서 의존성(Test Order Dependen
1. 개요 및 이 글에서 얻어갈 것 SAPUI5에서 날짜를 다루는 컨트롤은 여러 가지가 있지만, 화면에 항상 달력을 펼쳐 두고 사용자가 즉시 날짜를 클릭하도록 유도해야 한다면 sap.ui.unified.Calendar 가 가장 적합합니다. sap.m.DatePicker 가 입력 필드를
1. 개요 및 이 글에서 얻어갈 것 ABAP Open SQL 또는 ABAP SQL에는 BYPASSING BUFFER 라는 특수한 힌트가 있습니다. 이름 그대로 SAP 애플리케이션 서버에 존재하는 테이블 버퍼 를 우회하고 직접 데이터베이스로 SELECT를 던지는 기능입니다. 처음 본 개발
1. 개요 및 이 글에서 얻어갈 것 SAPUI5로 화면 좌우 슬라이드 전환이 필요한 UI를 만들 때, 많은 개발자들이 처음에는 setTimeout 이나 CSS transition을 직접 조합해서 애니메이션을 구현하려 시도합니다. 하지만 SAPUI5에는 이런 슬라이드 패턴을 위해 설계된
1. 개요 및 이 글에서 얻어갈 것 ABAP CDS(Core Data Services)를 처음 마주하면 보통 DEFINE VIEW 한 줄로 시작하지만, 실제 S/4HANA 표준 코드를 들여다보면 Virtual Data Model (이하 VDM)이라 부르는 거대한 뷰 계층 구조가 존재합니
1. 개요 및 이 글에서 얻어갈 것 SAPUI5 애플리케이션을 만들다 보면 화면을 좌/우 또는 상/하로 나누고, 사용자가 경계선을 드래그해서 영역 크기를 조절할 수 있게 만들어야 하는 요구사항을 자주 만나게 됩니다. 마스터-디테일 패턴, 코드 에디터와 미리보기, 트리 네비게이션과 콘텐츠
1. 개요 및 이 글에서 얻어갈 것 ABAP 7.40 SP02부터 도입된 DATA(...) 인라인 선언은 단순한 문법 설탕(syntactic sugar)이 아니라, ABAP 개발 스타일 자체를 바꾼 핵심 기능입니다. 변수를 사용하는 위치 에서 곧바로 선언함으로써 코드의 가독성이 향상되고
1. 개요 및 이 글에서 얻어갈 것 SAPUI5에서 대시보드나 카드 기반 화면을 만들 때 가장 자주 마주치는 고민이 있습니다. HBox 와 VBox 로 끝없이 중첩시키다 보면 반응형이 깨지고, Grid ( sap.ui.layout.Grid )는 12-컬럼 float 기반이라 카드 크기를
1. 개요 및 이 글에서 얻어갈 것 ABAP 객체지향 프로그래밍을 하다 보면 메서드를 호출하는 두 가지 스타일을 마주하게 됩니다. 하나는 전통적인 CALL METHOD 구문이고, 다른 하나는 마치 수학 공식처럼 메서드를 식(expression) 위치에 그대로 끼워 넣는 함수형 메서드 호
개요 및 핵심 포인트 ABAP에서 객체를 다룰 때 임시 변수가 화면을 가득 채우는 경험을 해본 적이 있을 것입니다. 메서드 체이닝(Method Chaining)은 동일 객체의 메서드를 점으로 이어 호출하는 패턴으로, 빌더(Builder)와 같은 Fluent Interface를 ABAP
개요와 이 글에서 얻어갈 것 SAP 표준 CDS 뷰는 SAP가 소유한 자산이라 직접 수정하면 업그레이드 시 충돌이 발생합니다. 그렇다고 같은 데이터에 컬럼 한두 개를 더 붙이려고 새 뷰를 통째로 복제하면 유지보수가 악몽이 됩니다. 이 글에서는 원본을 건드리지 않고 필드와 행을 확장하는
개요 및 이 글에서 다루는 범위 SAPUI5/OpenUI5의 sap.m.MultiComboBox 는 사용자가 드롭다운에서 여러 항목을 동시에 선택할 수 있게 해주는 입력 컨트롤입니다. 단일 선택만 가능한 ComboBox 와 달리, 토큰(Token) 형태로 선택된 값이 입력 필드 안에 누
개요 및 이 글에서 다루는 것 ABAP RAP(RESTful Application Programming Model)에서 비즈니스 로직을 구현할 때 가장 자주 마주치는 함정 중 하나가 바로 FAILED와 REPORTED 테이블의 오용 입니다. 두 구조는 이름이 비슷하지만 역할이 완전히 다
개요 및 이 글에서 다루는 것 ABAP 7.40 SP08 이후 도입된 CONV 연산자는 명시적 타입 변환을 한 줄로 처리하는 인라인 표현식입니다. 과거에는 임시 변수를 선언해 값을 옮기고, 그 변수를 메서드 인자로 전달하는 3단계가 필요했습니다. CONV 는 이 모든 과정을 CONV t
개요 및 이 글에서 다루는 것 ABAP에서 문자열을 조립할 때 가장 흔히 쓰던 방식은 && 연산자나 CONCATENATE 문이었습니다. 하지만 ABAP 7.02 이후 도입된 String Template (문자열 템플릿, |...| ) 은 변수와 텍스트를 자연스럽게 섞어 쓸
개요 — window 전역 변수와 결별하기 UI5 화면을 처음 만들 때 가장 흔한 실수 중 하나가 window.currentSalesOrderId = 4711; 같은 코드입니다. 빠르게 동작하기 때문에 유혹적이지만, 이 한 줄은 향후 수개월간 디버깅 지옥을 예약하는 행위와 같습니다. 이
개요 및 이 글에서 다루는 범위 ABAP에서 객체 참조(class reference) 간의 형 변환은 오랜 기간 ?= 연산자 또는 MOVE ... ?TO ... 구문으로 수행되어 왔습니다. ABAP 7.40 SP08 이후 도입된 CAST 연산자 는 인라인 선언과 다운캐스트를 한 줄로 처