JAVA

MVC(model-view-controller) : 과제를 위한 정리

anjoo24 2024. 3. 4. 16:46
* 모델-뷰-컨트롤러(model-view-controller, MVC)란? 역 할 분 담
소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴
어플리케이션을 Model과 View, Controller 세 영역으로 나누어 역할을 나누고 영역을 분리

* 왜 사용?
유지보수 편리성
 →기능간 결합도(coupling)이 높아지는 것을 방지
   , 비지니스 로직(Model)과 UI영역(View) 분리해 영향주지 않으며 유지보수 가능
이외에도 애플리케이션 확장성, 유연성 증가, 중복코딩 방지 등

 

 

Model
  • 데이터 처리 담당 컴포넌트(Component)
  • 데이터와 데이터를 처리하는 로직 담당
  • 모델은 데이터의 상태를 나타내고 이 상태에 대한 변경을 처리
  • 비즈니스 로직 처리 후 변경 사항 컨트롤러와 뷰에 전달
  • (VO, value object) 데이터를 담기 위한 클래스,
  • (DAO) 데이터가 보관된 공간(DB)과 직접적으로 접근해 데이터 주고 받는 클래스

 

  • 규칙
  1. 사용자가 편집하기 원하는 모든 데이터 가지고 있어야
  2. 뷰나 컨트롤러에 대해 어떤 정보도 알지 못해야
  3. 변경이 일어나면, 번경 통지에 대한 처리방법 구현해야

   + DAO?

   Data Access Object, 데이터베이스와의 통신,

   CRUD 작업 수행(Create, Read, Update, Delete)

    -> 데이터베이스의 레코드를 생성, 읽기, 업데이트, 삭제하는 작업

 

 

View
  • 사용자가 보게되는 화면(User interface)
  • 출력 및 입력
  • 웹페이지, GUI, 텍스트 등으로 표시

 

  • 규칙
  1. 모델이 가지고 있는 정보를 따로 저장해선 안됨
  2. 모델, 컨트롤러와 동일하게 다른 구성 요소 몰라야
  3. 변경이 일어나 면, 번경 통지에 대한 처리방법 구현해야

 

 

Controller
  • 모델과 뷰 사이를 이어주는 다리 역할
  • View를 통해 사용자가 요청한 기능 처리
  • 해당 메소드로 전달된 데이터(from veiw) 가공해 DAO로 전달(to dao)
  • DAO로 반환받은 결과(from dao) 성공/실패 반환(to veiw)

 

  • 규칙
  1. 모델이나 뷰에 대해 알고있어야
  2. 모델이나 뷰의 변경을 모니터링해야

+ Model과 Controller 차이

Model 
DB, 비즈니스 로직 관리
Controller
사용자 입력 처리해
모델과 뷰 간 상호작용 조정