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)과 직접적으로 접근해 데이터 주고 받는 클래스
- 규칙
- 사용자가 편집하기 원하는 모든 데이터 가지고 있어야
- 뷰나 컨트롤러에 대해 어떤 정보도 알지 못해야
- 변경이 일어나면, 번경 통지에 대한 처리방법 구현해야
+ DAO?
Data Access Object, 데이터베이스와의 통신,
CRUD 작업 수행(Create, Read, Update, Delete)
-> 데이터베이스의 레코드를 생성, 읽기, 업데이트, 삭제하는 작업
View
- 사용자가 보게되는 화면(User interface)
- 출력 및 입력
- 웹페이지, GUI, 텍스트 등으로 표시
- 규칙
- 모델이 가지고 있는 정보를 따로 저장해선 안됨
- 모델, 컨트롤러와 동일하게 다른 구성 요소 몰라야
- 변경이 일어나 면, 번경 통지에 대한 처리방법 구현해야
Controller
- 모델과 뷰 사이를 이어주는 다리 역할
- View를 통해 사용자가 요청한 기능 처리
- 해당 메소드로 전달된 데이터(from veiw) 가공해 DAO로 전달(to dao)
- DAO로 반환받은 결과(from dao) 성공/실패 반환(to veiw)
- 규칙
- 모델이나 뷰에 대해 알고있어야
- 모델이나 뷰의 변경을 모니터링해야
+ Model과 Controller 차이
Model DB, 비즈니스 로직 관리 |
Controller 사용자 입력 처리해 모델과 뷰 간 상호작용 조정 |