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) 보면 전부 도메인 → 데이터 요소 → 필드 흐름

>> 커뮤니티에서 지향

반응형