본문 바로가기

ABAP 프로그래밍 개념/ABAP 프로그래밍 Concept

ABAP Programming Concept : User-Defined Elementary Data Type

ABAP에서, Predefined elementary data types에 근거하여 개인의 elementary data types를 정의할 수 있습니다. 이러한 유저가 정의한 data types를 user-defined elementary data types라고 부르며, SAP에서 관리되는 data objects에 연관된 data objects를 선언할 때 유용합니다.

User-Defined Elementary Data Type은 프로그램에서 TYPE이라는 키워드를 사용하여 지역적으로 선언될 수 있거나, ABAP Data Dictionary에 정의하여 Global하게 정의할 수 있습니다.

예를 들어, 가계도 같은 것을 만들고자 했을 때, 가족 구성원들의 이름을 처리하기 위해서는 많은 data objects를 정의해야합니다. data object 선언은 아래 예시와 같습니다.

DATA : Father_Name TYPE c LENGTH 20,
           Mother_Name TYPE c LENGTH 20,
           Wife_Name TYPE c LENGTH 20,
           Son_Name TYPE c LENGHT 20,
           Daughter_Name TYPE c LENGTH 20.

위 예시는, Predefined Types를 통해 만든 data objects 입니다.가족의 이름을 최대 20자리의 character로 가정하고 선언하였습니다. 추후에 만약, 이러한 이름의 길이를 30글자로 늘리고 싶다면, 모든 데이터 objects의 길이를 각각 편집할 필요성이 있습니다. 이렇게 각각을 바꾼다면, 시간이 소비되고 프로그래밍적으로 지루합니다. 이러한 문제를 극복하기 위해서는, User-Defined Type을 정의하여 이 유형을 계속 사용하면 됩니다. 예시는 아래와 같습니다.

TYPES person TYPE c LENGTH 20.

DATA : Father_Name TYPE person,
           Mother_Name TYPE person,
           Wife_Name TYPE person,
           Son_Name TYPE person,
           Daughter_Name TYPE person.

위 예시를 보면, person이라는 data type을 TYPE 이라는 키워드를 통해서 User-Defined Elementary Data Type을 정의하였고, 이 Data Type은 data objects를 정의하는데 사용되었습니다. 여기서, data type인 person은 TYPE c에 근거를 두고 있습니다. 이 방법으로는, 만약 당신이 코드에서 person이라는 TYPE을 참조하는 모든 data objects의 길이를 늘리고 싶아면, data object 각각을 변경하지 않고 User-Defined Elementary Data Type인 person의 길이만 바꿔주면 됩니다.

TYPE이라는 키워드의 기본 문법은 DATA 키워드랑 비슷하지만, 사용되는 additions의 그룹이 다릅니다. Data Types는 그 자신은 어떠한 메모리도 점유하지 않고 데이터를 가지지 않는 다는 것을 기억해야합니다. 개발자는 항상 Data Type의 인스턴스로서의 data objects를 만들어서 프로그램에서 데이터를 처리해야합니다.

Data Types와 Data Objects는 그들 자신만의 이름을 가질 수 있는 공간이 있어서, 같은 프로그램 안에서 같은 이름을 가진 data types과 data objects를 볼 수 있습니다. 그러나, 혼란을 피하기 위하여, 다수의 data types와 data objects를 정의하는 동안 특정안 네이밍 룰을 만들어서 각각을 사용합니다. 예를들어, 전역 변수의 경우에는 접미사로 gv_, 로컬 변수의 경우에는 lv_, 인터널 테이블의 경우에는 it 등 이 있습니다. 이러한 이름은 정해진 것이 아니라 회사에 따라 개발 표준 등으로 정해집니다.

반응형