MVC 패턴

박성호·2024년 3월 15일

SpringBoot에서 프로젝트를 할때 MVC 디자인 패턴을 사용했는데 이게 정확히 어떤 패턴인지 자세히 알아보려 합니다.

정의:

Model, View, Controller 의 앞글자를 따서 지어진 이름입니다.
컴퓨터공학에서 소프트웨어 설계와 아키텍처를 위한 디자인 패턴 중 하나입니다.

장점:

학원에서 수업을 들을때 어떠한 장점이 있냐라고 여쭤봤을때 프로젝트에 구조가 커지면 커질수록 관리가 편해진다는 얘기만 들어봤지만 그 외에 장점은 잘 모릅니다.

그럼 그 외에 장점은 어떤게 있는지 자세히 알아보면

분리된 역할: MVC는 모델(Model), 뷰(View), 컨트롤러(Controller)로 역할을 분리하여 각 부분이 독립적으로 개발 및 유지보수될 수 있습니다. 이는 프로젝트가 커질수록 개발자들이 업무를 분담하고 협업하기 쉽게 만듭니다.

재사용성: MVC 패턴은 모델과 컨트롤러를 다른 프로젝트에서 재사용할 수 있도록 독립적으로 설계됩니다. 따라서 유사한 기능이나 비즈니스 로직을 가진 모듈을 다른 프로젝트에서도 쉽게 활용할 수 있습니다.

유연성: 각 요소의 분리된 설계는 시스템의 유연성을 높여줍니다. 예를 들어, 뷰를 변경하지 않고 모델이나 컨트롤러를 수정할 수 있습니다. 이는 프로젝트가 발전하고 새로운 요구 사항이 발생할 때 유용합니다.

테스트 용이성: MVC 패턴은 각각의 구성 요소를 독립적으로 테스트할 수 있도록 해줍니다. 이는 개발자가 코드를 효율적으로 테스트하고 버그를 신속하게 수정할 수 있게 도와줍니다.

구조:

모델(Model)

애플리케이션의 데이터를 나타냅니다.
모델은 애플리케이션의 핵심 데이터베이스의 데이터를 가져오거나 변경하고, 비즈니스 로직을 수행합니다.

사용자가 입력한 데이터를 검증하고 이를 처리합니다.

일반적으로 데이터베이스와의 상호 작용을 처리하기 위한 객체를 포함합니다.

뷰(View)

사용자에게 데이터를 표시합니다.

사용자 인터페이스를 구성하고, 모델에서 가져온 데이터를 화면에 표시합니다.

사용자 입력을 받아 컨트롤러에 전달합니다.

사용자에게 데이터를 시각적으로 표현하는 역할을 합니다.

컨트롤러(Controller)

모델과 뷰 사이의 중개자 역할을 합니다.

사용자의 입력을 처리하고, 이에 따라 모델을 업데이트하거나 뷰를 업데이트합니다.

사용자의 요청에 따라 적절한 모델을 호출하고, 모델의 결과를 적절한 뷰로 전달합니다.

일반적으로 사용자의 요청을 분석하고, 그에 따른 작업을 수행합니다.

내가 이해한 방법

사실 이런 글로만 들었을때 이해 못하는 부분이 많아서 제가 그림으로 그려서 이해했던 기억이 있네요

제가 그린 순서도입니다 (악필인점은 이해해 주세요 ㅎㅎ)

예제로 작성한 코드에 선을 추가한것 입니다

사실 앞에서 떠든것 보다 이런식으로 그림으로 이해하는게 더편한건 어쩔 수 없네요 ㅎㅎ

하지만 디테일한 점을 한번더 알아봐서 부족하다고 느낀점을 채울 수 있고 앞으로 다른 디자인 패턴을 알아보고 싶다는 생각도 드네요.

profile
꾸준히 성장하는 개발자

0개의 댓글