🌍 SAP 프로그램 실행 환경 및 구조 해석

 

📌 개요

SAP 시스템에서 프로그램이 실행되는 환경

워크 프로세스(work processes)

ABAP 프로그램의 구조

 


📄 SAP의 프로그램 종류

 

SAP 시스템에는 기본적으로 두 가지 유형의 프로그램이 있다.

1. Report 프로그램 (리포트)

데이터 목록을 생성하는 단순 프로그램

선택 화면을 제공하고, 실행되면 사용자는 중간에 개입할 수 없음

결과는 실행 후 바로 출력됨

약간의 상호작용 기능이 있을 수도 있음

 

2. Dynpro 프로그램 (Dialog + Program, 대화형 프로그램)

사용자의 입력에 따라 흐름이 달라지는 동적 프로그램

여러 개의 화면(스크린) 을 통해 진행됨 (이를 “다이얼로그 스크린”이라 부름)

사용자가 버튼을 클릭하거나 필드를 선택함으로써 프로그램의 흐름을 결정함

화면에 정의된 Flow Logic(프로그램 흐름 로직) 에 따라 기능이 트리거됨

 

✅ 대부분의 ABAP 개발자들은 리포트 프로그램 안에서 작업하는 경우가 많음

→ 이름은 리포트지만 항상 결과를 출력하는 것은 아님

→ 내부에서 데이터 읽기, 쓰기, 비즈니스 로직 처리도 담당

 


⚙️ 워크 프로세스란?

 

SAP 시스템에서 실행되는 모든 프로그램은 워크 프로세스(Work Process) 위에서 동작함.

워크 프로세스는 애플리케이션 서버 위에서 실행

운영체제나 DB와는 독립적으로 작동

이 덕분에 SAP는 플랫폼 독립성을 유지할 수 있어

 


🛠 워크 프로세스는 누가 설정하나?

SAP 시스템이 처음 세팅될 때, Basis 컨설턴트들이 SAP를 설치하고 메모리 설정 등을 담당

이들이 워크 프로세스 개수를 사전에 정해둠

=> 이는 일종의 DB와의 연결 채널 수를 정해두는 것과 비슷함

 


🧑‍💻 Dispatcher란?

 

SAP 시스템은 동시에 많은 사용자가 로그인할 수 있지만, 동시에 처리되는 요청 수는 제한되어 있음

그래서 모든 사용자에게 고정적으로 프로세스를 할당할 수 없음

→ 이 때 등장하는 것이 Dispatcher

Dispatcher는 사용자의 요청을 감시하다가,

사용 가능한 워크 프로세스를 찾아 할당해줌

가능하다면 동일한 프로세스가 다음 단계도 계속 담당하려고 시도함

하지만 사용자가 입력을 오래 지체하면, 다른 프로세스로 넘어가기도 함

 


🧠 워크 프로세스의 내부 구성 요소 3가지

 

1️⃣ Dynpro Processor

스크린 흐름 로직 처리 담당

사용자의 입력에 따라 다음 화면 흐름 제어

계산은 하지 않음!

오직 화면 로직 제어만 함

 

2️⃣ ABAP Processor

 

ABAP 코드의 실제 로직 실행을 담당

Dynpro Processor가 받은 입력을 처리하고,

결과를 다시 화면에 전달

논리 연산, 수치 계산, 권한 검사, DB 읽기/쓰기 수행

 

3️⃣ DB Interface (데이터베이스 인터페이스)

ABAP 코드와 데이터베이스 간의 중개자 역할

Open SQL을 통해 다양한 DB와 통신 가능

예: Oracle, MS SQL 등 어떤 DB든 같은 ABAP 문법 사용 가능 → 덕분에 ABAP 코드는 DB 독립적

 

🧾 Open SQL vs Native SQL

 

✅ Open SQL

SAP 표준 방식

ABAP에서 제공하는 DB 독립적인 SQL 문법

어떤 DB든 같은 코드를 쓸 수 있음

유지보수도 쉽고, 다른 개발자도 이해하기 쉬움

🌟 권장 방식

 

❌ Native SQL

특정 DB 전용 SQL 문법 (Oracle 전용, MSSQL 전용 등)

직접 DB에 접근하는 방식

보안/안정성 문제 발생 가능

시스템 관리자가 사용을 제한하는 경우 많음

+ Recent posts