본문 바로가기

프로그래밍/개발

MVC패턴 왜 쓸까요

네.. 사실 저도 잘 모릅니다. Spring 하면서 MVC패턴 학습이 딸려오는데, WAS제작 하면서 그룹회고를 했을때 많은 팀원들이 MVC패턴을 따라가는 것을 보았고 더 알아보고자 정리 해보게 되었습니다.

 

MVC 의미

Model : 데이터와 비즈니스 로직관리

View : 레이아웃과 화면 처리

Controller : 모델과 뷰로 명령을 전달

MVC패턴은 디자인 패턴중 하나로 비즈니스로직과 화면을 구분하는데 중점을 두고 있다. 사용자가 Controller에 요청을보내면 Model에서 처리를 하고 View를 반환한다. 

왜 스프링이 MVC 패턴인지를 알기 위해서는 스프링에대해서 더 이해해야할 것 같다. MVC 패턴 에서도 구조가 여러가지 있고 그중에서도 Spring 구조 에 관해서 유명한 위의 그림이 있다. 각각의 동작이나 하는일 역시 알아야하고 이번에 WAS개발 프로젝트를 해보면서 왜 이렇게 했을까 라는 고찰을 조금이나마 해보게 되었다. 

 

다음은 gpt가 소개해준 장단점이다. 작은 서비스에서의 오버헤드 같은 경우에는 이해가 된다. 이번 개인 프로젝트 할 때 정말 작은 규모의 웹서버인데도 구조를 mvc로 하니 구조를 갖추기 전까지 시간을 많이 쓰는것 같았다.

 

장점:

  1. 유연성 및 재사용성: 각 컴포넌트가 독립적으로 동작하므로 재사용성이 높아지고, 쉽게 유지보수가 가능합니다.
  2. 병렬 개발: 모델, 뷰, 컨트롤러 각각을 다른 팀이 개발할 수 있어 병렬 개발이 가능합니다.
  3. 테스트 용이성: 각각의 컴포넌트를 독립적으로 테스트할 수 있습니다.

단점:

  1. 복잡성: MVC 패턴을 적용하면 파일과 클래스의 수가 증가할 수 있으며, 각 컴포넌트 간의 통신을 관리해야 합니다.
  2. 오버헤드: 작은 규모의 애플리케이션에서는 MVC 패턴이 오버헤드로 이어질 수 있습니다.

 

후기

사실 쓰면서 왜 스프링이 mvc구조인지도 같이 정리 할려고 했는데 좀 더 공부해 와야할것 같다.

 

https://developer.mozilla.org/ko/docs/Glossary/MVC

'프로그래밍 > 개발' 카테고리의 다른 글

IO와 NIO  (0) 2024.02.06
나의 WAS 변경점, 한계 그리고 개선사항  (0) 2024.02.05
if문을 줄이는 방향에 대한 고찰  (0) 2024.01.23
자바의 멀티스레드  (0) 2024.01.22
HTTP Response, Request에 관하여  (0) 2024.01.22