7.1 Struts개요

작성자 : 진은영 ( 2004-08-03)

[메인] [목록]

목차

7.1.1 자카르타 프로젝트 소개

자카르타 프로젝트는 아파치 소프트웨어 재단의 부속 프로젝트이며 자바 기반의 오픈 소스 솔루션을 만들고 유지하며 무료로 배포하기 위한 프로젝트이다.
자카르타 프로젝트의 서브 프로젝트로는 아래와 같은 것들이 있다.
  • Libraries , Tools , APIs
    • 앤트(Ant)
    • 커먼스(Commons)
    • 제이미터(JMeter)
    • 로그포제이(Log4J)
    • 포이(POI)
    • 태그립스(Taglibs)

  • Frameworks , Engine
    • 아바론(Avalon)
    • 캑터스(Cactus)
    • 스트럿츠(Struts)
    • 터빈(Turbine)
    • 벨로시티(Velocity)

  • Server Application
    • James
    • 톰켓(Tomcat)

부속 프로젝트에 대한 자세한 설명은 아래의 주소를 참조한다.


7.1.2 웹 애플리케이션에서의 MVC구조

웹애플리케이셔을 개발할 때 개발자들이 사용하는 방식중에 모델1방식과 모델2방식이 있으며, 그중에서도 모델1방식을 가장 많이 사용하고 있으며, 또한 가장 쉽기도 하다.

① 모델1 개발방식
모델1과 모델2의 가장 큰 차이점은 클라이언트의 요청이 진입하는 지점이 다르다는 것이다. 모델1에서의 클라이언트의 요청을 처리하는 부분은 JSP이다.


모델 1 구조의 장단점은 아래와 같다.

  • 장점
    • 개발 시간이 단축된다.
    • 단순한 페이지 흐름으로 인해 MVC구조에 대한 추가적인 교육의 필요성이 없다.

  • 단점
    • HTML , 자바스트립트, JSP로직이 한 페이지에 쓰여지므로 어플리케이션이 복잡해질수록 유지보수가 힘들다.
    • 디자이너와 개발자간의 원활한 의사소통이 필요하다.


② 모델2 개발방식
모델2의 클라이언트의 진입하는 지점은 컨트롤러이다. 대부분 웹 애플리케이션의 컨트롤러는 Servlet이 담당한다.

모델2의 장단점은 아래와 같다.
  • 장점
    • 로직과 프리젠테이션의 분리로 인해 어플리케이션이 명료해지며 유지보수와 확장이 용이하다.
    • 디자이너와의 작업이 분리되어져 책임의 소재가 명확한다.

  • 단점
    • 개발 초기에 아키텍쳐 디자인을 위한 시간의 소요로 개발 기간이 증가한다.
    • MVC 구조에 대한 개발자들의 이해가 필요하다.

위와 같이 컨트롤러,모델,뷰로 구분하여 개발하는 방법을 모델 - 뷰 - 컨트롤러(MVC) 패턴이라 한다. 모델 2는 MVC패턴을 바탕으로 개발하는 것이다.


7.1.3 스트러츠 프래임워크 개요

모델2로 개발하려는 시도가 점차 증가하고 있지만 재사용성의 부족이라는 한계를 느끼고 많은 개발자들이 모델2를 포기하는 경우가 종종 있다. 그러다 재사용성을 강화하여 모델2에 기반한 프레임워크가 등장하게 되었으며, 그 중에 하나가 아파치 그룹에서 개발한 스트럿츠다.
웹 애플리케이션을 만들기 위해 필요한 많은 부분들을 미리 만들어 놓았기 때문에, 서블릿과 JSP기반 하에서 개발하는 웹 애플리케이션의 개발 기간을 상당부분 단축시키는 효과를 가져올 수 있다.


우리가 하나하나 새로 만들어야 했던 컨트롤러나, 모델쪽의 기본 패턴들을 이미 만들어져 있다. 그것을 가져다가 내 입맛에 맞게 오버라이딩하면 된다.

참조
프레임워크 : 우리말의 '틀 ' 정도로 볼 수 있다 . 다시 말해 애플리케이션 작성을 위한 '틀 '을 제공함으로서 재사용하기 편하고 , 유지보수하기 좋은 프로그램을 만들어 낼 수 있다는 의미이다
  • 프레임워크는 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성된다.
  • 프레임워크는 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다.
  • 프레임워크 컴포넌트들은 재사용이 가능하다.
  • 프레임워크는 좀 더 놓은 수준에서 패턴들을 조직화했다.



7.1.4 스트러츠 프래임워크 설치

① 파일 다운로드
아래와 같은 장소에서 해당 파일을 받으면 된다.
위치 : http://jakarta.apache.org/site/binindex.cgi
파일 : jakarta-struts-1.1.zip

② 압축풀기
원하는 위치에 압축을 풀면 아래와 같은 폴더가 나타난다.

③ 웹애플리케이션 생성
아래와 같이 원하는 위치에 컨텍스트를 생성한다.

Tomcat설치디렉토리\webapps\ROOT\WEB-INF에서 빈 web.xml을 생성한 컨텍스트\WEB-INF에 복사한다.
Tomcat폴더의 conf 밑에 있는 server.xml 문서에 컨텍스트를 추가한다.


④ 필요한 파일들 복사
  • 압축을 푼 Struts lib디렉토리 아래에 있는 모든 jar파일을 strutsTest\WEB-INF\lib 폴더에 복사한다.

  • 압축을 푼 Struts lib디렉토리 아래에 확장자가 tld인 모든 파일을 strutsTest\WEB-INF\tld 에 복사한다.
    tld는 struts에서 제공하는 커스텀 태그를 이용하기 위한 것이다.

  • 기본적인 web.xml의 내용이다.
    <?xml version="1.0" encoding="euc-kr"?>
    
    <!DOCTYPE web-app
        PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    	"http://java.sun.com/dtd/web-app_2_3.dtd">
    
    <web-app>
    </web-app>
    	


⑤ 실행
톰캣 데몬창을 띄우고, 브라우저를 띄운 후 아래와 같이 주소를 쓰면 브라우저에 해당 그림과 같이 나타난다.

위와 같이 나타난다면, 스트러츠를 정상적으로 해당 컨텍스트에 설치한 것이다.
참고문헌