이번 글에서는 안드로이드 앱 백엔드 개발을 하면서 공부하게 된 MVC 패턴에 대하여 글을 써보겠습니다.
내용의 경우 어라운드 허브 슈튜디오( https://youtu.be/rHJgMRimJ4Y ) 를 참조하였습니다.
1. MVC (Model View Controller)
MVC 패턴은 디자인 패턴 중 하나로 Model, View, Controller의 줄임말입니다.
이는 application을 구성할 때 그 구성요소를 세가지 역할로 구분한 패턴을 의미합니다.
MVC 패턴을 이용한다면 사용자 인터페이스로부터 비즈니스 로직을 분리하여
서로 영향 없이 쉽게 고칠 수 있는 설계가 가능합니다.
spring boot 에서의 사용 예시를 들어보자면
1) spring boot project 안에서 controller라는 file을 만들어 controller를 통해 모든 사용자로부터의 요청을 받게 됩니다.
2) model은 db를 처리하는 영역으로 controller로 부터 받은 요청을 CRUD와 같은 다양한 기능을 이용하여
실제로 program user들이 볼수있는 view로 전달하게 됩니다.
이제부터는 각각에 대하여 더 자세하게 글을 써 보겠습니다.
2. 컨트롤러 (Controller)
컨트롤러는 Model과 View 사이에서 브릿지 역할을 수행합니다.
즉, controller가 받은 요청을 기반으로 model과 view를 제어한다는 뜻입니다.
이러한 제어에는 앱의 사용자로부터 입력에 대한 응답으로 model 및 view를 업데이트하는 로직을 포함합니다.
이러한 제어를위한 사용자의 요청은 모두 controller를 통해 진행되어야 하며
controller는 controller로 들어온 요청을 어떻게 처리할지 결정하여 모델로 요청을 전달하게 됩니다.
더 쉬운 이해를 위해 예를 하나 들어보자면
SNS에서 글을 작성할려고 하면 사용자가 원하는 글의 내용과 요청을 controller가 받아 model과 view에 적절하게
입력 값을 처리하여 전달합니다.
3. 모델 (Model)
model은 데이터를 처리하는 영역으로 데이터베이스와의 연동을 위한 DAO(Data Access Object)와
데이터의 구조를 표현하는 DO(Data Object)로 구성됩니다.
더 쉬운 이해를 위해 예를 하나 들어보자면
SNS에서 게시물 등록을 위해 내용을 입력받으면 데이터베이스에서 게시물 등록을 위한 내용의 데이터를 받아
view에 전달합니다.
* DAO 와 DO같은 내용은 추후 안드로이드 서버 구조를 이야기 할 때 자세히 다뤄보도록 하겠습니다.
4. 뷰 (View)
뷰는 데이터를 보여주는 화면 자체의 영역을 뜻합니다. 즉, 사용자가 눈으로 보이는 영역을 뜻합니다.
view 안에는 사용자 인터페이스(UI) 요소들이 포함되며, 데이터를 각 요소에 맞게 배치합니다.
뷰는 사용자가 눈으로 보이는 영역을 뜻하므로 별도의 데이터를 보관하는 장소는 아닙니다.
더 쉬운 이해를 위해 예를 하나 들어보자면
SNS에서 글을 올린 후 해당 글을 보여주기 위해 모델에서 글 내용에 관한 리스트 데이터를 받아 뷰에 보여줍니다.
5. 글을 마무리 하며
MVC 패턴과 같이 application의 역할을 크게 3가지 구간으로 나누어 설계하는 방식을 이용하여
서로간의 의존성이 낮아지게 되고 독립성을 갖게 되며 개발자들이 각각의 part를 맡아
원활한 분업과 협업을 도와주고 한 영역을 업데이트 하더라도 다른 곳에 크게 영향을 주지 않게 됩니다.
'Spring이론' 카테고리의 다른 글
DAO생성해서 간단한 CRUD 구현하기 (0) | 2023.03.28 |
---|---|
Spring 개념 부족을 해결하기 위해서 (0) | 2023.03.28 |
안드로이드에서 서버와 DB연동을 위한 Spring boot 구조 (0) | 2023.02.26 |
retrofit2 (0) | 2023.02.23 |
REST API (0) | 2023.02.21 |