본문 바로가기

JAVA

JAVA(07.01) - MVC pattern

 

App
Controller(motivaiotn, system) // motivation 여기까지 구현
Service(motivation, system) -> 핵심 로직
DAO(motivation Repository, System Repository)
DB

 

 

Controller

  • client(view)에서 보낸 요청에 따라 적절한 응답을 한다.
  • 사용자가 controller를 조작하면 controller는 model을 통해서 데이터를 가져오고, 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달하게 된다.

Service

  • 로직을 처리하는 객체
  • DAO 여러개를 묶어 사용하는 개체
  • DAO를 통해 데이터에 접근하고, DTO로 전달받은 데이터를 처리하는 데 필요한 로직 구현
  • Controller가 Request를 받으면 적절한 Service에 전달하고, 전달받은 Service는 비지니스 로직을 처리한다.

DAO(Data Access Object)

  • DB에 접근해 데이터를 조회하거나 조작하는 객체를 말한다.

DTO(Data Transfer Object)

  • 계층간 데이터 교환을 위한 객체
  • 오직 getter/setter 메서드 만 갖는다.
  • setter를 제거하고 생성자에서 데이터를 받아 필드에 할당해준다면 전달 과정에서 데이터의 변조를 막을 수 있다.
  • DAO와 Service, Controller 사이의 데이터 교환을 할 때 사용하는 경우와 Controller와 View 사이의 데이터 교환을 할 때 사용하는 경우