SAP 시스템에서 메모리는 영역은 크게 두 가지로 구분됩니다.
SAP Gui의 모든 기본 세션에서 액세스 할 수 있는 SAP Memory와 내부 세션에서만 액세스 할 수 있는 ABAP Memory 이렇게 두 가지 메모리 형태가 존재하고 있습니다.
이번 글에서는 SAP Memory와 ABAP Memory 차이점 비교 및 사용법 정리를 통해 두 메모리 형태에 대해 좀 더 자세히 알아보겠습니다.
SAP Memory와 ABAP Memory 그림으로 이해하기
▼ SAP Memory와 ABAP Memory에 대한 비교를 하나의 이미지로 표현하면 아래 그림과 같이 표현할 수 있습니다.
SAP Memory
▶ SAP Memory란?
- SAP Memory는 SAP GUI에서 세션이 만들었을 때 각 External Session에서 액세스할 수 있는 메모리 영역을 말합니다.
- ABAP 프로그램에서 SPA/GPA Parameter(SET/GET PARAMETER)를 사용하여 SAP 메모리에 데이터를 저장하거나 SAP 메모리에서 데이터를 가져올 수 있습니다.
- 동일 세션 내의 한 프로그램에서 다른 프로그램으로 데이터를 전달하거나 한 세션에서 다른 세션을 데이터를 전달할 때 SAP Memory를 사용하게 됩니다.
- SAP Memory는 사용자가 로그인을 해서 User Session이 유지되는 동안 계속해서 데이터 공유가 가능합니다.
- SAP 메모리는 Variable만 공유가 가능하며 인터널테이블의 데이터는 공유할 수 없습니다.
▶ ABAP 프로그램에서 SAP Memory 사용 방법
- SAP 메모리에 데이터를 저장하기 위해 SET PARAMETER 구문을 사용합니다.
- SAP 메모리에서 데이터를 가져오기 위해 GET PARAMETER 구문을 사용합니다.
- 실제 예제를 통한 자세한 사용 방법은 SAP ABAP에서 매개변수(Parameter) ID 활용 방법 글을 참고하시면 됩니다.
ABAP Memory
▶ ABAP Memory란?
- ABAP Memory는 하나의 External Session의 수명이 유지되는 동안 메모리 내용도 유지됩니다.
- 내부 세션(Internal Session) 전체에서 데이터를 유지할 수 있으며 다른 내부 세션으로 데이터 공유가 가능합니다.
- ABAP 프로그램에서 EXPORT TO MEMORY 및 IMPORT FROM MEMORY 문을 사용하여 ABAP 메모리에 데이터를 저장하거나 ABAP 메모리에서 데이터를 가져올 수 있습니다.
- ABAP 메모리를 사용하면 인터널테이블의 데이터도 공유가 가능해 집니다.
▶ ABAP 프로그램에서 ABAP Memory 사용 방법
- ABAP 메모리에 데이터를 저장하기 위해 EXPORT TO MEMORY 구문을 사용합니다.
- ABAP 메모리에서 데이터를 가져오기 위해 IMPORT FROM MEMORY 구문을 사용합니다.
- 실제 예제를 통한 자세한 사용 방법은 ABAP에서 두 프로그램 간에 인터널테이블 및 변수 값을 주고 받기 방법 글을 참고하시면 됩니다.
결론
▼ 앞 단락에서 설명한 내용을 간단하게 표로 정리하면 아래와 같습니다.
구분 | SAP Memory | ABAP Memory |
공유 영역 | 다른 외부 세션간 데이터 공유가 가능하다 | 같은 내부 세션간 데이터 공유가 가능하다 |
명령어 | SET PARAMETER, GET PARAMETER | EXPORT, IMPORT |
지속성 | 한 사용자의 로그온이 유지되는 동안 메모리에 존재한다. | 한 프로그램이 실행이 지속되는 동안 메모리에 존재한다. |
※ 함께 읽으면 도움이 될 만한 다른 포스팅 글입니다.
이 글이 도움이 되었기를 바랍니다. ^-^