Java_27_MVC 패턴

OngTK·2025년 9월 14일

Java

목록 보기
27/35

🧩 MVC 패턴 (Model-View-Controller)

1) 정의

  • 소프트웨어 공학에서 사용되는 디자인 패턴 중 하나
  • 비즈니스 로직, 사용자 인터페이스, 데이터 처리를 분리하여 개발 효율성과 유지보수성을 높임

2) 목적

  • 프로그램을 깔끔하고 효율적으로 설계하기 위한 구조
  • 역할 분리를 통해 협업과 유지보수에 유리

3) 종류

(1) MVC1

  • 구조: Controller · View ↔ Model (JSP가 모든 역할을 수행)
  • 특징:
    • JSP 파일에서 HTML과 Java 코드를 함께 작성
    • 빠른 개발 가능
  • 단점:
    • 유지보수 어려움
    • 역할 분담이 불명확

(2) MVC2

  • 구조: View ↔ Controller ↔ Model
  • 특징:
    • View는 HTML, JSP 등으로 UI만 담당
    • Controller는 요청 처리 및 흐름 제어 담당
  • 장점:
    • 화면과 로직이 분리되어 유지보수 용이
  • 단점:
    • 파일 수 증가로 인한 관리 복잡성

(3) MVC2 + 3-Tier 구조

  • 구조: View ↔ Controller ↔ Service ↔ Model
  • 특징:
    • Spring MVC에서 사용하는 구조
    • Controller의 제어 로직비즈니스 로직(Service) 분리
  • 장점:
    • 관점 지향 프로그래밍(AOP)에 적합
    • 유지보수성과 확장성 향상
  • 단점:
    • 구조 복잡도 증가
    • 파일 수 증가

4) 구역 · Layer

(1) View

  • 역할: 사용자에게 보여지는 UI 영역
  • 기술: HTML, CSS, JavaScript, JSP, Thymeleaf, Mustache, React

(2) Controller

  • 어노테이션: @Controller, @RestController
  • 역할:
    • HTTP 요청/응답 처리
    • 매개변수 바인딩 및 반환 타입 처리
    • 유효성 검사, 예외 처리 등
  • 주의:
    • Controller는 다른 Controller를 호출하지 않음

(3) Service

  • 어노테이션: @Service
  • 역할:
    • 비즈니스 로직 처리
    • 예: CRUD, 데이터 검증, 연산, 알고리즘, 트랜잭션, 임시 비밀번호 생성 등
  • 특징:
    • 다른 Service를 호출할 수 있음

(4) Repository

  • 어노테이션: @Repository
  • 역할:
    • 데이터베이스 접근 및 조작
    • Entity 조작, SQL 실행
  • 기술: DAO, JPA, MyBatis
profile
2025.05.~K디지털_풀스택 수업 수강중

0개의 댓글