[Day 31 | Spring] MVC2 패턴 개요 및 주요 구성요소 정리

y♡ding·2024년 11월 25일

데브코스 TIL - Spring

목록 보기
28/46

1. MVC2 구성요소

Controller (컨트롤러)
사용자의 요청을 처리하고 비즈니스 로직과 View 간의 흐름을 제어하는 역할.

  • Front Controller:
    • 중앙집중식 요청 처리.
    • Servlet 사용, Spring에서는 DispatcherServlet이 Front Controller로 동작.
    • 모든 요청을 받아서 적절한 Back Controller로 전달.
  • Back Controller:
    • 사용자 요청에 따라 세부 작업을 처리.
    • Spring에서는 @Controller 또는 @RestController로 구현.
    • 주요 기능:
      • URL 처리: @RequestMapping 또는 @GetMapping, @PostMapping 등 사용.

Model (모델)
애플리케이션의 비즈니스 로직과 데이터 처리를 담당.

  • @Service:
    • 비즈니스 로직 담당.
    • 여러 DAO(Repository) 또는 외부 API를 호출해 데이터를 가공.
  • @Repository:
    • 데이터베이스와의 직접적인 통신 담당.
    • DAO(Data Access Object) 역할 수행.
    • 데이터 조회/저장을 위한 SQL 실행.

View (뷰)
사용자에게 보여지는 화면.

  • HTML 출력 (디자인 포함):
    • JSP, Thymeleaf, Mustache 등 템플릿 엔진 사용.
  • XML/JSON 데이터 출력:
    • RESTful 서비스를 통해 클라이언트에게 데이터 전달.
    • 주로 API 형태로 활용되며 Spring에서는 @RestControllerResponseEntity로 구현.
    • 예: 영화진흥위원회의 영화 데이터 API 등.

2. 데이터베이스 연동 방식

① DataSource 사용

  • 데이터베이스 연결을 위한 기본적인 방식.
  • JDBC를 기반으로 Connection Pool 등을 활용.

② JdbcTemplate

  • Spring의 JDBC 모듈로 제공.
  • 장점:
    • SQL 구문 작성은 직접 하지만, 반복 코드를 제거하고 객체 매핑을 지원.

③ MyBatis

  • 객체와 SQL을 매핑하는 퍼시스턴스 프레임워크.
  • 특징:
    • SQL 작성의 자유도를 보장하면서도 객체-데이터베이스 매핑(ORM) 기능 제공.
    • XML이나 어노테이션을 통해 SQL 정의.

정리된 역할별 흐름

  1. Controller:
    • 사용자 요청 수신 및 흐름 제어.
    • 요청에 따라 Model 호출 및 View 반환.
  2. Model:
    • 비즈니스 로직 수행 (@Service).
    • 데이터 처리 및 데이터베이스 연동 (@Repository).
  3. View:
    • 사용자에게 데이터 또는 UI 출력.

0개의 댓글