CS Student’s SAP&Tech Journey✨

[SAP] ABAP 객체지향 언어? / 기존 문법과 신문법의 차이 본문

SAP/객체 지향 OOP

[SAP] ABAP 객체지향 언어? / 기존 문법과 신문법의 차이

인포마틱 2025. 4. 23. 16:09

ABAP을 처음 접했을 때, 다소 절차지향적인 느낌이 강했습니다. 하지만 SAP NetWeaver 7.0 이후 ABAP도 객체지향(OOP) 패러다임을 적극 반영하기 시작했고, 이후 ABAP 개발자라면 반드시 객체지향을 이해하고 활용할 수 있어야 합니다.

이번 포스팅에서는 기존 ABAP 문법과 객체지향 중심 신 문법의 차이, 객체지향 언어로서 어떤 특징을 갖고 있는지 알아보겠습니다.

 


 

📌 기존 문법 vs 신 문법 (ABAP NetWeaver 7.0 이후) 

먼저 가장 기본적인 DATA 선언과 SELECT 문에서 문법 차이를 볼 수 있습니다.

* 기존 문법
DATA it TYPE TABLE OF scarr.
DATA wa LIKE LINE OF it.

LOOP AT it INTO wa.
ENDLOOP.

* 신 문법
DATA it TYPE TABLE OF scarr.

LOOP AT it INTO DATA(wa).
ENDLOOP.

기존에는 별도의 워크에리어(wa)를 선언해야 했다면, 신 문법은 INTO DATA() 형태로 LOOP 내부에서 바로 선언 가능합니다.

다음은 SELECT 문입니다.

* 기존 문법
SELECT a b c
  FROM scarr
  INTO TABLE lt_result
  WHERE carrid = 'LH'.
  
* 신 문법
SELECT FROM scarr
  FIELDS a, b, c
  WHERE carrid = 'LH'
  INTO TABLE lt_result.

 

 📌 절차지향 vs 객체지향의 차이

  • 절차지향: 위에서부터 아래로 흐르는 명령 중심의 구조 (예: FUNCTION MODULE, FORM 등)
  • 객체지향: 데이터를 중심으로 객체를 설계하고, 객체 간 메세지를 주고받으며 동작함 (예: CLASS, METHOD 등)

ABAP에서는 Report 프로그램 안에서 CLASS와 METHOD를 직접 선언해 사용할 수 있으며, 실제 업무에서는 SE24 글로벌 클래스를 구성하는 것이 일반적입니다.

 

 

ABAP은 객체지향 언어인가?

객체지향 언어로 정의하기 위해서는 보통 아래 세가지 특성을 충족해야 합니다.

  1. Encapsulation (캡슐화): 접근 제어자 (Public / Private / Protected)
  2. Inheritance (상속): 클래스를 상속받아 기능 확장 기능
  3. Polymorphism (다형성): 동일한 명령으로 서로 다른 객체가 각자 다르게 동작

ABAP은 세가지 모두를 지원합니다. 특히 SAP NetWeaver 7.0부터 객체지향을 본격적으로 지원하면서, 전통적인 프로시저 기반 언어에서 OOP 언어로 본격 전환되었다고 할 수 있습니다.