본문 바로가기

개발10

Protocol Default Implementation in Swift 안녕하세요 여러분 오늘은 간단한 스위프트 관련 주제를 들고 와봤습니다. 바로 Protocol Default Implmentation 인데요! 저도 알게 모르게 사용하던 것이었는데 헷갈리지 않게 정리를 좀 해보도록 하겠습니다. 프로토콜은 기본값을 구현해놓지 않고 해당 프로토콜을 채택한 부분에서 관련된 기능을 구현하기 위해 사용하는 경우가 저는 좀 많았는데요. Default Impementation 을 사용하게 되면 마치 class 에서 부모의 함수를 사용하는 것과 비슷하게 구현을 할 수가 있게 됩니다. 바로 extension 으로 구현을 하면 되는데요. 아래와 같이 작성하시면 됩니다. protocol CustomProtocol { func say(msg: String) } extension CustomPr.. 2020. 4. 10.
예제로 살펴보는 MVI Design Pattern with RxSwift 안녕하세요 여러분? 저번 시간에는 MVVM 디자인 패턴을 살펴보았는데요. 이번에는 약간 생소한 MVI 라는 패턴을 들고 찾아왔습니다. MVI 는 Model - View - Intent 로 구성되어 있는 단방향(Uni-Directional) 아키텍쳐 중 하나인데요. MVVM 의 경우 VM 이 Model 과 View 의 사이에서 양방향으로 통신하기 때문에 자칫 잘못하다간 VM 이 비대해지는 부작용이 발생할 수가 있습니다. 이러한 부작용을 해결하기 위해서 MVI 의 경우는 뒤를 돌아보지 않는 단방향 상남자의 아키텍쳐라고 볼 수 있겠습니다. View 에서 액션을 입력 받으면 Intent 에서 모델의 상태를 변환시키고, 그 변환된 상태의 모델을 뷰에 전달하여 유저에게 보여준다고 보시면 되겠습니다. 그런데 이렇게 .. 2020. 4. 8.
예제로 살펴보는 MVVM Design Pattern with RxSwift 안녕하세요 오늘은 아키텍쳐에 대해 좀 살펴보려고 합니다. iOS 개발자 분들이라면 기본적으로 MVC 패턴에 익숙하실텐데요 Massive View Con... 아,,닙니다. Model-View-Controller 패턴입니다 ;; 뷰컨트롤러에 여러가지 로직들이 들어가게 되어 뷰컨트롤러가 굉장히 무거워지게 되는 패턴이기 때문에 요즘 개발자분들은 많이 사용을 안하시려고 하는 것 같습니다. 그래서 요즘 핫하게 떠오르고 있는 대안이 바로 MVVM 인데요. Model-View-ViewModel 로 구성되어 있는 아키텍쳐입니다. MVVM 에서는 View 는 절대 Model 을 알 수 없고, ViewModel 이 Model 과 통신을 해서 View 에 해당 사항을 전달해주고,(Presentation Logic) 전달받은.. 2020. 4. 7.
Swift 로 알아보는 객체지향 프로그래밍 - 2 전 시간에서는 객체 지향의 기본 요소들에 대해 알아보았는데요. 이번 시간에는 객체 지향의 핵심 개념! 에 대해서 알아보도록 하겠습니다. 1. 캡슐화 (Encapsulation) 2. 상속 (Inheritance) 3. 다형성 (Polymorphism) 먼저 캡슐화에 대해서 알아보겠습니다. 캡슐화는 말 그대로 객체를 하나의 캡슐로 만들어서 내부에 있는 것들을 보호할 수 있게 하는 것이라고 보시면 되겠습니다. 즉 내부에 있는 것들에 직접적으로 접근할 때 일어날 수 있는 예외적인 사항들을 제거하기 위해 접근을 인위적으로 제어하는 것이라고 보시면 편하실 듯 합니다. 이를 위해 접근제한자들을 프로퍼티 앞에다가 지정해두는데, 이 부분은 다음 시간에 자세하게 알아보도록 하겠습니다. 두번째는 상속인데요. 상속은 제가 .. 2020. 2. 19.