MVC패턴
- Model: 데이터와 비즈니스 로직을 관리
- View: 레이아웃과 화면을 처리
- Controller: 명령을 모델과 뷰 부분으로 라우팅.
개발을 하다보면 한 번쯤은 들어봤을 패턴이다.
지금까지 관성으로, 습관으로 사용하고 있지만, 왜 사용하는지에 대한 고민이 부족했던 것 같다.
한줄로 설명해 보자면, 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이라고 할 수 있다.
MVC 에 기반을 둔 몇 가지 다른 디자인 패턴으로 MVVM, MVP, MVW 등이 있다.
왜 사용할까?
분리되지 않은 JSP를 생각해 보면 된다. 한 파일안에 프론트 코드와 수많은 자바 코드들이 섞인 끔찍한 모습..
내가 짠 코드를 보는 것도 힘든데, 다른 사람이 작성한 코드를 보는 것은 더욱 힘들 것이다.
만약, 내가 1000줄의 코드에서 한 줄을 수정한다면, 수정 범위는 한 줄이 아니라 1000줄이 될 것.
이러한, 유지보수의 리스크를 줄이기 위해, 파일을 나누게 되면서 MVC패턴이 등장하게 되었다.
장점 정리
- 유지보수
- 결합도, 응집도
- 재사용
- 유연성
- 확장성
- 보안