[SPRING]스프링 웹 애플리케이션

Date:     Updated:

카테고리:

태그:

[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게층과 모든 계층에서 사용되는 도메인 모델로 구성된다.
  • 각각의 계층은 독립적으로 분리하여 구현하는 것이 가능해야 하며, 각 계층에서 담당해야 할 기능들이 많다.

SPRING 카테고리 내 다른 글 보러가기

댓글 남기기