Spring : MVC 아키텍처란?

최혜린·2025년 3월 15일

MVC 아키텍처

MVC(Model-View-Controller)는 소프트웨어 설계 패턴 중 하나로, 비지니스 로직과 UI를 분리하여 유지 보수성과 확장성을 높이는 구조다.

✅ MVC 아키텍처의 핵심 목표

  • 관심사 분리(Separation of Concerns, SoC) → 역할을 분리하여 유지보수와 확장성 향상
  • UI(View)와 비즈니스 로직(Model)의 분리 → 재사용성과 코드 가독성 향상
  • 클라이언트-서버 구조에서 효과적인 데이터 흐름 유지

1. MVC 구성 요소

1. Model(모델)

  • 데이터 및 비지니스 로직 담당
  • 데이터베이스와의 연동 및 연산 처리
  • ex) DAO(Data Access Object, Repository), Service 클래스

2. View(뷰)

  • 사용자에게 화면을 제공
  • 모델의 데이터를 출력하고 입력을 받아 컨트롤러에 전달
  • ex ) HTML, JSP, Thymeleaf

3. Controller(컨트롤러)

  • 사용자의 요청을 처리하고 모델과 뷰를 연결
  • 요총을 모델에 전달하고, 모델에서 받은 데이터를 뷰에 전달
  • ex) Spring의 @Controller, @RestController

📌 참고
MVC 패턴에서 Entity와 DTO는 필수 요소가 아니다.
MVC 자체는 Model, View, Controller로 구성되며, Entity는 데이터베이스와의 연동을 위해, DTO는 데이터를 안전하게 주고받기 위해 추가된 개념이다.
따라서 DB를 사용하지 않는 프로젝트에서는 Entity나 DTO 없이도 MVC 패턴을 적용할 수 있다

2. MVC 장점

  • 유지보수성 증가 : 각 역할이 분리되어 수정이 용이하다.
  • 확장성 우수 : 특정 부분만 변경 가능하다.
  • 협업 효율 증가 : 개발자가 역할을 분담할 수 있다.

3. MVC 패턴 적용 시 주의할 점

1. Controller가 너무 많은 로직을 담당하지 않도록 주의

  • 컨트롤러는 가볍게 유지하고, 로직은 서비스에서 처리해야 한다.

2. View와 MOdel의 의존성을 줄일 것

  • 예를 들어, View에서 DAO를 호출하면 안됨
  • 반드시 Controller → Service →DAO 흐름을 지켜야 한다.

3. DTO를 활용하여 Entity 노출 최소화

  • API 응답에서 Entity를 직접 반환하면 불필요한 데이터가 포함될 수 있다.
  • DTO를 사용하여 필요한 데이터만 전달하는 것이 보안과 유지보수 측면에서 좋다.
profile
산으로 가는 코딩.. 등산 중..🌄

0개의 댓글