자바와 SAP OData 서비스의 데이터 모델 비교

Ada·2024년 9월 13일

SAP ABAP

목록 보기
12/21

아직 SAP 의 데이터 모델 관련한 개념이 제대로 잡히지 않아서, 원래 사용하던 JAVA 와 비교하여 공부한 내용을 적어보려고 한다.


1. SEGW: SAP Gateway Service Builder와 자바의 JPA 엔티티

SEGW는 SAP Gateway Service Builder의 약자로, SAP에서 OData 서비스를 개발하고 관리하는 도구이다. 이 도구를 사용해 SAP 데이터를 외부 애플리케이션으로 제공할 수 있다.
SEGW에서 엔티티(Entity)를 정의하는 방식은 자바의 JPA(Entity) 클래스와 매우 유사하다. 자바에서 엔티티 클래스를 통해 데이터베이스 테이블을 정의하고 사용하는 것처럼, SEGW에서는 OData 서비스를 통해 SAP 데이터를 구조화한다.

- SAP OData (SEGW에서의 엔티티 정의)

ENTITY ZCUSTOMER {
    KEY CustomerID : CHAR(10);
    FirstName : CHAR(50);
    LastName  : CHAR(50);
    Email     : CHAR(100);
}

SAP에서는 고객 데이터를 외부로 제공하기 위해 엔티티를 정의한다. 각 필드는 고객 정보(고객 ID, 이름, 성, 이메일)를 나타내며, ABAP 데이터 타입을 사용해 정의된다.
- 자바 JPA 엔티티 클래스

@Entity
public class Customer {
    
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String firstName;
    private String lastName;
    private String email;

    // Getters and setters
}

자바에서는 @Entity 어노테이션을 사용해 데이터베이스 테이블과 매핑되는 Customer 클래스를 정의한다. 이 클래스는 고객 정보를 나타내며, 데이터베이스의 테이블과 직접 연결된다.


SAP와 자바의 엔티티는 데이터베이스 테이블의 레코드를 나타내는 객체로, 둘 다 각각의 필드를 통해 데이터베이스와 상호작용한다.

2. DDIC Structure: 데이터 딕셔너리 구조체와 자바 DTO 비교

DDIC Structure는 SAP에서 데이터를 정의하는 구조체로, 자바의 DTO(Data Transfer Object)와 비슷하다.
둘 다 데이터를 주고받기 위한 형식으로 사용되며, 데이터를 계층 간에 전달할 때 중요한 역할을 한다.

- SAP ABAP 구조체 (DDIC Structure)

TYPES: BEGIN OF ty_customer,
         customer_id TYPE char10,
         first_name  TYPE char50,
         last_name   TYPE char50,
         email       TYPE char100,
       END OF ty_customer.

SAP의 DDIC 구조체는 고객 정보 필드를 정의하는데 사용된다. 이 구조체는 SAP 시스템 내의 데이터를 외부로 제공할 때 중요한 역할을 하며, 데이터베이스 테이블과 매핑된다.

- 자바 DTO 클래스

public class CustomerDTO {
    private Long id;
    private String firstName;
    private String lastName;
    private String email;

    // Getters and setters
}

자바에서는 DTO를 사용해 데이터를 주고받는다. CustomerDTO 클래스는 SAP에서의 구조체와 비슷한 역할을 하며, 데이터를 외부로 전달할 때 사용된다.


SAP의 DDIC 구조체와 자바의 DTO는 둘 다 데이터를 주고받기 위한 구조를 정의한다. 각 필드는 데이터를 담는 컨테이너 역할을 하며, 필요할 때 데이터를 전송하고 받는 데 사용된다.


3. Entity Type: 엔티티의 구조 정의

Entity Type은 SAP에서 엔티티의 속성을 정의하는 데이터 모델이다. 이는 자바에서의 엔티티 클래스의 필드 정의와 유사하며, 엔티티 타입을 통해 데이터를 외부에서 접근할 때 어떤 형식으로 제공될지를 결정할 수 있다.

- SAP OData (Entity Type 정의)

ENTITY TYPE ZCUSTOMER {
    CustomerID : CHAR(10);
    FirstName  : CHAR(50);
    LastName   : CHAR(50);
    Email      : CHAR(100);
}

SAP에서는 엔티티 타입을 통해 각 필드의 데이터 타입과 길이를 정의한다. 고객 정보를 외부 애플리케이션에서 사용할 수 있도록 OData 서비스를 통해 제공한다.

- 자바 JPA 엔티티 필드

@Entity
public class Customer {
    @Id
    private Long id;
    
    private String firstName;
    private String lastName;
    private String email;

    // Getters and setters
}

자바의 JPA 엔티티 클래스에서 필드 정의는 데이터베이스 테이블의 각 열에 매핑된다. SAP의 엔티티 타입 정의와 유사하게, 필드의 데이터 타입과 길이를 지정한다.


Entity Type은 SAP의 데이터를 외부에서 사용할 수 있도록 준비하는 중요한 과정이다. 자바의 엔티티 클래스와 마찬가지로, SAP에서도 데이터를 구조화하고 제공하는 역할을 한다.


4. ABAP Structure: SAP에서 데이터를 정의하는 구조체

ABAP Structure는 SAP에서 데이터를 구조화하여 외부 애플리케이션으로 전송할 때 사용하는 데이터 구조이다. 자바의 DTO와 유사하게 여러 필드를 포함하며, SAP 시스템 내에서 데이터를 주고받기 위한 구조로 사용된다.

- SAP ABAP에서 구조체 사용

DATA: customer TYPE ty_customer.

customer-customer_id = 'C001'.
customer-first_name = 'John'.
customer-last_name = 'Doe'.
customer-email = 'john.doe@example.com'.

SAP에서는 ABAP 구조체를 통해 데이터를 다룬다. customer라는 구조체 객체를 생성하고, 각각의 필드에 데이터를 할당하여 사용할 수 있다.

- 자바에서 DTO 사용

CustomerDTO customer = new CustomerDTO();
customer.setId(1L);
customer.setFirstName("John");
customer.setLastName("Doe");
customer.setEmail("john.doe@example.com");

자바에서는 DTO 객체를 생성한 후 각 필드에 값을 설정한다. 이를 통해 데이터를 주고받고 처리할 수 있다.

SAP의 ABAP Structure는 자바의 DTO와 유사하게 데이터의 정의와 전송에 사용된다. 둘 다 데이터를 구조화하여 주고받는 중요한 역할을 한다.

profile
백엔드 프로그래머

0개의 댓글