ABAP 개발, 용어만 알아도 성공 가능성 UP


ABAP 개발자로서 성장하고 싶으신가요? 그렇다면 ABAP의 근간을 이루는 용어들을 제대로 파악하는 것이 무엇보다 중요합니다. ABAP의 고유한 용어들을 이해하는 것은 단순히 지식을 쌓는 것을 넘어, 복잡한 SAP 시스템을 설계하고 구현하는 데 있어 필수적인 역량입니다. 이 글에서는 ABAP 개발 현장에서 자주 사용되는 용어들을 엄선하여, 그 의미와 활용법을 명확하게 제시합니다. 지금 바로 ABAP 용어 마스터의 길에 동참하세요.

핵심 요약

✅ ABAP은 SAP 환경에서 비즈니스 애플리케이션을 개발하는 데 사용됩니다.

✅ IF, CASE, DO, WHILE 등의 제어문은 프로그램 흐름 제어에 중요합니다.

✅ ALV (SAP List Viewer)는 데이터를 테이블 형태로 효율적으로 표시하는 데 사용됩니다.

✅ BAPI (Business Application Programming Interface)는 외부 시스템과의 연동을 위한 인터페이스입니다.

✅ ABAP Dictionary는 데이터 사전으로, 테이블, 구조, 데이터 요소 등을 정의합니다.

ABAP 기본 구성 요소: 데이터와 변수의 이해

ABAP 개발은 SAP 시스템 내에서 데이터를 조작하고 비즈니스 로직을 구현하는 것을 목표로 합니다. 이러한 과정의 근간에는 데이터를 정의하고 다루는 기본적인 용어들이 자리 잡고 있습니다. ABAP에서는 데이터를 저장하고 처리하기 위해 변수(Variables), 상수(Constants), 구조체(Structures), 그리고 Internal Table과 같은 다양한 데이터 타입들을 사용합니다.

데이터 정의의 시작: DATA, TYPES, CONSTANTS

ABAP 프로그램에서 데이터를 다루기 위한 가장 기본적인 용어는 `DATA`입니다. `DATA` 키워드는 변수를 선언하여 프로그램 실행 중에 값을 변경할 수 있게 합니다. 예를 들어, `DATA gv_name TYPE string.`은 문자열을 저장할 수 있는 `gv_name`이라는 변수를 선언합니다. 이와 달리 `TYPES` 키워드는 새로운 데이터 타입을 정의할 때 사용됩니다. 이는 구조체(Structure)를 정의하거나 기존 데이터 타입을 조합하여 복합적인 데이터 타입을 만드는 데 유용합니다. 예를 들어, `TYPES: BEGIN OF ts_person, name TYPE string, age TYPE i, END OF ts_person.`와 같이 복수의 필드를 가진 구조체를 정의할 수 있습니다.

상대적으로 `CONSTANTS`는 프로그램 실행 중 값이 변경되지 않는 고정된 값을 선언할 때 사용됩니다. 예를 들어, `CONSTANTS gc_max_value TYPE i VALUE 100.`은 `gc_max_value`라는 상수에 100이라는 값을 할당하며, 이 값은 프로그램 실행 중에 변경할 수 없습니다. 이처럼 `DATA`, `TYPES`, `CONSTANTS`는 ABAP 프로그램에서 데이터를 어떻게 정의하고 다룰 것인지에 대한 근본적인 설정을 제공합니다.

용어 설명 활용 예시
DATA 프로그램 실행 중 값이 변경될 수 있는 변수 선언 DATA gv_count TYPE i.
TYPES 새로운 데이터 타입 (구조체 등) 정의 TYPES: BEGIN OF ts_address, street TYPE string, city TYPE string, END OF ts_address.
CONSTANTS 프로그램 실행 중 값이 변경되지 않는 상수 선언 CONSTANTS gc_default_country TYPE c VALUE ‘KR’.

코드 재사용과 모듈화: Function Module, Class, Method

효율적인 ABAP 개발을 위해서는 코드를 재사용하고 체계적으로 관리하는 것이 중요합니다. 이를 위해 ABAP에서는 Function Module, Class, Method와 같은 개념들을 활용합니다. 이러한 요소들은 프로그램의 기능을 모듈화하여 유지보수를 용이하게 하고, 코드 중복을 줄여 개발 생산성을 향상시키는 데 기여합니다.

기능의 묶음: Function Module과 Function Group

Function Module은 독립적인 하나의 기능을 수행하는 ABAP 프로그램의 일부분입니다. 여러 프로그램에서 동일한 기능을 반복적으로 사용해야 할 때, 이를 Function Module로 만들어두면 해당 모듈을 호출하여 손쉽게 사용할 수 있습니다. Function Module들은 논리적인 그룹인 Function Group으로 묶여 관리됩니다. Function Module은 `CALL FUNCTION` 구문을 통해 호출되며, Import, Export, Changing, Tables 매개변수를 통해 데이터를 주고받습니다. 이는 코드의 재사용성을 극대화하는 대표적인 방법입니다.

