struts를 공부하기에 앞서 struts가 무엇인지를 먼저 알아야 하겠습니다.
그러기 위해서는 모델구조를 알아야 할 것 같군요.
1. 모델 구조
-
모델 구조라는건 웹 응용프로그램의 두 가지 개발 패턴을 말합니다.
1. 비즈니스 로직과 프리젠테이션 코드의 혼합
2. JSP 페이지가 요청 처리와 응답을 위한 HTML 페이지 생성해서 포함되어있습니다.
3. 간단하고, 빠르게 프로그램 개발이 가능하다
4. 프로그램을 읽고 이해하기는 어렵고 유지 보수의 어려움이 있습니다.
이유는 같이 혼합되어 있기때문에 디자이너와 개발자와의 역할 분담이 안되어이 있어서 오류 발생시 수정하기가 어렵기때문입니다.
그렇기 때문에 복잡한 프로그램 개발에는 부적합 합니다.
클라이언트가 서버(톰킷 등) 에 request 할경우 JSP에서 모든 요청을 처리를 하고
DB에 저장을 하고 자료들을 표현하기 위해서 JavaBean(DTO 등)의 객체를 사용하여 SET 메소드나 GET 메소드를 사용 할 것입니다.
그렇기 때문에 제일 중심이되고 제일 중요한건 JSP가 되겠습니다.
그러한 JSP를 위해 디자인과 개발자가 필요 할 것입니다. 그런데 코드가 공유되어 있기때문에 유지 보수가 어려운것입니다.
1. 프리젠테이션에서 자바 코드를 제거 했습니다. 아니 정확히 말하면 분리를 했습니다.
- 개발자와 디자이너와의 업무 분담이 확실하게 되었습니다.
2. 이러한 구조를 MVC(Model View Controller) 패턴이라고 부르며 서블릿과 JSP의 역할을 분담을 한것이지요
- Model : 응용 프로그램의 데이터 관리, 비즈니스로직 수행, 백엔드 시스템과 통신작업 수행
└ DAO 패턴이나 DTO등을 수행하는 곳 즉, 데이터들의 처리나 데이터 베이스간의 작업을 담당 한다고 보시면 됩니다.
- View : 사용자와 상호 작용하는 웹 페이지
└ 클라이언트에게 결과 페이지를 보여 주기 위한 어떤 페이지가 생성이 된다면 그 생성된 JSP페이지가 View에 해당됩니다.
- Controller : 사용자의 요청을 비즈니스 로직에 전달, 페이지 매핑( 어떤 페이로 이동해서 어떤 업무를 수행 해야 하는 가를 하는 역할 )
└ 모델1과 모델2의 가장 큰차이점을 꼽자면 바로 이 Controller가 생겼다는 것입니다.
3. HTML 페이지 작성과 DB 접근 작업을 분리 가능 합니다.
4. 유지 보수가 용이 합니다.
- 분담시켜야 할 작업과 코드가 늘어나긴 하겠지만 큰 프로젝트 일 수록 관리하기가 용이 해집니다.
클라이언트에서 서버에 요청(request)을 해서 응답(response)를 받을때까지 모델 1보다는 복잡해 보일 것입니다.
1. 클라이언트 요청을 하나의 JSP에서 하는 것이아니라 별도의 Servlet이라는 Class에서 클라이언트의 요청이 어떤 것인가를 판단합니다.
Controller 역할을 이제 Servlet에 도입을 해서 수행을 하는 것입니다.
2. 서블릿 페이지에서 클라이언트 요청이 어떤것인지 판단 후에 적절한 Model 객체로부터 클라이언트 요청을 넘기게 됩니다.
└ 이 곳이 먼저 말한 MVC에서의 Model 부분이며 DAO 패턴이나나 DTO 클래서나 JavaBean 클래스 등이 사용되는 곳입니다.
└ 데이터 베이스의 연동작업이 이루어지는 곳입니다.
3. 그리고 그곳에서 나온 결과 값은 JSP를 생성해서 클라이언트에 응답을 하거나 또 다른 요청이 필요 한경우에는 다시 Servlet으로 수행 합니다.
이렇듯 Model2 방식은
데이터 베이스와의 연동이나 데이터 처리가 이루어지는 Model 과
이러한 결과값을 클라이언트에 보여주는 View와
어떤 요청인지를 판단하여 해당 페이지로 넘기는 Controller로 이루어져 있습니다.
♠ 드디어 스트럿츠에 관한 내용입니다.
1. 스트럿츠란? 자바를 개발한 선 마이크로시스템스사의 Craig R.McClanahan이 개발한 웹 응용프로그램을 위한 프레임 워크 입니다.
- 프레임 워크란?
└ 응용프로그램을 개발함에 있어 사용되는 클래스나 인터페이스의 모음을 가지고 있는 개발 환경
└ 즉, 우리가 일일이 코딩에 의해서 개발해 줘야 하는 클래스나 인터페이스를 미리 몇가지 템플릿 방식으로 작성해 놓고 그러한 템플릿을 배포하므로써 보다 쉽게 개발 할 수 있도록 환경을 제공하는 것을 말합니다.
└ 흔히 lib에 넣어서 쓰는 API 등의 JAR 파일등이라고 생각하시면 될듯 싶네요..
└ 쉽게 설명하자면 웹 어플리케이션을 구축한다고 하면 웹에 맞는 환경설정이나, DB연동, 뷰 부분 등이 구축에 있어 공통적인 부분일 것입니다. 이를 대부분이 프레임워크가 이미 구축을 해놓았기때문에 구축시간이 단축, 비용이 절감이 되는 것이지요
2. 스트럿츠(Struts) 용어를 보면 " 지주, 버팀목, 받침대" 라는 뜻을 갖고 있습니다. 그래서 스트럿츠라는 용어를 사용하게 된 것입니다. 자바 기반으로 한 웹어어인 JSP만을 위한 프레임워크입니다. 자바 기반이기 대문에 자바의 장점을 그대로 갖고 있지요. 독깁된 플렛폼을 사용하여 운영체제에 구애 받지 않고, 오픈 소스라 개발에 필요한 부분을 수정하여 사용 할 수 있습니다. 그리고 무료배포를 한다는 것이 큰 장점이며, 한 언어만 사용하다 보니 상당히 가볍습니다.
3. 스트럿츠를 사용 하면 MVC 패턴의 형태로 웹 응용프로그램 개발이 가능되도록 되어있습니다.
[출처] struts 란 무엇인가????|작성자 린우