ABAP 50질문

박재완·2025년 2월 3일

1. ABAP 기본 개념

1. ABAP란 무엇이며, SAP 시스템에서 어떤 역할을 하는지 설명해 주세요.

  • ABAP(Advanced Business Application Programming)는 SAP 시스템에서 비즈니스 로직을 구현하는 고급 프로그래밍 언어입니다.
  • 주로 SAP ERP, S/4HANA 등의 백엔드 개발에 사용되며, 데이터 처리, 사용자 인터페이스, 보고서 생성, 인터페이스 개발 등의 역할을 수행합니다.

2. ABAP의 주요 데이터 타입에는 어떤 것들이 있으며, 각각의 특징은 무엇인가요?

  • Elementary Data Types:

    • C (Character): 문자열 저장
    • N (Numeric): 숫자 형식의 문자
    • D (Date): YYYYMMDD 형식
    • T (Time): HHMMSS 형식
    • I (Integer), F (Floating Point), P (Packed Number)
  • Complex Data Types:

    • Structures (다양한 데이터 타입을 포함한 객체)
    • Internal Tables (배열과 비슷한 개념)

3. ABAP의 주요 구성 요소(Structure, Table, Report 등)는 무엇인가요?

  • Structure: 여러 필드를 포함하는 데이터 형식
  • Table: 데이터 저장을 위한 기본 단위
  • Report: 데이터를 조회하고 처리하는 프로그램
  • Function Module: 재사용 가능한 함수
  • Class & Methods: 객체지향 프로그래밍을 지원

4. ABAP과 Java, Python 같은 다른 프로그래밍 언어와의 차이점은 무엇인가요?

  • SAP 전용 언어ERP 환경과 밀접하게 연관
  • 데이터베이스 OPEN SQL 내장, SAP 테이블과 연동이 쉬움
  • 트랜잭션 기반 개발(예: SE38, SE80 등 SAP GUI 사용)
  • 최신 SAP 환경에서는 ABAP on HANA를 지원

5. ABAP 프로그램의 실행 흐름과 주요 이벤트(EVENTS)는 어떻게 동작하나요?

  • LOAD-OF-PROGRAM: 프로그램 로드 시 실행
  • INITIALIZATION: 초기화 블록
  • AT SELECTION-SCREEN: 선택 화면 이벤트
  • START-OF-SELECTION: 데이터 조회 시작
  • END-OF-SELECTION: 데이터 조회 완료 후 출력
  • TOP-OF-PAGE / END-OF-PAGE: 페이지 헤더 및 푸터

2. 데이터베이스 및 내부 테이블

6. ABAP에서 내부 테이블(Internal Table)의 개념과 사용 목적은 무엇인가요?

  • SAP 내부에서 임시 데이터를 저장하는 구조
  • 대량의 데이터를 효율적으로 처리할 수 있도록 사용됨
  • TYPES, DATA 선언 후 STANDARD TABLE, SORTED TABLE, HASHED TABLE 지정 가능

7. Standard Table, Sorted Table, Hashed Table의 차이점과 각각을 언제 사용하는 것이 좋은가요?

  • Standard Table: 기본 배열 구조, 검색 속도 느림
  • Sorted Table: 정렬된 데이터 저장, 이진 검색 사용 가능
  • Hashed Table: 해시 알고리즘 기반 검색, 키 기반 빠른 조회 가능

8. ABAP에서 데이터베이스 접근을 위해 사용하는 주요 SQL 문법(SELECT, INSERT, UPDATE, DELETE 등)은 무엇인가요?

  • SELECT * FROM ztable INTO TABLE lt_data.
  • INSERT INTO ztable VALUES wa_data.
  • UPDATE ztable SET field = 'value' WHERE condition.
  • DELETE FROM ztable WHERE condition.

9. OPEN SQL과 NATIVE SQL의 차이점은 무엇인가요?

  • OPEN SQL: SAP가 제공하는 DBMS 독립적인 SQL
  • NATIVE SQL: 특정 DBMS(SQL Server, Oracle 등) 전용 SQL, 성능 최적화 가능

10. SELECT SINGLE과 SELECT UP TO 1 ROWS의 차이점은 무엇인가요?

  • SELECT SINGLE인덱스를 활용하여 빠르게 한 개의 레코드 검색
  • SELECT UP TO 1 ROWS조건에 맞는 여러 개의 데이터 중 첫 번째 행 반환

3. 성능 최적화 및 디버깅

11. ABAP 프로그램의 성능을 분석하고 최적화하는 방법에는 어떤 것이 있나요?

  • ST05 SQL Trace 사용하여 성능 분석
  • FOR ALL ENTRIES 활용 (JOIN이 어려운 경우)
  • 병렬 처리 및 인덱스 최적화

12. ST05(SQL Trace)와 SAT(Runtime Analysis)를 사용하여 성능을 분석하는 방법을 설명해 주세요.

  • ST05: SQL 실행 로그를 추적하여 DB 성능 분석
  • SAT: 프로그램 실행 시간을 측정하여 병목 현상 파악