Class와 Method는 객체 지향 프로그래밍(OOP)의 핵심 개념으로, ABAP에서도 널리 활용됩니다. Class는 데이터(속성)와 해당 데이터를 조작하는 메서드(기능)를 하나로 묶은 설계도와 같습니다. Method는 Class 내에서 정의된 함수로, 객체 인스턴스를 통해 호출되어 특정 기능을 수행합니다. `CREATE OBJECT` 구문을 통해 Class의 인스턴스(객체)를 생성하고, `->` 연산자를 사용하여 Method를 호출합니다. Class 기반의 개발은 코드의 캡슐화, 상속, 다형성 등의 OOP 특성을 활용하여 더욱 유연하고 확장 가능한 애플리케이션을 구축할 수 있게 합니다.

용어 설명 주요 활용
Function Module 독립적인 기능을 수행하는 코드 모듈 코드 재사용, 공통 기능 구현
Function Group 논리적으로 관련된 Function Module들의 집합 Function Module 관리 및 모듈화
Class 데이터(속성)와 기능(메서드)을 묶은 객체 지향 설계도 객체 지향 프로그래밍, 코드 캡슐화
Method Class 내에서 정의된 함수, 특정 기능 수행 객체 인스턴스를 통한 기능 호출

데이터 관리와 조작: Internal Table과 Structure

SAP 시스템에서는 대량의 데이터를 다루는 경우가 많으며, 이를 효율적으로 관리하고 조작하기 위한 ABAP 용어들이 중요합니다. Internal Table은 여러 행의 데이터를 메모리에 담아두는 핵심적인 데이터 구조이며, Structure는 한 행의 데이터를 표현하는 데 사용됩니다. 이 두 가지는 ABAP 프로그램에서 데이터 처리의 필수적인 요소입니다.

데이터 덩어리를 다루는 Internal Table

Internal Table은 데이터베이스 테이블과 유사하게 여러 행(Row)으로 구성된 테이블 형태의 데이터 구조입니다. 각 행은 Structure와 유사한 형태를 가집니다. Internal Table은 프로그램 메모리 상에 존재하며, SAP 시스템 외부에서 데이터를 읽어오거나, 프로그램 내부에서 데이터를 생성하여 데이터베이스에 저장하기 전에 임시로 보관하는 용도로 주로 사용됩니다. `LOOP AT itab` 구문을 통해 Internal Table의 각 행을 순회하며 데이터를 처리할 수 있으며, `APPEND`, `INSERT`, `MODIFY`, `DELETE`와 같은 문법을 사용하여 데이터를 추가, 수정, 삭제하는 작업을 수행합니다.

Structure는 하나 또는 여러 개의 필드로 구성된 고정된 크기의 데이터 구조입니다. Internal Table의 한 행을 표현하거나, 관련된 여러 데이터를 하나의 단위로 묶어서 다룰 때 사용됩니다. 예를 들어, 고객 정보를 담는 `ts_customer`라는 Structure는 고객 ID, 이름, 주소 등의 필드를 포함할 수 있습니다. Internal Table의 각 행은 이러한 Structure와 동일한 구조를 가집니다. Work Area는 Internal Table의 현재 처리 중인 행을 임시로 담아두는 변수로, Structure 타입으로 선언되어 사용됩니다. `READ TABLE itab INTO wa` 구문은 Internal Table의 특정 행을 Work Area로 읽어오는 역할을 합니다.

용어 설명 주요 활용
Internal Table 여러 행의 데이터를 메모리에 저장하는 테이블 형태의 구조 대량 데이터 관리, 데이터 조회 및 처리
Structure 고정된 필드로 구성된 단일 데이터 레코드 단일 데이터 단위 표현, Work Area 구성
Work Area Internal Table의 현재 행 데이터를 임시로 저장하는 Structure Internal Table 행 데이터 접근 및 조작

데이터베이스 연동: SELECT, BAPI, ABAP Dictionary

ABAP 개발은 SAP의 핵심 비즈니스 데이터를 다루는 것이므로, 데이터베이스와의 효율적인 연동은 매우 중요합니다. ABAP은 SQL과 유사한 문법을 사용하여 데이터베이스에 접근하며, BAPI와 같은 표준 인터페이스를 통해 외부 시스템과도 소통합니다. 이러한 데이터베이스 연동의 중심에는 ABAP Dictionary가 있습니다.

데이터베이스와 소통하는 OPEN SQL

