Methodology
[Architecture] Clean Architecture with iOS
[Architecture] Clean Architecture with iOS
2022.11.11Clean Architecture 개요 클린아키텍쳐는 모바일 클라이언트 앱이나 웹 어플리케이션에 주로 사용되는 소프트웨어 아키텍쳐이다. View와 다른 객체간의 관계와 역할에 초점을 맞춘 MVC나 MVVM 패턴과는 달리 애플리케이션의 동작에 필요한 요소들을 더 큰 계층으로 나누어 설명한다. Clean Code의 저자로도 유명한, 클린아키텍쳐를 제창한 로버트 C 마틴은 2012년 처음 자신의 블로그에 이 아키텍쳐를 선보였다.(Clean Coder Blog) 서문에서 당대에 유명한 아키텍쳐들을 언급하며, 이 아키텍쳐들의 세부적인 요소들은 다를 수 있어도 주 목적은 관심사의 분리 라고 이야기 하고 있다. 아키텍쳐들은 이러한 분리를 소프트웨어를 계층으로 나눔으로써 달성하고, Business rules을 담당하는..
[Architecture] MVVM 패턴
[Architecture] MVVM 패턴
2022.10.30MVVM? MVVM 아키텍쳐/패턴은 MVC의 한계점을 극복하기 위해서 제시된 구조이다. iOS UIKit을 사용해 개발하는 관점에서 MVC는 View와 Controller가 깊게 연관되어 있어 코드를 분리하거나, 테스트 하는데에 용이하지 못하는 문제점과 Controller가 너무나 많은 역할을 담당하는 등의 문제가 있었다. MVVM은 ViewModel이라는 새로운 계층을 도입하여 이를 해결하는 방법을 제시한다. MVVM에 대해서 알아보기전에, MVP 패턴에 대해서 먼저 살펴보자. MVP 패턴 MVVM 전에 알아본 것과 같이, Apple MVC 패턴은 View와 Controller 계층이 너무나 밀접하게 연관되어 있어 사실상 같은 계층으로 취급(ViewController)되었던 것과 다르게 Prsenter..
[Architecture] MVC 패턴
[Architecture] MVC 패턴
2022.10.13MVC란? MVC란 화면(visual components)으로 인터페이스가 구성되어있는 소프트웨어에서 사용되는 디자인 패턴으로 주요한 목적은 소프트웨어의 비즈니스 로직과 화면을 표현하는데 관련된 프리젠테이션 로직을 구분하는데에 있다. 같은 목적을 가진 패턴으로 MVVM, MVP, MVI등이 있는데 모두 그 기반은 MVC에 두고 있다. Apple MVC 먼저 애플의 공식 document에서 이야기하는 MVC 패턴에 대해 살펴보자. 개요 MVC 디자인 패턴은 어플리케이션을 3개의 역할을 가진 오브젝트로 나눈다. Model, View, Controller. MVC 패턴은 각 오브젝트의 역할 뿐만아니라 오브젝트들이 서로 소통하는 방식도 같이 정의한다. 3개의 각각의 오브젝트들은 추상적인 경계에 의해 분리되어있고..
Interpreter Pattern
Interpreter Pattern
2022.03.24개요 인터프리터 패턴, 말 그대로 해석을 위한 디자인 패턴이다. 특정 Language(언어)로 작성된 Sentence를 해석할때 쓰인다. 이 때 언어는 어떤 규칙(syntax)으로 표현되어있어야 하고 이 규칙을 일반화하여 해석하는 것이 기본 아이디어. 사용 예 정규표현식 Java의 실행 (JVM Byte 코드를 기계어로 변환하는 과정) SQL과 같은 데이터베이스 쿼리언어 해석 구현 아이디어 핵심 규칙과 의미있는 기호 패턴에 대한 개별클래스들이 트리구조로 동작하며 해석을 수행한다. 모식도 예제 “46의2진수 46의16진수 16895의2진수 16895의16진수” 와 같은 문자열을 받아 각각의 진법변환 연산을 수행한 결과를 출력하는 코드를 작성해보자 Context 해석의 대상이 되는 문자열을 보통 단위별로 끊..