MVC, MVP, MVVM 패턴, flux패턴(핵심내용)

jaegeunsong97·2023년 1월 11일
0

MVC, MVP, MVVM 패턴

  • Model
    • App의 데이터인 데이터베이스, 상수, 변수
    • 뷰에서 데이터를 생성, 수정 -> 컨트롤러 -> 모델 생성, 업데이트
  • View
    • 모델을 기반으로 사용자가 볼 수 있는 화면
    • 모델이 가진 정보 없음 -> 컨트롤러를 통해 뷰로 전달
  • 종류
    • MVC (View는 Controller 참조 X)
      • Controller
      • 하나 이상의 모델과 하나 이상의 뷰를 이어주는 다리(메인 로직 담당)
      • 모델 or 뷰 -> 변경 -> 전달해줌
      • 장점
        • App 구성요소 3가지 -> 각각의 구성요소에 집중
        • 재사용과 확장성 좋음
      • 단점
        • App 복잡 -> 모델과 뷰의 관계 복잡
      • 예시
    • MVP (View는 Presenter 참조 O)
      • Presenter
      • 하는 역할은 비슷하다
      • View : Presenter = 1 : 1 -> MVC 보다 강한 결합
    • MVVM (View는 Model 참조 O)
      • ViewModel
        • VM은 뷰를 추상화한 계층
        • ViewModel : View = 1 : N
        • 커멘드 -> 하나의 엑션으로 여러 요소를 처리
        • 데이터바인딩 -> 화면상의 데이터와 브라우저상의 메모리 데이터 일치하게 함
        • 예시

Spring MVC 패턴

  • 디스패처 서블릿의 요청 과정

flux패턴

  • 기존의 MVC패턴 복잡성 높음 -> 데이터에 일관성 있게 공유하기 힘듬
  • 그래서 flux 패턴 사용
  • 단방향 데이터흐름을 활용, 복잡한 view 구성을 단순화 함
  • 계츨
    • Action
      • 이벤트를 의미 -> 이벤트 발생하면 Action객체 생성 후 Dispatcher에게 전달
    • Dispatcher
      • Action객체 정보를 기반 어떠한 '행위'를 할 것인지 정함
    • Store
      • 데이터 상태를 담음
    • View
  • 장점
    • 데이터 일관성 증가
    • TDD 쉬움
    • 버그 찾기 쉬움

의존성주입과 전략패턴 차이

  • 공통 의미 -> 무엇가를 쉽게 교체하기 위한 디자인 패턴
  • 전략패턴
    • 의도에 초첨, 동일한 행동 계약을 준수하는 다양한 구현으로 인터페이스를 만들도록 권장
  • 의존성주입
    • 일부 동작을 구현하고 의존성을 주입하기만 하는 것

프로그래밍 컨텍스트

  • 의미
    • 어떤 종류나 환경을 '캡슐화'
    • 작업 중단 후 나중에 같은 지점에서 할 수 있도록 저장하는 데이터 최소 집합(=컨텍스트 스위칭)
  • context
  • context information
profile
블로그 이전 : https://medium.com/@jaegeunsong97

0개의 댓글