MVC란?

  • MVC 패턴은 Model, View, Controller의 줄임말로써, 사용자와 상호작용하는 S/W를 디자인함에 있어 세가지 요소로 쪼개어 하는 것을 가르킨다.

MVC 패턴을 사용하는 이유

⭐️ 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 개발을 하고 그렇게
애플리케이션을 만든다면, 유지보수성, 
애플리케이션의 확장성, 그리고 유연성이 증가하고, 
중복코딩이라는 문제점 또한 사라지게 되기 때문이다.

`MVC 패턴의 사용 목적` 은 서로 분리되어 각자의 역할에 집중할 수 있게끔하여 
개발을 하고 그렇게 애플리케이션을 만든다면,
유지보수성, 애플리케이션의 확장성, 그리고 유연성이 증가하고, 
중복코딩이라는 문제점 또한 사라지게 되기 때문이다.

MVC1 패턴

  • MVC1은 아키텍처가 간단하고 JSP에 거의 모든 로직을 집어넣기 때문에 작은 웹 어플리케이션을 제작할 때는 큰 무리가 없지만 대규모 웹 어플리케이션을 제작하게 될 시 유지보수에 큰 어려움이 따른다.

MVC2 패턴

👉🏻 MVC2는 이 MVC1방식을 보완한 아키텍처다.MVC 패턴에 맞게 Model, Controller, View 부분로 모듈화 됐다 이 방식은 각각이 모듈화되어 있어 유지보수가 매우 쉬워지는 큰 장점이 있다.현재의 웹 어플리케이션은 거의 MVC2방식을 따른다 보면 된다.

MVC1, MVC2의 큰 차이 ?

👉🏻 클라이언트의 요청 사항을 모듈화 되지 않은 하나의 파일로 처리할 것이냐 각각의 기능을 담당하는 모듈들이 역할을 분담해서 처리할 것이냐로 결정된다. MVC2 의 대표 예 는 controller , service, repositoty html을 나눈것

Controller 란?

👉🏻앞에서의 MVC패턴 설명과 똑같이 Controller은 MVC에서 C에 해당 하며 주로 사용자의 요청을 처리 한 후 지정된 뷰에 모델 객체를 넘겨주는 역할을 합니다. 즉 사용자의 요청이 진입하는 지점이며 요청에 따라 어떤 처리를 할지 결정을 Service에 넘겨줍니다. 그후 Service에서 실질적으로 처리한 내용을 View에게 넘겨줍니다.

Service 란?

  1. Client가 Request를 보낸다.(Ajax, Axios, fetch등..)
  2. Request URL에 알맞은 Controller가 수신 받는다. (@Controller , @RestController)
  3. Controller 는 넘어온 요청을 처리하기 위해 Service 를 호출한다.
  4. Service는 알맞은 정보를 가공하여 Controller에게 데이터를 넘긴다.
  5. Controller 는 Service 의 결과물을 Client 에게 전달해준다.
⭐️ Service가 알맞은 정보를 가공하는 과정을 '비즈니스 로직을 수행한다.' 라고 합니다.

즉 ajax로 넘어온 데이터는 컨트롤단에서는 가공(if문(논리연산), 
for문(반복연산), getter, setter 생성자(대입연산) 등등 )을 
하지 않고 Service에 그대로 데이터를 넘겨 가공은 service단에서한다.

Reposity 란?

👉🏻 Entity에 의해 생성된 DB에 접근하는 메서드 들을 사용하기 위한 인터페이스입니다. @Entity라는 어노테이션으로 데이터베이스 구조를 만들었다면 여기에 CRUD를 해야겠죠?? 이것을 어떻게 할 것인지 정의해주는 계층이라고 생각하면 됩니다!

복사했습니다!