본문 바로가기
👩‍💻 Programming/JavaScript

MVC 패턴 요약 정리

by codingBear 2022. 5. 12.
728x90
반응형

이번 글은 다음 영상들의 내용을 요약하였습니다. 자세한 내용은 아래 영상들을 참고해주세요.

 

https://youtu.be/AERY1ZGoYc8

출처: 얄팍한 코딩사전

https://youtu.be/uoVNJkyXX0I

출처: 우아한Tech

https://youtu.be/es1ckjHOzTI

출처: 우아한Tech

https://youtu.be/ogaXW6KPc8I

출처: 우아한Tech

 

MVC의 역사

1. JSP Model 1

- 로직과 출력 코드를 한 페이지에 작성

- 코딩 易 유지보수 難.

 

2. JSP Model 2

- 데스크톱 app을 위한 Model 1Web에 적용

- 비즈니스/출력 로직 분리 유지 보수 용이, viewlogic 분업 가능

 

3. Cocoa MVC(Apple MVC)

- modelview 완전 분리


MVC pattern을 사용하는 이유 ?

 

- 구성요소 재사용

- 확장성 증가

- 중복 코딩 제거

- 각 요소 집중 관리


MVC pattern 작업 흐름도

Client Controller Model DB Controller View Controller Client


모듈별 정의 및 기능

 

M: Model - DBCRUD하기 위한 코드

- 데이터와 행동을 갖는 객체

- 비즈니스 로직 수행

- 상태 변화 처리 및 정보 반환

V: View - html, css 등과 관련된 코드

- 데이터의 시각화

- Model이 처리한 데이터를 받아서 사용

- 데이터, 로직 X

C: Controller - Model View 연동하기 위한 코드

- 사용자의 요청을 해석하여 처리하고 결과 반환

- ModelView를 연결

- 데이터 흐름 제어


모듈별 검증 작업

 

Model

- 데이터 및 로직 검증

View

- 간단한 검증: empty value, invalid type

Controller

- parameter 존재 유무 검증


모듈별 작성 원칙

 

대원칙: 각 모듈별 '단일 책임 '

Model

- ControllerView에 의존 X (Model 내부에 Controller View와 관련된 코드가 있으면 안 된다.)

View

- Model에만 의존 O. Controller에는 의존 X (View 내부에 Model의 코드만 있어야 하고 Controller 관련 코드가 있으면 안 된다.)

- ViewModel로부터 데이터를 받을 때 반드시 Controller에서 받아야 함

- Model로부터 데이터를 받을 때는 사용자마다 다르게 보여주어야 하는 데이터만 받아야 함

Controller

- ControllerModel View에 의존 가능 (Controller 내부에는 ModelView의 코드가 존재 가능)


Transaction

 

특징: ACID

1. 원자성(Atomicity): 하나의 원자 트랜잭션은 모두 성공 or 실패

2. 일관성(Consistency): 트랜잭션 처리 결과가 일관적이어야 함

3. 독립성(Isolation): 다른 트랜잭션의 연산 작업에 또 다른 트랜잭션이 끼어들 수 없다.

4. 지속성(Durability): 트랜잭션이 성공적으로 완료되었을 경우 결과는 영구적으로 반영

 

728x90
반응형

댓글