loading
본문 바로가기
SAP/ABAP

[SAP_ABAP] INCLUDE문

by 원쿤짱쿤 2025. 4. 27.
반응형

INCLUDE 문이란?


INCLUDE 문은 ABAP 프로그램 내에서 다른 소스 코드 파일(Include 프로그램) 을 삽입하는 명령어입니다.

쉽게 말하면, "코드 조각"을 따로 관리하고, 필요한 프로그램에 불러와서 사용하는 거죠.

 

기본 문법은 정말 단순합니다

INCLUDE zmy_include_file. 
"대체로 Z<메인 프로그램명><구분 코드>로 작성됨"

 

INCLUDE로 삽입된 코드는 컴파일 시 메인 프로그램에 합쳐져 하나의 프로그램처럼 동작합니다.

 

INCLUDE 프로그램의 특징


 

  • 독립 실행 불가: Include 프로그램은 자체적으로 실행하거나 컴파일할 수 없습니다. 반드시 메인 프로그램 안에 삽입되어야 의미가 있습니다
    -> 즉.  Include는 코드 조각일 뿐이고, 단독으로 실행할 수 없습니다.

  • 개별 활성화 가능: Include 프로그램은 별도로 수정하고 활성화(Activate)할 수 있습니다.
  • 모듈화 지원: 대형 프로그램을 기능별로 분리하여 관리하기 쉽게 만들어줍니다.
  • 버전 관리 및 락 관리 용이: 여러 개발자가 동시에 작업할 때 충돌을 줄일 수 있습니다

 

INCLUDE 문을 사용하는 이유


 

  • 프로그램의 가독성 향상: 관련된 기능별로 코드를 나누어 관리할 수 있습니다.
  • 공통 코드 재사용: 여러 프로그램이 같은 로직을 써야 할 때, Include 하나 만들어서 공유할 수 있습니다. 수정할 때도 한 곳만 고치면 끝.
  • 작업 분담: 팀원끼리 "넌 화면 부분, 난 데이터 부분" 이렇게 나눠서 각자 Include 파일을 맡아 작업할 수 있습니다.
  • 수정 부담 줄이기: 작은 수정 때문에 전체 프로그램 다 건드려야 하면 위험하니까, Include로 쪼개두면 필요한 부분만 수정하고 테스트할 수 있어요.


INCLUDE 구조


메인 프로그램은 뼈대(INCLUDE 호출)만 가지고 있고 실제 세부 로직은 각각의 INCLUDE 파일에 쪼개어 작성합니다.

 

아래는 일반적인 네이밍 룰 입니다.

 

아래처럼 네이밍룰이 정해져 있기 때문에 누가 보더라도 파악하기 쉬워집니다.

 

<네이밍 룰>

TOP 프로그램 전역 변수, 타입 선언 DATA, TYPES, CONSTANTS, CLASS 선언 등
SCR 선택화면 정의 PARAMETERS, SELECT-OPTIONS 등
C01 이벤트 처리 코드 AT SELECTION-SCREEN, INITIALIZATION, START-OF-SELECTION 등
O01 화면 처리 모듈 (PBO/PAI) MODULE로 시작하는 PBO, PAI 루틴
I01 데이터 핸들링 루틴 데이터 읽기, 변환, 필터링 등 내부 처리 로직
F01 폼 루틴 모음 FORM ~ ENDFORM 으로 짜는 재사용 가능 소스

 

<실제 프로그램 화면>

 

 

INCLUDE 작성 시 주의사항


 

  • 논리적으로 관련된 코드만 분리: 무조건 작은 단위로 쪼갠다고 좋은 게 아닙니다.
    서로 강하게 관련된 코드(예: 하나의 메서드, 하나의 클래스 선언부)는 한 Include에 묶어야 합니다.
  • 이름 규칙 맞추기: 예를 들어 ZMYPROG_TOP, ZMYPROG_F01 이런 식으로 파일명 규칙을 맞추는 게 좋습니다. 그래야 다른 사람이 봐도 무슨 역할 하는지 바로 알 수 있어요.
  • 중복 사용 금지: 같은 Include 파일을 여기저기 프로그램에 마구 삽입하면 디버깅할 때 헬 게이트 열립니다. 원칙적으로 "하나의 프로그램 전용"으로 만들어야 합니다.
  • 로컬 클래스는 굳이 나누지 말 것: 글로벌 클래스는 시스템이 자동으로 Include로 나눠주지만, 로컬 클래스는 한 군데에 다 넣는 게 기본입니다. 괜히 쪼개면 관리만 복잡해집니다