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 란?
- Client가 Request를 보낸다.(Ajax, Axios, fetch등..)
- Request URL에 알맞은 Controller가 수신 받는다. (@Controller , @RestController)
- Controller 는 넘어온 요청을 처리하기 위해 Service 를 호출한다.
- Service는 알맞은 정보를 가공하여 Controller에게 데이터를 넘긴다.
- Controller 는 Service 의 결과물을 Client 에게 전달해준다.
⭐️ Service가 알맞은 정보를 가공하는 과정을 '비즈니스 로직을 수행한다.' 라고 합니다.
즉 ajax로 넘어온 데이터는 컨트롤단에서는 가공(if문(논리연산),
for문(반복연산), getter, setter 생성자(대입연산) 등등 )을
하지 않고 Service에 그대로 데이터를 넘겨 가공은 service단에서한다.
Reposity 란?
👉🏻 Entity에 의해 생성된 DB에 접근하는 메서드 들을 사용하기 위한 인터페이스입니다. @Entity라는 어노테이션으로 데이터베이스 구조를 만들었다면 여기에 CRUD를 해야겠죠?? 이것을 어떻게 할 것인지 정의해주는 계층이라고 생각하면 됩니다!
'몰아 넣기' 카테고리의 다른 글
[java/spring]IOC , DI, Bean에 대해서 (0) | 2022.06.13 |
---|---|
[java/spring]DTO, DAO, VO에 대해서 (0) | 2022.06.13 |
[java] 클래스, 인스턴스, 메소드란? (0) | 2022.06.13 |
[java] 생성자란? (0) | 2022.06.13 |
[java/객체 지향]추상클래스, 인터페이스에 대해서 (0) | 2022.06.13 |