| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- SW개발
- IT 인프라
- 백엔드 개발
- 기술탐방
- Container Image
- kubernetes
- Android
- 소프트웨어 엔지니어링
- language
- docker
- CI/CD
- java
- IDE
- 기술 탐방
- IT
- frontend
- 직무탐방
- valkey
- 직무 탐방
- helm
- JavaScript
- node.js
- devops
- 프론트엔드 개발
- 프로그래밍 언어
- 게임 개발
- jetBrains
- 개발도구
- 실무 탐방
- Framework
- Today
- Total
방구석 IT
[Language] ABAB 본문
ABAP란?
ABAP(Advanced Business Application Programming)는 SAP가 비즈니스 애플리케이션 개발을 위해 만든 고수준 프로그래밍 언어이다. SAP ERP와 SAP S/4HANA 확장, 리포트, 배치 처리, 비즈니스 서비스 구현에 사용되며, 기업 업무 데이터와 권한, 트랜잭션 처리에 밀접하게 결합되어 있다.
현대 ABAP 개발은 전통적인 리포트와 확장 개발을 넘어 ABAP Cloud, Core Data Services(CDS), RESTful ABAP Programming Model(RAP), OData 서비스, SAP Fiori UI와 함께 다뤄진다. 따라서 ABAP는 단순 문법보다 SAP 플랫폼 위에서 업무 로직을 안전하게 모델링하고 서비스로 노출하는 방식으로 이해하는 편이 정확하다.
ABAP는 범용 웹 언어라기보다 SAP 업무 시스템 내부의 데이터, 권한, 트랜잭션, 화면 흐름과 밀접하게 결합된 기업용 애플리케이션 언어이다.

ABAP 업무 애플리케이션은 SAP Fiori, OData 서비스, RAP 비즈니스 객체, ABAP 런타임, SAP HANA 데이터 계층이 함께 맞물려 동작한다.
ABAP 업무 애플리케이션은 SAP Fiori, OData 서비스, RAP 비즈니스 객체, ABAP 런타임, SAP HANA 데이터 계층이 함께 맞물려 동작한다.
ABAP 애플리케이션은 UI 요청을 서비스 계약으로 받고, 런타임에서 비즈니스 로직과 권한 검사를 수행한 뒤 SAP HANA 같은 데이터 계층과 연결된다.
등장 배경과 생태계 위치
ABAP는 SAP 비즈니스 애플리케이션을 고객사 업무에 맞게 확장하기 위해 발전했다. 초기에는 리포트 작성과 업무 데이터 처리에 강점이 있었고, 이후 객체지향 ABAP, Open SQL, CDS, RAP, ABAP Cloud 같은 모델이 더해지면서 현대적인 서비스 기반 개발까지 포괄하게 되었다.
SAP 환경에서는 업무 데이터 모델, 권한 객체, 트랜잭션 경계, 표준 확장 지점이 플랫폼 차원에서 제공된다. ABAP 개발자는 이 기반 위에서 회계, 구매, 생산, 영업 같은 핵심 프로세스를 확장하거나 신규 비즈니스 기능을 만든다.
ABAP의 경쟁력은 문법 자체보다 SAP 플랫폼이 제공하는 비즈니스 데이터 모델과 런타임 통합성에서 나온다.
실행 모델과 런타임 구조
ABAP 프로그램은 일반적으로 SAP 애플리케이션 서버의 ABAP 런타임에서 실행된다. 개발 객체는 SAP 저장소와 전송 체계 안에서 관리되며, 데이터 접근은 Open SQL과 데이터베이스 인터페이스를 통해 추상화된다. 이 구조 덕분에 개발자는 특정 DBMS의 세부 문법보다 SAP 데이터 모델과 업무 트랜잭션에 집중할 수 있다.
현대 ABAP 개발에서는 RESTful ABAP Programming Model(RAP), Core Data Services(CDS), OData 서비스, Fiori UI가 함께 언급된다. 이 조합은 데이터 모델, 동작 정의, 서비스 노출, UI 소비를 일관된 방식으로 연결한다.
ABAP는 애플리케이션 코드가 데이터베이스와 업무 트랜잭션 가까이에서 실행되는 구조를 전제로 한다.

