본문 바로가기
시스템 & 트랜잭션

[SAP ABAP] Function · Method 파라미터 자동 입력 — Ctrl+Space 자동완성 / Shift+Enter 매개변수 / Pattern 삽입

by Song.sh 2026. 5. 15.

ABAP 에서 펑션(Function Module) 이나 메서드를 호출할 때 가장 귀찮은 작업이 EXPORTING / IMPORTING / TABLES / EXCEPTIONS 절을 일일이 적는 것 입니다. REUSE_ALV_GRID_DISPLAY 같은 펑션은 IMPORTING/EXPORTING 합쳐 30개 넘는 매개변수가 있는데, SE37 들어가서 하나씩 확인하며 옮겨 적으면 시간 낭비도 크고 오타 위험도 큽니다.

 

해결은 간단해요 — ABAP 에디터(SE38·SE80) 가 제공하는 두 가지 도구를 쓰면 됩니다. Ctrl + Space 로 펑션·메서드 이름을 자동으로 찾고, Shift + Enter (또는 Pattern 버튼) 로 매개변수 전체를 한 번에 가져옵니다. ABAP 코드 개발 시간을 가장 빠르게 줄여주는 단축키 세트.

 

이 글은 펑션/메서드 자동 완성 단축키·Pattern 삽입 사용법·CALL FUNCTION 과 CALL METHOD 차이·기타 ABAP 에디터 유용 단축키 까지 한 번에 정리한 메모입니다.


핵심 원리

손으로 적을 때와 자동 입력을 쓸 때 차이.

방식 손으로 적기 자동 입력
준비 SE37 에서 펑션 열어 매개변수 확인 코드 안에서 바로 호출
입력 30줄 + 매개변수마다 직접 타이핑 Shift + Enter 한 번에 전체 삽입
오타 위험 매개변수명 한 글자 틀리면 컴파일 에러 정확한 이름·타입 자동 입력
주석 없음 매개변수 옆에 설명 주석 같이 들어옴

핵심 트레이드오프: 단점이 거의 없는 기능 이라 ABAP 개발자라면 무조건 쓰는 게 좋습니다. SE37 왔다 갔다 하는 습관만 바꿔도 하루 30분 이상 절약됩니다.


1단계 — Ctrl + Space 로 펑션/메서드 이름 자동 완성

코드 에디터에서 펑션 이름을 일부만 입력하고 Ctrl + Space 를 누르면, 그 글자로 시작하는 펑션 목록이 드롭다운으로 뜹니다.

CALL FUNCTION 'RE        " ← 여기까지 입력 후 Ctrl + Space
"          ↓ 드롭다운 표시 ↓
"          REUSE_ALV_BLOCK_LIST_APPEND
"          REUSE_ALV_BLOCK_LIST_DISPLAY
"          REUSE_ALV_BLOCK_LIST_INIT
"          REUSE_ALV_GRID_DISPLAY
"          REUSE_ALV_GRID_DISPLAY_LVC
"          REUSE_ALV_HIERSEQ_LIST_DISPLAY
"          ...

 

핵심 포인트:

  • 드롭다운에서 위/아래 방향키 로 펑션 선택 — 옆에 노란 박스로 시그니처 미리 보임
  • Enter 누르면 그 펑션 이름만 코드에 삽입
  • 펑션 이름이 정확히 기억나지 않을 때 가장 유용
  • 메서드 자동 완성도 같은 단축키 — lo_object-> 까지 입력 후 Ctrl+Space

2단계 — Shift + Enter 또는 Pattern 으로 매개변수 통째 가져오기

펑션 이름을 입력하고(또는 1단계로 선택한 뒤), 펑션 이름 위에 커서를 두고 Shift + Enter 또는 에디터 툴바의 Pattern 버튼 클릭.

" 입력 전: 펑션 이름만 적은 상태
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'.

" Shift + Enter 누르면 ↓ 매개변수 전체 자동 삽입
CALL FUNCTION 'REUSE_ALV_BLOCK_LIST_APPEND'
  EXPORTING
    is_layout       =                  " List Layout Specifications
    it_fieldcat     =                  " Field Catalog with Field Descriptions
    i_tabname       =                  " Name of Internal Output Table
    it_events       =                  " Table of events to perform
*   it_sort         =                  " (옵션) 주석으로 표시
*   i_text          = SPACE            " Text of This List for Overview Screen
  TABLES
    t_outtab        =                  " Table with data to be displayed
* EXCEPTIONS
*   program_error            = 1
*   maximum_of_appends_reached = 2
*   others                   = 3.
*
* IF sy-subrc <> 0.
*   MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
*           WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ENDIF.

