나무늘보
FE
SAP
일상
Search
K
FE
SAP
일상
Menu
SAP 채널
Filter
Module
MM
FI
CO
SD
ABAP
01. 데이터 타입과 변수 선언
ABAP 데이터 타입 개요
기본 타입 (Elementary Types)
DATA 선언
구조체 (Structure)
내부 테이블 (Internal Table)
실무 예제: 구매오더 데이터 구조 설계
02. 기초 문법
조건문
반복문
데이터 조회
서브루틴과 메서드
문자열 처리
디버깅 기초
실무 예제: 자재 목록 조회 프로그램
03. New Syntax 정리
버전별 신규 문법 요약
인라인 선언 (Inline Declaration)
VALUE # — 값 생성자 표현식
CONV # — 타입 변환
COND # / SWITCH # — 조건 표현식
String Template — 문자열 템플릿
테이블 표현식 (Table Expression)
CORRESPONDING # — 구조체/테이블 매핑
REDUCE # — 집계 표현식
FOR 표현식 — 테이블 가공
FILTER — 테이블 필터링
New SELECT 구문
신규 문법 한눈에 비교
04. ALV 리포트 (REUSE)
ALV란?
Field Catalog
Layout 설정
Event 처리
Toolbar 커스터마이징
Variant 저장/불러오기
실무 예제: 편집 가능한 ALV 구매오더 리포트
05. SALV 리포트
SALV란?
최소 코드로 ALV 출력
SALV 핵심 클래스 구조
컬럼 설정
표시 설정 (Display Settings)
정렬 (Sort)
합계 (Aggregation)
Toolbar (Functions)
Variant (Layout 저장)
선택 모드
이벤트 처리
TOP-OF-PAGE (헤더)
실무 예제: SALV 자재 목록 리포트
06. RFC 통신과 함수 모듈
함수 모듈(FM) 기초
RFC란?
RFC 호출 방식
에러 핸들링
실무 예제: 타 시스템 자재 마스터 조회
07. Field Symbol과 동적 프로그래밍
Field Symbol이란?
ASSIGN 구문
내부 테이블과 Field Symbol
Data Reference
동적 프로그래밍 활용
실무 예제: 범용 데이터 변환 유틸리티
08. 번호 범위(Number Range)
1. 번호 범위란?
2. IMG로 관리되는 번호 범위 — MM(구매) 예시
3. CBO 번호 범위 — 직접 만든 객체와 호출
4. 참고할 만한 표준 함수
5. 개발 / 운영 시 주의사항
6. 정리
09. ADT IDE (Eclipse vs VSCode)
1. ADT란? — SE80에서 IDE로
2. 두 IDE 비교 카드
3. 기능 비교 표 (현재 시점 일반 경향)
4. 시나리오별 선택 가이드
5. 설치·연결 팁
6. 정리
참고 자료 (Further Reading)
10. AMDP (HANA DB 프로시저)
AMDP란?
CDS View와 AMDP, 언제 무엇을 쓰나
AMDP 클래스 만들기
Open SQL과 SQLScript의 차이점
정리
11. 엑셀 데이터 SAP 업로드
엑셀 업로드, 어떤 함수를 쓸까
TEXT_CONVERT_XLS_TO_SAP
ALSM_EXCEL_TO_INTERNAL_TABLE
두 함수 비교
참고: 코딩 블록이 걸려 있으면 LSMW/BDC가 막힌다
12. 영업일·공장 달력
"영업일 기준 며칠 뒤"를 구해야 할 때
SCAL - 달력 확인·생성
날짜 계산 함수 모듈
어떤 함수를 쓸까
13. 문자열 검색과 정규식
FIND 구문 기본
REGEX로 정규식 검색
실무 패턴: 특수문자 점검
정리
14. 표준 확장 (BADI·Exit)
표준은 건드리지 않는다
1. BADI - 가장 우선 고려
2. User Exit (CMOD) - 화면·필드 확장이 필요할 때
3. Enhancement Spot - 표준 기능 실행 전후의 예외 처리
어떤 것을 고를까
15. CBO 변경이력 (SCDO)
"이 값 누가 언제 바꿨나요?"
방법 1. SCDO - Change Document Object
방법 2. 테이블의 Log Data Changes 옵션
두 방법 비교
16. 디버깅·실행 트러블슈팅
브레이크포인트를 걸었는데 안 멈춘다면
RFC로 Call Transaction을 실행하면 덤프가 난다면
정리
17. ST05 SQL 트레이스
ST05란?
기본 사용 흐름
실전 예시: 가격결정이 조건레코드를 읽는 지점 찾기
정리
18. Antigravity + MCP로 SE80
왜 SE80 코드를 에디터·AI로 끌어오나
1단계 - Antigravity 설치와 확장
2단계 - ABAP FS로 SAP 연결
3단계 - MCP 서버 켜고 AI 도구 연결
4단계 - 두 번째 MCP(mcp-abap-adt) 함께 쓰기
활용 ① - 코드 조회·분석·주석
활용 ② - Antigravity에 Claude Code 붙이기
한계 - 쓰기(저장)는 lock에서 막힌다
19. Web GUI ALV Refresh 커서 이슈
증상
환경과 배경
먼저 알아둘 것 - is_stable과 soft refresh의 오해
대응 1 (권장) - refresh 대신 modify_cell
대응 2 - 그리드 커서를 저장했다가 복원
대응 3 - 화면(Dynpro) 레벨의 GET / SET CURSOR
정리 - 어떤 순서로 접근할까
20. SAT ABAP 런타임 분석
SAT는 무엇인가
SAT와 ST05, 무엇을 언제 쓰나
측정 시작하기
측정 변형(Variant)이 결과를 좌우한다
결과 읽는 법
실전: 어디부터 보나
주의사항
정리
21. ST04 DB 성능 모니터
ST04는 무엇을 보여주나
먼저 알아둘 것: ST04는 하나가 아니다
개발자가 볼 만한 지표
HANA 환경에서는 무엇이 달라지나
ST04와 ST05, 역할 구분
주의사항
정리
22. 메모리 스냅샷과 Memory Inspector
왜 ABAP 메모리를 들여다보나
메모리 스냅샷이란
스냅샷 만드는 방법 두 가지
Memory Inspector로 열어보기
두 스냅샷 비교하기
실전 흐름
주의사항
정리
23-1. SQL 튜닝 ① 왜 병목이 되는가
들어가며 - Open SQL과 ABAP SQL
왜 SQL이 병목이 되는가
5가지 황금률
측정하지 않고 튜닝하지 마라
측정 도구
S/4HANA에서 달라진 것
시리즈 로드맵
정리
23-2. SQL 튜닝 ② 결과 집합 줄이기
가장 흔한 실수 - ABAP에서 거르기
인덱스는 언제 동작하나
실행 계획으로 확인하기
S/4HANA에서의 인덱스
필요한 만큼만 가져오기
정리
23-3. SQL 튜닝 ③ 전송량 줄이기
SELECT * 의 비용
컬럼 스토어에서는 더 중요하다
구조체를 맞출 때 주의
집계는 DB에서
DISTINCT는 신중하게
정리
23-4. SQL 튜닝 ④ 접근 횟수 줄이기
루프 안의 SELECT
FOR ALL ENTRIES의 함정
FOR ALL ENTRIES vs JOIN
테이블 버퍼링
정리
23-5. SQL 튜닝 ⑤ OFFSET vs 키셋 페이징
페이징이 필요한 순간
OFFSET 기반 페이징
키셋 기반 페이징
언제 무엇을 쓰나
S/4HANA에서 유의할 점
정리
23-6. SQL 튜닝 ⑥ PACKAGE SIZE와 커서
전건을 한 번에 담으면 생기는 일
PACKAGE SIZE로 나눠 읽기
OPEN CURSOR - 명시적 커서
COMMIT WORK가 커서를 닫는다
처리하고 버리기
페이징과 패키지 처리는 다르다
실측으로 확인하기
정리
23-7. SQL 튜닝 ⑦ Code-to-Data
방향이 뒤집혔다
세 가지 층
어디까지 내려보낼 것인가
흔한 오해
시리즈 마무리
함께 보면 좋은 글
ABAP Writer 개발 고찰
1. 개발 목적
2. 개발 내용
3. 개발 시행착오
4. ABAP-FS에서의 CREATE OBJECT vs EDIT 차이
5. 부록 (참고)
6. 개발 폐기 사유
번외
Onuri Studio 개발 회고
1. 프로젝트 소개
2. 개발 과정 — Claude Code와의 대화로 만든 21개의 결정
3. 기술적 도전과 배운 것
4. Claude Code와의 개발 워크플로우
5. Google 연동 사용자 경험
6. 프로젝트 결론
SAP GUI·탐색 꿀팁 모음
① T-Code가 호출하는 프로그램·화면 찾기
② 전체 표준 메뉴 트리 보기 (S000)
③ 입력 이력 팝업이 안 뜰 때
④ 코드값의 "텍스트(내역)"는 Text Table에서
⑤ 리포트 화면을 그대로 메일에 넣기
SAP 운영 꿀팁 모음
① 프로그램 Variant를 다른 시스템으로 전송 (D → Q → P)
② IMG 설정 후 다른 클라이언트로 이관 (SCC1)
③ SAP Note 적용 (SNOTE)
④ 업데이트 모니터링과 통계 재생성 (SM13)
⑤ 배치잡 시간 변경 (SM37)
⑥ 자재문서번호 순서가 뒤죽박죽일 때
⑦ 뷰 클러스터 만들기 (SE54)
SAP GUI vs Web GUI
같은 화면, 다른 껍데기
구조적으로 어디서 갈리나
항목별 비교
그럼에도 Web GUI를 쓰는 이유
현업의 선호는 어떤가
개발자가 주의할 점