SpringBoot 웹 애플리케이션의 MVC 패턴

2024. 12. 20. 18:32·Spring

MVC의 철학적 기반

  1. 역할 분리의 중요성
    • 각 구성 요소가 자신의 책임만 다하면 다른 요소가 변경되더라도 최소한의 영향을 받습니다.
    • 애플리케이션의 복잡성을 줄이고, 디버깅과 유지보수를 용이하게 합니다.
    • MVC의 핵심은 "하나의 요소는 하나의 역할만 수행해야 한다"는 원칙에서 출발합니다. 이는 소프트웨어 개발의 관심사 분리(Separation of Concerns) 원칙과 직결됩니다.
  2. 사용자와 시스템의 상호작용 모델링MVC는 이러한 상호작용을 단계적으로 나누어 체계적으로 정리합니다.
    • 사용자는 단순히 데이터를 요청하거나 입력하지만, 시스템 내부에서는 이를 처리하고 응답하기 위해 다양한 로직이 수행됩니다.

1. Model (모델)

  • 개념:
    • 모델은 애플리케이션의 데이터와 그 데이터를 처리하는 비즈니스 로직을 담당합니다.
    • 데이터베이스와의 상호작용, 데이터를 저장하거나 가공하는 작업을 수행합니다.
    • 사용자가 보거나 수정할 수 있는 데이터를 표현합니다.
  • Spring Boot에서의 구현:
    • Entity 클래스: @Entity를 사용하여 데이터베이스 테이블과 매핑합니다.
    • Repository 인터페이스: JpaRepository 등을 활용해 데이터 접근 계층을 구현합니다.
    • Service 클래스: 비즈니스 로직을 처리하는 계층입니다. @Service로 표시합니다.

2. View (뷰)

  • 개념:
    • 뷰는 사용자에게 데이터를 시각적으로 표현하는 부분입니다.
    • HTML, CSS, JavaScript와 같은 프론트엔드 요소로 구성되며, 사용자의 입력을 수집하는 역할도 합니다.
  • Spring Boot에서의 구현:
    • 템플릿 엔진: Thymeleaf, JSP, 또는 Mustache 등을 사용해 뷰를 작성합니다.
    • 모델 데이터를 전달받아 렌더링합니다.
    • 예: Thymeleaf에서 ${modelAttribute}를 사용해 데이터를 출력.

3. Controller (컨트롤러)

  • 개념:
    • 컨트롤러는 사용자의 요청을 처리하고, 필요한 데이터를 모델에서 가져와 뷰에 전달합니다.
    • 주로 HTTP 요청을 처리하고, 적절한 응답을 반환하는 역할을 합니다.
  • Spring Boot에서의 구현:
    • @Controller 또는 @RestController를 사용해 컨트롤러 클래스를 작성합니다.
    • 요청 매핑은 @RequestMapping 또는 @GetMapping, @PostMapping 등을 사용합니다.
    • 모델 데이터를 뷰로 전달하려면 Model 객체를 활용합니다.

'Spring' 카테고리의 다른 글

Spring Web MVC - HTTP 요청 파라미터 처리  (1) 2024.12.20
Spring Web MVC - HTTP 요청 RequestMapping  (1) 2024.12.20
답글이 있는 게시판 만들기  (1) 2024.12.20
JSP로 페이징 구현하기  (1) 2024.12.20
MVC 패턴이란?  (2) 2024.12.19
'Spring' 카테고리의 다른 글
  • Spring Web MVC - HTTP 요청 파라미터 처리
  • Spring Web MVC - HTTP 요청 RequestMapping
  • 답글이 있는 게시판 만들기
  • JSP로 페이징 구현하기
jhyngu
jhyngu
취업하자.
    티스토리 홈
    |
  • jhyngu
    jhyngu
    jhyngu
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • Dev (151)
      • Java (2)
      • Spring (51)
      • Spring Security (39)
        • JWT (22)
        • OAuth2 (17)
      • Kotlin (2)
      • React (6)
      • Coding Test (28)
      • DB (0)
      • Git (5)
      • Linux (14)
      • docker (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    MVC
    OAuth2
    Spring
    Spring Boot
    JDBC
    git
    spring web
    oauth2
    알고리즘
    Linux
    JavaScript
    백준
    mybatis
    react
    JWT
    Postman
    api client
    MariaDB
    Spring Framework
    Spring Security
  • hELLO· Designed By정상우.v4.10.3
jhyngu
SpringBoot 웹 애플리케이션의 MVC 패턴
상단으로

티스토리툴바