특정 유사한 기능을 개발하는 중에 발생하는 다양한 이슈들을 해결하는 데 도움을 주는 일종의 코드 형태이다. 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정 패턴으로써 정의된 것을 의미한다.
간단히 얘기하자면, 프로그램을 구성하는 요소를
Model(데이터), View(화면), Controller(로직) 으로 분류하여 각자의 역할과 업무에만 충실하도록 구성하는 것을 말한다.
→ 유지보수가 용이해짐
→ 중복코딩 X
→ 확장성, 유연성 증가
그럼 각각의 MVC를 분리한다는 건 알겠는데, 이를 어떻게 분리시켜야한다는 것일까?
모델은 다음 3가지 규칙을 가지고 있어야한다.
ex) Service ( 비즈니스 로직 처리 ), Model ( DB 정보 )
화면에 표시되는 UI를 의미한다.
ex) SSR의 경우 : View ( JSP, Thymeleaf 등등 )
CSR의 경우 : Front에서 이루어짐
Model과 View를 연결해주는 역할을 한다. 즉, 상황(조건)에 맞게 전달만 해주는 역할을 수행한다.
ex) Controller ( 전송된 데이터를 받아, 처리할 Service를 선정하고, 처리된 데이터를 넘긴다 )