Sample Application 설치
본 페이지를 통해 제공되는 Sample Application은 Anyframe Core 3.2.1, Anyframe Web 3.2.1을 기반으로 개발되었다.
다음은 Sample로 제공하고 있는 오픈 마켓 시스템(eMP: e-MarketPlace)에 대한 개요 및 설치 순서로서 설치 순서는 Sample Application의 Sample Binary 설치 방법과 Sample Source 설치 방법으로 구분하여 설명을 진행한다.
개요
Sample Application은 오픈 마켓 시스템은 e-Market Place로 구성되어 있으며 다음과 같은 5개의 메뉴로 구성되어 있다.
또한 다양한 Anyframe의 기능이 사용했으며 각 메뉴는 기본적인 CRUD 형식으로 구현하였다.
- User Management
- Sales Management
- Purchase Management
- MIPlatform Sample
- Reporting Sample
사용자 관리 메뉴로 사용자 추가, 정보 수정, 리스트 출력등을 할 수 있다. Spring Security 기반으로 로그인 및 권한 관리를 구현하였다.
판매 관리 메뉴로 상품 등록, 판매, 카테고리 관리를 할 수 있다. 이 중, Category 관리 영역에 대해 Spring Webflow와 연계하여 구현하였다.
구입 관리 메뉴로 상품 검색, 구입, 구입 내용 수정, 구입 내용 리스트 출력등을 할 수 있다. 이 중, Product 관리 서비스의 판매 대상 상품 조회 기능은 Apache CXF 기반의 Web Services 기능을 이용하여 구현하였다.
카테고리 관리, 판매 관리의 일부 모듈을 Anyframe과 MIPlatform과의 연계로 구현하였다.
JasperReports와 연계하여 사용자 목록 조회 결과를 PDF, HTML, CSV와 같은 다양한 문서 형태로 리포팅할 수 있다.
Sample Application의 Business 구현을 위해 Anyframe Core의 여러 공통 기술 서비스를 사용하였다.
- Logging
- DataSource
- Properties
- IdGeneration
- Query
- Hibernate
- Transaction
- Aspect
- Annotation
- Web Services
Sample Application에서 Anyframe Web에서 SpringMVC를 이용하여 제공되며 각각은 다음과 같은 모듈과 연계되어있다.
- Spring security Framework과의 연계 - 회원 권한 처리
- Mi Platform과의 연계 - 판매 관리 (상품관리, 상품카테고리 관리)
- Jasper Reports와의 연계
- Spring Webflow와의 연계 - 상품카테고리 관리
Sample Application은 다음과 같이 오픈소스로 제공되는 다양한 빌드 결과 분석 툴과의 연계를 통해 어플리케이션에 잠재되어 있는 오류 사항을 미리 찾아내어 조치할 수 있도록 함으로써 코드 품질 향상을 도모하고자 한다.
- JUnit Report : JUnit 테스트케이스 수행 결과를 Html 형태의 레포트로 제공함으로써 테스트케이스별 수행 결과를 한눈에 파악하기 쉽도록 한다.
- Emma : 수행된 테스트 코드가 해당 어플리케이션을 구성하는 소스 코드를 어느 정도 커버하는지 분석하여 Html 형태의 레포트로 제공한다. 코드 커버리지 레포트는 Class, Method, Block, Line별 커버리지 비율을 제공할 수 있다. 이를 통해 테스트 코드의 품질을 가늠해 볼 수 있게 될 것이다.
- CheckStyle : 해당 어플리케이션에서 정의하고 있는 코딩 표준에 부적합한 소스 코드들을 분석하여 Html 형태의 레포트로 제공한다. Sample Application은 Sun에서 제시한 CheckStyle 표준을 Anyframe에 맞게 보완하여 Sample Application에 적용하고 있다.
- JDepend : 어플리케이션을 구성하는 소스 패키지별 의존 관계를 파악한 결과를 Html 형태의 레포트로 제공한다. 각 패키지 간의 의존 관계를 파악할 수 있으며 특히 패키지간 Cycling으로 인한 오류를 미리 제거할 수 있게 한다.
- PMD's CPD : 어플리케이션을 구성하는 모든 소스 코드들을 분석하여 Html 형태의 레포트로 어플리케이션 내에서 발생한 코드 중복 부분을 보여준다. 동일한 코드가 여러 부분에서 반복되면 로직 변경이 필요할 경우 여러 코드를 수정해야 하는 번거로움이 발생하거나 변경 누락으로 인해 또다른 오류를 발생시킬 수 있게 된다.
- FindBugs : 개발시 미처 파악하지 못했던 잠재된 오류들을 찾아서 Html 형태의 레포트로 제시함으로써 미리 조치할 수 있도록 한다.
분석 결과 레포트
설치 환경
아래와 같은 환경에서 설치될 수 있도록 개발되었다.
(Sample Application은 JDK, Servlet Spec. 버전으로 인해 일부 WAS에서 동작이 안될 수 있으므로 아래 설치 환경 조건에 유의하시기 바랍니다.)
- JDK 1.5 이상
- Web Container : Tomcat 5.5.23 이상, JEUS 6 이상, WebLogic 9.2 이상
- Tomcat이 아닌 다른 WAS에 설치할 경우, WAS에 따라 추가 작업이 있을 수 있으니 WAS Configuration 매뉴얼 내용을 참고하도록 한다.)
- JEUS인 경우 : JEUS 6.0 초기 fix 버전인 경우, Spring Security의 FilterChain과 호환성 문제를 일으킬 수 있으므로, JEUS 6.0 fix #5 이상의 버전을 다운로드 받아 설치할 것을 권장한다.
- WebLogic인 경우 : Sample Binary 형태로 설치할 때 war 파일의 압축을 해제한 후 WAS에 배포하도록 한다.
- port 번호 : 기본적으로 현 Sample Application은 8080 port를 사용하는 웹 어플리케이션으로 구성되어 있으므로 타 WAS에 배포하여 구동 시 port 번호가 설정되어 있는 부분(WebRoot\anyframe-sample\WEB-INF\config\springmvc\purchase-servlet.xml)을 각 WAS의 port 번호에 맞게 변경한 후 배포해야 한다.
- ANT 1.7 이상
- DataBase - HsqlDB 1.8.0.10 이상
- Eclipse 3.3.2 이상
- [주의 사항]
본 문서에서는 기본적으로 Tomcat6.0 및 eclipse 3.4.1을 기준으로 설치 가이드를 진행한다. Eclipse는 Anyframe에서 제공하는 eclipse 기반 툴셋을 기반으로 설명을 진행한다. 이하 문서에서 [Eclipse Home] 이라함은 Anyframe 제공 eclipse 기반 툴셋의 루트를 지칭한다.
Sample Binary 설치
다운로드 페이지의 Samples 다운로드를 통해 Sample Application을 포함하고 있는 Anyframe-eMarketplace-x.x.x-SpringMVC-1.5-bin.zip 파일을 다운로드한다. 적절한 위치에 Anyframe-eMarketplace-x.x.x-SpringMVC-1.5-bin.zip 파일의 압축을 해제하면 anyframe-sample.war 파일이 존재하는 것을 확인할 수 있다.
Anyframe-eMarketplace-x.x.x-SpringMVC-1.5-bin.zip 파일 내에 포함된 anyframe-sample.war 파일은 다음과 같이 구성되어 있다.
Sample Binary 구성
Sample Binary를 설치하고 설치 확인을 위해서는 다음과 같은 절차를 따르도록 한다.
- Sample Application을 Tomcat Server에 배포한다.
- Tomcat Server를 실행한다.
- DB를 실행한다.
Step 1 : Web Application 배포
anyframe-sample.war 파일을 [Tomcat Home]/webapps 디렉토리 내에 복사한다.
Step 2 : Tomcat Server 실행
[Tomcat Home]/bin/startup.bat 파일을 실행시킨다.
Step 3 : DB 실행
- [Tomcat Home]/webapps/anyframe-sample/db 폴더로 이동한다.
- 명령프롬프트를 띄우고, runHsqlDBforWAS.cmd 파일을 실행시킨다.
HsqlDB 실행
Step 4 : Sample Application 실행
Tomcat Server를 실행된 상태에서, 브라우저 창에 http://localhost:8080/anyframe-sample과 같이 주소를 입력하여, Sample Application이 제대로 실행되는지 확인한다.
초기 페이지
사용자 명:test, 비밀번호:test123을 입력하여 로그인해본다.
로그인 성공 페이지
Sample Source 설치
다운로드 페이지의 Samples 다운로드를 통해 Sample Source를 포함하고 있는 anyframe-emarketplace-X.X.X-src.zip 파일을 다운로드한다. 적절한 위치에 anyframe-emarketplace-X.X.X-src.zip 파일의 압축을 해제하면 다음과 같은 내용의 파일들이 존재한다.
Sample Source 구성
Sample Source를 Eclipse에 설치하고 설치 확인을 위해서는 다음과 같은 절차를 따르도록 한다.
- Anyframe Core,Web 설치
- workspace character encoding 설정
- Tomcat 서버 설정
- anyframe-sample 프로젝트 import
- Sample DB 구동
- Sample Application 실행
- [선택] MiPlatform 연계 확인
Step 1 : Anyframe Core,Web 설치
Sample Application 실행을 위해서는 Anyframe Core와 Anyframe Web이 설치되었는지 확인한다.
Step 2 : workspace character encoding 설정
Eclipse의 기본적인 workspace의 character encoding은 UTF-8로 한다.
- Eclipse를 구동한다.
- Windows > preference를 선택한다.
- general탭의 workspace 선택 후 Text file encoding을 Other : UTF-8로 설정해준다.
Text Encoding 설정
Step 3 : Tomcat 서버 설정
Sample Application 실행을 위해 Tomcat 서버를 설정해 준다.
- Windows > preference를 선택한다.
- server탭의 Installed Runtimes 선택 후 Add..버튼을 사용하여 Apache Tomcat의 각 버전에 맞는 Tomcat 위치를 지정해 준다. (Tomcat은 사용자의 로컬에 설치되어 있어야 한다.)
Tomcat 서버 설정
Step 4 : anyframe-sample 프로젝트 import
- File>Import... 메뉴를 선택한다.
- Existing Projects into workspace를 선택한다.
- [압축 해제 위치]/anyframe-sample를 선택한다.
- Finish 버튼을 클릭한다.
imoprt 프로젝트
import한 anyframe-sample 프로젝트의 컴파일 에러를 없애고, Sample Application 정상 동작시키기 위해 필요한 라이브러리를 [압축해제폴더]/anyframe-sample/src/webapps/WEB-INF/lib 폴더 안에 모두 복사하도록 한다. 이를 위해서는 다음과 같은 절차를 따르면 된다.
- build.xml 파일의 상단에서 anyframe.lib property의 값을 Anyframe Core/Web을 설치한 폴더(Step1 참조)로 변경한다.
- [압축해제폴더]/anyframe-sample/build.xml 파일을 선택하고 마우스 오른쪽 버튼을 클릭한 후, 컨텍스트 메뉴에서 Run As > Ant Build...를 선택한다.
- Edit Configuration 창에서 all[default]에 대한 선택 해제, setupAnyframeLib을 선택한 후, Run 버튼을 클릭한다.
ANT 기반의 Build Script 실행에 익숙하지 않은 개발자는 Anyframe Core/Web을 설치한 폴더(Step1 참조) 내에 있는 모든 라이브러리를 [압축해제폴더]/anyframe-sample/src/webapps/WEB-INF/lib폴더 안에 모두 복사해 넣도록 한다.
Step 5 : DB 실행
- anyframe-sample 프로젝트/DATABASE/db 폴더로 이동한다.
- 명령프롬프트를 띄우고, runHsqlDB.cmd 파일을 실행시킨다.
HsqlDB 실행
Step 6 : Sample Application 실행
다음과 같은 순서로 Tomcat Server를 실행시킨 후, Sample Application이 제대로 실행되는지 확인한다.
- anyframe-sample 프로젝트를 선택한다.
- anyframe-sample/src/webapps/index.jsp를 선택한다.
- Context 메뉴>Run As..>Run on Server 메뉴를 선택하여 Sample Application을 실행한다.
초기 화면
로그인 성공 페이지
[선택] Step 7 : MiPlatform 연계 확인
제공된 Sample Application은 카테고리 관리, 판매 관리의 일부 모듈에 대해 MIPlatform과 연계하여 구현되어 있으나, MiPlatform이 상용 제품인 관계로 라이브러리가 함께 배포되지 않는다. 따라서, MiPlatform 연계 확인을 위해서는 다음 절차를 따르도록 한다.
- MIPlatform Sample 하위 메뉴인 Category Mng. 또는 Sale Mng.를 클릭한다.
- 웹 페이지에 보여지는 절차에 따라 MiPlatform 라이브러리를 다운로드하고, 코드 내의 주석을 해제한다.
- Tomcat Server를 다시 실행시킨 후, MiPlatform 기반의 화면이 정상 동작하는지 확인한다.

