일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 오블완
- Spring
- 티스토리챌린지
- 리액트
- javascript
- 코테
- 백엔드
- map
- 리액트네이티브
- PCCE
- 자바
- React
- 코딩테스트
- controller
- firebase
- project
- ReactNative
- 파이어베이스
- React Native
- 2025 프로그래머스 코드챌린지 2차 예선
- 리액트 네이티브
- node.js
- 코딩
- 프로젝트
- 자바스크립트
- 프로그래머스
- java
- expo
- 태그
- 스프링
- Today
- Total
양갱의 개발 블로그
[백엔드] 소프트웨어 디자인 패턴, MVC 패턴이란? 본문
스프링을 시작하면 가장 먼저 배우는 것이 자바 이구 그 다음으로 MVC 패턴입니다.
어떤 내용인지 정리하고 프로젝트를 시작하겠습니다!
MVC 패턴이란?
MVC(Model-View-Controller) 패턴은 소프트웨어 설계 분야에서 널리 사용되는 디자인 패턴으로, 애플리케이션을 모델, 뷰, 컨트롤러라는 세 부분으로 나누어 구성하는 방법론입니다.
MVC 패턴은 1970년대에 Trygve Reenskaug이 제안하였으며 Smalltalk 프로그래밍 언어에서 처음 사용되었습니다.
모델-뷰-컨트롤러로 구성되어 있습니다.
모델(Model) : 애플리케이션의 핵심적인 비지니스 로직을 담당합니다. 데이터 베이스와 직접적으로 연결되어 데이터를 처리하고, 사용자가 요청하는 데이터 연산을 수행합니다.
뷰(View) : 사용자에게 보여지는 부분을 담당합니다. 사용자가 보는 화면을 구성하고, 사용자로부터 입력을 받습니다.
컨트롤러(Controller) : 사용자의 요청을 처리하고, 요청에 따라 모델과 뷰를 업데이트합니다. 사용자의 요청을 모델로 전달하여 데이터를 처리하고 그 결과를 뷰로 전달하여 사용자에게 보여줍니다.
이런 MVC 패턴은 애플리케이션의 로직을 세 부분으로 나누어 구성함으로써 코드의 재사용성을 높이고, 유지보수를 용이하게 합니다.
MVC 패턴의 장단점
장점
- 코드의 재사용성과 유지보수성이 높아집니다. 각 컴포넌트는 독립적으로 동작하므로, 하나의 컴포넌트를 수정하거나 테스트해도 다른 컴포넌트에 영향을 주지 않습니다.
- 개발 과정에서 각 컴포넌트를 독립적으로 개발할 수 있으므로, 효율성이 높아집니다.
단점
- 설계가 복잡하고, 초기 개발 비용이 높을 수 있습니다.
- 중복 코드가 발생할 수 있습니다. 비슷한 로직의 뷰가 여러개 필요한 경우, 각 뷰에서 같은 로직을 반복해서 구현해야 할 수 있습니다.
MVC 패턴의 동작 원리
1. 사용자는 뷰를 통해 애플리케이션과 상호작용합니다.
2. 뷰는 사용자의 요청을 컨트롤러에 전달합니다.
3. 컨트롤러는 요청을 처리하고, 필요에 따라 모델을 업데이트하거나 조회합니다.
4. 모델은 데이터를 처리하고 그 결과를 컨트롤러에게 반환합니다.
5. 컨트롤러는 처리 결과를 뷰에게 전달하고, 뷰를 업데이트하도록 요청합니다.
6. 뷰는 업데이트된 결과를 사용자에게 보여줍니다.
'백 > 백엔드' 카테고리의 다른 글
[백엔드] Auth란 무엇인가, 세션(Session)과 토큰(Token)의 차이점 (0) | 2024.11.23 |
---|---|
[운영체제] 프로세스(Process)와 스레드(Thread) (2) | 2023.11.20 |
[네트워크] 네트워크(Network) 정의와 장단점, 데이터 교환 방식 정리 (0) | 2023.10.25 |
[운영체제] Synchronize(동기화)와 Deadlock (4) | 2023.10.22 |
[운영체제] Memory란? (0) | 2023.10.22 |