본문 바로가기

ABAP 프로그래밍 개념

(127)
ABAP Programming Concept : General Program Strucutre(일반적 프로그램 구조) 모든 ABAP 프로그램은 1) global declaration area(전역선언 영역)와 procedural area(절차적 영역)로 구성됩니다. global declaration area(전역선언 영역)은 전형적으로 abap objects라고 불리는 메모리 저장소로 사용되며, 이 메모리 저장소는 프로그램 안에서 procedural area(절차적 영역)에서 쓰여진 ABAP statement로 의해 처리될 데이터를 저장하는데 사용됩니다. 그러므로, 어떠한 ABAP 프로그램들도 크게 보면 두 가지 영역으로 나눌 수 있습니다. ■ Global Declaration => 프로그램을 위한 전역 데이터는 프로그램 어디에서도 접근될수 있도록 정의 ■ Procedural => 프로그램의 Procedural 부분은 ..
ABAP Programming Concept : Overview ABAP 프로그램은 Database 또는 외부로부터의 데이터를 처리합니다. ABAP 프로그램들은 application layer에서 실행되고, ABAP 프로그램들의 구문들은 프로그램 안에서 지역적으로 사용가능한 데이터에만 작동됩니다. 외부 데이터들( 예를들어, presentation layer에서의 화면에서 입력되는 값들이나, sequential file로부터의 데이터들 혹은 Database에서의 데이터들)은 application layer단의 프로그램의 local memery에 ABAP Statement로 처리되기 위해 전송되고 저장됩니다. 다른말로 하면, ABAP 프로그램으로 어떠한 데이터도 처리되기 전에, 데이터들은 Source로부터 읽혀져야되고, 프로그램 메모리에 지역적으로 저장되고 난 후에 후에..
ABAP OOP : Polymorphism(다형성) PART6 : Events 객체의 런타임 동안 특정 이벤트가 발생할 때, (Event handler라고 불리우는) 특별한 Methods들은 특정한 이벤트들에 반응합니다. 이러한 상황에서 (trigger라고 불리우는) trigger 메소드에 의해 작동될 클래스 안에서 Events들은 정의될 수 있습니다. Event들(Events)은 클래스 내부에 정의되며 triggers라고 불리우는 method로부터 작동됩니다. 객체의 런타임 동안 특정한 이벤트가 발생하였을 때, Event Handler라고 불리우는 특수한 methods들이 정의된 Events에 반응합니다. 예를 들어, 1. 우리는 유저가 레포트 결과에서 더블클릭을 할 때 발생하는 메소드 중 하나로 클래스에서 double_click이라고 불리우는 Event를 정의할 수 있습니다. ..
ABAP OOP : Polymorphism(다형성) PART5 : Interfaces 자바와 유사하게, ABAP Objects(객체)는 단일 상속(single inheritance)를 지원하고, C++ 처럼 다중 상속을 지원하지는 않습니다. Single Inheritance의 의미는 클래스가 다양한 subclass를 가질 수있지만 하나의 Superclass를 가지는 것을 의미합니다. 많은 Subclass들은 그들의 Superclass를 자신과 같은 클래스로 사용할 수 있지만, 각각의 Sublcass들은 오직 하나의 Superclass만을 가지는 것을 의미합니다. 현대 프로그래밍 언어는 애매모호함을 피하기 위해서 Multiple Inheritance(많은 Superclass들을 가지는 것)를 지원하지는 않았습니다. Multiple Inheritance의 가장 일반적인 문제 중 하나는 dia..
ABAP OOP : Polymorphism(다형성) PART4 : Dynamic Binding (동적 바인딩)with the Call Method 객체가 method의 파라미터로서 통과될 때, 시스템은 자동적으로 객체를 동적으로(dynamically) 바인드(bind)한다. 이 개념은 객체들이 쉽게 확장될 수 있어서 디자인 하는데 도움을 줍니다. 즉, method의 parameter로서 보통 type c, type i, 혹은 structure와 internal table을 사용했지만, parameter로 type ref to Class (static type 형식으로 type을 사용한)를 사용하는 것을 말합니다. Call Method에서의 Dynamic Binding(동적바인딩)을 이해하기 위해서는, 아래 코드를 봐야합니다. CLASS cl_student DEFINITION ABSTRACT. PUBLIC SECTION. METHODS tuition..
ABAP OOP : Polymorphism(다형성) PART3 : Casting 서로 다른 유형의 데이터 객체가 서로 할당될 때 적용되는 변환 규칙과 유사하게(Numc와 Intiger와 같은 데이터 형식의 할당과 유사하게), 다른 static type의 객체(type ref to로 각자 선언된 객체들)들의 할당도 특정 룰에 따릅니다. 원천 참조 객체(source reference object)의 static type이 타겟 참조 객체(target reference object)과 같지 않다면, cast라는 특수한 방법(opertaion)이 일어나야 합니다. 보통 이러한 프로세스를 우리는 casting이라고 부릅니다. 개발에서 cast operation을 사용하기 위해서는, target reference object의 static type이 source reference object의..
ABAP OOP : Polymorphism(다형성) PART2 : Static and Dynamic Types 객체(reference variable)의 Static Type은 reference variable을 정의하는데 사용되는 class 유형입니다. 예를 들어 아래 예시에서볼 수 있듯이 oref 참조는 cl_class라는 클래스를 참조하면서 정의됩니다. 이러한 경우, 객체 oref의 static type은 class cl_class이고, 정적으로 코드에서 정의된 것입니다. CLASS cl_class DEFINITION. PUBLIC SECTION. METHODS meth. ENDCLASS. CLASS cl_class IMPLEMENTATION. METHOD meth. ENDMETHOD. ENDCLASS. DATA oref TYPE REF TO cl_class. 때때로, 당신은 같은 하나의 참조 객체에서 st..
ABAP OOP : Polymorphism(다형성) PART1 Polymorphism이라는 뜻은 다양한 형태를 가질 수 있다는 것을 의미합니다. 상속의 개념은 객체가 다양한 형태의 모습을 가질 수 있는 시나리오를 만들 수 있다는 것을 이끌어 냈습니다. 예를 들어, subclass가 superclass의 메소드 호출에 응답하는 것이 가능해졌습니다. Polymorphism을 이해하기 위해선, static과 dynamic 형태에 대해서 먼저 이해할 필요가 있습니다. 그런 다음에 static 유형 소스 참조 객체(static type source reference object)가 대상 참조 객체(target reference object)와 다를 경우에 casting을 어떻게 쓰는지 알아보겠습니다. 그 후에는 인터페이스(interface)를 사용한 다양한 상속을 실행하는 ..