MVC
MVC는 Model, View, Controller의 약자 입니다. 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 세가지의 역할로 구분한 패턴입니다.
Model
데이터와 애플리케이션이 무엇을 할 것인지를 정의하는 부분으로 내부 비즈니스 로직을 처리하기 위한 역할을 합니다. 즉, 컨트롤러가 호출을 하면 DB와 연동하여 사용자의 입출력 데이터를 다루는 일과 같은 데이터와 연관된 비즈니스 로직을 처리하는 역할을 합니다. 데이터 추출, 저장, 삭제, 변경 등의 역할을 수행합니다.
DAO
데이터베이스의 데이터에 접근하기 위한 객체로 DB의 데이터를 JAVA 환경으로 가져올 수 있도록 하며 CRUD 기능을 구현합니다.
Create : 생성
Read : 읽기
Update : 갱신
Delete : 삭제
VO
값 오브젝트로써 데이터를 정의하기 위해 쓰입니다.
View
사용자에게 보여주는 화면에 해당됩니다. 사용자와 상호작용을 하며 컨트롤러로부터 받은 모델의 결과값을 사용자에게 화면으로 출력하는 일을 합니다. 유효성 검사와 사용자와의 입출력을 담당하며 사용자 편의성(UI / UX)을 고려해야 합니다.
Controller
Model과 View 사이를 이어주는 인터페이스 역할을 합니다. 사용자로부터 View에 요청이 있으면 Controller는 해당 업무를 수행하는 Model을 호출하고 Model이 업무를 모두 수행하면 다시 결과를 View에 전달하는 역할을 합니다.
※ Model과 View는 절대 붙어있지 않아야 하며 무조건 분리하여 결합도를 낮춰야 합니다. 또한 사용자가 DB에 직접 접근하는 일이 없어야 합니다.
MVC의 장점
- 기능별로 코드를 분리하여 하나의 파일에 코드가 모이는 것을 방지하여 가독성과 코드의 재사용이 증가합니다.
- 각 구성요소들을 독립시켜 협업을 할 때 맡은 부분의 개발에만 집중할 수 있어 개발의 효율성을 높여줍니다.
- 프로젝트 코드가 낮은 결합도를 갖습니다. (낮은 코드 의존도)
- 프로젝트 코드가 낮은 응집도를 갖습니다. (관련있는 코드들끼리 하나의 페이지에 작성)
- 개발 후에도 유지보수성과 확장성이 용이합니다.
GitHub
https://github.com/Qkrwnsgus0522/Java