DB-2 MVC 패턴 (23/01/01)

nazzzo·2023년 1월 1일
0

1. MVC 패턴



MVC 패턴은 Model-View-Controller의 약자로,
하나의 웹 어플리케이션을 만들면서, 그 구성요소를 다음과 같은 세가지의 역할로
구분지어 구조화하는 것을 말합니다

  • Model: 요청에 대한 응답을 함에 있어서 필요한 구체적인 로직을 구현하는 요소
    DB와 상호작용하여 데이터를 저장 및 관리하고,
    사용자가 필요로 하는 정보를 View에 전달할 수 있는 형태로 재구성합니다

  • View: 사용자에게 제공되는 인터페이스입니다
    웹 페이지나 앱을 통해 눈에 보이는 UI가 이 역할을 수행합니다

  • Controller: Model과 View 사이의 중간 역할을 수행하는 요소입니다
    클라이언트의 요청을 수신하면 Model과 View를 오가며 적절한 응답을 찾아 제공합니다

DB의 역할

MySQL 등과 같은 관계형 데이터베이스는 MVC 패턴에서 주로 Model과 상호작용합니다
저장소 속에서 사용자가 필요로 하는 데이터를 제공하는 것이 주된 역할입니다


데이터의 흐름과 MVC 패턴의 장점

웹 어플리케이션에서 요청을 수신하면, Controller는 Model에 그 요청을 전달하고
Model이 DB로부터 필요한 데이터를 제공받아 요청에 알맞은 형태로 가공을 마치면
이 작업물은 다시 Controller에 의해 View로 전달됩니다


이렇게 MVC 패턴을 활용하여 개발을 진행하면 다음과 같은 장점을 가지게 됩니다
  • 유지보수에 용이합니다. MVC 패턴은 코드의 구조를 역할군에 맞게 분류하기 때문에
    좀 더 체계적인 관리가 가능해집니다

  • 코드의 재사용성이 높습니다
    MVC 패턴을 이용한 개발은 Model, View, Controller를 각각 독립적인 요소로 구현합니다
    이는 새로운 프로젝트를 진행할 때에도 필요에 따라 기존의 코드를 재사용할 수 있도록 돕습니다

  • 각 컴포넌트가 정해진 역할을 수행하기 때문에 코드가 깔끔하고 직관적입니다



2. Repository, Service, Controller



위에서 설명한대로 MVC 패턴은 웹 개발에 필요한 요소들을
Model, View, Controller로 구분지어서 설계하는 패턴입니다

그리고 MVC 패턴은 다음과 같은 3가지 요소로 더욱 세분화되기도 합니다

  • Repository (혹은 DAO): DB에 접근하기 위한 인터페이스입니다
    이 파트에서는 사용자가 필요로 하는 데이터를 제공하거나,
    요청된 데이터를 저장하거나 삭제할 수 있는 기능을 제공합니다

  • Service: 웹 어플리케이션을 구현할 수 있는 실질적인 기능을 제공하는 파트입니다
    즉 Repository를 통해 DB에서 가져온 정보를 가공하는 역할을 담당합니다
    (정보의 처리에 필요한 실제 로직이 담기는 부분이기 때문에 코드가 비대해지는 경향이 많습니다)

  • Controller: 요청을 수신하고 적절한 응답을 생성하는 요소입니다
    Controller에서 요청을 수신하면, 이 요청을 처리할 수 있는 Service 코드를 호출하고
    Repository를 통해 데이터베이스에 접근하도록 합니다
    그리고 다시 Service단에서 처리된 결과를 가져와 View로 전달할 수 있는 정보를 생성합니다
    사용자에게 제공되는 정보들은 대부분 이러한 과정을 거치게 됩니다

이와 같이 Repository, Service, Controller는 추상적인 MVC의 개념을
좀 더 세분화하여 실체화(실제로 개발을 진행함에 있어서)한 것으로 생각할 수 있겠습니다

하지만 모든 사람이 똑같은 방법론을 써서 개발 프로젝트를 설계하는 것은 아닙니다
그리고 이론만 가지고는 파악하기 힘든 개념인 것도 사실이기 때문에
실제로 MVC패턴을 이용해 코드를 설계함으로써 이에 대한 이해도를 높이는 것을 추천합니다

*지난 일주일간 MVC패턴을 이용해서 백엔드 & CRUD 프로젝트를 진행했습니다
내용이 정리되는대로 포스팅하겠습나다

0개의 댓글