DAY37(2) - MVC패턴, 객체유형

은나현·2023년 3월 20일
0

📌 1. MVC패턴

📍 1-1. Model

  • 사용자가 원하는 데이터나 정보를 제공한다.(db)
    • 애플리케이션의 정보, 데이터와 이러한 정보들의 가공을 책임지는 컴포넌트를 말한다.

📍 1-2. View

  • 데이터를 기반으로 사용자들이 볼 수 있는 화면을 제공한다. (jsp, html)
    • input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다.
    • 다시 말해 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당한다.

📍 1-3. Controller

  • 사용자의 요청을 처리하고 그 요청에 따른 전체적인 흐름을 제어한다. (java, jsp)
    • 데이터와 사용자 인터페이스 요소들을 잇는 다리 역할을 한다.

📌 2. MVC1, MVC2

📍 2-1. MVC1

  • MVC1 패턴 : ViewController를 모두 JSP가 담당하는 형태를 가진다.
    • JSP 하나로 유저의 요청을 받고 응답을 처리하므로 구현 난이도는 쉽다.
    • 프로젝트 내용이 복잡하고 거대해질수록 유지보수 문제가 발생한다.

📍 2-2. MVC2

  • MVC2 패턴은 널리 표준으로 사용되는 패턴이다.
    • 요청을 하나의 컨트롤러(Servlet)가 먼저 받는다. 즉 MVC1과는 다르게 ControllerView 역할이 분리되어 있다.
    • M,V,C 중에서 수정해야 할 부분이 있다면 그것만 꺼내어 수정하면 되므로 유지보수에 있어서 큰 이점을 가진다.

📌 3. DTO, VO, DAO

📍 3-1. DAO(Data Access Object)

  • 데이터에 접근, 관리하기 위한 객체.
    데이터를 관리(추가, 수정, 삭제, 읽기)하는 여러 메소드들이 정의되어 있다.
    • DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트. insert, delete, update, select 등 레코드 처리를 주목적으로 한다.
      • DTO 객체를 데이터베이스 서버에 저장한다.
      • 데이터베이스 서버로부터 레코드를 select한 후, DTO 객체로 변경해 가져온다.
    • SQL을 직접 실행하는 기능을 가진다.
      • JSP에서 데이터베이스 접속 로직을 Beans로 작성하여 DB정보 변경시 쉽게 변경사항을 구현할 수 있다.
      • 하나의 커넥션을 두고 여러 사용자가 DAO 인터페이스를 사용하여 필요한 자료에 접근하도록 한다.

📍 3-2. DTO(Data Transfer Object)

  • 양쪽으로 전송되어 오고가는 여러 데이터들을 담은 데이터 포장 객체. JSP에서는 Bean이라고 부른다.
    • 사용자가 입력한 값을 객체 형태로 받을 수 있게 클래스를 구성한다.
      • 폼에서 입력된 데이터들을 하나의 DTO객체로 변환 가능하다.
    • 하나의 데이터베이스 레코드를 저장하여 레코드와 같은 구조를 가진다.
      • 한 개의 레코드가 빈즈 클래스 객체 하나로 매핑된다.
    • 데이터가 포함된 객체를 한 시스템에서 다른 시스템으로 보존 및 전달하는 작업을 처리하는 그릇의 역할을 한다.
      • 로직을 가지지 않는 데이터 객체로 getter/setter메소드만 존재한다.

📍 3-3. VO(Value Object)

  • 값을 위해 쓰이는 값 오브젝트이다.
    • 변경이 불가능한 Read-Only 특징을 가진다.
    • DTO와 유사하지만 VO에는 getter기능만 존재한다.
      • DTO는 데이터를 보존하는 인스턴스 개념, VO는 값 자체가 의미를 갖는 리터럴 값 개념이다.

0개의 댓글