📌 1. MVC패턴
📍 1-1. Model
- 사용자가 원하는 데이터나 정보를 제공한다.(
db
)
- 애플리케이션의 정보, 데이터와 이러한 정보들의 가공을 책임지는 컴포넌트를 말한다.
📍 1-2. View
- 데이터를 기반으로 사용자들이 볼 수 있는 화면을 제공한다. (
jsp
, html
)
input
텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다.
- 다시 말해 데이터 및 객체의 입력, 그리고 보여주는 출력을 담당한다.
📍 1-3. Controller
- 사용자의 요청을 처리하고 그 요청에 따른 전체적인 흐름을 제어한다. (
java
, jsp
)
- 데이터와 사용자 인터페이스 요소들을 잇는 다리 역할을 한다.
📌 2. MVC1, MVC2
📍 2-1. MVC1
- MVC1 패턴 :
View
와 Controller
를 모두 JSP가 담당하는 형태를 가진다.
- JSP 하나로 유저의 요청을 받고 응답을 처리하므로 구현 난이도는 쉽다.
- 프로젝트 내용이 복잡하고 거대해질수록 유지보수 문제가 발생한다.
📍 2-2. MVC2
- MVC2 패턴은 널리 표준으로 사용되는 패턴이다.
- 요청을 하나의 컨트롤러(
Servlet
)가 먼저 받는다. 즉 MVC1과는 다르게 Controller
와 View
역할이 분리되어 있다.
- 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는 값 자체가 의미를 갖는 리터럴 값 개념이다.