53
Group No.3 2010360305 구본환 2010360313 이가혜 2010360317 정우현

[웹기반시스템 3조]e govframe 중간고사 제출 정리

  • Upload
    -

  • View
    144

  • Download
    6

Embed Size (px)

Citation preview

Page 1: [웹기반시스템 3조]e govframe 중간고사 제출 정리

Group No.3

2010360305 구본환 2010360313 이가혜 2010360317 정우현

Page 2: [웹기반시스템 3조]e govframe 중간고사 제출 정리

eGovFrame install guide

KUCIN

표준프레임워크 포털 http://www.egovframe.go.kr/에서

자신의 운영체제와 맞는 eGovFrame를 다운받는다

Page 3: [웹기반시스템 3조]e govframe 중간고사 제출 정리

eGovFrame install guide

KUCIN

우측 상단의 Perspective를 eGovFrame으로 변경한다

Page 4: [웹기반시스템 3조]e govframe 중간고사 제출 정리

eGovFrame install guide

새로운 eGovFrame Web Project를 생성한다

Page 5: [웹기반시스템 3조]e govframe 중간고사 제출 정리

Tomcat install guide

Server 창에서 새로운 서버를 생성한다

Page 6: [웹기반시스템 3조]e govframe 중간고사 제출 정리

Tomcat install guide

Tomcat 버전을 선택하고 설치 후

Tomcat 서버를 실행합니다

Page 7: [웹기반시스템 3조]e govframe 중간고사 제출 정리

Tomcat install guide

http://www.egovframe.go.kr/wiki/lib/exe/fetch.php?media=

egovframework:dev:egovgettingstarted.zip을

다운받아 eGovFrame에 Import 한다.

Page 8: [웹기반시스템 3조]e govframe 중간고사 제출 정리

eGovFrame Hello World project

http://www.egovframe.go.kr/wiki/lib/exe/fetch.php?media=

egovframework:dev:egovgettingstarted.zip을

다운받아 eGovFrame에 Import 한다.

Page 9: [웹기반시스템 3조]e govframe 중간고사 제출 정리

eGovFrame Hello World project

src/main/java의 HelloWorldClient.java에서

Java Application을 실행시킨다

Page 10: [웹기반시스템 3조]e govframe 중간고사 제출 정리

eGovFrame Hello World project

Console 창에서 다음과 같이 결과를 확인할 수 있다

Page 11: [웹기반시스템 3조]e govframe 중간고사 제출 정리

eGovFrame Hello World project

src/test/java의 HelloWorldServiceTest.java에서

JUnit Test를 실행시킨다

Page 12: [웹기반시스템 3조]e govframe 중간고사 제출 정리

eGovFrame Hello World project

Junit 창에서 testSayHello의

수행시간 및 성공여부를 확인할 수 있다.

Page 13: [웹기반시스템 3조]e govframe 중간고사 제출 정리
Page 14: [웹기반시스템 3조]e govframe 중간고사 제출 정리

1. WAMP 다운로드

.

www.wampserver.com/en

Page 15: [웹기반시스템 3조]e govframe 중간고사 제출 정리

2. WAMP 다운로드

.

1. WAMP 설치에는 Visual

C++ 2010 설치가 필수

2. WAMP 다운로드

Page 16: [웹기반시스템 3조]e govframe 중간고사 제출 정리

3. WAMP 설치

Page 17: [웹기반시스템 3조]e govframe 중간고사 제출 정리

4. WAMP 설치

Page 18: [웹기반시스템 3조]e govframe 중간고사 제출 정리

5. WAMP 설치

Page 19: [웹기반시스템 3조]e govframe 중간고사 제출 정리

6. WAMP 설치

Web Browser 선택 화면

Page 20: [웹기반시스템 3조]e govframe 중간고사 제출 정리

7. WAMP 설치

Page 21: [웹기반시스템 3조]e govframe 중간고사 제출 정리

8. WAMP 설치

WAMP ID 설정 Default 권장

Page 22: [웹기반시스템 3조]e govframe 중간고사 제출 정리

