ABAP Program에서 Data Object 선언시 일반적으로 TYPE 또는 LIKE를 많이 사용한다.

 

ABAP을 오랫동안 접하면 크게 어려운 부분은 아니지만

ABAP을 배우는 단계라면 많이들 헷갈려 하는 부분이다. 

개념만 잘 잡고 있으면 절대 어려운 게 아니니 한번 정리 해보도록 하겠다.

 

결론부터 말하자면,

TYPE과 LIKE의 차이는 Data Object 선언시 TYPE 또는 LIKE 뒤에 

Data Object와 Data Type 중 어느 것을 reference 하는지 차이 라고 볼 수 있다. 

 

앞에서 Data Object와 Data Type에 대해 포스팅하였으니

이 2가지의 기본 개념을 를 정확히 이해하고 있어야 한다. 

2020/07/21 - [ABAP Basic/개념 정리] - Data Object
2020/07/21 - [ABAP Basic/개념 정리] - Data Type

 

  • Data Object : 실제 메모리 공간에 할당된 존재 .
  • Data Type : 메모리 공간을 차지 않고 Data Object를 정의하기 위한 하나의 템플릿.

영어사전에서 TYPE과 LIKE의 뜻을 찾아보면

 

TYPE 은 형태, 틀, 종류 등으로 정의하고 있고

LIKE 는 '~와 같은', '~와 비슷한' 등으로 정의되며 어느 한 대상(실체)과 비교해서 사용하게 된다. 

 

구문의 뜻으로 보면 TYPE 뒤에는 Data Type이 오고,

LIKE 뒤에는 Data Object가 사용되어 지는 것을 유추해 볼 수 있다.

 

이 때, 예외적으로 Data Type 중 일부가 LIKE 구문 뒤에 사용할 수 있는데 

ABAP Dictionary에  Structure Type / Table / Classic View 가 이에 해당한다.

 

SAP 에서 과거에는 사용가능하도록 만들어 놓았지만 SAP ABAP도 버젼업이 되면서

LIKE 는 Data Object인 경우에만 사용하라고 권고 하고 있다.

 

ABAP Editor에서 F1 도움말 키를 눌러 LIKE에 대한 도움말을 찾아보면

하위 내용과 같이 Notes 부분에 명시되어 있다. 

 

< LIKE ( DATA TYPE ) 에 대한 Obsolete > 

 

추가로 CLASS 같은 OO( Object-Oriented) 개념에서는 TYPE 만 사용 가능하다. 

 

 

정리하면,

TYPE은 뒤에 Data Type을 reference 할 때 사용
LIKE는 뒤에 Data Object를 reference 할 때 사용

+ Recent posts