Skip to content

Commit 3f86902

Browse files
committed
post : 아키텍처 MV 에 관한 글
1 parent d0112d4 commit 3f86902

File tree

1 file changed

+100
-0
lines changed

1 file changed

+100
-0
lines changed
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
---
2+
categories: [Refactoring]
3+
layout: post
4+
title: 아키텍터와 MV 패턴에 관하여
5+
subtitle : 리팩토링
6+
tags: [Refactoring]
7+
author: Young
8+
comments : True
9+
---
10+
11+
# 아키텍처와 MV* 패턴에 관하여
12+
13+
참고자료
14+
15+
[프론트엔드에서 MV* 아키텍쳐란 무엇인가요?](https://velog.io/@teo/프론트엔드에서-MV-아키텍쳐란-무엇인가요)
16+
17+
아키텍처란,
18+
19+
특별한 `규칙``패턴``아키텍처`
20+
21+
### 1) MVC 패턴
22+
23+
사실 어떤 서비스라고 하는 것이
24+
25+
사용자 ↔ FE ↔ BE ↔ DB 이 안에서 이뤄지는 것이고 더 간단히는
26+
27+
**데이터를 어떻게 사용자에게 예쁘게 뿌려줄 것이냐** 하는 것이다.
28+
29+
- View : 화면 (html, css)
30+
- Model : 데이터
31+
32+
화면 어딘가에 데이터가 반영이 되어야 한다.
33+
34+
- javascript의 object
35+
- API
36+
- DB
37+
- Controller
38+
39+
Model 과 View 사이에서 중간 역할을 하는것 (화면에 숨결을 불어넣는 부분)
40+
41+
42+
다시 정리하면
43+
44+
> **데이터(Model)을 어떻게 사용자(View)에게 예쁘게(Controller) 뿌려줄 것이냐**
45+
>
46+
47+
와 같다.
48+
49+
기존에는, 위의 MVC 패턴의 형식을 구분하기를
50+
51+
- Model : DB
52+
- View : Html, Css, Javascript
53+
- Contoller : 데이터를 처리하고, html 을 만들어서 보여주는 영역
54+
55+
모두 SSR이였기 때문에 (.NET, JSP등)
56+
57+
### 2) MVVM 아키텍처
58+
59+
템플릿 바인딩을 해준다가 핵심 → Angular 에서부터 시작
60+
61+
> Model 이 변하면, View를 수정하고, View에서 이벤트를 받아서 Model을 변경한다.
62+
Model→View,View→Model (MVVM)
63+
>
64+
- Model 변경 → View 수정 (반영)
65+
- View 이벤트 발생 → Model 업데이트
66+
67+
### 3) 컴포넌트 그리고 Container-Presenter 패턴
68+
69+
MVVM 패턴으로 생산성이 확대 되었는데
70+
71+
여기에서 더 작은 사이즈로 재사용 가능한 단위로 만들어서 조립하는 방식을
72+
73+
**Component Pattern** 이라고 한다.
74+
75+
여기서 중요한게, 컴포넌트의 재사용이 가능해지려면 비즈니스 로직을 포함시키면 안된다
76+
77+
비즈니스 로직이 들어가게 되면 컴포넌트의 재활용성은 상당히 떨어지게 되기 때문
78+
79+
그래서 비즈니스 로직을 관장하는 Container Component와
80+
81+
데이터만 뿌려주는 Presenter Component로 분리하여 사용하는 방식을
82+
83+
Container-Presenter 패턴이라고 한다.
84+
85+
### 4) Flux 패턴과 Redux
86+
87+
컴포넌트로 잘개 쪼개지면 쪼개질수록 Props Drilling 이라는 문제가 발생하게 된다.
88+
89+
Redux의 등장으로 전역적인 상태관리가 가능해졌다.
90+
91+
그러나, 높은 학습곡선, 장황한 문법등이 문제임
92+
93+
### 5) Observer-Observable Pattern
94+
95+
몰라 복잡함
96+
97+
### 6) Context, hook, props 상속
98+
99+
- View Model은 분리하는게 맞다
100+
- Context의 Provider와 Consumer 를 통해 필요한 데이터를 전달한다.

0 commit comments

Comments
 (0)