13. LOOP AT 내부 테이블 사용 시 성능을 최적화하는 방법은 무엇인가요?

  • READ TABLE 사용하여 불필요한 LOOP 방지
  • SORTED TABLE, HASHED TABLE 활용

14. 병렬 처리(Parallel Processing) 기법과 이를 활용하는 방법을 설명해 주세요.

  • CALL FUNCTION 'FM_NAME' IN BACKGROUND TASK 사용

4. ABAP 개발 및 모듈 관련 질문

15. ALV(ABAP List Viewer) Report의 장점과 기본적인 사용법을 설명해 주세요.

  • GUI 기반의 가독성 높은 표 형태 데이터 출력
  • REUSE_ALV_GRID_DISPLAY 사용

16. BDC(Batch Data Communication)와 LSMW의 차이점과 각각의 장점은 무엇인가요?

  • BDC: 커스텀 가능하지만 개발 필요
  • LSMW: 표준 기능으로 데이터 마이그레이션 지원

17. SAP Script, SmartForms, Adobe Forms의 차이점과 각각을 언제 사용하는 것이 좋은가요?

  • SAP Script: 기본적인 출력 양식 (구식)
  • SmartForms: 그래픽 기반 양식, 다국어 지원
  • Adobe Forms: 최신 UI, PDF 지원

5. 최신 ABAP 기술 및 실무 적용

18. SAP HANA에서 ABAP 성능을 개선하기 위해 필요한 기법은 무엇인가요?

  • CDS View, AMDP(ABAP Managed Database Procedures) 활용
  • 코드를 HANA DB 레벨에서 실행하여 성능 향상

19. ABAP RESTful Programming Model(RAP)이란 무엇이며, 기존의 ABAP 개발 방식과의 차이점은 무엇인가요?

  • 클라우드 환경에서 OData 기반 RESTful API 제공

20. SAP S/4HANA로의 전환(Migration) 시 기존 ABAP 코드에서 고려해야 할 사항은 무엇인가요?

  • CDS View로 변환, Open SQL 최적화, SELECT * 사용 지양

3. 성능 최적화 및 디버깅

21. ABAP 프로그램의 성능을 분석하고 최적화하는 방법에는 어떤 것이 있나요?

  • SQL Trace (ST05): 데이터베이스 쿼리 실행 성능 분석
  • Runtime Analysis (SAT, SE30): 프로그램 실행 속도 측정
  • INDEX 활용: 적절한 필드에 인덱스를 추가하여 검색 성능 향상
  • JOIN 및 FOR ALL ENTRIES 최적화: 적절한 방법을 선택하여 데이터 조회

22. ST05(SQL Trace)와 SAT(Runtime Analysis)를 사용하여 성능을 분석하는 방법을 설명해 주세요.

  • ST05 (SQL Trace): 데이터베이스 쿼리 실행 로그를 확인하여 병목 지점을 분석
  • SAT (Runtime Analysis, SE30): ABAP 코드 실행 시간 및 성능 분석

23. LOOP AT 내부 테이블 사용 시 성능을 최적화하는 방법은 무엇인가요?

  • 내부 테이블을 SORTED TABLE 또는 HASHED TABLE로 사용하여 검색 속도 향상
  • READ TABLE을 사용하여 불필요한 반복문 제거
  • LOOP AT ... WHERE 절을 사용하여 불필요한 데이터 필터링

24. 병렬 처리(Parallel Processing) 기법과 이를 활용하는 방법을 설명해 주세요.

  • CALL FUNCTION ... IN BACKGROUND TASK를 사용하여 백그라운드 프로세스를 활용
  • CALL FUNCTION ... STARTING NEW TASK를 사용하여 병렬 실행
  • 병렬 처리 시 SHARED MEMORY 및 RFC 사용을 고려

25. ABAP에서 실행 시간을 측정하는 방법(예: GET RUN TIME FIELD)은 무엇인가요?

  • GET RUN TIME FIELD lv_time.을 사용하여 실행 시간을 측정
  • cl_abap_runtime 클래스를 활용하여 정밀한 성능 분석

26. SELECT 문을 최적화할 때 고려해야 할 사항은 무엇인가요?

  • SELECT * 대신 필요한 필드만 조회
  • WHERE 절에 인덱스 필드 포함
  • JOIN과 FOR ALL ENTRIES의 적절한 사용

27. ABAP 디버깅(Debugging) 기능을 활용하는 방법과 주요 기능은 무엇인가요?

  • SE80 또는 SE38에서 Breakpoint 설정
  • Watchpoint를 활용하여 특정 변수 값 변화 감지
  • Debugging 모드에서 Field 변경 및 변수 모니터링 가능

28. INDEX를 활용하여 성능을 개선하는 방법과 주의해야 할 점은 무엇인가요?

  • 인덱스 필드를 WHERE 절에서 사용하여 검색 성능 향상
  • 너무 많은 인덱스는 오히려 INSERT, UPDATE 성능 저하를 초래

