ABAP Unit Test 없이 개발하면 그만 #shorts #SAP #ABAP
1. 개요 및 이 글에서 다루는 범위 ABAP 개발 현장에서 "테스트는 나중에", "DB에 값 넣고 눈으로 확인하면 되지"라는 관성은 여전히 강합니다. 그러나 S/4HANA 전환과 Clean Core 원칙이 확산되면서, DB 의존 없는 단위 테스트가 품질 게이트의 표준으로 자리잡고 있습
1. 개요 및 이 글에서 다루는 범위 ABAP 개발 현장에서 "테스트는 나중에", "DB에 값 넣고 눈으로 확인하면 되지"라는 관성은 여전히 강합니다. 그러나 S/4HANA 전환과 Clean Core 원칙이 확산되면서, DB 의존 없는 단위 테스트가 품질 게이트의 표준으로 자리잡고 있습
이 글에서 다루는 내용과 확인 포인트 SAPUI5 애플리케이션에서 사용자에게 정보를 전달하는 두 가지 대표 위젯인 sap.m.MessageBox 와 sap.m.MessageToast 는 얼핏 비슷해 보이지만 UX 측면에서 완전히 다른 역할을 담당합니다. 이 글은 두 컴포넌트의 동작 원리
1. RAP 디버깅이 왜 유독 까다로운가 ABAP RESTful Application Programming Model(RAP)은 CDS 뷰, Behavior Definition(BDEF), Behavior Implementation(BIL) 클래스, Service Definition,
개요 및 핵심 포인트 RAP(RESTful Application Programming Model) 기반 서비스에서 대량 데이터를 다룰 때 가장 흔히 발생하는 문제 중 하나가 바로 "필터링 누락으로 인한 전체 스캔"입니다. 프론트엔드에서 $filter , $top , $skip 쿼리를 던
이 글의 목적과 도달점 SAP RAP(ABAP RESTful Application Programming Model)로 Fiori Elements 앱을 개발하다 보면, 개발 초기에는 @UI 어노테이션을 CDS 뷰 안에 직접 넣는 경우가 많습니다. 처음에는 편리해 보이지만, 필드가 30개를
placeholder
COEP의 시대가 끝났다 — S/4HANA 비용 아키텍처 전환 ECC 시절 원가회계 담당자에게 COEP는 성전(聖典)이었다. 실적 라인 아이템은 여기 있었고, 배부·정산·재분배 결과도 모두 여기로 흘러들었다. 그러나 S/4HANA로 넘어오면서 회계 데이터 모델은 Universal Jou
STRING_AGG가 필요한 이유 — 여러 행을 한 줄로 관계형 데이터베이스에서 자주 마주치는 상황이 있습니다. 하나의 고객이 여러 개의 주문을 갖고, 하나의 주문이 여러 개의 상품 라인을 갖습니다. 이 데이터를 화면이나 리포트에 표시할 때 "고객 A: 노트북, 마우스, 키보드" 같은
CAP 프로젝트에서 HANA Cloud 연결이 실패하는 진짜 이유 SAP CAP(Cloud Application Programming) 프로젝트를 처음 HANA Cloud에 연결하려는 개발자들이 공통으로 겪는 상황이 있다. cds watch 로 로컬에서 잘 돌아가던 서비스가 HANA C
개요와 이 글에서 얻게 될 것 CAP(SAP Cloud Application Programming Model) 프로젝트를 로컬에서 cds watch 로 개발하다가 BTP HANA Cloud로 전환하는 순간 대다수 개발자가 "connection refused" 혹은 "no such tab
이 글에서 다루는 것 S/4HANA Cloud(Public Edition) 환경에서 ABAP 개발을 시작한 개발자들이 가장 많이 부딪히는 벽은 "이 API가 왜 안 되지?"입니다. On-Premise ABAP에서 자유롭게 쓰던 CL_GUI_FRONTEND_SERVICES , SO_NEW
개요 및 이 글에서 얻어갈 것 SAPUI5에서 Dialog를 컨트롤러 내부에서 new sap.m.Dialog(...) 로 즉석 생성하는 코드를 흔히 볼 수 있습니다. 프로토타입 단계에서는 편리하지만 화면 수가 늘어나면 같은 다이얼로그 코드가 여러 파일에 흩어지고, 스타일 변경 한 번에
이 글에서 다루는 내용과 도달 지점 SAP RAP(RESTful ABAP Programming Model)로 실무 서비스를 구축하다 보면 CDS View를 왜 여러 층으로 나누는지 궁금해집니다. 특히 Interface View(I_) 와 Consumption View(C_) 는 겉보기에
이 글에서 얻어갈 것과 체크리스트 ABAP 개발자에게 Git은 오랫동안 낯선 도구였습니다. SE80/ADT의 트랜스포트 요청(TR)이 사실상의 버전 관리 역할을 해왔기 때문입니다. 하지만 클라우드 전환과 오픈소스 생태계가 확산되면서, ABAP 코드도 GitHub/GitLab에 저장하고
JSONModel과 ODataModel이란 무엇인가 SAPUI5(1.120 LTS 기준)에서 뷰(View)와 데이터를 연결할 때 가장 먼저 마주하는 갈림길이 바로 JSONModel 과 ODataModel 입니다. 두 모델 모두 sap.ui.model 네임스페이스 아래에 있으며, 뷰의 컨
개요 및 이 글에서 다루는 것 ABAP에서 구조체(Structure) 간 필드 복사는 일상적인 작업이지만, 사용하는 문법에 따라 코드 가독성·유지보수성·성능이 크게 달라집니다. 이 글에서는 오랫동안 사용되어 온 MOVE-CORRESPONDING 명령문과 ABAP 7.40 이후 등장한 C
글의 목적과 확인 포인트 이 글은 SAP S/4HANA 환경에서 판매 조직(Sales Organization) 마스터 데이터를 조회할 때 전통적인 TVKO 테이블 대신 I_SalesOrganization CDS 뷰를 사용하는 방법을 다룹니다. S/4HANA로 전환한 조직에서는 클래식 S
이 글에서 다루는 내용과 체크포인트 온프레미스 ABAP에서 잘 돌아가던 코드를 S/4HANA Cloud Public Edition이나 SAP BTP ABAP Environment(Steampunk)로 옮기려는 순간, 개발자들은 "Statement is not allowed in ABAP
이 글에서 다루는 내용과 도달 지점 RAP(RESTful ABAP Programming Model)에서 대부분의 서비스는 데이터베이스 테이블 또는 CDS View를 기반으로 만들어집니다. 그러나 실무에서는 SAP 시스템 외부의 REST API, 파일, 메시지 큐 같은 비관계형 소스를 O
이 글에서 얻어갈 것 SAPUI5에서 Dialog는 사용자와의 상호작용에서 가장 자주 등장하는 컨트롤입니다. 그런데 많은 개발자들이 여전히 컨트롤러 안에서 new sap.m.Dialog({...}) 를 직접 호출하며 코드를 길게 늘어뜨리고 있습니다. 이 방식은 화면이 하나일 때는 괜찮지