MVC 패턴은 Model, View, Controller로 나눠져 있다.
MVC에서 가장 중요한 역할을 하는 Controller는 프로젝트에서 대장 역할로, View와 Model에게 일을 시키는 역할을 한다.
View는 사용자에게 보여지는 화면을 담당하고, Model은 데이터와 연산을 담당한다.
즉, View는 프론트엔드, Controller와 Model은 백엔드라고 볼 수 있다.

그런데 왜 이렇게 역할을 나누는걸까?
하나의 파일에 화면, 데이터, 연산을 다 넣으면 되는데 굳이 M, V, C로 나누는 이유가 뭘까?
우선, 유지보수에 너무나 큰 강점이 있다.
JSP를 생각해보자.
JSP는 Java Server Page의 약자로, 쉽게 말해 Java로 화면을 만드는 것이다.
Java로 화면을 만든다고..?
Model과 Controller가 화면 코드에 함께 있다는 것이다.

이런 식으로 개발을 하게 되면 코드에 오류가 생겼을 때 어떤 일이 벌어질까?
한 파일 내에서 프론트엔드와 백엔드의 구분이 명확하지 않기 때문에, 코드를 수정하는 데에 굉장히 많은 시간이 들 것이다.
쉽게 말해 유지보수에 최악이다.
만약 내가 200줄의 코드가 작성되어 있는 파일에서 한 줄을 수정한다고 가정해보자.
이것은 단지 한 줄을 수정하는 것이 아니라 200줄을 수정하는 것과 같다.
그렇다면 내가 30줄의 코드가 작성되어 있는 파일에서 한 줄을 수정한다고 가정해보자.
그러면 이것은 30줄을 수정하는 것과 같다.
따라서 M, V, C를 나눠 관리하고 각각의 역할에서도 모듈화를 통해 파일을 분리하면 코드의 수정 범위를 줄여 유지보수의 리스크를 줄일 수 있다.
'백엔드' 카테고리의 다른 글
| 라이브러리 import의 중요성 (0) | 2025.11.19 |
|---|---|
| M:N을 쓰면 안 되는 이유 (3) | 2024.07.23 |