본문 바로가기
DB/ORACLE,HANA

ChatGPT5가 말아주는 SAP 개발자 기초 입문 (1일차)

by ESTP 개발자 2025. 8. 13.

좋아요, 그럼 오늘은 SAP 기초 1일차 수업을 “컴공 3학년 수준 + 이미 프로그래밍 가능 + HANA 경험 있음” 기준으로 진행할게요.
즉, ABAP 기초를 빠르게 훑고 SAP의 개발 구조를 이해하는 데 집중하겠습니다.

 


📚 오늘 진도 — SAP 개발자 기초 입문 (1일차)

1. SAP 개발 환경 구조 이해

SAP는 ERP 시스템 + 개발 플랫폼이에요.
Java, Python과 달리 SAP는 거대한 애플리케이션 서버 안에서 코드를 작성하고 실행합니다.

구성 요소

  • Application Server: ABAP 프로그램이 실행되는 공간
  • Database Server: HANA DB (또는 다른 DB)
  • Client/GUI: SAP GUI 또는 Fiori Launchpad (웹 UI)
  • Development Workbench(SE80): ABAP 개발 IDE 역할

중요 T-Code

  • SE80 : Object Navigator (개발 메인 툴)
  • SE38 : 프로그램 실행/편집
  • SE37 : Function Module (RFC 포함)
  • SE11 : Data Dictionary (테이블/뷰/타입 관리)
  • SE16N : 테이블 데이터 조회
  • ST22 : Dump 분석 (Java의 stack trace 느낌)

 

2. ABAP 기본 문법 맛보기

ABAP는 C언어 계열 구조지만, SQL과 굉장히 밀접합니다.
자바로 치면 JDBC를 코드 중간에 자연스럽게 쓰는 느낌이에요.

 

Hello World 예제

REPORT z_hello_world.

WRITE 'Hello, SAP World!'.

 

** Report는 자바의 main 같은 프로그램 시작점 선언 역할

** z_hello_world 라는 독립 실행형 ABAP 프로그램을 만든다

** sap 내부에서 이 이름으로 프로그램 호출이 가능하다

 

** sap에서는 사용자 정의 프로그램, 테이블, 함수 이름 앞에는 Z 또는 Y를 붙이는 게 규칙

 

변수 선언 & 데이터 타입

DATA: lv_name TYPE string VALUE 'SAP',
      lv_age  TYPE i VALUE 30.

WRITE: / 'Name:', lv_name,
       / 'Age:', lv_age.
  • TYPE string : 가변 문자열
  • TYPE i : 정수(Integer)
  • / : 줄바꿈

** WRITE = 출력 명령 / java 의 System.out.printLn();** WRITE에 : 를 붙이면 여러 항목을 콤마로 나열 가능** WRITE 는 디버깅, 리포트 출력용으로 자주 쓴다

 

** 출력 형식을 지정할 수도 있다.WRITE lv_age RIGHT-JUSTIFIED.      → 숫자 오른쪽 정렬WRITE lv_name UNDER 'Customer'. → 지정한 텍스트 바로 아래에 출력

 

 

3. Internal Table (ABAP의 핵심 자료구조)

SAP는 DB 데이터 → Internal Table에 담아 처리하는 구조입니다.
(Python의 리스트, Java의 ArrayList + Struct 느낌)

TYPES: BEGIN OF ty_person,
         name TYPE string,
         age  TYPE i,
       END OF ty_person.

DATA: lt_people TYPE TABLE OF ty_person,
      ls_person TYPE ty_person.

ls_person-name = 'Alice'.
ls_person-age = 25.
APPEND ls_person TO lt_people.

ls_person-name = 'Bob'.
ls_person-age = 30.
APPEND ls_person TO lt_people.

LOOP AT lt_people INTO ls_person.
  WRITE: / ls_person-name, ls_person-age.
ENDLOOP.

💡 : Internal Table을 다루는 능력이 ABAP 생산성의 절반을 좌우합니다.

 

OK

 

4. Open SQL — DB 연동 기초

ABAP는 HANA DB와 직접 연결되지만, DB 종류와 상관없이 Open SQL 문법으로 접근합니다.
(Java에서 JPA/Hibernate, Python에서 ORM 비슷)

" SAP 사용자 정보를 조회하는 예제 프로그램 "

" Internal Table 선언 (여러 행을 저장) "
DATA: lt_users TYPE TABLE OF usr02,
      ls_user  TYPE usr02.

" usr02 테이블에서 최대 10행을 조회하여 lt_users에 저장 "
SELECT * FROM usr02 INTO TABLE lt_users UP TO 10 ROWS.

" Internal Table의 각 행을 순회 "
LOOP AT lt_users INTO ls_user.
  " 사용자 ID(BNAME)와 마지막 로그인 일자(TRDAT)를 한 줄씩 출력 "
  WRITE: / ls_user-bname, ls_user-trdat.
ENDLOOP.
  • usr02 : SAP 사용자 마스터 테이블
  • UP TO 10 ROWS : 결과 제한

OK

 

5. RFC 개념 맛보기

RFC(Remote Function Call)는 SAP 간/외부 시스템과 통신하는 핵심 기술입니다.

  • ABAP RFC : SE37에서 Function Module 생성 후 RFC Enabled 설정
  • 사용 예시:
    • 다른 SAP 시스템 모듈 호출
    • Java/Python에서 SAP 데이터 가져오기
  • 오늘은 개념만, 실습은 다음 차시에

 

6. 오늘의 실습 미션

  1. SE38에서 Z_HELLO_WORLD 프로그램 작성
  2. Internal Table에 3명 정보 입력 후 LOOP로 출력
  3. SE11에서 USR02 테이블 구조 확인
  4. Open SQL로 USR02에서 5명 사용자 조회 프로그램 작성

 

 

📌 오늘 배운 핵심 요약

  • SAP는 Application Server 내부에서 ABAP 실행
  • 개발 주요 T-Code: SE80, SE38, SE37, SE11, SE16N
  • ABAP 기본 문법 → Internal Table → Open SQL
  • RFC는 SAP 통신의 핵심 (추후 심화)

 

 

 

 

다음 진도에서는 ABAP 데이터 딕셔너리 + 모듈화(Function Module) + RFC 실습으로 넘어갈 수 있어요.
원하시면 제가 내일차 분량으로 RFC Enabled Function Module을 직접 만들고 Java에서 호출하는 예제까지 준비해 드릴게요.