RAP는 CDS 데이터 모델에서 시작해 동작 정의와 구현, 서비스 정의와 바인딩으로 이어지는 설계 단위를 분리해 관리한다.
RAP 계층은 CDS 데이터 모델에서 시작해 동작 정의와 구현, 서비스 정의와 바인딩으로 이어지며, SAP 공식 RAP 설명은 이 모델을 클라우드 친화적인 트랜잭션 앱과 OData 서비스 개발 방식으로 정리한다. 출처는 SAP ABAP RAP 공식 주제 페이지이다.
주요 개발 방식
전통적인 ABAP 개발은 리포트, 모듈 풀, 함수 모듈, 클래스, 배치 잡, 사용자 확장 지점 등을 중심으로 이뤄졌다. 최근에는 Eclipse 기반 ABAP Development Tools, ABAP Cloud, RAP, CDS 뷰, 서비스 바인딩을 이용해 클라우드 친화적인 애플리케이션을 만든다.
- Open SQL: SAP 데이터 모델을 대상으로 하는 DB 독립적 데이터 접근 계층이다.
- CDS: 데이터 모델과 의미 정보를 선언적으로 정의하는 방식이다.
- RAP: 비즈니스 객체, 동작, 권한, 서비스 노출을 연결하는 애플리케이션 프로그래밍 모델이다.
- ABAP Cloud: 업그레이드 안정성과 공개 API 사용을 강조하는 클라우드 개발 모델이다.
현대 ABAP는 단순 리포트 언어가 아니라 SAP 표준 모델을 지키며 확장 가능한 서비스를 만드는 방향으로 이동했다.
선택 기준과 한계
ABAP는 SAP 중심 조직에서 강력하다. 표준 비즈니스 객체와 권한, 전송, 감사, 데이터 모델을 그대로 활용할 수 있기 때문이다. 반대로 SAP 외부의 독립 서비스, 범용 웹 백엔드, 대규모 오픈소스 생태계 중심 제품에는 Java, Kotlin, Go, TypeScript, Python 같은 언어가 더 자연스러울 수 있다.
운영 관점에서는 clean core 전략이 중요하다. SAP 표준 코어를 직접 변경하는 방식은 업그레이드 비용과 회귀 위험을 키울 수 있다. 신규 확장은 공개 API, side-by-side 확장, BTP ABAP environment, RAP 기반 서비스처럼 업그레이드 친화적인 경계를 우선 고려해야 한다.
ABAP를 선택할 때는 “SAP 내부 업무 로직에 가까워야 하는가”와 “표준 코어를 훼손하지 않는 확장 방식인가”가 핵심 기준이다.
보안과 운영 고려사항
SAP 시스템은 기업 핵심 데이터를 다루므로 ABAP 코드는 권한 검사, 입력 검증, 데이터 노출 범위, 변경 이력, 성능 비용을 함께 고려해야 한다. 특히 커스텀 리포트나 RFC/OData 서비스는 과도한 데이터 조회, 권한 우회, 민감정보 노출의 원인이 될 수 있다.
성능 측면에서는 데이터베이스 왕복 횟수, 대량 내부 테이블 처리, 부적절한 SELECT 패턴, 잠금과 트랜잭션 경계를 점검해야 한다. SAP HANA 환경에서는 DB 푸시다운과 CDS 활용이 도움이 되지만, 모든 로직을 DB로 밀어 넣는 것이 항상 정답은 아니다.
ABAP 운영 품질은 문법 숙련도보다 권한, 데이터 접근, 트랜잭션, 업그레이드 전략을 함께 설계하는 능력에 좌우된다.
사례
- SAP Help Portal의 ABAP Language 문서는 ABAP environment에서 사용할 수 있는 언어 객체와 서비스를 공식적으로 정리한다. SAP Help Portal
- SAP Learning의 Basic ABAP Programming 과정은 ABAP가 SAP 환경의 비즈니스 애플리케이션 개발 언어라는 점과 문법 기초를 설명한다. SAP Learning
- SAP 공식 제품 페이지는 SAP BTP ABAP environment를 SAP HANA Cloud 기반의 클라우드 개발 및 런타임 환경으로 소개하며, clean core와 side-by-side 확장 시나리오에 적합한 플랫폼으로 설명한다. SAP
- SAP Help Portal의 RAP 문서는 OData 서비스 개발을 위한 설계 시점 구조와 RAP 기반 개발 모델을 설명한다. SAP Help Portal
'실무 탐방 > 기술 탐방 및 소개' 카테고리의 다른 글
| [IDE] Visual Studio Code (0) | 2026.06.20 |
|---|---|
| [IDE] Visual Studio (0) | 2026.06.18 |
| [Language] Bash (0) | 2026.06.17 |
| [Language] Dart (0) | 2026.06.16 |
| [Language] Swift (0) | 2026.06.15 |