Design Pattern(디자인 패턴) 디자인 패턴이란? 프로그래밍 설계를 할때 자주 발생하는 문제들을 해결하기 위해 사용되는 패턴, 구조 라고 할 수 있다. 디자인 패턴을 공부하다 보면 '아 이게 패턴이었어?' 라는 생각이 드는 순간이 있다. 디자인 패턴이라는 것이 정형화된 어떤 기술이 아니기 때문이다. 오래도록 경험이 축척되어 널리 굳혀진 방법론 일 뿐이며 누군가는 디자인 패턴을 선배들의 삽질 기록물 이라고 하는 이유가 그것이다. 디자인 패턴의 장점 객체지향 프로그래밍의 다양한 문제를 해결 혹은 더 나은 방법 을 제시해준다. 비슷한 상황에서 효과적으로 문제를 해결해오던 패턴이기 떄문에 쉽고 빠르게 해결책을 찾을수 있다. 디자인 패턴은 프로그래머 사이의 협업 효율과 의사소통을 증진시켜준..
Coordinator 패턴 iOS에서는 화면 전환을 담당하는 컨트롤러인 UINavigationController가 있다. Stack방식으로 새로운 화면을 push혹은 present하고, 이전 화면으로 돌아가기 위해 pop혹은 dissmis 한다. 가장 첫 화면을 기준으로 새로운 화면으로 넘어갈때 마다 하나씩 쌓이게 되고 뒤로가기 버튼을 통해 이전에 방문했던 화면들을 순서대로 꺼낼게된다. navigationController?.pushviewController(nextViewController, animated:true) 요렇게 제공되는 메서드를 사용해 간단하게 화면을 전환할수 있지만 앱이 커지고 화면이 많아진다면 사용하기 버거워진다. 예를 들어 화면을 전환하는 메서드가 모든 뷰마다 존재한다던지 하는 중복..
Decorator Pattern(데코레이터 패턴) Decorator Pattern이란? 데코레이터 패턴이란 주어진 상황 및 용도에 따라 어떤 객체에 책임을 덧붙이는 패턴으로, 기능 확장이 필요할 때 서브클래싱 대신 쓸 수 있는 유연한 대안이 될 수 있다.데코레이터 패턴은 자기 자신을 다시 자기 자신으로 감싸면서(wrap)큰블럭으로 만들어 나가는 패턴이다. 이러한 과정을 통해 문제를 해결하게 되고 작은 블럭을 다시 작은 블럭으로 감싸는 특징 때문에 Decorator 패턴을 Wrapper 패턴 이라고도 한다 Decorator Pattern은 언제 사용할까? 보편 적으로 데코레이터 패턴이 해결할 수 있는 문제는 상속에 관한 문제다. 다른 객체들에 영향을 주지 않고 개별 객체에 기능들을 추가하고 싶을때 사용한다..
Singleton Pattern Singleton Pattern 이란 특정 용도로 사용될 객체 '한개만' 만들어서 여러곳에서 공용으로 사용할때 사용하는 디자인 패턴 이다. (전역 변수 같은느낌?) 사용 예시 class Malrang { static let malrang = Malrang() var name = String? var age = Int? private init() {} } 위의 예시처럼 더이상 Malrang 의 객체를 만들수 없게끔 정의하여 사용할수 있다. Malrang 타입의 객체는 새로 초기화,생성 할수없 도록 init에 접근제한을 걸어준뒤 내부에서 Malrang의 타입을 갖는 객체를 어디서든 접근하여 사용할수 있도록 static 키워드를 이용해 어디서든 malrang 이라는 프로퍼티를 ..