핵심 포인트:

  • 필수 매개변수 는 그대로 코드에, 옵션 매개변수* 주석 처리되어 들어옴 (필요하면 주석 해제)
  • 매개변수 옆 영문 설명도 같이 들어와 가독성 ↑
  • EXCEPTIONS 절도 자동 포함 — sy-subrc 분기까지 통째로

3단계 — Pattern 메뉴로 다양한 패턴 가져오기

ABAP 에디터 툴바의 Pattern 버튼 (또는 메뉴 → 편집 → 패턴 삽입) 을 누르면 더 다양한 패턴을 고를 수 있습니다.

패턴 종류 용도
CALL FUNCTION 펑션 모듈 호출 + 매개변수 자동 입력
CALL METHOD 클래스 메서드 호출 — 클래스명 + 메서드명 지정
PERFORM FORM 루틴 호출 (USING/CHANGING 자동 추가)
MESSAGE 메시지 호출 (메시지 ID + 번호 + 변수)
WRITE 리스트 출력 (필드 + 위치 + 색상 옵션)
AUTHORITY-CHECK 권한 체크 (권한 객체 + 필드 자동 입력)
SELECT / SELECT * 테이블 SELECT 문 (필드 자동 채움)
ABAP 에디터 → Pattern 버튼 클릭
  ● CALL FUNCTION : REUSE_ALV_BLOCK_LIST_APPEND
  ○ CALL METHOD
  ○ PERFORM ON COMMIT
  ○ AUTHORITY-CHECK : S_TCODE
  ○ WRITE
  ○ MESSAGE WHEN
  ○ SELECT * FROM      : MARA
  ...
  → 확인 (Enter)

4단계 — CALL METHOD 자동 완성 (클래스 메서드)

클래스 인스턴스 메서드를 호출할 때는 점(->) 또는 콜론 두 개(=>) 다음에 Ctrl + Space 가 더 강력합니다.

DATA: lo_grid TYPE REF TO cl_gui_alv_grid.

" 인스턴스 메서드 자동 완성
lo_grid->        " ← 여기까지 입력 후 Ctrl + Space
"     ↓
"     set_table_for_first_display
"     refresh_table_display
"     set_layout
"     get_selected_rows
"     check_changed_data
"     ...

" 정적 메서드 자동 완성
cl_gui_alv_grid=>    " ← 여기까지 입력 후 Ctrl + Space
"     ↓ 정적 메서드 / 상수 목록

메서드 선택 후 Shift + Enter 누르면 EXPORTING/IMPORTING/CHANGING/RETURNING/EXCEPTIONS 가 자동 입력됩니다. 펑션 모듈 패턴과 거의 동일.

" 자동 완성 결과
lo_grid->set_table_for_first_display(
  EXPORTING
    i_buffer_active              =          " (옵션)
    i_bypassing_buffer           =          " (옵션)
    i_consistency_check          =          " (옵션)
    i_structure_name             =          " Internal Output Table Structure Name
    is_variant                   =          " Layout
    i_save                       =          " Save Layout
    i_default                    = 'X'      " Default Setting Possible
    is_layout                    =          " Layout
    is_print                     =          " Print
    it_special_groups            =          " Field Group Definitions
    it_toolbar_excluding         =          " Standard Function Codes Not Used
    it_hyperlink                 =          " Hyperlinks
    it_alv_graphics              =          " Statistics
    it_except_qinfo              =          " Information About Exception Conditions
    ir_salv_adapter              =          " Interface SALV Adapter
  CHANGING
    it_outtab                    =          " Output Table
    it_fieldcatalog              =          " Field Catalog
    it_sort                      =          " Sort Criteria
    it_filter                    =          " Filter Criteria
  EXCEPTIONS
    invalid_parameter_combination = 1
    program_error                 = 2
    too_many_lines                = 3
    OTHERS                        = 4
).

5단계 — 그 외 ABAP 에디터에서 자주 쓰는 단축키

자동 완성 외에도 빠른 코딩을 돕는 단축키.

단축키 기능
Ctrl + Space 자동 완성 (펑션·메서드·변수·키워드)
Shift + Enter 선택한 펑션·메서드의 매개변수 전체 삽입
Shift + F1 Pattern 메뉴 — CALL FUNCTION/METHOD/PERFORM 등 템플릿 선택
F1 키워드·필드 도움말 (커서 위치의 단어 설명)
F2 단어 / 변수 정보 표시
F3 또는 더블클릭 정의로 이동 (Forward Navigation) — 펑션·FORM·테이블 점프
Ctrl + F1 화면 컨트롤 도움말
Ctrl + Shift + P Pretty Printer (코드 정렬 — 들여쓰기/대소문자 통일)
Ctrl + F3 신택스 체크 (저장 전 구문 검증)
Ctrl + F2 컴파일 (Activate)
Ctrl + < 선택 블록 주석 처리 (`*` 추가) / 반대는 Ctrl + >

