이번 글은 다음 영상들의 내용을 요약하였습니다. 자세한 내용은 아래 영상들을 참고해주세요.
MVC의 역사
1. JSP Model 1
- 로직과 출력 코드를 한 페이지에 작성
- 코딩 易 유지보수 難.
2. JSP Model 2
- 데스크톱 app을 위한 Model 1을 Web에 적용
- 비즈니스/출력 로직 분리 → 유지 보수 용이, view와 logic 분업 가능
3. Cocoa MVC(Apple MVC)
- model과 view 완전 분리
MVC pattern을 사용하는 이유 ?
- 구성요소 재사용
- 확장성 증가
- 중복 코딩 제거
- 각 요소 집중 관리
MVC pattern 작업 흐름도
Client → Controller → Model → DB → Controller → View → Controller → Client
모듈별 정의 및 기능
M: Model - DB에 CRUD하기 위한 코드
- 데이터와 행동을 갖는 객체
- 비즈니스 로직 수행
- 상태 변화 처리 및 정보 반환
V: View - html, css 등과 관련된 코드
- 데이터의 시각화
- Model이 처리한 데이터를 받아서 사용
- 데이터, 로직 X
C: Controller - Model과 View 연동하기 위한 코드
- 사용자의 요청을 해석하여 처리하고 결과 반환
- Model과 View를 연결
- 데이터 흐름 제어
모듈별 검증 작업
Model
- 데이터 및 로직 검증
View
- 간단한 검증: empty value, invalid type
Controller
- parameter 존재 유무 검증
모듈별 작성 원칙
대원칙: 각 모듈별 '단일 책임 '
Model
- Controller와 View에 의존 X (Model 내부에 Controller 및 View와 관련된 코드가 있으면 안 된다.)
View
- Model에만 의존 O. Controller에는 의존 X (View 내부에 Model의 코드만 있어야 하고 Controller 관련 코드가 있으면 안 된다.)
- View가 Model로부터 데이터를 받을 때 반드시 Controller에서 받아야 함
- Model로부터 데이터를 받을 때는 사용자마다 다르게 보여주어야 하는 데이터만 받아야 함
Controller
- Controller는 Model 및 View에 의존 가능 (Controller 내부에는 Model과 View의 코드가 존재 가능)
Transaction
특징: ACID
1. 원자성(Atomicity): 하나의 원자 트랜잭션은 모두 성공 or 실패
2. 일관성(Consistency): 트랜잭션 처리 결과가 일관적이어야 함
3. 독립성(Isolation): 다른 트랜잭션의 연산 작업에 또 다른 트랜잭션이 끼어들 수 없다.
4. 지속성(Durability): 트랜잭션이 성공적으로 완료되었을 경우 결과는 영구적으로 반영
'👩💻 Programming > JavaScript' 카테고리의 다른 글
코드 모듈화 기술(modularization techniques) from Secrets of the JavaScript Ninja (0) | 2022.05.13 |
---|---|
클래스(Class)와 친해지자! (0) | 2022.05.13 |
정규 표현식(regular expressions) from Secrets of the JavaScript Ninja (0) | 2022.04.28 |
컬렉션(collections) 다루기 from Secrets of the JavaScript Ninja (0) | 2022.04.20 |
객체에 대한 액세스를 제어하자_2. 프록시(proxies) from Secrets of the JavaScript Ninja (0) | 2022.04.19 |
댓글