[Spring] MVC 패턴

나영·2023년 2월 5일
0
post-thumbnail

MVC (Model-View-Controller)란 ?

  • 소프트웨어 공학에서 사용되는, 애플리케이션을 개발할 때 사용하는 디자인 패턴
  • 개발 영역을 Model, View, Controller로 구분해 각 역할에 맞게 코드를 작성하는 방식

📲 Model

  • 데이터의 저장소 (데이터베이스, 상수, 초기화값, 변수 등)
  • 데이터, 정보들의 가공을 책임지는 컴포넌트
  • Controller의 요청에 따라 사용자가 요청한 내용 업데이트

💻 View

  • 데이터 및 객체의 입력, 보여주는 출력 담당
  • input 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소
  • Model에서 업데이트된 내용을 Controller로부터 받아 Client로 전송해 결과를 보여줌.

🕹️ Controller

  • 데이터(Model)와 사용자 인터페이스 요소들(View)을 잇는 다리 역할
  • Client가 접근한 URL에 따라 요청사항을 파악한 후 그 요청에 맞는 데이터를 Model에 의뢰해 데이터를 View에게 전송함.

필요한 이유 ?

  • 프로젝트의 크기가 커지면서 API가 늘어나게 되면 코드들이 점점 늘어남 .. 가독성 BAD 😥
  • 비즈니스 로직과 UI 로직 분리 -> 독립적인 유지보수 수행 가능, 가독성 GOOD 😃
  • Model과 View가 다른 컴포넌트들에 종속 X -> 애플리케이션의 확장성, 유연성에 유리함.
  • 중복 코딩의 문제점 제거

Spring MVC

구조

Controller

  • Client에서 요청이 들어올 때, 해당 요청을 수행할 비즈니스 로직을 제어하는 객체
  • 세부적으로 Service단을 만들어 해당 요청을 객체 지향적으로 관리

Service

  • 세분화된 비즈니스 로직을 처리하는 객체
  • Controller가 Request를 받으면 적절한 Service에 전달 -> Service는 비즈니스 로직 처리
  • DAO로 DB 접근

DAO (Data Access Object)

  • DB에 접근 -> 데이터 조회/조작하는 기능
  • 효율적인 커넥션 관리와 보안성

0개의 댓글