Spring

Spring) MVC 패턴 (Controller,Repository,Service)

김코식 2022. 12. 1. 02:21


MVC패턴

  • Model       -  DB와 연결하여 사용자가 입력한 데이터나 사용자에게 출력할 데이터 처리
  • View         -  사용자가 볼 수 있는 부분
  • Controller -  Model이 데이터를 어떻게 처리할지 알려주는 역할

각각의 역할에 집중하여 개발 가능

ㄴ 유지보수성, 확장성, 유연성 증가


Controller

MVC패턴에서 C에 해당하여 주로 사용자의 요청을 처리 한 후 모델 객체를 넘겨주는 역할

요청이 진입하는 지점, 요처엥 따라 처리를 결정 한 후 Service에 전달

 

많은 종류의 서비스를 한 클래스에서 모두 처리하지 않고 Controller를 통해 서비스의 역할 별로 묶어 처리

> 개발비용, 유지보수비용의 감소

 

  • @Controller        -  View에 반환하기 위해 사용  (@ResponseBody 사용시 @RestController 와 동일한 기능)
  • @RestController - Json/Xml 형태로 데이터 반환

Repository

데이터베이스와 매칭되는 Entity로 데이터 테이블이 생성되면 받아온 정보를 데이터베이스에 저장, 조회하는 기능 수행

Repository에서 주어진 JPA 인터페이스 메소드를 활용하면 기본적인 CRUD가 가능

 

클라이언트가 원하는 정보를 주기위해선 단순한 데이터 조회로 불가능 하기 때문에 Service에서 데이터 가공 처리


Service

DAO가 데이터베이스에서 받아온 데이터를 전달받아 가공

정보의 보안때문에 controller에서 바로 정보를 가공하여 사용하는것은 위험하기 때문에 Service를 이용

Service에서도 원본 데이터를 사용하지 않고 데이터베이스에서 추출한 정보의 복사본인 DTO를 만들어 로직을 조작

 

DAO - MySQL 서버에 접근하여 SQL문을 실행할 수 있는 객체

 

 

 

 


참고 자료