스프링에서는 일반적으로 MVC(Model - View -Controller) 패턴을 사용한다.
MVC패턴을 사용함으로 사용자의 인터페이스로부터 비지니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.
즉, 서로 분리되었기 때문에 각각의 역할에 집중하여 개발할 수 있음을 의미한다.
MVC에서의 각각의 역할은 다음과 같다.
Model - 어플리케이션이 어떤 일을 해야할지 정의한다. 데이터베이스와 연결하여 사용자에게 입출력하게 될 데이터를 다룬다.
View - 사용자들이 시각적으로 보는 부분이다.
Controller - 사용자들이 보는 페이지와 데이터처리 중간에서 제어자의 역할을 한다.
그리고 스프링에서는 하나의 주제에 하나 이상의 레파지토리, 서비스 클래스를 만들고 이를 컨트롤러에서 사용하는 방식으로 사용해오고 있다.
DB -> Repository -> Service -> Controller -> View
Repository, Service, Controller의 역할은 각각 다음과 같다.
Repository :
데이터베이스와 연결되어 데이터를 처리하는 영역
데이터베이스의 데이터를 가져오고 저장하는데 사용. 데이터 엑세스 계층을 담당한다.
Service :
하나 이상의 레파지토리를 묶어 관리하는 목적으로 사용된다.
레파지토리와 컨트롤러 사이에서 중간 계층으로 사용한다.
Controller :
클라이언트로부터 들어오는 요청을 처리하고 , 서비스 계층에서 필요한 작업들을 수행한다.
위와 같은 구조로 , 각각의 계층의 책임이 분리가 되어 유지보수성과 확장성을 높일 수 있다.
참고 사이트 :
https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller
'공부 > CS 기초이론' 카테고리의 다른 글
[Web] REST에 대해 간단 정리 (0) | 2023.04.12 |
---|---|
[Web] HTTP Method (0) | 2023.04.11 |
[JAVA / Spring] Entity, DTO, VO (0) | 2023.04.05 |
[JAVA / Spring] DDD설계와 SQL중심설계 (0) | 2023.04.05 |
[JAVA / Spring] DI, IOC (0) | 2023.04.04 |