Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

그냥 블로그^_~

MVC 패턴 본문

CS/Back-end

MVC 패턴

hj__0428 2022. 9. 25. 22:54

MVC 패턴 (Model-View-Controller)

Model

  • 요청에 대한 실질적인 처리 담당
    • Controller로부터 데이터를 받아 로직을 수행하고 결과 리턴
  • Business Logic : Service
  • DB Logic : Dao
  • 단순 클래스 파일

View

  • 클라이언트에게 보여줄 결과 페이지
  • 요청에 대한 결과, 요청을 보내는 화면단
  • 요청 처리, DB 관련 코드X, 단순히 화면 출력
  • logic 처리를 위한 java 코드를 최대한 없애서 tag에 가깝게
  • jsp, html

Controller

  • 요청 처리에 대한 전반적인 흐름 제어
  • 클라이언트의 요청을 분석하여 Model 단을 호출만 함
  • Servlet 파일
  • 흐름 제어 순서
    1. 요청 받기
    2. 요청 관련 파라미터 추출하고 필요하다면 가공
    3. Model에 요청 처리 넘기기(메소드 호출)
    4. 처리 결과를 받아서 View 반환
      • 넘겨줄 데이터가 있다면 forward, 없다면 redirect

 

 

MVC 패턴 사용 이유

  • 유지보수성 높아짐
    • 모든 기능이 분리되어 있기 때문에 결합도가 낮아짐
      • 특정 코드가 바뀌었을 때 다른 코드가 영향을 받는 정도가 적음.
  • 재사용성
    • ex) Dao의 경우 같은 로직이 여러 번 사용되는 경우가 있음. 이럴 때 재사용 가능
  • 프로젝트, 협업 시 개발의 효율성
    • 역할을 분담해서 맡은 부분의 작업만 잘 수행하면 됨

 

 

 

3계층 아키텍처

Presentation Layer

  • 클라이언트와 애플리케이션 간의 상호작용하는 인터페이스 역할
  • Controller, View

Business Layer

  • 실제 요청한 서비스를 처리하는 영역
  • DB로직 제외

Persistant Layer (영속 계층)

  • DB나 파일시스템에 접근하여 CRUD 기능
  • DAO, DB

'CS > Back-end' 카테고리의 다른 글

Cookie와 Session  (0) 2022.09.25