2025-12-10
작성
이번 프로젝트에서 proframe4를 처음으로 사용해 봤다. 티맥스소프트에서 만든 proframe은 B2B 제품이다 보니, 일반유저가 해당 제품을 사용해 보려면 proframe을 사용하는 프로젝트에 투입되어야지 쓸 수 있다.
보안상의 문제로 자세한 내용은 다룰 수 없지만, proframe을 개발하면서 알게 된 표면적인 내용을 정리해보려고 한다. proframe 개발 순서는 DTO > DAO > BO > SO 순서로 개발하기를 권장한다.
프로프레임 서비스 개발
DTO 작성하기
- DTO는 데이터를 전달하기 위한 Data Object.
- DBIO를 호출하거나 SO, BO 오퍼레이션의 in/out 객체로 사용
- DTO 내에서 타 DTO include 가능
- PDTO (pair DTO) : 복수건 처리 가능한 DTO. 쉽게 말해 DTO List 로 보면 됨. DTO 파일 내 우클릭 > Pair DTO 생성할 수 있다.
- 화면과 통신하는 DTO는 xml 파일 체크 필요하다. 체크시 '~DTOMsgXml' 파일이 만들어짐
DAO 작성하기
- DB 데이터를 컨트롤하며, 쿼리 작성하는 부분.
- 바인드 변수명은 :변수명 으로 한다.
- 주의할 점 : 쿼리 수정 후 [파라미터 적용] 클릭, [Query Test_Apply] 버튼 클릭해야 쿼리 내용이 반영된다.
- DBIO 실행 타입
- 1) persist : 단일 테이블에 대한 CRUD 기능 수행
- 2) view : persist에서 지원할 수 없는 여러 테이블에 대한 join 등의 select 수행
- 3) execute : persist에서 지원할 수 없는 insert/update/delete 등 기능 수행
- 다이내믹 쿼리 사용 시 /*DYNAMIC_KEYWORD*/ 작성하고, 호출 메서드를 아래와 같이 설정한다. BO단에서 dynamicBind.setBindingToDAO(_config)와 같이 바인딩 세팅 필요.
- 1) selectDynamic : 다이내믹 쿼리 1개
- 2) selectMultiDynamic :다이내믹 쿼리 1개 이상
- DTO 기존 항목 수정/삭제 시, 변경된 DTO in/out으로 사용하는 DAO 쿼리문을 재생성(재매핑) 해야 한다.
BO(Business Object) 작성하기
- BO는 비즈니스 기능을 수행한다.
- 오른쪽 파렛트를 통해 모듈 생성 가능.
- 1) 이너모듈 : 주석처럼 사용하기도. (가독성 위해)
- 2) 버츄얼 모듈
- 3) 루프 모듈
- BO 오퍼레이션 생성 후, 위에서 생성한 DAO 오퍼레이션을 드래그 앤 드롭한다.
SO (Service Object) 작성하기
- SO 오퍼레이션 생성 후, 위에서 생성한 BO 오퍼레이션을 드래그 앤 드롭한다.
- 입출력 (입력 DTO, 출력 DTO 매핑 정의 할 수 있다)
- 매핑방법
- 1) Bypass : 소스/타깃 DTO가 동일할 때 사용
- 2) Transformation : 일부 칼럼만 선택적으로 원하는 Target 칼럼을 지정할때 사용. Source/Target 명시 후 Assign에 칼럼을 지정한다. (cloneOption에 주의한다)
Deployment Descripter
SO까지 개발이 끝나고 나서 서버에 자원 반영 하려면,
- proframe-application.xml 먼저 선 업데이트 후,
- 반영할 자원 우클릭 > 프로프레임 > Generate Applicaion DD 클릭하여 Deployment Descripter를 한다.
- 이후 proframe-application.xml을 커밋해 준다. (커밋 이후 이미 등록된 오퍼레이션은 삭제하면 안 된다고 함)
버전 관리
- 체크아웃 : 자원 우클릭 > 팀 > 체크아웃 선택 시 검정체크박스가 생기면서 수정 및 커밋 가능해짐.
- 가져오기 : 서버에 저장된 서비스모듈을 가져올 수 있음.
용어참고
- PC : Process Component
- CS : Composite Service
- BS : Basic Service
- EC : Entity Component
- UC : Utility Component
'Backend > proframe' 카테고리의 다른 글
| 프로프레임(proframe) 특징 (0) | 2024.05.19 |
|---|