반응형
Notice
Recent Posts
Recent Comments
세상 모든 잡동사니 집합소 스레TV
[BC]Dictionary Object & Nametab 본문
728x90
반응형
✅ 1. Dictionary Object란?
📘 정의:
Dictionary Object는 SAP의 ABAP Dictionary (SE11) 안에서 정의되는 모든 데이터 구조를 의미합니다.
이들은 SAP 시스템 내에서 데이터베이스 테이블을 정의하거나, 데이터를 저장/처리하는 구조를 만드는 데 사용됩니다.
🔹 대표적인 Dictionary Object 종류:
객체 유형설명
Table (Transparent/Cluster/Pooled) | 실제 DB 테이블. 데이터 저장 |
View | 여러 테이블을 조합해 조회 용도로 사용 |
Data Element | 필드의 타입과 속성 정의 |
Domain | 필드 값의 범위, 길이, 유형 정의 |
Structure | 물리적 테이블은 아니지만 필드 묶음 (예: 인터페이스용) |
Table Type | 내부 테이블 정의 시 사용 |
🛠 예시:
- MARA는 Material Master 데이터를 저장하는 Transparent Table입니다.
- 이 테이블의 필드 중 MATNR은 Data Element이고, 그것은 다시 Domain을 통해 길이와 형식을 정의받습니다.
✅ 2. Name Tab (네임탭)이란?
📘 정의:
Name Tab은 SAP 시스템 내부에서 사용되는 **테이블의 메타데이터(정의 정보)**를 담고 있는 일종의 시스템 내부 캐시 테이블입니다.
SAP는 퍼포먼스를 위해, 테이블이나 필드 정보를 매번 ABAP Dictionary에서 직접 조회하지 않고, 한 번 로딩된 정보를 Name Tab에 저장하고 이를 재사용합니다.
🔹 이름탭에 저장되는 주요 정보:
- 테이블의 필드 이름
- 필드 데이터 타입
- 필드 길이
- Key 여부
- 기타 속성 (nullable, default 등)
이런 정보를 저장하고 있다가 ABAP 프로그램이 데이터를 다룰 때 빠르게 참조할 수 있도록 도와줍니다.
✅ 관계 요약
- Dictionary Object는 테이블/도메인/뷰/데이터요소 같은 정의 객체입니다.
- Name Tab은 이러한 Dictionary Object의 정의가 시스템 내부에서 빠르게 사용될 수 있도록 캐시 형태로 저장된 정의 정보입니다.
✅ 트랜스포트 시 어떤 일이 발생하나?
- 트랜스포트로 Dictionary Object가 들어오면,
- 시스템은 그것을 데이터베이스에 적용함과 동시에,
- Name Tab도 업데이트/이동/재생성되어 시스템이 변경 내용을 인식할 수 있게 합니다.
- 이 Name Tab 업데이트는 보통 배치 작업으로 실행됩니다.
✅ 예시 시나리오: 테이블 ZEMPLOYEE 생성
🔷 개발자가 ABAP Dictionary(SE11)에서 아래와 같은 테이블을 정의했다고 가정해 봅시다:
필드 이름데이터 타입설명
EMPID | CHAR(10) | 사원 ID |
NAME | CHAR(50) | 이름 |
DEPT | CHAR(10) | 부서 코드 |
📌 1. 이 테이블에 해당하는 Dictionary Objects는 다음과 같습니다:
객체설명
Table: ZEMPLOYEE | 전체 테이블 정의 |
Data Element: ZEMPID_EL | EMPID 필드의 속성 정의 (Label, Help 등) |
Domain: ZEMPID_DM | EMPID의 타입 (CHAR), 길이 (10), 값 범위 등을 정의 |
(같은 방식으로 NAME, DEPT도 Data Element 및 Domain을 가짐) |
🧠 시스템 내부 처리 구조 (그림처럼 생각하기)
┌────────────────────────┐
│ ABAP Dictionary (SE11) │ ← 개발자가 객체 생성
└────────────────────────┘
│
▼
┌────────────────────────┐
│ Dictionary Objects │
│ - Table: ZEMPLOYEE │
│ - Data Element, Domain│
└────────────────────────┘
│
▼
┌────────────────────────┐
│ 실제 DB Table 생성 │
│ => ZEMPLOYEE │
└────────────────────────┘
│
▼
┌────────────────────────┐
│ Name Tab (메타데이터 캐시) │
│ - EMPID, NAME, DEPT 정의 │
│ - 타입, 길이, Key 여부 등 │
└────────────────────────┘
│ ABAP Dictionary (SE11) │ ← 개발자가 객체 생성
└────────────────────────┘
│
▼
┌────────────────────────┐
│ Dictionary Objects │
│ - Table: ZEMPLOYEE │
│ - Data Element, Domain│
└────────────────────────┘
│
▼
┌────────────────────────┐
│ 실제 DB Table 생성 │
│ => ZEMPLOYEE │
└────────────────────────┘
│
▼
┌────────────────────────┐
│ Name Tab (메타데이터 캐시) │
│ - EMPID, NAME, DEPT 정의 │
│ - 타입, 길이, Key 여부 등 │
└────────────────────────┘
✅ Name Tab이 중요한 이유
- ABAP 프로그램이나 시스템이 테이블을 사용할 때마다,
- 매번 Dictionary에서 구조를 읽으면 느립니다.
- 그래서 Name Tab에 저장된 정보를 빠르게 불러옵니다 (캐시).
- 예: SELECT * FROM ZEMPLOYEE를 실행하면 SAP는 먼저 Name Tab을 참조하여 필드와 타입 정보를 가져옵니다.
✅ 트랜스포트 시 처리 순서 요약
- 개발 시스템에서 ZEMPLOYEE 테이블을 만든 후 트랜스포트 요청 생성
- 품질(QA) 시스템에 임포트
- 임포트되면서 시스템이 다음 작업을 수행:
- Dictionary Object 등록
- 실제 DB에 테이블 생성/수정
- Name Tab 이동 및 갱신 (배치 작업으로 수행됨)
- 객체 활성화
✅ 추가 그림 설명 (요약)
트랜스포트 임포트 시 내부 처리 순서
┌──────────────┐
│ 트랜스포트 요청 │
└────┬─────────┘
▼
[1] Dictionary Object 적용
▼
[2] DB에 구조 반영
▼
[3] Name Tab 이동 및 갱신 (배치)
▼
[4] 활성화 및 사용 가능 상태
<관련 C_TADM_23>
When importing a transport request, which steps are executed by a batch job? Note: There are 3 correct answers to this question
- A.Move name tab
- B.Import of dictionary objects
- C.Distribution of dictionary objects
- D.Activation of ABAP programs
- E.Activation of dictionary objects
답: A,C,D,E
반응형
'기술 > SAP BC' 카테고리의 다른 글
[BC] SAP Solution Manager란? 주요 기능과 활용 정리 (1) | 2025.05.02 |
---|---|
[BC] SAP Analytics Cloud란? (0) | 2025.05.01 |
[BC] SAP Cloud Connector란? (0) | 2025.04.29 |
[BC] SAP Web Dispatcher (0) | 2025.04.28 |
[BC] 개별 백업, 스냅샷 백업 및 파일시스템 백업 (0) | 2025.04.26 |
[BC] /sap/public/icf_info/icr_groups (0) | 2025.04.25 |
Comments