흔히 빠뜨리는 함정

Ctrl+Space 가 안 뜨는 경우

GUI 옵션에서 Code Completion 이 꺼져 있을 수 있음. 메뉴 → 옵션 → ABAP 편집기 → Code Completion(코드 자동완성) 체크 확인.

Shift+Enter 가 펑션 이름 위에 안 있을 때

Shift+Enter 는 커서가 펑션 이름 위에 있을 때만 동작. 빈 줄에서 누르면 단순 줄바꿈만 됨. 펑션 이름 안에 커서 둔 뒤 단축키.

옵션 매개변수도 다 살리고 싶을 때

Pattern 결과에서 옵션 매개변수는 * 로 주석 처리되어 들어옴. 다 살리려면 Pattern 메뉴 → "모든 매개변수 가져오기" 옵션 체크 (에디터 옵션에서 미리 설정 가능).

커스텀 펑션은 캐싱 문제로 안 나타날 수도

방금 만든 펑션 모듈이 자동 완성에 안 나오면 에디터 닫았다 다시 열기 또는 SE38 → 새 세션. 캐싱 한 박자 늦음.

메서드 매개변수가 너무 많아 코드가 너무 길어짐

set_table_for_first_display 같이 매개변수가 15개 넘으면 코드가 너무 길어짐. 필요한 매개변수만 남기고 나머지는 지우는 후처리 필요.

Pretty Printer 가 자동 완성 결과를 망가뜨림

자동 완성 후 Ctrl + Shift + P 돌리면 정렬이 다시 바뀜. Pretty Printer 옵션에서 "매개변수 정렬" 설정 확인해서 취향에 맞게.

F3 정의 점프 후 못 돌아옴

F3 으로 펑션 정의 들어간 뒤 다시 원래 코드로 돌아가려면 F3 (한 번 더) 또는 그린 화살표(뒤로 가기) 버튼. 모르고 닫으면 작업 위치 잃어버림.

Pattern 의 "EXCEPTIONS" 절 안 가져오는 옵션

옵션에서 EXCEPTIONS 절 자동 포함을 끄면 펑션이 던지는 예외 체크 잊을 수 있음. 항상 포함되게 설정 권장.


요약

단계 처리 핵심
1 이름 찾기 Ctrl + Space — 펑션·메서드·변수 자동 완성
2 매개변수 삽입 Shift + Enter — EXPORTING/IMPORTING/TABLES/EXCEPTIONS 통째로
3 Pattern 메뉴 Shift + F1 — CALL FUNCTION/METHOD/PERFORM/AUTHORITY-CHECK 등 템플릿
4 클래스 메서드 lo_obj-> 또는 cl_class=> 다음에 Ctrl + Space
5 기타 단축키 F3(정의 점프) · Ctrl+F3(신택스) · Ctrl+F2(컴파일) · Ctrl+Shift+P(정렬)

ABAP 에디터의 자동 입력 기능은 단순한 편의가 아니라 오타 위험을 제거하고 매개변수 누락을 방지 하는 안전 장치이기도 합니다. Ctrl + Space 로 이름 자동 완성, Shift + Enter 로 매개변수 통째 입력, Shift + F1 으로 다양한 패턴 — 이 세 단축키만 손에 익혀도 SE37 왔다 갔다 하는 시간 대부분이 사라지고, 펑션·메서드 시그니처를 머릿속에서 외울 필요도 없어집니다.

정의가 궁금하면 F3, 키워드 의미가 모호하면 F1 로 바로 점프하는 습관까지 같이 들이면 ABAP 개발 속도가 눈에 띄게 빨라집니다.


Disclaimer — 이 포스트는 실무 정리 노트를 바탕으로 AI 보조로 정리되었습니다.

ABAP 에디터(SE38·SE80) 의 코드 자동 완성·Pattern 삽입·단축키는 SAP NetWeaver 표준 기능으로 시스템 버전 의존 없이 동작합니다.

다만 SAP GUI 옵션의 Code Completion 설정·Pretty Printer 옵션·"옵션 매개변수 자동 포함" 같은 세부 동작은 사용자 환경에 따라 조금씩 다를 수 있고, ADT(Eclipse 기반 ABAP Development Tools) 에서는 단축키가 다르게 매핑됩니다(Ctrl + Space 는 동일하지만 Pattern 은 별도 메뉴). 운영기 적용 코드는 자동 입력 후에도 매개변수 의미·예외 처리·권한 객체를 한 번 더 확인하는 게 안전합니다.