9. WAMP 설치

Page 23: [웹기반시스템 3조]e govframe 중간고사 제출 정리

eGovFrame Hello World project

실행 시 초록색

실행 WAMP 클릭

Page 24: [웹기반시스템 3조]e govframe 중간고사 제출 정리
Page 25: [웹기반시스템 3조]e govframe 중간고사 제출 정리

MVC

• Model : 어플리케이션의 데이터와 비즈니스 로직을 담는 객체이다.

• View : Model의 정보를 사용자에게 표시한다. 하나의 Model을

다양한 View에서 사용할 수 있다.

• Controller : Model과 View의 중계역할로 view를 선택한다.

사용자의 요청을 받아 Model에 변경된 상태를 반영하고, 응답

Page 26: [웹기반시스템 3조]e govframe 중간고사 제출 정리

HSQLDB Connection

– MVC 패턴은 UI 코드와 비즈니스 코드를 분리함으로써

종속성을 줄이고, 재사용성을 높이고, 보다 쉬운 변경이

가능하도록 한다.

– 전자정부프레임워크에서 “MVC 서비스”란 MVC 패턴을

활용한 Web MVC Framework를 의미한다.

Page 27: [웹기반시스템 3조]e govframe 중간고사 제출 정리

web.xml

<welcome-file-list>

<welcome-file>index.jsp</welcome-file>

</welcome-file-list>

해당 서버에 접속했을 때 처음으로 보여줄 페이지명을

설정합니다.

Page 28: [웹기반시스템 3조]e govframe 중간고사 제출 정리

index.jsp

서버에 "/sample/egovSampleList.do"를 요청합니다.

Page 29: [웹기반시스템 3조]e govframe 중간고사 제출 정리

web.xml

.do라는 URL패턴이 들어오면

DispatcherServlet가 요청을 처리하게 됩니다.

DispatcherServlet은

/WEB-INF/config/egovframework/springmvc/dispatcher-

servlet.xml 파일에 설정되어 있습니다.

Page 30: [웹기반시스템 3조]e govframe 중간고사 제출 정리

Spring MVC

Page 31: [웹기반시스템 3조]e govframe 중간고사 제출 정리

Spring MVC

- DispatcherServlet

DispatcherServlet은 스프링MVC의 웹요청을 처리하는 전 과정을 관리하는

전달자로 요청에 따른 컨트롤러를 구해 처리된 결과를 클라이언트에게

응답하는 스프링MVC의 핵심

- HandlerMapping

웹요청시 해당 URL을 어떤 Controller가 처리할지 검색하여

DispatcherServlet에 전달

- Controller

클라이언트의 요청을 처리한다. 결과 데이터를 ModelAndView에 반영하고

DispatcherServlet에 전달

- ModelAndView

컨트롤러가 처리한 결과와 View에 대한 정보를 가진다.

- ViewResolver

결과를 생성할 View 를 결정한다.

- View

결과 데이터인 Model 객체를 display한다.

Page 32: [웹기반시스템 3조]e govframe 중간고사 제출 정리

Spring MVC 처리과정

1. 클라이언트의 요청이 DispatcherServlet에 전달

2. DispatcherServlet은 HandlerMapping에게 클라이언트의

요청을 처리할 컨트롤러 객체를 요청

3. HandlerMapping은 요청을 처리할 컨트롤러를

DispatcherServlet에 알려준다.

4. DispatcherServlet은 해당 Controller에 처리를 요청

5. Controller는 처리결과 및 view정보를 ModelAndView에 담아

DispatcherServlet에 전달

Page 33: [웹기반시스템 3조]e govframe 중간고사 제출 정리

Spring MVC 처리과정

6. DispatcherServlet은 처리결과를 생성할 View를 구하기 위해

ViewResolver에 요청

7. ViewResolver는 처리결과를 생성할 View를

DispatcherServlet에 전달

8. DispatcherServlet은 View에 응답생성을 요청

9. View는 클라이언트에 전송할 응답을 생성

