728x90
반응형
MVC 란
MVC 패턴은 애플리케이션을 개발할 때 사용하는 디자인 패턴입니다.
애플리케이션의 개발 영역을 MVC(Model, View, Controller)로 구분하여 각 역할에 맞게 코드를 작성하는 개발 방식입니다.
- Model
- Model은 데이터 관리 및 비즈니스 로직을 처리하는 부분입니다.
- @Service를 통해 스프링 컨테이너에 등록된 객체는 Model에 해당됩니다.
- View
- 비즈니스 로직의 처리 결과를 통해 사용자 인터페이스가 표현되는 구간입니다.
- Model을 통해 전달받은 데이터가 어떤 데이터인지 상관하지 않습니다.
- html, jsp 등 화면을 구성하기도 하고 Rest API서버가 구현된다면 json 응답으로 구성됩니다.
- Controller
- Model, View를 연결해 주는 역할을 합니다.
- 사용자 요청 → Controller → Model → View
- @Controller를 통해 스프링 컨테이너에 등록된 객체는 Controller에 해당됩니다.
MVC1
- 사용자(브라우저)로부터 요청이 들어오면 DB로부터 필요한 데이터를 받은 Model 객체(Java Beab)를 JSP 페이지(View)에 담아 응답을 보내는 패턴입니다.
- JSP가 View, Controller 역할을 모두 담당하기 때문에 JSP Page내에 너무 많은 코드가 들어가 가독성이 떨어지며 복잡해질 가능성이 존재합니다.
MVC2
- MVC1과 다르게 Controller, View가 분리되어 있어 유지보수가 용이합니다.
- 역할이 분리되어 있어 MVC1 패턴의 단점을 보완할 수 있습니다.
- MVC1 패턴보다 구조가 복잡해질 수 있지만 개발자는 M, V, C 중 수정해야 하는 부분이 있는 경우 해당하는 부분만 수정하면 됩니다.
Spring MVC
- HTTP Request를 처리하는 부분인 Controller, 데이터를 처리해 정제된 데이터를 넣는 Model, 정제된 데이터를 활용해 사용자에게 보이는 View에 대한 역할 분리를 잘해놓았습니다.
- Spring MVC를 사용하는 경우 인터페이스를 활용해 규격화해 놓아 유연하고 확장성 있게 웹 애플리케이션 설계가 가능 합니다.
728x90
반응형
'백수 > java' 카테고리의 다른 글
22. 스프링 DI에 대해 아는 대로 말씀해 주세요. (0) | 2023.08.23 |
---|---|
21. 스프링에서 AOP가 뭔가요? (0) | 2023.08.17 |
19. 다형성에 대해서 설명해 보세요. (0) | 2023.08.14 |
18. interface랑 abstract를 비교해서 설명해 주세요. (0) | 2023.08.14 |
17. JVM이 하는 역할이 무엇인가요? (0) | 2023.08.11 |