안녕하세요 지코딩입니다.
오늘은 SAP ABAP의 Class에 대한 포스팅을 진행하려고 합니다.
CLASS 개념은 비전공자의 입장에서 조금 어려운 개념이었지만 제가 일하고 있는 TM이라는 모듈이 CLASS를 직접적으로 다루기 때문에 꽤 많은 도움이 되었습니다.
CLASS에 대한 내용을 정리하는 게 쉽지 않다 보니 이번 포스팅(CLASS에 대해 알아보자 #1)에서는 CLASS에 대한 OVER VIEW를 진행해보겠습니다.
CLASS OVER VIEW
제가 생각하는 클래스에 필요한 지식은 Class(클래스), Instance(인스턴스), Interface(인터페이스), Attrebute(어트리뷰트), Method(메서드)입니다.
이 용어들은 아마 개발을 하다 보면 자연스럽게 마주할 용어들입니다. 이 중 가장 중요한 개념은 어느 것일까요??
제가 생각하는 클래스의 존재이유는 인스턴스입니다.
어떠한 클래스로부터 만들어진 객체를 인스턴스라고 합니다.
즉, Instance = Object(객체)라고 의미를 생각하시면 편할 것입니다.
ABAP의 정석 EASY ABAP에서는 OBJECT의 구성을 다음과 같이 표현했습니다.
CLASS | 클래스는 객체를 만들어 내는 설계도 또는 형판이다. |
OBJECT | 객체는 물건/물체/대상/목적이라는 의미이며, 클래스는 인스턴스이다. |
Object Reference | 프로그램 내에서 객체의 속성과 메서드에 접근할 수 있도록 한다. |
Attribute(=property) | 객체가 가지는 속성 또는 특성이다. |
Method | 객체의 행위를 지정한다. |
Event | 서로 다른 클래스 간에 호출할 수 있는 메서드이다. |
출처 : EASY ABAP
누구나 인정하는 ABAP의 교재로 불리는 EASY ABAP에서는 OBJECT의 관한 내용을 위과 같이 정의해 주었습니다.
( 저 또한 공부를 EASY ABAP으로 하고 있기 때문에 아직 구매하시지 않은 분들에게는 구매를 강추드립니다!! )
CLASS TYPE
클래스는 먼저 3가지의 접근제한 영역(Visibility Section)으로 나뉩니다.
- publci section : 모든 클래스에서 접근할 수 있는 자유로운 영역을 말합니다.
- protected section : 자신과 상속받은 클래스에서만 접근할 수 있는 영역을 말합니다.
- private section : 같은 클래스의 메서드에서만 접근할 수 있습니다.
CLASS DEFINITION에서 구역이 나뉘며 IMPLEMENTATION에서는 접근제한 없이 사용할 수 있습니다.
( DEFINTION과 IMPLEMENTATION은 다음 포스팅에서 설명하도록 하겠습니다.)
접근제한 영역은 ALV 이벤트 선언부에서 사용되기도 합니다.
또한 클래스에는 LEVEL이 존재합니다.
위 사진은 제가 만든 Z_CLASS(커스텀 클래스)입니다.
클래스 빌더에서 어트리리 뷰트나 메서드를 확인하면 Level이라는 필드가 존재합니다.
이 필드에는 Instance와 Static라는 개념이 나옵니다.
이 개념들을 간단하게 생각하자면 먼저 Static은 클래스 내에 딱 한 개만 존재하는 것이고 이 반대의 개념이 Instance입니다.
여기서 존재하다는 개념은 같은 이름이 여러 개가 존재하거나 그런 개념은 아닙니다.
클래스에서는 객체를 생성(인스턴스화)한다고 말을 하는 데 이 객체마다 존재하는 것이 인스턴스(휘발성)이고 객체를 생성하면 프로그램 종료 시까지 남아있는 것이 스태틱입니다.
스태틱은 메모리에 바로 로드되기 때문에 객체를 따로 생성하지 않아도 바로 사용할 수 있습니다.
ALV 이벤트를 만들거나 할 때 CLASS-DATA, CLASS-METHODS라는 구문을 사용하는데 이때 CLASS- 를 붙이는 구문이 스태틱으로 선언하는 작업을 의미합니다.
여기서 CLASS에 대한 OVER VIEW 포스팅을 마치겠습니다.
지금 계획으로는 ABAP Class에 대해 알아보자 #2에서는 앞서 말한 5가지 지식에 대한 포스팅을 진행하고
ABAP Class에 대해 알아보자 #3에서는 ALV EVENT를 접목하여 CLASS에 대한 포스팅을 계획하고 있습니다.
시간이 많지 않아 언제가 될지는 모르겠지만 많은 관심 부탁드리겠습니다.
포스팅을 마치며..
이번 포스팅은 OVER VIEW이기 때문에 모든 것을 이해하기 힘들 수 있습니다.
다만, ABAP Class에 대해 알아보자 콘텐츠가 끝났을 때 조금이라도 Class에 대한 도움이 될 수 있겠다는 마음과 같이 공부해나갈 수 있겠다라는 마음으로 포스팅을 진행했습니다.
이글을 읽으면서 이지아밥에서 정의해준 OBJECT의 구성은 가지고 가시는게 가장 중요하다고 생각합니다!
혹시 포스팅 중에 이해가 안되거나 설명이 미흡한 점 있으면 댓글로 피드백 주시면 감사하겠습니다.
또한 선배님들의 의견도 남겨주신다면 정말 감사하겠습니다.
마지막으로 이지아밥 완전 완전 강추입니다!!!
'SAP > ABAP' 카테고리의 다른 글
[SAP] 번역 Object CTS이관(관리영역 메뉴 번역 이관) (1) | 2024.04.18 |
---|---|
SAP 첫 프로젝트 종류 후 쓰는 초보적인 실수들 (2) | 2024.02.14 |
FIeld-Symbol로 간편하게 코딩하기 / Loop ~ Field-Symbol (0) | 2023.03.28 |
LOOP AT GROUP BY 사용해보기 (0) | 2023.03.27 |
ALV 필드 카탈로그 자동 입력 펑션('LVC_FIELDCATALOG_MERGE ') (0) | 2023.03.19 |