ABAP에서는 `SELECT`, `INSERT`, `UPDATE`, `DELETE`와 같은 OPEN SQL 문법을 사용하여 SAP 데이터베이스의 테이블에 접근하고 데이터를 조작합니다. `SELECT` 문은 데이터베이스 테이블에서 원하는 데이터를 조회하는 데 사용되며, `FROM` 절로 테이블을 지정하고 `WHERE` 절로 조건을 명시하여 특정 데이터를 필터링할 수 있습니다. 조회된 데이터는 Internal Table이나 Work Area로 가져와서 처리합니다. `INSERT` 문은 새로운 데이터를 테이블에 추가하고, `UPDATE` 문은 기존 데이터를 수정하며, `DELETE` 문은 데이터를 삭제하는 데 사용됩니다. 이러한 SQL 문법들은 ABAP 프로그램 내에서 데이터베이스 작업을 수행하는 표준적인 방식입니다.

BAPI(Business Application Programming Interface)는 SAP 시스템의 표준 비즈니스 객체에 접근하기 위한 프로그래밍 인터페이스입니다. BAPI는 RFC(Remote Function Call)를 기반으로 하며, 이를 통해 외부 시스템에서 SAP의 비즈니스 기능을 호출하거나 SAP 내부의 데이터를 가져올 수 있습니다. 예를 들어, 고객 생성 BAPI를 호출하여 외부 시스템에서 새로운 고객 정보를 SAP에 등록할 수 있습니다. ABAP Dictionary는 SAP 시스템의 모든 데이터 구조, 테이블, 데이터 요소, 도메인 등의 메타데이터를 정의하고 관리하는 중앙 저장소입니다. 개발자는 ABAP Dictionary를 통해 테이블의 구조를 파악하고, 데이터 타입을 정의하며, 검색 도움말 등을 설정하여 데이터의 일관성과 무결성을 보장합니다. 데이터베이스 연동 작업은 ABAP Dictionary에 정의된 테이블을 기반으로 이루어집니다.

용어 설명 관련 작업
SELECT 데이터베이스에서 데이터 조회 데이터 검색 및 읽기
INSERT 데이터베이스에 새로운 데이터 삽입 레코드 생성
UPDATE 데이터베이스의 기존 데이터 수정 레코드 변경
DELETE 데이터베이스에서 데이터 삭제 레코드 제거
BAPI SAP 비즈니스 객체에 접근하기 위한 표준 인터페이스 외부 시스템 연동, 비즈니스 로직 호출
ABAP Dictionary SAP 데이터 구조 및 객체 메타데이터 관리 테이블, 구조, 데이터 요소 정의

자주 묻는 질문(Q&A)

Q1: ABAP 언어에서 ‘Work Area’는 무엇이며, 어떻게 사용되나요?

A1: Work Area는 Internal Table의 한 행(Row)에 접근하고 데이터를 일시적으로 저장하기 위한 구조체입니다. Internal Table에서 데이터를 읽거나 쓸 때, 해당 행의 데이터를 Work Area에 담아 처리합니다. 예를 들어, `LOOP AT itab INTO wa.` 구문에서 `wa`가 Work Area 역할을 합니다.

Q2: ABAP에서 ‘Message Class’는 어떤 용도로 사용되나요?

A2: Message Class는 프로그램 실행 중에 사용자에게 정보를 전달하거나 오류 메시지를 표시하기 위해 사용되는 메시지들의 모음입니다. 개발자는 Message Class를 생성하고 메시지 번호를 정의하여, 이를 ABAP 프로그램에서 `MESSAGE` 문을 통해 호출합니다. 이는 사용자 친화적인 인터페이스를 제공하는 데 필수적입니다.

Q3: SAP 시스템에서 Transaction Code (T-code)는 무엇이며, ABAP 개발과 어떤 관련이 있나요?

A3: Transaction Code (T-code)는 SAP 시스템 내에서 특정 트랜잭션(기능)을 실행하는 네 글자의 고유한 코드입니다. 예를 들어, `SE11`은 ABAP Dictionary를 열고, `SE38`은 ABAP Editor를 엽니다. ABAP 개발자는 사용자가 특정 프로그램을 실행할 수 있도록 새로운 T-code를 생성하거나 기존 T-code를 조정하기도 합니다.

Q4: ABAP에서 ‘Data Element’는 무엇이며, 왜 중요한가요?

A4: Data Element는 ABAP Dictionary에서 특정 필드의 의미, 데이터 유형, 길이, 형식 등을 정의하는 요소입니다. 여러 테이블에서 동일한 의미의 필드를 사용할 때 동일한 Data Element를 참조함으로써 데이터의 일관성을 유지할 수 있습니다. 이는 데이터 무결성을 확보하고 개발 및 유지보수 효율성을 높입니다.

Q5: ABAP Workbench는 무엇이며, 어떤 기능을 포함하고 있나요?

A5: ABAP Workbench는 ABAP 개발을 위한 통합 개발 환경(IDE)입니다. ABAP Editor, ABAP Dictionary, Screen Painter, Menu Painter, Function Builder, Class Builder 등 ABAP 개발에 필요한 모든 도구와 기능을 포함하고 있어, 개발자가 코드를 작성, 편집, 테스트, 디버깅하는 모든 과정을 하나의 환경에서 수행할 수 있게 합니다.

ABAP 개발, 용어만 알아도 성공 가능성 UP