[SPRING]스프링 웹 애플리케이션
카테고리: SPRING
[3] 스프링 웹 애플리케이션
3.1. Spring MVC
- 스프링 프레임워크를 구성하는 모듈, 정식 명식은 Spring Web MVC 임.
- 서블릿 API를 기반으로 작성된 웹 프레임워크(Web Framework)임
- 프론트 컨트롤러 패턴과 MVC 아키텍쳐 패턴을 사용함
- 유연하고 확장성이 뛰어난 구조를 제공함
- 자바 언어의 애노테이션(Annotation)과 리플렉션(Reflection) API를 적극 사용함
- 애노테이션 기반 프로그래밍 (Annotation-based programming) 모델을 제공함
- 경량 함수형 프로그래밍 모델 (functional programming model)을 지원함
3.2. 관심사의 분리 (Separation of Concerns)
- 클라이언트에서 요청이 들어옴
- DispatcherServlet에서 입력을 처리, new Model()을 생성하여 Controller로 보냄
- Controller에서 매개변수로 Map의 형태인 Model을 받음.
- 유효성 검사를 통과하면 처리 및 Model에 작업 결과를 저장.
- 작업 결과를 보여줄 View의 이름을 String으로 DispatcherServlet에게 반환.
- DispatcherServlet에서 반환된 View의 이름을 찾아서 Model을 전달
- 해당 View에서 클라이언트로 응답을 보냄
- 컨트롤러의 메서드 리턴타입
- String : 뷰이름을 반환
- void : 매핑된 url의 끝단어가 뷰 이름
- ModelAndView : Model과 뷰 이름을 반환
- ModelAndView 객체를 Controller 내부에서 생성
- ModelAndView에 뷰의 이름과 작업 결과를 저장해서 반환
- 컨트롤러의 메서드 리턴타입
3.3. DB연동
- 데이터를 주고받기 위한 DTO 클래스와 테이블에 접근하기 위한 DAO 클래스.
- DAO (Data Access Object) 패턴
- 데이터 액세스 계층은 DAO 패턴을 적용하여 비지니스 로직과 데이터 액세스 로직을 분리하는 것이 원칙이다.
- 비즈니스 로직을 가진 엔터프라이즈 애플리케이션이라면 데이터 액세스 계층을 DAO 패턴으로 분리해야 한다.
- DAO 패턴은 서비스 계층에 영향을 주지 않고 데이터 액세스 기술을 변경할 수 있는 장점을 가진다.
- JDBC를 통해 구현한다.
- 하나의 테이블에서 수행할 수 있는 CRUD를 전담한다.
- DTO (Data Transfer Object)
- 계층 사이에서 데이터를 교환하기 위해 생성하는 객체.
- 별다른 조직없이 속성(멤버 변수)과 그 속성에 접근하기 위한 getter/setter 메서드만 갖춘게 특징이다.
3.4. 아키텍쳐 개요
- 대부분의 중, 대규모 웹 애플리케이션은 효율적인 개발 및 유지 보수를 위하여 계층화(Layering)하여 개발하는 것이 일반적이다.
- 프리젠테이션 계층(Presentation Layer), 서비스 계층(Service Layer), 데이터액세스 계층(Data Access Layer). 3게층과 모든 계층에서 사용되는 도메인 모델로 구성된다.
- 각각의 계층은 독립적으로 분리하여 구현하는 것이 가능해야 하며, 각 계층에서 담당해야 할 기능들이 많다.
댓글 남기기