spring의 개념과 MVC패턴 소개

김시원·2022년 8월 9일
0

https://m.blog.naver.com/scw0531/220984890046
공부하려고 따라적은 것.

스프링 프레임워크에 대한 전반적인 개념과 웹 표준 개발 패턴인 MVC에 대해서.

프레임워크란 프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리의 모임. 개발에 대한 표준을 제공하는 틀.

스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 간단히 스프링이라고 부르기도 한다. 동적인 웹사이트를 개발하기 위한 여러가지 서비스를 제공하고 있다.

이전까지 자바 기반의 플랫폼 개발은 이클립스에서 이루어졌다. 또한 이클립스에 여러 플러그인을 결합하는 방식으로 확장성을 넓혀갔고, 프로젝트의 구조를 개발자가 하나씩 만들어가며 개발하였다. 스프링 프레임워크는 이러한 방식을 쉽게 그리고 더 유연하게 제공해준다. 따라서 해당 프레임워크에 대한 이해를 하기 위해서는 기존 이클립스의 개발환경에 대해서 충분한 숙지가 필요하다.

MVC패턴은 최근 애플리케이션 개발 환경에 있어서 상당히 중요한 구조이고 스프링 프레임워크는 기본적으로 MVC 환경을 셋팅해준다.

스프링은 제어반전(IoC : Inversion of Control)을 지원한다. 컨트롤의 제어권이 사용자가 아니라 프레임워크에 있어서 필요에 따라 스프링에서 사용자의 코드를 호출한다.

스프링은 의존성 주입(DI : Dependency Injection)을 지원한다. 각각의 계층이나 서비스 들 간에 의존성이 존재할 경우 프레임워크가 서로 연결시켜준다.

스프링은 웹 프로그래밍 개발 시 거의 표준적인 방식인 spring MVC라 불리는 모델-뷰-컨트롤러 패턴을 사용한다. Dispatcher Servlet이 Controller역할을 담당하여 각종 요청을 적절한 서비스에 분산시켜주며 이를 각 서비스들이 처리를 하여 결과를 생성하고 그 결과는 다양한 형식의 view 서비스들로 화면에 표시될 수 있다.

위의 그림은 MVC패턴의 구조이다. 스프링 환경에서 프로젝트 생성 시 위와 같은 구조로 패키지들을 설계 할 것이다.

(1) view와 controller와의 관계. 뷰는 사용자가 실제 보여지는 화면을 의미한다. 즉 화면에서 어떤 특정 서비스를 제공받기 위해 버튼을 클릭 시 이를 컨트롤러가 이벤트를 인식하게 된다. 컨트롤러는 이후 과정에서 발생되는 데이터에 따라 적절하게 다시 사용자에게 결과화면을 제공한다. 만약 에러나 다른 서비스를 보여 줄 시 뷰를 다르게 할 수 있다. view영역은 html, jsp 등으로 구성한다.

(2) controller와 service의 관계. service는 실제 비즈니스 로직이 들어가는 부분. 컨트롤러는 뷰단에서 사용자의 이벤트를 적절한 서비스에게 전달한다. 이를 받은 서비스는 비즈니스 로직을 처리하게 된다.

(3) service와 DAO의 관계이다. 실제 데이터베이스 작업을 통해 데이터를 로드하는 과정이다. 비즈니스 로직에서 필요한 데이터를 실제 connection을 담당하고 있는 DAO를 이용해서 가져온다.

(4) DAO와 DB와의 관계이다. JDBC로직을 이용하여 DB(원격 포함)에서 CRUD를 통해 데이터를 입력, 로드한다.

(5) service와 DAO가 작업을 수행하는데 있어서 데이터 포맷을 제공해주는 역할을 한다. DTO라고 불리고 VO, Model이라고도 불린다. 경우에 따라서 클래스 생성 시 Beans라고도 한다. 스프링은 객제단위로 움직이기 때문에 DTO를 이용해서 데이터를 주고받는다.

이러한 MVC처리과정은 어노테이션(@)을 이용해서 체계적으로 관리(@Controller, @Service, @Repository 등)하게된다.

DAO : Data Access Object
DTO : Data Transfer Object
VO : Value Object

profile
IT 개발자 시원

0개의 댓글