Page 34: [웹기반시스템 3조]e govframe 중간고사 제출 정리

MVC 모델1 아키텍처

요청 흐름을 제어하기 위한 Controller 가 특별히 존재하지 않는다. MVC로 굳이 구분하자면 클라이언

트의 요청을 받은 JSP가 Model 영역을 선택해서 호출하므로 Controller 역할을 수행한다고 볼 수 있

다. JSP는JavaBean을 이용하여 데이터베이스를 연동하여 Model 영역의 수행 결과를 받아 클라이언

트에게 보내줄UI(User Interface)를 생성하므로 View 역할도 수행한다. 그리고 프리젠 테이션 로직과

비즈니스 로직의 분리가 어렵고 그로 인해 뷰의 재활용 성이 떨어진다. 하지만 개발기간이 짧은 소규

모 Project나 변경사항이나 요구사항이 적을 경우 빠르게 개발 할 수 있다는 이점이 있다.

Page 35: [웹기반시스템 3조]e govframe 중간고사 제출 정리

MVC 모델2 아키텍처

1. 모델2에서는 서블릿이 흐름을 제어하는 Controller 역할을 수행한다. 모든 클라이언트에 요청은 서블릿에 전달되어 서블릿이

클라이언트의 요청에 따라 비즈니스 로직을 호출하고 그 결과에 따라 View에 해당하는 JSP를 호출하는 방식이다.

2. 모델2가 모델1에 비해 개발 초기의 부하가 비교적 높고, 아키텍처에 대한 수준 높은 이해를 요구하지만, 재 사용성이 높고 확

장이 모델1에 비해 용이하다는 장점이 있다. 무엇보다, 모델2는 그 구조적 특징으로 인해 자연스럽게 MVC각 영역의 역할이

구분되도록 해준다.

3. 모델2는 Controller 역할을 하는 서블릿의 역할이 매우 중요하며, 서블릿이 잘못 개발된 경우 애플리케이션 전체에 미치는 영

향이 매우 크다. 초기에 모델2를 적용한 웹 애플리케이션 중에는 서블릿 구현 시 Model 영역과 View 영역을 호출해주는 부분

이 하드 코딩 되어 있거나 비효율적으로 구현되어 애플리케이션의 효율을 떨어뜨리고 구조만 복잡하게 되어버리는 경우가 많

았다. 그러나 수많은 시행착오 끝에 잘 구축된 Controller들이 재활용되기 시작하면서 웹 프레임워크(Framework) 형태로 보급

되기 시작하였다.

Page 36: [웹기반시스템 3조]e govframe 중간고사 제출 정리
Page 37: [웹기반시스템 3조]e govframe 중간고사 제출 정리

HSQLDB Connection

HSQLDB와 연결하기 위해

Database Connection에서 New를 클릭한다

Page 38: [웹기반시스템 3조]e govframe 중간고사 제출 정리

HSQLDB Connection

HSQLDB를 선택하고 New Driver Definition을 선택 후,

기존 hsqldb.jar을 제거 후 Add JAR/Zip에서 workspace\프로젝트명

\DATABASE\db의 hsqldb-1.8.0.10.jar을 선택한다.

Page 39: [웹기반시스템 3조]e govframe 중간고사 제출 정리

HSQLDB Connection

Test Connection을 통해 정상적으로 연결된 것을

확인하면 다음과 같이 HSQLDB가 연결된 것을 볼 수 있다.

Page 40: [웹기반시스템 3조]e govframe 중간고사 제출 정리

HSQLDB Connection

프로젝트에서 Run on Server을 실행한다.

Page 41: [웹기반시스템 3조]e govframe 중간고사 제출 정리

HSQLDB Connection

다음과 같은 오류가 발생하는 것을 볼 수 있다.

Page 42: [웹기반시스템 3조]e govframe 중간고사 제출 정리

HSQLDB Connection

다음의 경로에서 runHsqlDB.cmd를 실행 후

다음과 같은 화면으로 동작을 확인할 수 있다.

