고운소프트 / 엔티티웍스

소프트

고운소프트 / 엔티티웍스

리치 앱

제품 > 엔티티웍스

Wed Jul 13 00:00:00 KST 2016

1. 개요

Java 프로그래밍 언어를 사용한 데이터베이스 애플리케이션의 개발에는 하나의 데이터베이스 객체와 관련되어 수 많은 Java 코드, SQL 등이 작성됩니다. 개발의 전 과정에서 이들 작업은 적지않은 시간과 노력이 필요합니다.

데이터베이스에서 실행되는 대부분의 프로그램들은 인터프리트 되므로, 코드 작성에서의 오타는 버그가 아닌 디버깅 작업을 유발합니다.

특히, 데이터베이스내 식별자들의 변경은 개발의 전 과정에서 충격적인 이슈입니다. 하지만, 개발에서 가장 중요한 과정은 이름을 짓는 일 이므로, 필요하다면 이름을 바꿔야 하지만, 이미 작성된 코드를 수정하는 부담으로 말도 안되는 이름들을 그대로 두는 바랍직하지 않은 경우가 많습니다.

데이터베이스 모델링을 잘 했다면 엔티티웍스를 사용하여 기초코드를 생성하여 개발의 생산성을 향상 시킬 수 있습니다.

2. 코드 생성

2.1. JPA Entity, POJO

데이터베이스 카탈로그로 부터 테이블, 뷰에 대한 정보를 기초로 JPA 엔티티 클래스, POJO 클래스 코드를 생성합니다.

코드의 생성에는 테이블, 뷰, 컬럼의 이름뿐만 아니라 코멘트 정보도 포함되는데, 프로퍼티에 대한 getter, setter에 코멘트가 설정되기 때문에, eclipse의 Content/Code Assist를 통해 표시되어 프로그래밍 능률을 높입니다.

2.2. GWT EntityProxy

Java to JavaScript 컴파일러 기술로 대표되는 GWT인터프리터로서 JavaScript의 단점을 극복하도록 하고, Java를 사용하여 리치 앱을 개발할 수 있도록 합니다.

GWT는 서버와의 커뮤니케이션 방법에서 POJO를 사용하는 GWT-RPC와 추가로 EntityProxy 인터페이스가 필요한 RequestFactory가 있습니다. RequestFactory가 GWT-RPC에 비해 보다 발전된 형태이긴 하지만 서버에서 동작하는 Entity, POJO와 대응되는 별도의 인터페이스를 정의해야 하는 단점이 있습니다.

엔티티웍스는 JPA Entity, POJO와 마찬가지로 이들 인터페이스 코드를 생성합니다.

2.3. GXT PropertyAccess

GXT는 GWT로 개발된 프레임워크로 여기에 포함되어 있는 Grid, Chart등 많은 컴포넌트는 POJO, EntityProxy의 데이터에 접근하기위해 PropertyAccess란 인터페이스를 사용합니다.

이 인터페이스 역시 적어도 Entity, POJO, EntityProxy의 개수만큼 작성해야 합니다.

엔티티웍스는 이 인터페이스 코드를 생성합니다.

2.4. MyBatis 3 Mapper XML

엔티티웍스MyBatis Mapper의 작성을 위하여, java.util.Map, POJO, Entity의 프로퍼티와 잘 대응되도록 SELECT, INSERT, UPDATE, DELETE에 대하여 기초 코드를 생성합니다.

3. DBMS간 데이터 전송

데이터베이스 스키마가 변경되거나 서로 다른 벤더의 DBMS로 작업하는 경우 데이터를 전송합니다.

전송이 필요한 테이블과 컬럼은 선택할 수 있고, 추가된 컬럼에 대하여 초기값을 설정할 수 있습니다.