on
egovframework(전자정부프레임워크)
egovframework(전자정부프레임워크)
728x90
반응형
egovfamework(전자정부프레임워크)
SpringMVC 동작
Client 요청이 들어오면 Dispatcher Servlet이 가장 먼저 요청을 받는다. 주로 *.do 의 형태로 오는 요청을 처리한다.
HandlerMapping이 요청에 해당하는 Controller를 리턴한다. @RequestMapping의 형태로 요청되는 URL을 처리할 Controller 메소드가 Mapping된다.
Controller는 비즈니스 로직을 호출하고 전달 받은 결과를 ModelAndView에 반영 하여 리턴한다.
ViewResolver는 어떤 형태로 출력할 것인지 형태를 결정하고, view name을 받아 해당되는 view객체를 리턴한다. 주로 JSP가 활용되며, XML, JSON등 활용가능하다.
View는 Model 객체를 받아 결과를 출력한다.
처음 Maven을 실행할 때 Local Repository에 라이브러리가 없으면 pom.xml의 repository 에 기술된 Remote Repository로부터 라이브러리를 다운로드 받게 된다.
pom.xml 은 프로젝트의 정보, 의존성, 빌드 세팅(플러그인) 정보를 포함하고 있다. Maven 프 로젝트는 빌드 되어 로컬 또는 원격 Repository 에 배포될 수 있기 때문에 자체적으로 Group Id, Artifact Id, 버전 정보를 가진다. 앞에서 설명했던 라이브러리 관리를 위한 의존성 관리를 할 수 있다. 컴파일, 패키징 뿐만 아니라 테스트 결과 리포트, java doc 생성과 같은 작업들을 플러그인 설정을 통해서 수행 할 수 있다.
서버 개발환경
표준프레임워크 형상관리 도구인 Subversion을 활용하여 팀프로젝트를 통합하고, 배포도구인 Jenkins를 활용하여 계속적인 테스트와 통합을 수행 한다.
설치가 되었으면 VisualSVN Server Manager 를 실행하고, Repositories 를 선택하고 마우스 오른 쪽 버튼을 누르고 Create New Repository 를 선택한다. Regular FSFS repository 를 선택하고, Repository 이름을 입력한다. 아무 이름이나 입력 가능하며, firstbook 으로 입력 하였다. empty Repository 를 선택하고 Access 권한 설정을 위해서 Customize permissions 를 선택한다. Add 를 선택, Create User 를 선택하고 User name 과 password 를 입력한다. 편의상 User name 을 dev 로 password 도 동일하게 dev 로 입력하였다. Users 에서 dev 를 선택하고 OK 를 누르고, 확인을 누른다. 권한이 Read/Write 로 되어 있는지 다시 한번 확인한다. 설정된 Repository 정보를 확 30 인하면 설정이 끝난다. 설정이 완료된 후 상단에 표시되는 URL 정보는 나중에 Eclipse 에 연 동할 때 필요한 정보이므로 잘 기억해야 한다.
Subversion 에 저장되어 있는 프로젝트를 활용하기 위해서 개발자가 처음으로 해야 되는 일 은 Subversion 으로 연결하여 해당 소스코드를 자신의 Workspace 로 내려 받는 것(Check out) 이다. Check out 후에는 프로젝트가 Subversion 에 연결을 유지하여 자신이 수정한 내용을 반 영(commit)하거나 다른 개발자가 수정한 내용을 내려 받기(update) 할 수 있다. Check out 을 받기 위해 먼저 SVN Repository Exploring 으로 퍼스펙티브를 변경한다. New>Repository Location을 선택하면, First commit 에서와 동일하게 Subversion 위치 및 계정 정보를 입력하는 화면이 나오게 된다. 정보를 입력하면 Subversion Repository 가 등록되게 되면 프로젝트를 선 택한 후에 마우스 오른쪽 버튼을 눌러서 Check Out 을 선택하게 되면 현재의 workspace 로 해당 프로젝트를 가져온다.
처음 프로젝트를 share 하거나 Check out 을 한 후에 개발자는 자신이 수정하거나 추가한 소 스코드를 Repository 에 commit 하여 변경을 반영할 수 있다. 다른 개발자가 변경한 소스코드 의 내용은 update 를 통해서 자신의 소스코드에 변경을 반영하게 된다.
Subversion 을 활용하다 보면 종종 충돌이 발생하게 되는 경우가 있다. 하나의 소스코드를 내 려 받은 이후에 수정을 한 후 commit 을 하려고 할 때, 다른 개발자가 동일한 소스코드를 변경하여 Repository 에 이미 반영한 경우에 충돌이 발생된다. 양쪽 소스코드 모두 변경이 된 상태이기 때문에 Subversion 은 소스코드 충돌 표시를 한 후 개발자에게 개발자 소스코드를 강제로 commit 할 것인지 변경된 내역을 다시 update 받을 것인지를 선택하도록 한다. 주로 공동작업이 이루어지는 공통모듈의 경우 충돌이 발생될 여지가 많다. 다른 개발자가 변경한 내역을 무시하고 반영할 경우 문제 발생여지가 많기 때문에 충돌의 해결은 개발자간 커뮤니 케이션을 통해 변경 내역을 확인 한 후에 Override and Commit 이나 Override and update 로 해 결 한다.
개발자들이 개발한 소스코드를 commit 하면 형상관리 서버에서 통합이 된다. CI 서버는 통합 된 소스코드를 자체 디렉터리로 check out 받아 Maven 등의 도구를 활용하여 테스트 및 빌 드를 수행한다. 주로 Maven package 를 수행하여 테스트 및 배포파일 생성을 수행하고, 개발 서버로 배포하여 개발된 내역을 개발서버에서 확인할 수 있도록 지원한다. 라이브러리의 경 우 Maven deploy 를 실행하여 Nexus 등의 원격 Repository 로 배포 할 수 있다. CI 서버로는 Hudson 이 많이 활용되었으나 Sun 이 Oracle 로 흡수 합병에 따라 기존 Hudson 오픈소스 프 로젝트에 변경이 생기면서 Jenkins 프로젝트(http://jenkins-ci.org)가 시작 되었다. Hudson 도 Eclipse 에서 오픈소스 프로젝트(http://hudson-ci.org)로 개발이 진행 중에 있으나 Jenkins 보다 업데이트 등이 활발하지 못한 상태이다. 두 개의 CI 서버는 거의 동일한 기능을 가지고 있기 때문에 굳이 구별을 할 필요는 없지만, 사용성 및 향후 발전 측면에서는 Jenkins 가 더 유리 한 상태이므로 Jenkins 를 기준으로 설명을 하도록 하겠다. 설치를 하기 위해서 먼저 WAR 형 태(또는 zip)의 배포파일을 다운 받는다. 기존에 설치된 Tomcat 등의 WAS 의 webapp 밑에 압축을 풀어 주는 것으로 설치가 완료 된다. Hudson 의 경우도 마찬가지로 설치 할 수 있다. Jenkins 의 경우 WAS 까지 패키징하여 윈도우, 맥 등의 실행파일 형태로 설치할 수 있도록 지원하고 있다. 이 경우 별도 WAS 의 설치가 필요하지 않아 편리한 점도 있으나 윈도우 등 OS 에서 자동 실행되는 서비스로 등록이 되기 때문에 개발 및 테스트 용도로는 관리가 어 려울 수 있다.(하지만 인스톨 버전으로 설치해도 세팅하는데는 문제가 없음을 확인)Jenkins 사이트 (http://jenkins-ci.org)에서 다운로드 받은 배포파일을 Tomcat> webapp 에 압축을 풀고 커맨드창에서 Tomcat>bin 디렉터리에서 startup 으로 Tomcat 을 시작 한다.
jenkins 접속 후 시작 및 배포 등등은 20181219_전자정부프레임워크_설치 및 설정 가이드.zip파일을 참조
egovframework 경량화
출처 : https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:dev3.8:install_guide
728x90
from http://devlsy.tistory.com/106 by ccl(A) rewrite - 2021-11-07 19:01:54