ABAP TYPES 구문을 통한 타입 정의

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.
ABAP

TYPES는 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를 사용하여 타입을 먼저 정의하는 경우

  1. 재사용성: TYPES 구문을 사용하여 타입을 정의하면, 이 타입은 프로그램 전체에서 재사용 된다. 같은 타입의 여러 변수를 선언할 때 유용하다.
  2. 유지보수성: 타입 정의가 한 곳에 집중되어 있어, 타입을 변경할 때 한 곳만 수정하면 된다.
    이는 유지보수를 용이하게 하며 오류 가능성을 줄여준다.
  3. 명확성: 복잡한 데이터 구조를 미리 TYPES로 정의해 두면, 코드의 가독성이 향상된다. 코드를 읽는 사람은 미리 정의된 타입을 보고 데이터의 구조를 더 쉽게 이해할 수 있다.

DATA로 직접 타입을 선언하는 경우

  1. 간결함: 변수 선언 시 타입을 직접 명시하면 별도의 타입 정의가 필요 없어 코드가 더 간결해진다. 특히 해당 타입을 한 번만 사용하는 경우에 유용하다.
  2. 로컬화: 타입이 변수 선언과 밀접하게 연결되어 있어, 타입의 정의와 사용이 같은 지점에 위치한다. 이는 코드의 로컬 컨텍스트 내에서 타입을 파악하기 쉽게 해준다.
  3. 특정성: 직접 선언된 타입은 특정 변수에만 적용되므로, 그 사용 범위가 명확해 진다. 다른 변수에서 동일한 구조를 사용하지 않을 것이 확실한 경우 유용하다.
0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
목차
위로 스크롤