29. Standard Table과 Hashed Table을 비교하여 성능 차이를 설명해 주세요.

  • Standard Table: 순차 검색, 성능 저하 가능
  • Hashed Table: 키 기반 검색, 성능 우수

30. Nested Loop와 Parallel Cursor 기법의 차이점과 성능 최적화 방법을 설명해 주세요.

  • Nested Loop: 이중 반복문으로 데이터 처리 (성능 저하 가능)
  • Parallel Cursor: SORT 후 두 개의 내부 테이블을 병렬로 비교하여 성능 개선

4. ABAP 개발 및 모듈 관련 질문

31. ALV(ABAP List Viewer) Report의 장점과 기본적인 사용법을 설명해 주세요.

  • 데이터를 가독성 높은 테이블 형태로 출력
  • REUSE_ALV_GRID_DISPLAY 함수 사용
  • 사용자 정의 가능한 정렬 및 필터 기능 지원

32. BDC(Batch Data Communication)와 LSMW의 차이점과 각각의 장점은 무엇인가요?

  • BDC: 커스텀 가능하지만 개발 필요
  • LSMW: 표준 기능을 활용한 데이터 마이그레이션

33. SAP Script, SmartForms, Adobe Forms의 차이점과 각각을 언제 사용하는 것이 좋은가요?

  • SAP Script: 고전적인 출력 양식 (이제 거의 사용되지 않음)
  • SmartForms: GUI 기반의 양식 관리 (주로 사용됨)
  • Adobe Forms: 최신 기술, PDF 출력 지원

34. RFC(Remote Function Call)의 개념과 사용 사례를 설명해 주세요.

  • SAP 시스템 간 또는 SAP ↔ 외부 시스템 간의 통신
  • CALL FUNCTION 'FUNCTION_NAME' DESTINATION 'RFC_DEST' 사용

35. IDoc(Intermediate Document)이란 무엇이며, 데이터 교환을 위해 어떻게 활용되나요?

  • SAP 시스템 간 또는 외부 시스템 간 데이터 교환을 위한 표준 메시지 형식
  • 주요 트랜잭션: WE20 (파트너 프로파일), WE30 (IDoc 타입 관리)

36. ABAP Proxy와 Web Services의 차이점과 각각의 활용 사례를 설명해 주세요.

  • ABAP Proxy: SAP 내부 웹 서비스 호출에 적합
  • Web Services (SOAP, REST): SAP ↔ 외부 시스템 간 통신에 활용

37. User Exit, BADI, Enhancement Spot의 차이점과 각각을 활용하는 방법은 무엇인가요?

  • User Exit: 기존 기능을 수정하는 확장 지점 (고전적 방식)
  • BADI (Business Add-In): 객체지향적인 확장 기법
  • Enhancement Spot: 최신 방식의 코드 확장

38. SAP Fiori와 OData 서비스 개발 시 ABAP과의 연계 방식은 어떻게 되나요?

  • OData 서비스 (SAP Gateway) 사용하여 Fiori UI와 통신
  • ABAP에서는 CDS View, SEGW 트랜잭션을 활용하여 OData 생성

39. CDS View(Core Data Services)와 기존 ABAP Dictionary View의 차이점은 무엇인가요?

  • CDS View: HANA 최적화된 데이터 모델, SQL 성능 향상
  • Dictionary View: 단순 데이터 조회 용도

40. SAP UI5와 ABAP의 연관성 및 개발 방식에 대해 설명해 주세요.

  • SAP UI5는 SAP Fiori UI 프레임워크
  • ABAP과는 OData 서비스 (SEGW)와 연결

5. 최신 ABAP 기술 및 실무 적용

41. SAP HANA에서 ABAP 성능을 개선하기 위해 필요한 기법은 무엇인가요?

  • AMDP, CDS View 활용
  • SELECT * 지양, 인메모리 최적화 SQL 사용

42. ABAP on HANA에서 CDS View와 AMDP(ABAP Managed Database Procedure)의 차이점은 무엇인가요?

  • CDS View: HANA 최적화 SQL
  • AMDP: HANA DB의 Stored Procedure 직접 실행

43. ABAP RESTful Programming Model(RAP)이란 무엇이며, 기존의 ABAP 개발 방식과의 차이점은 무엇인가요?

  • SAP 클라우드 환경에서 OData API 기반 개발 방식

44. SAP가 강조하는 클린 코드(Clean ABAP) 원칙과 이를 준수하는 방법은 무엇인가요?

  • 객체 지향 설계 원칙 준수, 재사용성 증가, 성능 최적화

50. SAP S/4HANA로의 전환(Migration) 시 기존 ABAP 코드에서 고려해야 할 사항은 무엇인가요?

  • CDS View 전환, Open SQL 최적화, GUI 기반 프로그램을 Fiori로 변경
profile
안녕하세요!

0개의 댓글