Page 43: [웹기반시스템 3조]e govframe 중간고사 제출 정리

HSQLDB Connection

오류가 해결되지 않으면 다음의 경로에 인터넷을 통해

ojdbc14.jar 파일을 다운받아 추가한다.

Page 44: [웹기반시스템 3조]e govframe 중간고사 제출 정리

WAMP DB

WAMP에 접속해 phpMyAdmin에서 다음과 같이 사용을 위

한 DB를 생성한다.

Page 45: [웹기반시스템 3조]e govframe 중간고사 제출 정리

WAMP DB

USE DB이름;

DROP TABLE IF EXISTS SAMPLE ;

CREATE TABLE SAMPLE (

ID VARCHAR(16) NOT NULL,

NAME VARCHAR(50) DEFAULT NULL,

DESCRIPTION VARCHAR(100) DEFAULT NULL,

USE_YN CHAR(1) DEFAULT NULL,

REG_USER VARCHAR(10) DEFAULT NULL,

PRIMARY KEY (ID)

);

DROP TABLE IF EXISTS IDS ;

CREATE TABLE IDS (

TABLE_NAME VARCHAR(16) NOT NULL,

NEXT_ID DECIMAL(30) NOT NULL,

PRIMARY KEY (TABLE_NAME)

);

INSERT INTO IDS VALUES('SAMPLE',0);

COMMIT;

Page 46: [웹기반시스템 3조]e govframe 중간고사 제출 정리

WAMP DB

I N S E R T I N T O S A M P L E VA L U E S ( ' S A M P L E -

00001','Sample Test','This is initial test data.','Y','test');

다음과 같이 테이블을 생성한다.

Page 47: [웹기반시스템 3조]e govframe 중간고사 제출 정리

WAMP DB

다음과 같이 정상적으로 실행이 된 것을 확인할 수 있다.

Page 48: [웹기반시스템 3조]e govframe 중간고사 제출 정리

MySQL Connection

<!-- <sqlMap resource="egovframework/sqlmap/example/sample/EgovSample_Sample_SQL.xml"/>-->

<sqlMap resource="egovframework/sqlmap/example/sample/EgovSample_Sample_SQL_mysql.xml"/>

Sql-map-config.xml을 다음과 같이 수정한다.

Page 49: [웹기반시스템 3조]e govframe 중간고사 제출 정리

MySQL Connection

Context-datasource.xml 파일을 다음과 같이 수정한다.

<!-- hsql

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-

method="close">

<property name="driverClassName" value="net.sf.log4jdbc.DriverSpy"/>

<property name="url" value="jdbc:log4jdbc:hsqldb:hsql://loca4lhost/sampledb"/>

<property name="username" value="sa"/>

</bean>-->

<!-- mysql -->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-

method="close">

<property name="driverClassName" value="com.mysql.jdbc.Driver"/>

<property name="url" value="jdbc:mysql://localhost/sampledb"/>

<property name="username" value="root"/>

<property name="password" value=""/>

</bean>

<!-- oracle

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-

method="close">

<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>

<property name="url" value="jdbc:oracle:thin:@db1:1521:egovfrm"/>

<property name="username" value="rte"/>

<property name="password" value="rte01"/>

Page 50: [웹기반시스템 3조]e govframe 중간고사 제출 정리

MySQL Connection

Pom.xml에 다음과 같은 dependency를 추가한다.

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.17</version>

</dependency>

Page 51: [웹기반시스템 3조]e govframe 중간고사 제출 정리

MySQL Connection

마지막으로 프로젝트에서

Maven Install을 실행한다.

Page 52: [웹기반시스템 3조]e govframe 중간고사 제출 정리

MySQL Connection

프로젝트를 Run As>Run on Server 실행하면 다음과 같이

MySQL DB를 확인할 수 있다.

Page 53: [웹기반시스템 3조]e govframe 중간고사 제출 정리

Thank youGroup No.3

eGovFrame

Group No.3

2010360305 구본환 2010360313 이가혜 2010360317 정우현