JSP와 MVC2 패턴

2024. 10. 18. 15:35·🗄️ Backend/JSP

MVC2 패턴 개요

MVC2 패턴은 Model-View-Controller 아키텍처를 기반으로 한 웹 애플리케이션 구조로, 클라이언트의 요청을 효율적으로 처리하고 사용자에게 데이터를 표시하기 위해 데이터와 비즈니스 로직, 사용자 인터페이스를 분리합니다. 이 구조는 웹 애플리케이션의 유지보수성과 확장성을 높여줍니다.

각 구성 요소의 역할

  • M (Model): 데이터와 비즈니스 로직을 관리하는 역할입니다. 데이터베이스와의 상호작용, 데이터를 처리 및 가공하여 비즈니스 로직을 수행하는 책임이 있습니다. Model은 주로 DAO(Data Access Object)와 DTO(Data Transfer Object)로 구성됩니다.

  • V (View): 사용자에게 데이터를 보여주는 역할을 합니다. 모델에서 가공된 데이터를 사용자에게 표시하며, HTML, CSS, JavaScript 등으로 사용자 인터페이스를 구성합니다.

  • C (Controller): 모든 요청을 모아주는 역할을 하며, 클라이언트의 요청을 받아 적절한 모델과 뷰로 전달합니다. Controller는 프론트 컨트롤러로서 동작하며, 사용자 요청에 따라 적절한 로직을 수행합니다.

MVC2의 흐름

MVC2 패턴의 흐름은 다음과 같은 단계로 구성됩니다:

  1. 사용자 요청: 사용자가 웹 애플리케이션에서 특정 링크를 클릭하거나 폼을 제출합니다. 예를 들어, <a href="signup.test">회원가입 요청</a>와 같은 링크를 클릭합니다.

  2. 요청 수집 및 처리: 이 요청은 서버로 전달되며, 프론트 컨트롤러(예: 서블릿)가 모든 요청을 수집합니다. 이 단계에서 URL 경로를 분석하여 적절한 세부 컨트롤러로 요청을 전달합니다.

  3. 컨트롤러 호출: 프론트 컨트롤러는 요청에 따라 적절한 세부 컨트롤러(예: SignupController, LoginController 등)를 호출합니다.

  4. 비즈니스 로직 수행: 세부 컨트롤러는 요청에 따라 필요한 비즈니스 로직을 수행하며, 이 과정에서 모델과 상호작용하여 데이터를 처리하거나 가져옵니다.

  5. 뷰 결정 및 반환: 비즈니스 로직 수행 후, 컨트롤러는 결과를 기반으로 적절한 뷰(HTML 페이지, JSON 데이터 등)를 결정하여 사용자에게 반환합니다.

각 링크의 컨트롤러와의 연관성

위의 요청 링크들은 다음과 같이 컨트롤러와 연결됩니다:

  • <a href="signup.test">회원가입 요청</a>: 사용자가 회원가입을 요청하면, SignupController가 호출되어 회원가입 비즈니스 로직을 처리하고 적절한 회원가입 페이지를 반환합니다.

  • <a href="login.test">로그인 요청</a>: 사용자가 로그인 요청을 하면, LoginController가 호출되어 로그인 비즈니스 로직을 처리하고 로그인 페이지 또는 응답을 반환합니다.

  • <a href="user/getUser.test">회원정보 요청</a>: 사용자가 회원정보를 요청하면, UserController가 호출되어 회원정보 조회 비즈니스 로직을 처리하고 회원정보 페이지를 반환합니다.

  • <a href="user/modify.test">회원수정 요청</a>: 사용자가 회원수정을 요청하면, UserController가 호출되어 회원수정 비즈니스 로직을 처리하고 수정 결과 페이지를 반환합니다.

  • <a href="logout.test">로그아웃 요청</a>: 사용자가 로그아웃을 요청하면, LogoutController가 호출되어 로그아웃 비즈니스 로직을 처리하고 로그아웃 후 페이지를 반환합니다.


MVC2 패턴은 웹 애플리케이션 개발에서 사용자 요청을 효율적으로 처리하고,
데이터와 사용자 인터페이스를 명확히 분리하여 유지보수성과 확장성을 높이는 데 중요한 역할을 합니다.
이를 통해 개발자는 비즈니스 로직을 더욱 간편하게 관리하고, 사용자에게 보다 나은 경험을 제공할 수 있습니다.

'🗄️ Backend > JSP' 카테고리의 다른 글

JSP와 Servlet 기초 정리 - 입사 전 리마인드  (0) 2025.02.13
JSP와 MyBatis  (4) 2024.10.18
JSP와 MVC 패턴: DAO/DTO, 커넥션 풀, EL, JSTL  (1) 2024.10.18
쿠키(Cookie)와 세션(Session) 완벽 가이드  (0) 2024.10.18
JSP와 서블릿: 동적 웹 개발의 기초  (0) 2024.10.18
'🗄️ Backend/JSP' 카테고리의 다른 글
  • JSP와 Servlet 기초 정리 - 입사 전 리마인드
  • JSP와 MyBatis
  • JSP와 MVC 패턴: DAO/DTO, 커넥션 풀, EL, JSTL
  • 쿠키(Cookie)와 세션(Session) 완벽 가이드
hjwjo
hjwjo
백엔드 및 풀스택 개발에 관심 있는 초보 개발자의 개발 블로그입니다.
  • hjwjo
    Jeongwoo's Devlog
    hjwjo
  • 전체
    오늘
    어제
    • Devlog
      • 🗄️ Backend
        • Java
        • Spring
        • JPA
        • SQL
        • JSP
        • AWS
        • GCP
        • Linux
        • GitHub
        • ML
        • Security
      • 🖥️ Frontend
        • React
        • CSS
      • 🏅 Project
        • Hackathon
        • Team Project
      • 📊 Algorithm
        • BOJ
      • 📜 Certs
        • ADsP
        • SQLD
        • 정보처리기사
      • 📖
        • JavaScript
      • 일상
        • 면접후기
  • 블로그 메뉴

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

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    AWS
    jsp
    Spring
    springboot
    DML
    http
    java기초
    ADsP
    java
    자바
    백준
    정처기
    SQL
    정보처리기사
    스프링부트
    백엔드
    스프링
    GCP
    데이터베이스
    쿼리
  • 최근 댓글

  • 최근 글

hjwjo
JSP와 MVC2 패턴
상단으로

티스토리툴바