Code Inspector vs ATC — 아직도 SCI 쓴다? #shorts #SAP #ABAP
Code Inspector와 ATC, 뭐가 다른가 ABAP 코드 품질을 잡는 도구는 두 가지입니다. Code Inspector(SCI 트랜잭션)는 2000년대부터 사용해온 전통적인 방식이고, ATC(ABAP Test Cockpit)는 SAP가 현재 권장하는 현대적 품질 관리 방식입니다.
Code Inspector와 ATC, 뭐가 다른가 ABAP 코드 품질을 잡는 도구는 두 가지입니다. Code Inspector(SCI 트랜잭션)는 2000년대부터 사용해온 전통적인 방식이고, ATC(ABAP Test Cockpit)는 SAP가 현재 권장하는 현대적 품질 관리 방식입니다.
같은 요건, 세 갈래의 길 SAP S/4HANA와 ABAP Platform 환경에서 표준 기능을 확장할 때, 어떤 방식을 고를지 망설인 경험이 한 번쯤 있을 겁니다. 같은 "판매 오더에 프로모션 코드 필드 하나 추가"라는 요건이라도 Tier 1(Key User), Tier 2(Devel
SAP HANA SQLScript의 EXEC 문은 강력한 기능이지만, 잘못 사용하면 SQL Injection 공격에 그대로 노출됩니다. 이 글은 실무에서 발생하는 취약 패턴을 재현하고, 안전하게 Dynamic SQL을 설계하는 방법을 단계별로 설명합니다. Dynamic SQL의 동작 원
예외를 무시하면 생기는 실제 장애 사례 SAP HANA SQLScript에서 예외 처리를 생략한 채 프로시저를 운영에 올리면, 단순한 버그가 아니라 데이터 정합성 자체가 무너지는 사고로 이어집니다. 예를 들어 SalesOrder 헤더는 INSERT 됐지만 라인 아이템 INSERT 단계에
예외 처리, 왜 필수인가 HANA SQLScript 프로시저에서 오류가 발생해도 핸들러가 없으면 전체 트랜잭션이 즉시 중단됩니다. 호출 측에 오류가 그대로 노출되고, 이미 실행된 DML도 롤백될 수 있습니다. 실수 1 — 핸들러 없이 SELECT INTO 사용 -- 위험: ID 999가
이 글이 답하는 질문 CAP에서 외부 OData 서비스를 연결하려면? 서드파티 API를 CAP 쿼리처럼 쓸 수 있나? RemoteService 3단계 1. CDS에서 외부 서비스 선언 // srv/external.cds using { northwind } from '../srv/exte
이 글이 답하는 질문 On-stack ABAP과 BTP ABAP, 실제로 어떤 코드 제약이 생기나? 클라우드 전환 시 가장 먼저 포기해야 할 것은? 진짜 차이 3가지 1. Released API만 허용 BTP ABAP(ABAP Cloud)은 SAP가 릴리즈 계약(C1/C2)을 공개한 클
Generative AI Hub란? SAP BTP의 Generative AI Hub는 OpenAI, Anthropic, Mistral 등 주요 LLM을 단일 API 엔드포인트로 통합 제공합니다. 각 모델마다 별도 계정 없이 BTP 자격증명 하나로 모든 LLM을 호출할 수 있습니다. AI
BTP Generative AI Hub LLM 통합 시 실수 TOP 3 SAP BTP Generative AI Hub는 OpenAI, Anthropic, Google 등 다양한 LLM을 단일 API로 호출할 수 있게 해주는 서비스입니다. 하지만 비즈니스 앱에 통합할 때 흔히 발생하는 실
SQLScript에서 예외 처리를 빠뜨리면? HANA SQLScript로 프로시저를 작성할 때, 예외 처리를 생략하면 어떤 일이 벌어질까요? 트랜잭션 롤백 없이 데이터가 반쪽만 저장되거나, 오류 메시지 없이 프로세스가 멈추는 상황이 발생합니다. 실제 운영 환경에서는 디버깅조차 어려운 큰
외부 서비스가 죽으면? CAP Java에서 외부 REST API를 호출할 때 해당 서비스가 응답하지 않으면 스레드가 블로킹되고, 요청이 쌓여 결국 전체 서비스가 다운 됩니다. Circuit Breaker는 이 장애 전파를 막는 패턴입니다. Resilience4j 3가지 상태 Closed
이 글이 답하는 질문 SQLScript 프로시저 기본 구조는? TABLE TYPE으로 여러 행을 반환하려면? DECLARE, IF 절차형 구문은 어떻게 쓰나요? 프로시저 기본 구조 BEGIN-END 블록에 IN/OUT 파라미터를 선언하고 로직을 작성합니다. CREATE OR REPLAC
External vs Internal Numbering RAP에서 엔티티를 생성할 때 키(Key) 값을 누가 결정하느냐에 따라 두 방식으로 나뉩니다. External Numbering 은 클라이언트(UI/API 호출자)가 키를 직접 지정하고, Internal Numbering 은 서버가
이 글이 답하는 질문 RAP Managed와 Unmanaged의 실질 차이는? CRUD 코드를 직접 안 써도 되는 이유는? Behavior Definition에 뭘 써야 CRUD가 완성되나? 직접 해보기 1. Behavior Definition 선언 managed implementati
HANA에서 Table Function vs Procedure 선택 기준 HANA 개발 시 Table Function 과 Stored Procedure 중 어떤 걸 써야 할지 헷갈린다면, 딱 한 가지 기준만 기억하세요: 결과를 SELECT로 바로 읽을 수 있는가 입니다. Table Fu
아직도 SAPGUI 쓰고 있나요? SAP Fiori는 더 이상 선택이 아닙니다. 많은 기업이 여전히 SAPGUI의 복잡한 트랜잭션 화면에 의존하고 있지만, SAP는 Fiori를 표준 UX로 공식 전환했습니다. 마이그레이션을 미루는 사이 기술 부채가 쌓입니다. Fiori 마이그레이션 핵심
HANA Stored Procedure란 SAP HANA의 Stored Procedure는 데이터베이스 서버에서 직접 실행되는 로직 블록입니다. 반복 쿼리를 캡슐화하고, 네트워크 왕복을 줄이며, 복잡한 비즈니스 로직을 DB 레이어에서 처리할 수 있습니다. 기본 구문 CREATE OR R
ABAP Cloud vs Standard — 뭐가 다른가? ABAP를 오래 써왔다면 한 번쯤 들었을 키워드: ABAP Cloud . 기존 Standard ABAP와 뭐가 다른지, 왜 갑자기 중요해진 건지 핵심만 정리했다. 핵심 차이: Released API만 허용 ABAP Standar
ABAP Unit Test에서 DB 의존 코드를 Mock Framework로 테스트하는 방법 — cl_osql_test_environment, cl_abap_testdouble 실전 가이드
AMDP란? ABAP Managed Database Procedure의 약자입니다. 복잡한 집계나 분석 계산을 ABAP 레이어 대신 HANA DB 안에서 직접 실행하도록 위임하는 방법입니다. 대용량 데이터 처리 시 네트워크 트래픽을 줄이고 DB 엔진의 성능을 최대로 활용할 수 있습니다.