Spring Framework 이해하기
Spring Framework 란?
Spring MVC Framework가 많이 사용되고 있다.
Spring Framework 중심으로 Spring Boot, Spring Data, Spring Cloud, Spring Security, Spring Social 등 다양한 프로젝트 진행해서 해당 기능을 편리하게 사용가능하다.
스프링의 주요 프로젝트
프로젝트 이름 | 설명 |
Spring Framework | 자바 기반의 애플리케이션을 개발하는데 기반이 되는 Framework |
Spring Boot | Spring Framework 기반. 바로 실행가능한 애플리케이션을 쉽게 만들도록 도와준다. 개발자는 최소한의 설정만 진행하면 된다. |
Spring Data | 다양한 데이터베이스, JPA 등의 데이터 접근 기술을 쉽게 사용할 수 있도록 도와준다. |
Spring Security | 자바 애플리케이션에 인증(Authentication), 권한(Authorization)에 특화된 프레임워크 |
Spring Social | 소셜 서비스 API와 쉽게 연동할 수 있게 도와준다. |
MVC 패턴 및 스프링 MVC 알아보기
MVC는 Model, View, Controller의 약자로 소프트웨어 디자인 패턴 중 하나이다.
MVC 패턴도 모델1,2 가 있지만 최근엔 대부분 모델2를 사용한다.
MVC 패턴을 사용하면 사용자 인터페이스와 비즈니스 로직을 분리하여 개발할 수 있다.
서로 영향을 최소화해 개발 및 변경이 쉽다. 즉, 화면과 데이터 처리를 분리해서 재사용이 가능하게 한다.
Model | 데이터를 의미 |
View | 사용자가 보고 사용하는 화면 |
Controller | 사용자의 요청을 파악, 그에 맞는 결과를 사용자에게 돌려준다. |
스프링 웹 MVC 구조
MVC 패턴으로 개발자와 디자이너의 분업이 가능해졌지만 각 컨트롤러에 필요한 코드가 작성되기 때문에 일부 코드가 중복되는 경우가 있다. 이런 문제를 해결하기 위한 방식이 프론트 컨트롤러(Front Controller)방식이다.
Front Controller는 컨트롤러 앞에 존재하는 컨트롤러로 모든 흐름의 제어를 담당한다.
Spring도 Front Controller 패턴을 가진다.
스프링 웹 MVC에서는 디스패처 서블릿이 Front Controller 역할을 수행한다.
Delegate(위임하다) 라는 단어가 나오는데,
전체 로직 중 일부를 컨트롤러에 위임하고 앞의 프론트 컨트롤러는 흐름의 제어를 담당한다.
컨트롤러에서는 결과값의 반환을 프론트 컨트롤러에 위임한다.
일반적으로 사용하는 스프링 MVC 구조
View | 사용자가 보는 화면 또는 결과 |
Controller | 사용자가 브라우저를 통해 요청을 하면 그 요청을 처리할 컨트롤러를 호출 컨트롤러는 사용자의 요청을 처리하기 위한 비즈니스 로직을 호출, 그 결과 값을 사용자에게 전달해 주는 역활을 한다. |
Service | 사용자의 요청을 처리하기 위한 비즈니스 로직이 수행된다. 서비스 인터페이스와 이 인터페이스의 구현제로 나뉜다. |
DAO | 데이터베이스에 접속해서 로직 실행에 필요한 쿼리를 호출 |
DB | DB에는 어플리케이션에서 발생한 모든 정보가 저장 |
'[책] 스프링부트 시작하기 (김인우)'를 공부하면서 적은 내용입니다.