본문 바로가기

ABAP 프로그래밍 개념

(127)
ABAP OOP : ENCAPSULATION(캡슐화) PART1 : Visibility 앞선 글 들을 통해 OOP를 구성하는 구성요소들 -> Attributes, Methods, Event, Object 등에 무엇인지에 대해서 알아보았습니다. 앞서서 진행할 몇 가지 주제는 OOP의 특징과 개념에 대해서 입니다. 앞서서 설명한 구성요소들은 OOP로서 ABAP에서 클래스가 가 무엇으로 이루어져있나를 설명했다면, 앞으로는 OOP가 어떤 특성(개념)으로 이루어져 있는지를 알아보도록 하겠습니다. OOP의 주요 원칙 중 하나는 Encapsulation(캡슐화)입니다. 캡슐화는 영역을 정의하여 외부 세상으로부터 구현(실행 소스)를 숨길 수 있습니다. Attributes(사용되는 데이터)와 methods(데이터를 조작하는 기능)는 Obejct라는 캡슐에 들어있기 떄문에, 객체 안에서 어디까지 접근을 허락..
Principles of OOP Part4 : Constructor Constructor은 클래스 안의 PUBLIC SECTION에서 정의된 Instance constructor에서는 constructor, Static Constructor에서는 class-constructor 라는 이름을 가진 특수한 method입니다. 각 클래스는 최대 한개의 Instace Constructor와 Static Constructor를 가질 수 있습니다. Constructor는 클래스에서 정의되는 optional(선택적인) method로서 Instace Constructor의 경우 Attrubutes를 초기화하고 Static Constructor의 경우 클래스에 처음 접근할 때 특수한 업무(special task)를 수행(사용자가 정의한)합니다. Instace Constructor Ins..
Principles of OOP Part4 : Objects An Object os an instance of a class. SAP에서 Object를 정의한 문장입니다. 말 그대로 객체는 클래스의 인스턴스입니다. 객채(Object)는 인스턴스라고 불리기도 합니다. 그리고 객체는 create object라는 구문을 통해서 인스턴스화(instantiated) 됩니다. 간단히 예를 들면 Data : gc_grid type ref to CL_GUI_ALV_GRID 라고 보통 많이 선언합니다. 하지만 저 자체의 gc_grid는 아직 Object가 된 것이 아닙니다. 단순히 Class를 참조하는 data 형식만 선언해 놓은 것입니다. 이후 create object gc_grid. 라는 구문을 만나야 실제 인스턴스화되면서 객체가 되는 것입니다.(Exporting 이하는 생략..
Principles of OOP Part3 : Methods Methods는 객체(object)의 행동을 결정하고 클래스의 내부 절차(internal procedures)로서 역할을 합니다. Methods는 methods라는 키워드( static의 경우 class-methods)를 사용하여 클래스의 definition part에 정의되고, 클래스의 implementation part의 method~endmethod 블락 사이에서 기능이 구현됩니다. Methods는 클래스의 모든 attrubutes에 접근이 가능하고 객체의 상태(state of object)를 바꿀 수 있습니다. 개발자는 소스코드로 methods를 구현하여 객체의 행동을 정의할 수 있습니다. Methods는 종종 parameter interface( signature라고 불리우는) 를 포함하기 때문..
Principles of OOP Part2 : Attributes Attributes(속성)은 객체에서 소비되는(사용되는) 데이터를 정의한 것입니다. Attributes는 Elementary type, DIctionary type, User-defined type, reference type 등을 포함한 어떠한 종류의 데이터 타입으로도 선언될 수 있습니다. 클래스안에서, 개발자는 types 구문을 사용하여 user-defiend type을 정의할 수 있습니다. Constants(상수) 또한 constants 구문을 사용하여 정의할 수 있다. 또한 PUBLIC SECTION에서 Attribute를 선언할 때 addition인 read-only를 data 구문과 함께 사용하며 외부로부터 접근은 가능하지만, 수정은 불가능하도록 할 수 있다. 다른말로 하면, read-only..
Principles of OOP(객체지향 프로그래밍의 원칙들) PART 1 PART 1. 구성요소들 & CLASS 선언 방법 이번 글과 이후 이어질 PART를 통해서, class(클래스), objects(객체), attributes(속성), methods(메소드), encapsulations, instantiation, and constructors에 대해 알아보겠습니다. 글 마지막에서는 직접 class를 정의하고, object를 만들고, method를 직접 호출할 수 있을 정도로 이해가 늘어나셨으면 좋겠습니다. Objects는 데이터를 encapsulate(캡슐화 : 보여지지않게 한다) 하고 이 데이터를 조작할 수 있는 기능을 만듭니다. 객체의 특성(성격들 - attributes)과 기능(methods)들은 하나의 패키지(묶음)입니다. 이 패키지를 정의하는 것을 Class(클..
Procedural Programming vs Object-Oriented Programming ABAP에서 가장 대표적인 Procedural Programming(절차적인 프로그래밍) Techniques의 예시는 Function Module과 Subroutines 입니다. 그러나, Class는 다른 말로 하면, OOP Technique를 실행한 겁니다. Procedural Programming에서, Functions는 데이터로부터 분리되어있고 input-output relationships(parameter을 통한)을 사용해서 연결됩니다. 전형적인 ABAP 프로그램은, 아래 그림과 같이, 프로그램 실행하면서 프로그램에서 사용되는 데이터를 선언한 Data Delcarations 부분과, 데이터를 처리하는 ABAP statement(구문)으로 구성되어 있습니다. 프로그램 코드를 더 뚜렷하고(legib..
Object Oriented 언어로서의 ABAP ABAP은 hybrid Programming 언어로서, 절차적인(procedural techniques) 그리고 객체지향(object oriented techniques)적인 기술을 다 지원한다. 이 Class 카테고리 관련 글을 통해서, OOP(Object Oriendted Programming 이하 : OOP )의 다양한 컨셉에 대해 이야기하고, 절차적인 프로그래밍(Procedural Programming)보다 나은 장점에 대해서 이야기 해보도록 하겠습니다. 이 글에 앞어서 앞서서 제가 올린 Class 관련 글들이 있을 것입니다. 아래와 같은 글이 그 예입니다. 제가 3년전 교육과정을 들으며 배운 내용 + Easy ABAP을 본 내용에 대해 정리한 글들인데, 사실 지금 보면 이해도 부족하고 잘못 적은..