IT/SAP ABAP
[SAP 테이블 설계] GUI 차원에서의 테이블, 엘리먼트, 도메인
imsunbow
2025. 4. 22. 13:29
sap 테이블을 생성해보았다. 테이블 10개 내외, 그리고 그에 상응하는 엘리먼트와 도메인을 생성하여 필요한 부분에 참조하는 식의 설계를 진행해보았다.
진행하면서 느낀점 : sql을 접해본 나는 테이블 만드는 것은 몇번 해보았다. 당연히 테이블 먼저 생성 > 엘리먼트 생성> 도메인 생성을 하면서 진행하면 된다고 생각했는데, sap는 목적이 조금은 다르다. 그 반대로 접근하는 것을 권장한다. (도메인 > 엘리먼트 > 테이블)
이유는 다음과 같다.
1. 데이터의 일관성과 무결성 확보
- 같은 데이터 형식을 여러 테이블에서 쓸 때, 도메인으로 정의해두면 통일된 속성 유지 가능
- 예: 고객 ID는 항상 CHAR10으로 정해두면, 잘못된 타입 입력 방지됨
>> 아랫단부터 말아올리는 방식을 권장하는 sap abap 개발 특성상 도메인을 먼저 생성하는게 번거롭지 않다.
그렇지 않으면 테이블 > 엘리먼트 > 도메인 > 엘리먼트 > 테이블로 가는 5step을 거쳐야 하고, 일이 더 번거로워짐.
2. 중복 방지 & 재사용성
- 테이블마다 필드 속성을 매번 새로 정의하면, 유지보수 복잡해짐
- 도메인 → 데이터 요소 → 재사용하면 한 군데 수정으로 전체 반영 가능
>> 코드 재사용성에 관한 내용이다. 데이터설계의 객체지향화라고 볼 수 있음.
3. 유효성 검사 자동화
- 도메인에 설정한 값 범위나 형식 제약이 자동으로 적용됨
- 이걸 이용하면 프로그램 단에서 별도로 if문으로 막을 필요 없이, 데이터 딕셔너리 수준에서 제어 가능
>> 도메인을 이용하면 필드에 잘못된 값이 들어가는 걸 자동으로 막아줌.
4. SAP 내부 구조도 그렇게 설계되어 있음
- 실제 SAP 표준 테이블들도 대부분 도메인과 데이터 요소로 필드를 정의해 놓음
- SE11 들어가서 아무 표준 테이블(예: KNA1, MARA) 보면 전부 도메인 → 데이터 요소 → 필드 흐름
>> 커뮤니티에서 지향
반응형