일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 오라클
- spring form tag
- php
- java
- @RequestBody
- 이클립스
- exception
- 톰캣
- jquery
- DB
- SSL
- JSTL
- Oracle
- switch
- 날짜
- RADIO
- 웹 플랫폼 설치 관리자
- 스크립트
- null
- MYSQL
- 문자열
- 네이버스마트 에디터
- maven
- HTML5
- 전자정부 표준프레임워크
- json
- 한글
- html
- 호환성
- checbox
- Today
- Total
개인적인 정리
전자정부프레임워크 기본 구조(라고 내가 생각하는 부분) 본문
전자정부프레임워크 기본 구조(라고 내가 생각하는 부분)
전자정부프레임워크로 처음 개발을 할 때. 그러니까 날코딩이나 클래스정도 겨우 사용을 할 때, 혹은 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
'전자정부표준프레임워크' 카테고리의 다른 글
public 메소드부터 반환된 private 배열 보안코드 예시 (0) | 2018.09.11 |
---|---|
크롬에서 jsessionid가 문제가 될 때 (0) | 2018.09.11 |
전자정부프레임워크 개발환경 다운로드 (0) | 2018.09.04 |
Maven 메이븐 (0) | 2018.08.28 |
페이지가 2번 로드되는 되는 현상 (0) | 2018.08.20 |
전자정부프레임워크의 몇가지 url (0) | 2018.08.15 |
전자정부프레임워크 about (0) | 2018.08.15 |
java 에서 json 데이타 받는 방법의 하나의 예 (0) | 2018.07.11 |