ABAP 프로그래밍 기초

박재완·2025년 1월 25일

SAP ABAP (1 ~ 8일차)

목록 보기
3/8

1. Describing the Processing of ABAP Programs

  • ABAP 프로그램 실행 과정
    ABAP 프로그램은 실행 시 여러 단계로 처리되며, 실행 중 시스템 자원과 데이터베이스와 상호작용합니다.

    • ABAP 프로그램 구조:
      1. Declaration Section: 데이터 선언 및 초기화.
      2. Processing Block: 처리 로직 (시작 시점에서 실행되는 코드).
      3. End Section: 프로그램 종료 시 실행되는 로직.
    • 실행 단계:
      1. 데이터 선언
        프로그램이 시작되기 전에 변수, 내부 테이블, 상수 등이 선언됩니다.
      2. 로직 실행
        메인 로직 실행 (e.g., 데이터 조회, 계산, 출력).
      3. 데이터베이스 상호작용
        Open SQL을 통해 데이터 읽기/쓰기.
      4. 결과 출력
        화면에 데이터를 출력하거나 다른 시스템으로 전송.
  • 프로세싱 블록 (Processing Blocks):
    • Event Blocks: ABAP 프로그램은 특정 이벤트 기반으로 실행됩니다 (e.g., START-OF-SELECTION, END-OF-SELECTION).
    • Subroutines: 코드의 모듈화와 재사용성을 위해 사용.
    • Dialog Programming Blocks: 사용자 입력 처리를 위한 이벤트 핸들러.
  • ABAP 프로그램 유형:
    • 보고서 프로그램 (Report): 데이터를 읽고 출력.
    • 모듈 풀 프로그램 (Module Pool): 사용자 인터페이스를 처리하는 대화형 프로그램.

2. Analyzing Programs with the ABAP Debugger

  • ABAP 디버거란?
    ABAP 디버거는 프로그램을 실행 중에 디버깅하고 문제를 분석하기 위한 도구입니다. 프로그램의 데이터 흐름, 변수 값, 실행 경로를 실시간으로 확인할 수 있습니다.

  • ABAP 디버거의 주요 기능:

    1. 중단점 설정 (Breakpoint):
      특정 코드 라인에서 실행을 멈추고 상태를 분석.
    2. 단계별 실행 (Step-by-Step Execution):
      한 줄씩 실행하며 코드 흐름을 추적.
    3. 변수 값 확인:
      각 변수의 현재 값을 확인하고 변경.
    4. 데이터 객체 확인:
      내부 테이블, 구조 등의 데이터를 실시간으로 확인.
    5. SQL 트레이스:
      데이터베이스와의 상호작용 분석.
  • 사용 예제:

    1. 프로그램을 실행하고 디버거를 시작 (/h 트랜잭션 사용).
    2. 중단점 설정 후 코드 흐름을 따라가며 문제 분석.
    3. 디버거 창에서 변수 값, 테이블 데이터, SQL 실행 결과를 확인.

3. Explaining Modularization

  • 모듈화란?
    모듈화는 프로그램을 재사용 가능하고 유지보수가 용이한 작은 블록으로 나누는 과정입니다. ABAP에서 모듈화는 서브루틴, 함수 모듈, 클래스 등을 사용하여 구현됩니다.

  • 모듈화의 이점:

    • 코드 재사용성 증가.
    • 유지보수 및 디버깅 용이.
    • 프로그램의 가독성 향상.
  • ABAP에서의 모듈화 구현 방법:

    1. 서브루틴 (Subroutine):
      • FORMENDFORM을 사용해 정의.
      • 프로그램 내에서 호출하여 특정 로직 실행.
      • 예:
        FORM calculate_sum USING p_num1 TYPE I
                                 p_num2 TYPE I
                          CHANGING p_result TYPE I.
          p_result = p_num1 + p_num2.
        ENDFORM.
    2. 함수 모듈 (Function Module):
      • 재사용 가능한 모듈로, SAP의 Function Builder를 사용하여 생성.
      • 예: 데이터베이스 액세스 또는 외부 시스템 통신.
    3. 메서드 (Methods in Classes):
      • 객체 지향 프로그래밍에서 특정 로직을 처리하기 위해 사용.
  • 모듈화의 예제 시나리오:

    • 고객 데이터를 계산하는 기능을 서브루틴으로 나누기.
    • 재사용 가능한 데이터베이스 조회 로직을 함수 모듈로 정의.
    • 특정 UI 동작을 메서드로 구현.

간단한 ABAP 프로그램 예제: 디버깅과 모듈화 통합

REPORT zmodular_program.

DATA: lv_num1 TYPE I VALUE 10,
      lv_num2 TYPE I VALUE 20,
      lv_result TYPE I.

" 메인 로직
START-OF-SELECTION.
  PERFORM calculate_sum USING lv_num1 lv_num2 CHANGING lv_result.
  WRITE: / 'The result is:', lv_result.

" 서브루틴 정의
FORM calculate_sum USING p_num1 TYPE I
                          p_num2 TYPE I
                   CHANGING p_result TYPE I.
  p_result = p_num1 + p_num2.
ENDFORM.

이 코드는 모듈화(FORM)를 통해 계산 로직을 분리하며, 디버거로 변수 값과 실행 흐름을 확인할 수 있습니다.


추가 학습 포인트:

  • Event Blocks: AT SELECTION-SCREEN, START-OF-SELECTION 등.
  • 디버거 심화 기능: Watchpoint, Call Stack 분석.
  • 모듈화 심화: 함수 모듈 및 클래스 활용.
profile
안녕하세요!

0개의 댓글