Data Object의 Type을 결정하는 Data Type에 대해 포스팅 해보겠다.
앞서 Data Object 개념에 대해 포스팅한 글이 있으니 참고하도록 하자.
2020/07/21 - [ABAP Basic/개념 정리] - Data Object
Data Type은 Data Object의 형태 및 속성을 부여하는 역활을 하며,
Data Object를 정의하기 위한 하나의 템플릿으로도 표현 할 수 있다.
빵집에서 쿠키를 만들 때 각종 모양의 틀로 찍어서 토끼, 별, 달과 같은 모양을 만드는 것 처럼,
그 찍어내는 틀을 Data Type 으로, 찍혀서 나온 쿠키를 Data Objcet 로 비유할 수 있다.
이러한 템플릿( Data Type )은 ABAP에서 사전에 미리 정의되어 있기도 하고,
우리가 프로그램을 개발하면서 직접 정의를 할 수도 있다.
또한 Data Object는 메모리 공간을 할당되는 존재지만 Data Type은 메모리 공간에 존재하지 않는다.
Data Type은 다음과 같이 3가지로 나눌 수 있다.
- ABAP Predefined Type ( 기본 Type )
- 프로그램 내에서 정의한 Type
- ABAP Dictionary에서 정의된 Type
이 3가지 Type은 Data Object 선언시 'TYPE' 구문 뒤에 사용되어 진다.
DATA Data Object Name TYPE Data Type.
ABAP Predefined Type
ABAP 뿐만이 아니라 다른 프로그래밍 언어에서도 사용되는기본 Type으로
문자형, 정수형 등을 정의하며, Type에 따라 길이가 고정인것도 있고 가변인 것도 있다.
필드 타입( 변수 )과 같은 Single Value 형태를 갖는 Data Object 선언시에 사용된다.
ABAP 프로그래밍시 많이 사용되는 Predefined Type.
형태 | 길이 | 타입 | 설명 |
문자 | 고정 (길이 지정 가능) | C | 수를 포함한 문자 타입으로 Alphanumeric 타입 |
고정 (길이 지정 가능) | N | 수를 문자타입으로 표현한 형태. | |
고정 | D | 날짜 타입. *세팅 포맷에 맞는 8자리 (기본 YYYYMMDD) | |
고정 | T | 시간 타입. *세팅 포맷에 맞는 6자리 (기본 HHMMSS) | |
가변 | STRING | 길이 제한이 없는 문자형 타입 | |
숫자 | 고정 | I | 정수형 타입 |
고정 ( 소수점 길이지정) | P | 소수점을 포함한 수의 형태. 소수점 길이를 명시해 주어야 함. |
( *날짜와 시간의 Format은 User Profile에 의해 각자의 User ID별로 세팅한 형태로 보여진다. )
그 외에 숫자 타입으로는 B, S, DECFLOAST16, DESFLOAT34, F 가 있으며
문자, 숫자 외에 BYTE TYPE인 X, XSTRING이 존재한다. ( *실무에서는 많이 사용하지 않는다. )
추가로 이러한 기본 Type은 프로그램 내에서 Data Object 선언시에 사용되며,
ABAP Dictionary에서는 이와 유사하게 별도로 Dictionary내에 정의된 Predefined Type을 사용한다.
프로그램 내에서 정의한 Type
프로그램 내에서만 사용할 목적으로 정의하며, Type이 선언된 프로그램에서만 사용가능하다.
'TYPES' 구문을 이용하여 사용할 Type을 정의한다.
'TYPES' 의 일반적인 사용 문법은 다음과 같다.
TYPES Data Type Name TYPE Data Type.
'TYPES'의 다양한 옵션을 통해서 Data Object의 모든 형태 ( 필드 / 구조체 / 인터널테이블 ) 의
Type이 정의가 가능하다.
ABAP Dictionary에서 정의된 Type
ABAP Dictionary ( T-Code 'SE11') 에서 정의된 Type 들을 말하며,
이 곳에서 정의된 Type들은 Global 하게 사용이 가능하기 때문에
프로그램에서 별도 정의 없이 모두 사용할 수 있다.
ABAP Dictionary에서는 모든 형태의 Data Object Type을 정의할 수 있으며,
Data Object 선연시 사용되는 Dictionary 속성은 다음과 같다.
Data Object | Dictionary 속성 | 설명 |
필드(변수) | Data Element | Single Value를 가질 수 있는 하나의 필드 형태. Dictionary Predefined Type 또는 Domain 기반으로 정의됨. |
구조체 | Structure | 하나 이상의 필드가 그룹되어진 형태. |
구조체 | Database Object | Dictionary에서 Type을 정의하는 속성이 아닌 Database에 존재하는 Table과 Classic View를 말함. Type 으로 사용시 Table/View와 동일한 필드들의 구성을 가진 구조체 형태가 됨. |
인터널테이블 | Table Type | 동일 Structure 의 형태로 여러 라인을 담을 수 있는 형태. Dictionary에 정의된 Structure 기반으로 정의됨. |
공통적으로 구조체 형태를 가진 Data Type 들은 구조체를 구성하는 필드 중 하나를 택해
필드 형태의 Data Object 선언시에도 사용될 수 있다.
표기법은 'Structrue명-Field명' 과 같이하며 '-' 로 구분한다
또한 선언 구문을 활용하여 구조체 또는 필드 형태의 Data Type 으로도
인터널 테이블 형태의 Data Object를 선언할 수 있다.
'ABAP Basic Lv. > Concept' 카테고리의 다른 글
|ABAP 개념정리| Table Work Area (0) | 2020.09.16 |
---|---|
|ABAP 개념정리| TYPE과 LIKE의 차이 (2) | 2020.09.09 |
|ABAP 개념정리| Data Object (0) | 2020.09.07 |
|ABAP 개념정리| Module Pool vs Executable Program (0) | 2020.09.04 |
|ABAP 개념정리| Package (2) | 2020.09.01 |