분류 전체보기 195

iOS 아키텍처 패턴 - VIPER

iOS 아키텍처 패턴 - VIPER 원문 출처 : https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52 마지막 주자 VIPER는 MV(X) 카테고리가 아니라는 점이 흥미롭다. 이제는 책임 분배가 얼마나 중요한 지에 동의할 것이다. 레고 빌딩 경험이 iOS 앱 디자인에 반영되었다. VIPER는 기존의 MV(X) 패턴들과 다르게 3가지 카테고리가 아니라, 2가지 더 추가되어 총 5가지 카테고리를 가진다. * Interactor : data(Entities) 또는 networking과 관련된 business logic을 포함한다. (Entities의 새로운 instance를 만든다던지, 서버로부터 이들을 fetching 한..

iOS 아키텍처 패턴 - MVVM

iOS 아키텍처 패턴 - MVVM 원문 출처 : https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52 우선 기본적으로 MVC, MVP, MVVM와 같이 MV(X) 패턴들은 다음과 같이 3가지 요소로 나뉜다. 일반적인 카테고리 특징은 아래와 같고, 패턴에 따라 조금씩 차이를 보인다. Models - domain data 또는 데이터를 다루는 data access layer를 담당하는 카테고리. - ‘Person’, ‘PersonDataProvider’를 떠올려 보아라. Views - presentation layer (GUI)를 담당하는 카테고리. - iOS 환경에서 접두사 ‘UI’가 붙었던 모든 것을 떠올려 보라. C..

iOS 아키텍처 패턴 - MVP

iOS 아키텍처 패턴 - MVP 원문 출처 : https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52 우선 기본적으로 MVC, MVP, MVVM와 같이 MV(X) 패턴들은 다음과 같이 3가지 요소로 나뉜다. 일반적인 카테고리 특징은 아래와 같고, 패턴에 따라 조금씩 차이를 보인다. Models - domain data 또는 데이터를 다루는 data access layer를 담당하는 카테고리. - ‘Person’, ‘PersonDataProvider’를 떠올려 보아라. Views - presentation layer (GUI)를 담당하는 카테고리. - iOS 환경에서 접두사 ‘UI’가 붙었던 모든 것을 떠올려 보라. Co..

iOS 아키텍처 패턴 - Apple's MVC

iOS 아키텍처 패턴 - Apple's MVC 원문 출처 : https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52 우선 기본적으로 MVC, MVP, MVVM와 같이 MV(X) 패턴들은 다음과 같이 3가지 요소로 나뉜다. 일반적인 카테고리 특징은 아래와 같고, 패턴에 따라 조금씩 차이를 보인다. Models - domain data 또는 데이터를 다루는 data access layer를 담당하는 카테고리. - ‘Person’, ‘PersonDataProvider’를 떠올려 보아라. Views - presentation layer (GUI)를 담당하는 카테고리. - iOS 환경에서 접두사 ‘UI’가 붙었던 모든 것을 떠올..

iOS 아키텍처 패턴 - Classic MVC

iOS 아키텍처 패턴 - Classic MVC 원문 출처 : https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52 우선 기본적으로 MVC, MVP, MVVM와 같이 MV(X) 패턴들은 다음과 같이 3가지 요소로 나뉜다. 일반적인 카테고리 특징은 아래와 같고, 패턴에 따라 조금씩 차이를 보인다. Models - domain data 또는 데이터를 다루는 data access layer를 담당하는 카테고리. - ‘Person’, ‘PersonDataProvider’를 떠올려 보아라. Views - presentation layer (GUI)를 담당하는 카테고리. - iOS 환경에서 접두사 ‘UI’가 붙었던 모든 것을 떠올..

iOS 아키텍처 패턴 - 개요

iOS 앱 아키텍처 패턴 원문 출처 : https://medium.com/ios-os-x-development/ios-architecture-patterns-ecba4c38de52 iOS Application Architecture Patterns에 대해 다룬다. 종류는 다음과 같다. (링크 타고 들어가세요~!) Classic MVC Apple's MVC MVP MVVM VIPER 아키텍처 패턴을 왜 알아야하고 선택을 고민해야 하나? 아키텍처가 없다면 언젠가 수십가지의 다른 things들을 가지는 거대한 class를 debugging 한다고 할 때, 이 클래스 안에서 어떠한 버그를 찾지도, 고치지도 못하는 자신을 발견할 수 있을 것이다. 이런 거대한 class의 전체 구조를 머리 속에 저장하는 일은 정말..

Swift 열거형 (Enum)

Swift 열거형 (Enum) : 변수가 가질 수 있는 값들을 나열해 놓은 타입. : 값의 종류가 일정 범위로 정해져 있는 경우 적합. 열거형 형식 enum 열거형이름{ case 가능값1 case 가능값2 case 가능값3, 가능값4, 가능값5 } 예시 변수가 열거형을 받는 방식은 선언 시 변수명 옆에 : 열거형이름 을 명시하면 된다. var 서울에서거제 : 방향 열거형을 받은 변수는 열거형에 나열된 값만 가질 수 있다. 원시값(raw value) C언어에서는 default로 열거형 자료에 정수형으로 숫자를 부여한다. Swift 에서는 기본적으로 사용하지 않는다. 사용하고자 할 때에는 열거형명 : Int 이렇게 따로 명시해야 한다. : Int를 적어 정수형 rawValue를 사용함을 명시했다. 첫번째 c..

Swift 기초 2019.03.30

Swift 클로저(Closure)

Swift 클로저(Closure) : Swift에서 클로저란 {} 형식의 '코드블럭'이다. 코드 안에서 사용될 수도 있고 매개변수로 전달 될 수도 있다. 클로저 형식 클로저 형식은 위 그림과 같다. 중괄호{} 안에 함수 형식과 유사하게 작성하면 된다. in 문장 안에 코드블럭의 실질적인 내용이 적힌다. 클로저 예시 Int 매개변수를 인자로 받아 단순히 *2 한 값을 반환하는 doubler 함수를 작성하였다. [1,2,3,4,5] 5개의 요소를 가지는 Int형 배열을 선언하고 array.map()의 매개변수로 doubler 함수를 전달하였다. array.map()의 매개변수로 '클로저'로 doubler 함수의 내용을 구현하여 전달하였다. 둘의 결과는 [2, 4, 6, 8, 10]으로 당연하게도 서로 동일하..

Swift 기초 2019.03.30

Swift 중첩함수

Swift 중첩함수 Swift 는 함수 내부에 또 다른 함수 생성 가능 (중첩함수) 내부의 중첩된 함수는 바깥쪽 함수에 선언된 변수를 사용할 수 있다. (물론 외부함수의 인자에도 접근 가능) 중첩함수의 호출은 함수 내부에서만 가능하다. ==> 내부적으로 은닉 가능. 내부함수는 외부함수가 실행되는 순간 생성되고, 종료되는 순간 소멸된다. 외부함수를 호출했을 때 내부함수를 반환하여 외부에서 사용하는 것도 가능하다. (값에 따라 다른 함수를 반환하는 것도 구현 가능) 함수 안에 함수를 선언한다는 것일 뿐, 함수 선언 방식은 동일하므로 일반적인 함수 작성 코드는 따로 작성하진 않겠다. 다만 내부 함수를 반환할 때 외부함수의 반환타입 명시 예시를 들자면 다음과 같다. 외부함수의 선언문:func IncDec(wan..

Swift 기초 2019.03.28