목록iOS 개발 (21)
어쩌다보니 iOS 개발자
이번 프로젝트를 진행하면서 클린스위프트 아키텍처를 적용해보고자 합니다. 목표는 1. Rx없이 순수 클린 스위프트 아키텍처를 적용해보기 (추후에 적절히 어디에 사용하면 좋을지 생각해보기 위해) 2. 단위 테스트 적용해보기(TDD 라기 보단 완료 후 단위 테스트를 작성하는 순으로 개발) 클린스위프트는 템플릿을 제공합니다. 물론 그냥 Xcode 에서 제공하는건 아니고.. 템플릿 다운로드 받고 설치까지 한 후에 가능합니다! 예를 들어 ListTodo 화면을 만든다고 가정하면 이렇게 각 컴포넌트를 한번에 생성해줍니다. 그럼 이제 각 컴포넌트가 어떤 역할을 하는지는 최소한 알아하니.. 가장 중요한 핵심 컴포넌트는! VIP(View Controller, Interator, Presenter) 입니다. View Co..
iOS의 MVC, MVP, MVVM, RIB's, Clean Swift 등 여러가지를 검색해 보다가.. 언제는 아키텍처 패턴.. 언제는 디자인 패턴이라고 언급하는 여러 게시물을 보고 문득 궁금해져서 개념을 명확히 가져가고자 검색을 해봤습니다. 아키텍처 패턴아 디자인 패턴을 왜 써야하는 것이며 어떻게 써야 효율적이며 어떤 프로젝트에 어떤 패턴이 좋은 것이며 장단점 등등 여러 가지 궁금한 점이 있지만... 그건 나중에 하나씩 공부하기로 하고 여기서는 단지 차이점만 기록하겠습니다.. 하나만 알려고 했다가 여러 가지 파고 들면.. 저 같은 경우에는 그 알고자 했던 하나 조차.. 집중하지 못하고 제대로 공부를 못하게 되더라구요.. 이렇게 주저리주저리 하는 것도 저한테 말하는 것이네요... ㅎㅎ;; 자 그만하고....
스택 데이터 구조는 개념상 객체의 물리적 스택과 동일합니다. 스택에 항목을 추가하면 스택 맨 위에 배치됩니다. 스택에서 항목을 제거하면 항상 맨 위에 있는 항목이 제거됩니다. LIFO 라고 하죠 Last In First Out 책에서는 아래 4개를 예시로 두었네요. pancakes books paper cash Stack operations 스택은 두 가지 필수 작업만 수행합니다. - push : 스택 맨 위에 요소를 추가합니다. - pop : 스택 맨 위 요소를 제거합니다. 한 쪽에서만 요소를 추가하거나 제거할 수 있습니다. LIFO(후입선출) 데이터 구조입니다. - iOS 기준으로는 Navigation 에서 stack 구조를 사용합니다. - 메모리 할당은 아키텍처 수준에서 스택을 사용합니다. 지역 변..
Swift 표준 라이브러리가 제공하는 기본 데이터구조를 이해해보기 이 장에서는 세 가지 주요 데이터 구조인 Array, Dictionary 및 Set에 중점을 둘 것입니다. 1. Array 배열은 각 요소가 순서를 가지고 있는 데이터 모음 즉 요소 컬렉션을 저장하기 위한 컨테이너라고 합니다. let people = ["Brian", "Stanley", "Ringo"] 이런식으로 배열을 만들 수 있습니다. 배열은 Sequence, Collection 프로토콜을 준수하여 정의 되어 있습니다. 그러므로 시퀀스 프로토콜에 의해 적어도 한번은 iterate 할 수 있고, 콜렉션 프로토콜에 의해 비파괴적??으로 여러 번 탐색할 수 있으며, subscript operator를 사용하여 액세스 할 수 있습니다. 그리..
안녕하세요. 엔디엘입니다. raywenderlich 의 Data Structures & Algorithms in Swift e-book 을 구매 후 스위프트 자료구조, 알고리즘 공부를 시작해보고자 합니다. 추후 복습을 위해 이곳에 기록을 남기고자 합니다.. 제발 끝까지 할 수 있도록.. 인간은 같은 실수를 반복한다.. 하지만 이번에는 아니길... 또르르...ㅠ 책 정보: https://www.raywenderlich.com/books/data-structures-algorithms-in-swift Data Structures & Algorithms in Swift Understanding how data structures and algorithms work in code is crucial for cr..
큐는 FIFO (first-in first-out)이다. 큐의 Operation enqueue : 큐에 요소를 맨뒤에 넣는다. 성공 여부 리턴 dequeue : 큐에서 맨 앞의 요소를 꺼낸다. (큐안에서 요소가 삭제 )요소 리턴 isEmpty : 큐안에 비었는지 체크 peek : 큐 맨앞에 요소를 가져온다. (삭제되진 않는다) 큐는 항상 맨 앞과 맨 뒤의 요소만 고려하면 된다. 중간의 요소에 대해서는 생각하지 않아도 된다. 큐를 만드는 총 4가지 방법을 알아볼 예정입니다. 1. array 사용하기 2. doubly 링크드 리스트 사용하기 3. ring buffer 4. two stacks 1. array 로 사용하기 queue의 프로토콜을 계승하여 array변수값을 선언 후 en큐는 array appen..
var bag: Set = ["Candy", "Juice", "Gummy"] bag.insert("Candy") pritn(bag) // prints ["Candy", "Juice", "Gummy"] 중복된 내용을 insert하면 insert되지 않는다. 별다른..내용이 없네..
var scores: [String: Int] = ["Eric": 9, "Mark": 12, "Wayne": 1] Dictionary 는 순서의 개념이 없고 insert 할 때도 특정 index에 삽입 하는 개념도 없다. Dictionary는 Hashable protocol 를 따르고 있다. 추가할 경우 scores["Andrew"] = 0 이런식으로 추가할 수 있다. Array 와 달리 Dictionarty 는 삽입하는데 시간복잡도는 0(1)이다. 검색도 시간 복잡도는 0(1)이다.