본문 바로가기
Mendix

[Mendix] 도메인 모델(Domain Model), Entity(엔티티)?

by WaterPunch 2022. 9. 2.

 

Mendix에서는 기본적으로 ORM(Object Relational Mapping) 기반으로 개발을 하게 된다.

(ORM에 대한 글 : https://gmlwjd9405.github.io/2019/02/01/orm.html)

 

ORM기반 개발을 하기 위해 Mendix는 Domain Model이라는 것을 지원한다.

(Mendix Domain Model Docs : https://docs.mendix.com/refguide/domain-model/)

 

(관련 영상 설명 : https://www.youtube.com/watch?v=CJbpoIK12mI) 

Mendix Domain Model 만들기 에 관한 영상

 

Mendix Application 초기 Explore 화면

Mendix Studio Pro를 실행하면 왼쪽 Explore 부분에 이렇게 보이게 되고 

MyFirstModule을 펼치면 Domain Model이 보인다.

 

더블클릭

 

Domain Model 초기 화면

아무런 설정이 되어있지 않은 초기의 도메인 모델 화면이다. 

이곳에서 Entity를 생성을 하게 될거다. 

 

상단에 도메인모델 탭 밑에 있는 Entity을 누르거나

흰색 빈 화면에 마우스 오른쪽 버튼을 클릭 > Add Entity를 눌러서 

Entity를 생성할 수 있다.

 

 

생성된 Entity

짠 생성이 되었다. 

여기서 Entity를 더블클릭을 하면 Entity에 대해 설정할 수 있다.

 

 

Entity 설정창

이런 화면이 나오는데 이곳에서 Entity명을 변경하거나

Entity의 Attribute(속성)을 추가해줄 수 있다.

 

 

 

대략적인 기능을 설명하면

Entity 설정창 상단

① : Entity명을 설정

② : 기존에 있는 Entity를 상속 

③ : 도메인 모델에 아이콘을 설정합니다 (제일 안쓰는 기능)

④ : 해당 Entity를 영속성으로 할지(Yes) 비영속성(No)으로 할지 설정

⑤ : 도메인 모델에는 보이지 않지만 생성일, 수정일, 소유자(User), 수정자(User) 와 같은 값을 Database에 저장할 지 설정

 

 

 

 

이 부분에서 가장 중요한 부분은 ④ Persistable일거라 생각한다.

도메인 모델에서 생성한 PE와 NPE

위와 같이

PE(Persistable Entity)는 파란색으로 나오고

NPE(Non Persistable Entity)는 노란색으로 나오게 되는데

 

둘의 차이점

(Docs : https://docs.mendix.com/refguide/persistability/)

 

PE(Persistable Entity)는

애플리케이션을 실행할 때 Mendix Application 에서

설정해놓은 데이터베이스에 DDL을 날리면서 테이블이 생성된다. (Oracle, MySQL, PostgreSQL 등등...)

이후, 수정사항이 있다면 빌드할 때 Alter문이 날라간다.

Microflow나 Nanoflow에서 객체를 Commit하면 해당 테이블에 행이 삽입이 되게 되고,

데이터베이스에서 데이터를 꺼내올 때는 Retrieve라는 기능을 사용하게 된다.

 

 

 

NPE(Non Persistable Entity)는

데이터베이스에 테이블이 생성되지 않고 임시로 간주하여 객체가 메모리에 저장이 된다.

저장되는 위치는 서버측에 저장되는 것이 아닌 클라이언트 측에 저장된다.

주로 멘딕스의 도메인 모델에서 생성한 DB 테이블이 아닌

기존에 존재하는 DB 테이블에서 쿼리를 통해 값을 가져오거나,

API 통신을 통해 JSON 값을 받을 때 사용된다.

 

 

(Gabage Collection 에 대한 내용 : https://docs.mendix.com/refguide/transient-objects-garbage-collecting/)

 

 

 

반응형

댓글