[WEB] JSP & Servlet / MVC 패턴

:-)·2022년 7월 3일
0

🌍 WEB

목록 보기
1/1
post-thumbnail

📝JSP & Servlet

  • 동적 웹 페이지를 생성하는 공통점이 있다.
  • 역할의 차이점이 있다.



서블릿(Servlet)

  • 클라이언트의 요청을 처리하고, 그 결과를 반환하는 Servlet 클래스의
    구현 규칙을 지킨 자바 웹 프로그래밍 기술이다.
  • JAVA 코드 안에 HTML태그가 삽입된 자바 언어이다.

JSP

  • 서블릿(Servlet)의 단점을 보완한 서블릿 기반의 스크립트 기술이다.

  • HTML 코드에 JAVA코드를 넣어 동적 웹페이지를 생성하는
    웹어플리케이션 도구이다.

  • JSP가 실행되면 자바 서블릿(Servlet)으로 변환되면,
    웹 어플리케이션 서버에서 동작되면서 필요한 기능을 수행하고
    그렇게 생성된 데이터를 웹페이지와 함께 클라이언트로 응답한다.

스크립트 태그

<%!	 %>		: 자바 변수나 메소드를 정의하는데 사용되는 태그
  
<%	 %>		: 자바 변수 선언 및 자바 로직 코드를 작성하는데 사용되는 태그
  
<%=  %>		: 변수, 계산식, 메소드 호출 결과를 나타내는 태그
  
<%@  %>		: 페이지 속성 지정

<%-- --%>	: 주석처리



📙 JSP와 Servlet의 정리

JSPServlet
형태JAVA in HTMLHTML in JAVA
형태 예시<% for(int i = 0; i <= 3; i++){ %>PrintWriter out = response.getWriter();
out.println("<HTML>");
특징presentation(View)에 좋다.data processing(Controller)에 좋다.

  • Servlet : 코드가 수정되면 다시 컴파일하고 배포해야 한다.
  • JSP : 코드가 수정되도 재배포 할 필요가 없지만, 다양한 코드가 JSP에
    노출되어 있기 때문에 유지보수가 힘들다.





📝 MVC 패턴

  • JSP와 Servlet을 모두 이용하는 모델이다.
  • 유지보수에 용이하다.

M : Model

  • 사용자가 원하는 데이터나 정보를 제공한다.
  • 애플리케이션의 정보, 데이터를 나타낸다. 이러한 Data,
    정보들의 가공을 책임지는 역할을 한다.
  • Java Beans로 DTO와 DAO를 통해 DataBase에 접근한다.

V : View

  • 데이터 및 객체의 입력, 즉 보여주는 출력을 담당한다.
  • 데이터를 기반으로 사용자들이 볼 수 있는 화면이다.
  • HTML이 중심이 되는 JSP를 사용한다.

C : Controller

  • 사용자의 요청을 처리하고, 그 요청에 따른 전체적인 흐름을 제어한다.
  • 데이터와 사용자의 인터페이스 요소들을 잇는 다리역할을 한다.
  • Java 코드가 중심이 되는 Servlet을 사용한다.



DTO & DAO


DTO(Data Transfer Object) / Vo (Value Object) / Bean

  • 양쪽으로 전송되어 오고가는 데이터들을 담은 객체, jsp에서는 Bean이라고 부른다.
  • 여러 데이터들을 포장해서 만든 데이터 포장객체
  • 사용자가 입력한 값을 객체 형태로 받을 수 있게 클래스 구성
    • 폼에서 입력된 데이터들은 하나의 DTO 객체로 변환 가능하다.
  • 하나의 데이터베이스 레코드를 저장하여 레코드와 같은 구조를 가짐
    • 레코드가 50개면 DTO객체도 50개,
      한 개의 레코드는 빈즈 클래스 객체 하나로 매핑
  • 데이터가 포함된 객체를 한 시스템에서 다른 시스템으로 전달하는
    작업을 처리하는 객체

DAO(Data Access Object)

  • DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든
    즉 데이터 접근을 목적으로 하는 객체
  • 데이터에 접근, 데이터를 관리하기 위한 객체 데이터들을 관리(CRUD)하는
    여러 메소드들이 정의되어 있다.
    • 커넥션 같은 것을 하나만 두고 여러 사용자가
      DAO의 인터페이스를 사용하여 필요한 자료에 접근하도록 하는 것
  • SQL을 직접 실행하는 기능을 가짐
    • Insert, Delete, Update, Select 등 레코드 처리를 주 목적으로 한다.
    • 데이터베이스 서버로부터 레코드를 select한 후,
      DTO 객체로 변경해 가져온다.
    • DTO 객체를 데이터베이스 서버에 저장한다.



MVC1 & MVC2


MVC1 패턴

  • view와 Controller를 JSP가 담당하는 형태를 가진다.
    즉, JSP 하나로 유저의 요청을 받고 응답을 처리하므로 구현 난이도는 쉽다.

  • 단순한 프로젝트에는 괜찮겠지만, 내용이 복잡하고 거대해질수록
    이 패턴은 힘을 잃는다.
    즉 유지보수에 있어서 문제가 발생한다.


MVC2 패턴

  • MVC1 패턴과는 다르게 Controller, View가 분리되어 있다.
    그러므로 개발자는 M, V, C 중에서 수정해야 할 부분이 있다면,
    그것만 꺼내어 수정하면 된다.
  • 유지보수에 있어서 큰 이점을 가진다.







참고 사이트 : https://bangu4.tistory.com/35

0개의 댓글