본문 바로가기
MVC, MVP, MVVM Pattern 좋은 아키텍쳐 - Modularity 개체들 간 균형있는 책임 분리를 통해 모듈간 의존성을 줄이고 빠르고 효율적으로 복잡한 문제에서 해결하기 위한 키 포인트를 캐치할 수 있어야한다 - Testability 테스트가 가능하고 용이해야 한다 - Ease of use 유지보수 & 사용의 용이성 1. MVC 1-1. MVC 구조 Model : 어플리케이션에서 사용되는 데이터와 그 데이터를 처리하는 부분 View : 사용자에서 보여지는 UI 부분 Controller : 사용자의 입력(Action)을 받고 처리하는 부분 1-2. MVC 동작순서 사용자의 Action들은 Controller에 들어오게 됩니다. Controller는 사용자의 Action를 확인하고, Model을 업데이트합니다. Controller는 M.. 2021. 2. 17.
Singleton Pattern Singleton? - 싱글톤 객체는 응용 프로그램이 몇번 요청하는지에 관계없이 동일한 인스턴스를 반환 - 싱글톤패턴은 특정용도의 객체를 단 하나의 인스턴스만을 정적으로 생성하여 공용으로 사용하고자할때 사용 -> 주로 환경설정, 로그인 정보 등을 특정용도로 생성해둔 객체에 넣어두고 여러 객체에서 접근 가능하도록 하여 데이터를 사용 - 싱글톤 객체의 인스터스는 메모리에서 해제해주지 않는 이상 프로그램이 끝날 때 까지 메모리에 유지 Singleton in iOS example class MySingleton { static let shared = MySingleton() // ... } // singleton classes let screen = UIScreen.shared let application = .. 2021. 2. 17.
Delegation Pattern Delegation? - 딜리게이션 이란 일부 클래스의 책임을 다른 클래스의 인스턴스에게 위임 또는 전달할 수 있는 디자인 패턴을 의미한다. - 하나의 객체가 다른 '도우미' 역할의 객체를 사용하는 것. - 어떠한 일을 수행하거나 혹은 데이터를 제공하는데 있어 객체 자신이 수행하는 것보다 오히려 다른 객체를 사용하는 것이 효율적이기 때문 Delegation in iOS example class NoteViewController: UIViewController, UITextViewDelegate { var textView: UITextView func viewDidLoad() { textView.delegate = self // NoteViewController 인스턴스는 textView의 delegate.. 2021. 2. 17.
Design Pattern 디자인패턴? - 프로그래밍 디자인 패턴은 소프트웨어를 설계할 때 특정 상황에서 자주 사용하는 패턴을 정형화한 것 - 좋은 소프트웨어 설계를 위한 개발자들의 경험적 산물 디자인패턴 분류 - 디자인 패턴 분류는 소프트웨어 코드를 작성할 때 자주 반복되는 특정 상황에서 설계를 용이하게 하며 코드의 재사용이 용이하도록 패턴을 정리해 놓은 것 - 분류기준 : 목적, 범위 - 목적 : 패턴이 무엇을 하는지 정의하는 것으로 "생성", "구조", "행위" 중의 한 가지 목적을 갖습니다. 생성 (Creational Pattern) : 객체의 생성 과정에 관여하는 패턴입니다. 구조 (Structural Pattern) : 클래스나 객체의 구성을 통해 더 큰 구조로 만들 수 있게 해주는 것과 관련된 패턴입니다. 행위 (Be.. 2021. 2. 16.
View hierarchy Window & View - iOS에서 화면에 애플리케이션의 콘텐츠를 나타내기 위해 윈도우와 뷰를 사용 - 윈도우는 그 자체로 콘텐츠를 표현할 수 없지만 애플리케이션의 뷰를 위한 컨테이너 역할 - 뷰는 UIView 클래스 또는 UIView 클래스의 하위클래스(Subclass)의 인스턴스로 윈도우의 한 영역에서 콘텐츠를 보여줌 - 뷰는 또 다른 뷰를 관리하고 구성하기 위해 사용되기도 한다 View hierarchy - 뷰는 자신의 콘텐츠를 보여주는 것과 더불어, 다른 뷰를 위한 컨테이너로써의 역할도 합니다. - 하나의 뷰가 다른 뷰를 포함할 때, 두 뷰 사이에 부모-자식 관계가 생성 - 자식뷰는 서브뷰(subview)로, 부모뷰는 슈퍼뷰(superview)로 불려집니다 - 슈퍼뷰와 서브뷰의 관계에서 서브뷰.. 2021. 2. 16.
AutoLayout 오토레이아웃 필요성 - ui 구성시 다양한 사이즈와 화면 비율로 출시 되면서, 사이즈에 구애받지 않고 시각적으로 동일한 화면을 구현해야 함 - 오토레이아웃은 애플리케이션을 사용할 때 발생하는 외부 변경과 내부 변경에 동적으로 반응하는 사용자 인터페이스를 가능하게 합니다. - 외부 변경(External Changes) : 외부 변경은 슈퍼뷰의 크기나 모양이 변경될 때 발생합니다. - 내부 변경(Internal Changes) : 용자 인터페이스의 뷰의 크기 또는 설정이 변경되었을 때 발생 오토레이아웃 속성 Width : 정렬 사각형의 너비 Height : 정렬 사각형의 높이 Top : 정렬 사각형의 상단 Bottom : 정렬 사각형의 하단 Baseline : 텍스트의 하단 Horizontal : 수평 Ve.. 2021. 2. 16.