본문 바로가기

iOS23

[iOS] 의존성 주입 DI 의존성 주입 (Dependent Injection) 의존성 주입은 외부에서 초기화해서 클래스 안에 할당해주는 것입니다. 의존성 주입을 할 경우 아래와같은 효과를 기대할 수 있습니다. 재사용성이 높아짐 테스트 용이 코드 단순화 결합도는 낮추면서 유연성과 확장성 향상 1. 의존성은 어떤한 클래스에서 다른 클래스를 사용하면 의존성이 생깁니다. //그냥 평범한 클래스 class Mobile { var name = "아이폰14" } //Mobile과 의존관계가 있는 클래스, Phone은 Mobile에 의존관계가 생깁니다. class Phone{ var phone = Mobile() } let Apple = Phone() print(Apple.phone.name) 2. 주입은 값을 초기화할때 값을 주입합니다. 내부.. 2022. 2. 19.
[iOS] Data Binding in MVVM MVVM에서 가장 중요한 개념은 Data Binding입니다. 이번에는 Data Binding에 대해 알아보겠습니다! 참고로 Data Binding은 MVVM 패턴 뿐만 아니라 다른패턴에서도 사용될 수 있습니다... Data Binding in SwiftUI MVVM에서 View는 ViewModel의 데이터 변경을 알아채야하는데, 그 때 필요한 것이 Data Binding이라고 했습니다. MVVM 관련된 포스팅은 여기 를 참고하세요 Data Binding은 View와 ViewModel 사이를 연결하는 프로세스입니다. 데이터를 제공하는 자와 그 데이터를 사용하는 자를 연결시켜 동기화되도록 하는 방식이다. SwiftUI에서는 View가 VM을 소유하고 있고, VM은 View에 의해 Observed되고 있다... 2022. 2. 19.
[iOS] MVVM 패턴 MVVM 패턴이란? 모델 - 뷰 - 뷰모델, 하나의 소프트웨어 아키텍처 패턴입니다. (* 아키텍처 패턴은 디자인패턴과 비슷하지만 더 넓은 범위에 속하며, SW공학의 다양한 문제를 해결하는데 예를들어 컴퓨터 하드웨어 성능 제한하거나 비즈니스 위험의 최소화 등을 해결할 때 사용된다.) Model - View - ViewModel 1. Model MVC에서의 Model과 마찬가지로 데이터와 관련된 코드를 담고 잇다. 데이터를 담아두기 위한 구조체들은 물론, 네트워크 로직, JSON 파싱 코드를 담고 있다. 비지니스 로직에서 사용하는 근본 데이터. 2. View 앱의 UI에 대한 코드를 담고 있다. ViewModel로부터 데이터를 가져와 어떻게 배치할지, 특정 상황에 따라 ViewModel의 어떤 메소드를 이용.. 2022. 2. 18.
[iOS] Swift의 5가지 접근 타입 야곰님의 swift 프로그래밍 책을 보며 정리했습니다. 접근제어란? 접근제어는 코드끼리 상호작용을 할 때 파일 간 또는 모듈 간에 접근을 제한할 수 있는 기능입니다. 접근제어를 통해 코드의 상세 구현은 숨기고 허용된 기능만 사용하는 인터페이스를 제공할 수 있습니다. 접근제어의 필요성? 객체지향 프로그래밍에서 중요한 캡슐화와 은닉화를 구현하는 이유는 외부에서 보거나 접근하면 안되는 코드가 있기 때문입니다. 그래서 접근제어를 이용해 필요한 부분만 코드를 노출시킵니다. 모듈과 소스파일? 스위프트의 접근제어는 모듈과 소스파일 기반으로 설계되었습니다. 모듈은 배포할 코드의 묶음 단위입니다. 하나의 프레임워크나 라이브러리 또는 애플리케이션이 모듈 단위가 될 수 있습니다. 스위프트에서는 import 키워드를 사용해 .. 2022. 2. 17.
[iOS] MVC 패턴 디자인 패턴 중 하나인 MVC 패턴 디자인 패턴이란 프로그램이나 어떤 특정한 것을 개발하는 중에 발생했던 문제점들을 정리해서 상황에 따라 간편하게 적용해서 쓸 수 있는 것을 정리하여 특정한 "규약"을 통해 쉽게 쓸 수 있는 형태로 만든 것을 말합니다. 어떠한 앱을 만든다고 한다면..그 앱을 유지보수를 하고 또 다른이들과 공유를 하면서 만들어야 할 떄 좀 더 쉽고 깔끔하게 만들 수 있는 방법을 우리는 고안해야 됩니다. 라이브러리나 프레임워크가 그 예입니다. 나중에 유지보수하기가 힘들겁니다. 그걸 "돕기" 위해 디자인패턴이라는게 나오는 것이며 이렇듯 "좀 더 쉽고 편리하게" 사용할 수 있게 만든 특정한 방법들을 디자인 패턴이라고 합니다. 그 디자인 패턴이라는 것은 스트래티지 패턴, 옵저버 패턴 등등 정말 여.. 2022. 2. 16.
[iOS] didSet,willSet 그리고 get,set 쨔잔! didset에 대해 알아봅시다! 처음에는 didset 하나만 있는줄 알았는데 swift에는 프로퍼티에 get,set,didSet,willSet을 사용할 수 있대요! get/set을 쓰거나 didSet/willSet을 쓰거나 할 수 있다고 합니다. get,set에 대해서는 간단하게 설명하고 넘어가겠습니다! Get, Set Swift의 get,set은 getter와 setter와 비슷하다고 합니다. 하지만 프로퍼티에 바로 get,set을 사용할 수 없고, 아래의 형태와 같이 실제 값을 저장할 backing storage가 필요합니다. var getset: Int var property: Int { get { return getset } set(newVal) { getset = newVal } } 즉 .. 2022. 2. 16.