[Architecture Pattern] MVVM
2023. 5. 27. 17:45
iOS/Pattern
Architecture Pattern들은 Logic 측면에서 "관심사의 분리(SoC)"를 목표로 한다. 그중 MV(X) 계열의 Architecture Pattern들은 UI Logic(View)과 Business Logic(Model)을 분리를 중점으로 여겼다. UI Logic과 Business Logic의 분리로 인해, 둘 간의 중계자가 필요하게 되었고, 중계자에 따라 MVC, MVP, MVVM으로 나뉘게 된다. MVC 패턴은 중계자 역할을 Controller가 맡게 되었다. 하지만, Controller을 UIViewController가 담당하게 되면서, Controller는 View와 결합성이 강해, View의 일부 역할까지 담당하게 되었다. 이를 해결하고자, MVP 패턴에선 UIKit과 독립된 Pr..
[Architecture Pattern] SoftWare Architecture
2023. 5. 24. 11:52
iOS/Pattern
아키텍처(Architecture)란 위키피디아에 따르면 "소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙"을 의미한다. 말이 어렵지만, 아키텍쳐(Architecture)를 한국말로 직역하면 "구조"다. 즉, SW 아키텍쳐란 SW구조를 말한다. 좋은 집을 설계하기 위해 집의 구조(도면)를 잘 설게 해야 하듯이, 좋은 SW를 위해 SW 아키텍쳐를 잘 설계해야 한다. 그렇다면 좋은 SW, "좋은 품질의 SW"란 무엇일까? 일반적으로 사용자에게 좋은 서비스를 제공하는 것만으로는 "좋은 품질의 SW"라 부르지 않는다. SW의 품질은 2가지로 나뉘는데, 이는 단순히 External Quality를 만족한 것에 지나지 않는다. External Quality..
[Architecture Pattern] MVP
2023. 3. 24. 23:20
iOS/Pattern
iOS에서 MVC패턴은 Controller를 담당하는 UIViewController가 View와의 연결성이 너무 강하다는 단점이 존재하였다. 따라서, Controller는 Controller의 역할만이 아닌, View의 Life Cycle관련, 레이아웃 관련 등등 너무나 많은 역할을 담당하게 된다. 이는, Controller의 코드가 많아지는 것과 Unit Test를 진행하기 어렵다는 단점으로 이어졌다. MVP Architecture Pattern MVP 패턴은 Model-View-Presenter의 약자이다. 기존 MVC패턴에선, Controller 역할을 UIViewController가 담당했다. 이는 View와 너무 밀접하게 연관이 있어 Controller의 부담이 늘어나는 결과로 이어졌다. 이를 ..
[Architecture Pattern] MVC
2023. 3. 22. 11:21
iOS/Pattern
아키텍쳐 패턴의 핵심은 "관심사의 분리(SoC)"이다. "관심사의 분리"에 대해 잘 이해가 가지 않는다면 해당 포스팅을 참고 바란다. [Architecture Pattern] SoftWare Architecture 아키텍처(Architecture)란 위키피디아에 따르면 "소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙"을 의미한다. 말이 어렵지만 seokyoungg.tistory.com UI Logic과 Buiness Logic은 특성도 다르고 UI Logic의 경우 자주 바뀌기 때문에 변경 주기도 다르다. 따라서, UI Logic과 Business Logic을 분리하기 위함이 MVC 패턴의 탄생 배경이다. MVC Architecture Pat..