ABAP 기초 포스팅
변수 선언과 데이터 타입
Structure (구조체) 타입 변수 선언
TYPES 구문을 통한 타입 정의
Internal Table 개념, 사용법 정리
반복문 LOOP, WHILE, DO
콘텐츠
ABAP TYPES 구문 이란?
이전 글 에선 Structure(구조체) 를 다루는 법을 배웠다. 이전 포스트를 보면 구조체를 DATA 구문을 통해 바로 선언하고 있다.
DATA: BEGIN OF ls_employee,
id TYPE i,
name TYPE c LENGTH 30,
position TYPE c LENGTH 20,
salary TYPE p DECIMALS 2,
END OF ls_employee.
ABAPTYPES는 DATA 구문에서 직접 선언 하지 않고 미리 구조를 정의해 불러와 구조체, 그리고 다음 포스트에서 다룰 인터널 테이블 선언 시 이용할 수 있게 된다.
그리고 이렇게 TYPES 로 만들어 지면, 프로그램 내에서 TYPE 문으로 불러 올 수 있다. (이와 비슷한 기능을 하는 변수 그 자체를 복사할 땐 LIKE 을 쓸 수 있다.)
ABAP TYPES 를 활용한 Struceture (구조체) 변수 선언
TYPES: BEGIN OF ty_employee,
id TYPE i,
name TYPE c LENGTH 30,
position TYPE c LENGTH 20,
salary TYPE p DECIMALS 2,
END OF ty_employee.
DATA: ls_employee TYPE ty_employee.
ABAP이렇게 타입을 미리 선언하여 사용할 수 있다.
이렇게 사용 하면 LIKE 으로 변수를 복사하지 않고 미리 정의 된 타입을 여러 변수에서 사용이 가능하다.
DATA 구문 바로 사용 vs TYPES 사용
이 두 가지는 동작엔 차이가 없지만 코딩 시 다음과 같은 차이가 있다.
TYPES를 사용하여 타입을 먼저 정의하는 경우
- 재사용성: TYPES 구문을 사용하여 타입을 정의하면, 이 타입은 프로그램 전체에서 재사용 된다. 같은 타입의 여러 변수를 선언할 때 유용하다.
- 유지보수성: 타입 정의가 한 곳에 집중되어 있어, 타입을 변경할 때 한 곳만 수정하면 된다.
이는 유지보수를 용이하게 하며 오류 가능성을 줄여준다. - 명확성: 복잡한 데이터 구조를 미리 TYPES로 정의해 두면, 코드의 가독성이 향상된다. 코드를 읽는 사람은 미리 정의된 타입을 보고 데이터의 구조를 더 쉽게 이해할 수 있다.
DATA로 직접 타입을 선언하는 경우
- 간결함: 변수 선언 시 타입을 직접 명시하면 별도의 타입 정의가 필요 없어 코드가 더 간결해진다. 특히 해당 타입을 한 번만 사용하는 경우에 유용하다.
- 로컬화: 타입이 변수 선언과 밀접하게 연결되어 있어, 타입의 정의와 사용이 같은 지점에 위치한다. 이는 코드의 로컬 컨텍스트 내에서 타입을 파악하기 쉽게 해준다.
- 특정성: 직접 선언된 타입은 특정 변수에만 적용되므로, 그 사용 범위가 명확해 진다. 다른 변수에서 동일한 구조를 사용하지 않을 것이 확실한 경우 유용하다.