Android App Track⛺-040

MunkiJeon·2024년 8월 2일

TIL

목록 보기
57/59
post-thumbnail

TIL (Today I Learned)

디자인 패턴이란!?

소프트웨어 디자인 패턴(software design pattern)

  • 소프트웨어 공학의 소프트웨어 디자인에서 특정 문맥에서 공통적으로 발생하는 문제에 대해
    재사용 가능한 해결책이다.
  • 소스나 기계 코드로 바로 전환될수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는데에 쓰이는 서술이나 템플릿이다.
  • 디자인 패턴은 프로그래머가 어플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는데에 쓰이는 형식화 된 가장 좋은 관행이다.
  • MVVM (Model-View-ViewModel) 패턴

    • Model View, View, Model의 약자로 프로그램의 비지니스 로직과, 프레젠테이션 로직을 UI로 명확하게 분리하는 패턴
    • 언뜻 보기에는 MVP와 비슷한 부분이 많습니다. 그러나MVPViewPresenter 사이의 의존관계가 1:1로 형성되어있다면, MVVM은 ViewViewModel사이의 관계가 1대n으로 되어있습니다.
      또한 데이터 바인딩을 이용한다면 ViewViewModel 사이의 의존성을 없앨 수 있습니다.

Model

  • 데이터를 다루는 부분. 비즈니스 로직을 포함한다.
    • 데이터와 비즈니스 로직을 담당하는 부분입니다.
    • 데이터를 가져오고 저장하는 역할을 수행합니다.
    • 보통 데이터베이스, 네트워크 요청 또는 파일 시스템과 같은 데이터 소스와 상호 작용합니다.

View

  • 레이아웃과 화면을 보여주는 역할
    • 사용자 인터페이스를 담당하는 부분입니다.
    • 사용자가 보는 화면을 표시하고, 사용자 입력을 처리합니다.
    • 보통 XAML과 같은 마크업 언어를 사용하여 디자인됩니다.

ViewModel

  • View와 Model 사이에서 중재자 역할을 수행합니다.
    • View에서 발생하는 이벤트를 감지하고, 해당 이벤트에 맞는 비즈니스 로직을 수행합니다.
    • Model과 상호작용하여 데이터를 가져오거나 업데이트하고,
      View데이터를 업데이트하는 역할을 합니다.
    • View에 표시할 데이터를 가공하여 제공하는 역할을 합니다.

참고한 자료

MVVM
https://velog.io/@blucky8649/MVC-MVP-MVVM-패턴의-특징
https://beomy.tistory.com/43
https://jeongkyun-it.tistory.com/136
https://forum.dotnetdev.kr/t/mvvm/2475
https://velog.io/@kyeun95/series/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4Design-Pattern

Today Review

어제 저녁부터 MVVM 파볼라고 했더니 선행되어 공부해야되는 개념이 데이터 바인딩, 뷰 바인딩 인거 같아 공부 했더니...데이터 바인딩 is 곧 DIE(사장되는) 방식...
그래서 다시 공부해야 할 부분은 레트로핏, 코루틴 - 플로우

profile
공장자동화와 웹 개발을 핥아 먹다 앱 개발로 전향한 개발자의 키보드의 낡은 키캡⛑️

0개의 댓글