개인적인 정리

전자정부프레임워크 기본 구조(라고 내가 생각하는 부분) 본문

전자정부표준프레임워크

전자정부프레임워크 기본 구조(라고 내가 생각하는 부분)

yeon.Biju 2018. 8. 21. 15:47

전자정부프레임워크 기본 구조(라고 내가 생각하는 부분)

 

전자정부프레임워크로 처음 개발을 할 때. 그러니까 날코딩이나 클래스정도 겨우 사용을 할 때, 혹은 php 를 하다가 처음 하게 되었을 때

적응하는데 처음으로 알아야 할 것들을 정리해본다.

계속해서 수정을 이뤄질 것으로 보인다.

 

 

 

하나의 게시판을 bbs라고 정의를 하고 생각을 해보자

 

자바 구조

 

bbs 

-- service

Bbs.java

BbsVO.java

BbsService.java

--impl

BbsServiceImpl.java

BbsDAO.java

-- web

BbsController.java

 

 

 

ibatis(mybatis) 구조

 

sqlmap

--config

bbsConfig.xml

--bbs

bbsDAO.xml

 

jsp 위치

 

WEB-INF/jsp/의 적당한 곳

 

 

로 생각을 하고 있다. 실제 게시판의 경우 (이것저것 삭제를 하고 보면) 아래와 같은 패턴으로 되어 있다.

 

 

 

당연 이 패턴만이 정답은 아니다.

기본 구조를 이렇게 정해놓고 상황에 따라서 확장 및 변경을 하는 것이 좋아보인다.

 

처음 이 구조가 익숙치 않아서. 그럴 때 작업한 것들은 지금 봐도 소스 구조가 좀 이상한 것들이 존재한다.

 

 

 

1. bbs.java와 bbsVO.java 는 VO로 정의될 수 있을 것 같다.

 

위의 그림을 기준으로 보면 

Board.java : 게시물에 대한 데이터 처리 모델

BoardVO.java : 게시물 관리를 위한 VO 클래스  

로 주석을 볼 수 있다.

 

Board.java 는 DB 테이블의 컬럼하고 매칭이 된다고 볼 수 있고(이렇게 보면  DTO라고 불러도 될 거 같은데)

BoardVO.java 는 Board.java 를 확장해서 검색, 페이징정보, 정렬순서등의 정보가 들어 있다.

 

 

DTO : Data Transfer Object

VO : Value Object

 

둘의 차이를 정확히는 모르겠는데 둘은 일단 비슷한 개념이라고 하는 것 같다. 

데이타를 담아서 전달하는 역할을 하는 것이라고 생각하고 있어도 될 것 같다.

 

VO는 setter 와 getter로만 되어 있는 data object 이다. 로직이 없이 데이타를 담아서 가지고 다닌다. 

 

 

VO를 씀으로서 VO자체의 코드를 작성하는 것이 꽤 귀찮다.  VO가 긴경우, VO의 setter, getter  에 선언된 method명이 복잡한 경우에는 정말이지 좀 그렇다. 개인적으로는 가급적 VO를 직접 작성할려고 한다. 전자정부프레임워크에 익숙해지기 위해서 직접 작성하기도 했지만 직접 작성하는 것이 웬지 더 좋은 것 같다. 물론 TEXT Editor열어놓고 카피해서 쓰지만.

 

 

2. service 의 역할 및 구성

 

Service 는 Interface

실제 내용은 impl 아래 ServiceImpl에서 구현을 한다.

 

 

 

3. DAO 의 정의 및 역할

DAO

Data Access Object

 

.

.

.

 

 

 

 

4. Controller는 ?

Controller 에 대한 설명은 아래 url을 참조하는 것이 더 좋은 것 같다. 

전자정부프레임워크 Controller 를 하나 열어놓고 아래와 같이 보면 좀 쉽지 않을까.

습관적으로 쓰는 것만 쓰다보니 아래와 같은 URL한번 보면 도움이 되는 것 같다.

 

http://www.egovframe.org/wiki/doku.php?id=egovframework:rte:ptl:annotation-based_controller

 

 

Comments