iOS 개발 중 로컬에 데이터를 저장할 때 UserDefault를 주로 사용했는데, UserDefault는 Key-Value로 저장되는 데이터라서 비교적 간단한 데이터는 저장해도 괜찮을 것 같지만 데이터베이스 역할을 하기에는 부적절해보였다. CoreData는 애플에서 제공하는 프레임워크로, 데이터베이스를 만들고 접근할 수 있는 방법을 제공한다. 아무래도 이론적인 부분을 파고들기 보다는 간단한 예제를 통해 기본적인 흐름을 파악하는게 익숙하기 때문에 간단한 예제를 만들어본 후에 이론적인 부분을 살펴보도록 하겠다. 예제 프로젝트 먼저 iOS 프로젝트를 생성한다. 여기서 Use Core Data를 체크하면 자동으로 데이터베이스 파일이 만들어지고 기본적인 접근 코드가 AppDelegate에 생성된다. (물론 체크..
일반 StickyHeader는 스크롤을 아래로 내렸을 때 위쪽에 윗변이 붙어있는 것 처럼 보이는 화면을 말한다. 하지만 헤더에는 스크롤을 아래로 내렸을 때도 계속 보여야 하는 필수적인 정보가 포함될 수도 있다. StickyHeader 효과를 그대로 가지고 있으면서 특헤더 중 특정 아래 영역을 항상 보이게 하는 autolayout을 만들어보자. 스토리보드로 만들면 만들 때는 쉽지만 유지보수 하기가 어렵기 때문에 스토리보드를 사용하지 않고 모두 코드로 작성해보도록 하겠다. 스토리보드를 사용하지 않고 코드로 화면을 만드는 방법은 아래 글을 참고하면 된다. 스토리보드 탈출 먼저 scrollView를 추가한다. autolayout이 중요하기 때문에 constraint 설정 부분을 자세히 봐야 한다. 참고로 모든 ..
목적 특정 인스턴스의 상태를 관찰(observe)하고 있는 구독자에게 변화를 발행(publish)한다. 방법 상태 변화를 발행할 수 있는 Publisher 인터페이스를 만든다. (GoF 옵저버 패턴에서는 Subject) subscribe : Observer를 추가한다. unsubscribe : Observer를 제거한다. publish : Observer에 변화된 상태를 발행한다. Publisher를 관측할 수 있는 Observer 인터페이스를 만든다. 구현에 따라 두가지 방법이 있다. Publisher로부터 변화된 상태를 갱신받는다(push). 정해진 정보만 갱신 받을 수 있다는 단점이 있다. update()에 publisher를 자신을 전달해서 필요한 데이터를 얻을 수 있도록 한다(pull). 원하는..
Swift에는 4가지 기본 인터페이스가 있다. 가장 추상적인 인터페이스인 protocol부터 OOP에서 가장 많이 사용하는 class, 그리고 struct, enum 등이 있다. C++에서 struct와 enum은 기본 자료형을 묶어서 구조체로 만들거나 숫자 리터럴을 키워드로 변경하기 위한 용도 등으로 사용했지만 Swift는 좀 더 많은 기능을 가지고 있다. 예를 들어 struct와 enum 모두 class처럼 함수를 가질 수 있다. 이로써 struct와 class의 경계가 모호해졌다고 볼 수 있지만 여전히 두 인터페이스는 다른 사용성을 가지고 있다. 차이점 value type vs reference type struct는 value type이고 class는 reference type이다. 때문에 str..
사실 이전 번역은 불필요한 농담이나 비유는 번역을 안하고 넘어갔지만 이번에는 웬만하면 다 번역을 해보려고 노력했다. 한글로 된 책을 읽을 때는 미쳐 몰랐는데 개발자들의 이 말장난들을 어쩜 그렇게 재치있게 번역했는지, 전공 서적을 번역하는 분들 정말 존경스럽다. 원본 링크 이제 observable과 subject가 어떻게 다르게 작동하며, playground에서 어떻게 만들어서 실험하는지 알게 되었다. 하지만 매일매일 observable을 사용해서 UI를 데이터 모델과 연결하거나 데이터 모델로부터 새로운 controller를 제공하는 코드를 작성하는 것은 어려울 수 있다. 새롭게 배운 기술을 실제 세계에 적용시키는 것은 쉽지 않다. 챕터2 observable, 챕터3 subject에서 이론적인 부분을 다루..
원본 링크 이제 observable이 무엇인지, 어떻게 생성하는지, 어떻게 구독하는지, 그리고 작업이 끝났을 때 어떻게 구독을 취소하는지 알게 되었을 것이다. observable은 RxSwift의 가장 기초적인 부분이지만 본질적으로 읽기만 가능하다. 구독을 통해 observable이 방출하는 이벤트를 받기만 할 수 있다는 뜻이다. 일반적으로 애플리케이션을 개발할 때, 런타임 중에 observable에 어떤 값을 추가하고 구독자들에게 값을 방출해야 한다. observable과 observer 두가지 기능이 모두 필요하고 이것이 바로 subject다. 이 챕터에서는 RxSwift가 가지고 있는 여러 종류의 subject에 대해 배울 것이고, 각각이 어떻게 동작하는지, 그리고 어떤 경우에 각 subject를 ..
맥북을 중고로 판매하고 새로운 구매해서 기다리고 있는 관계로 직접 코딩을 할 수 없게 되었다. 배송을 기다리면서 RxSwift 문서를 번역해보기로 했다. 번역은 처음이라 문장이 너무 어색한데 하다보면 점점 괜찮아지지 않을까? 원문 링크 앞서 RxSwift에 대해 기본적인 컨셉을 배웠다면, 이제는 observable을 배울 차례다. 이 챕터에서 observable을 생성(create)하고 구독(subscribe)하는 몇가지 예제를 다룰 것이다. 일부 사용법은 실세계에서 모호하게 느껴질 수 있지만 observable을 다루는 중요한 스킬과 수많은 활용성을 배울 수 있을 것이다. 이 기술을 앞으로 사용하게 될 것이다. Getting started 이 챕터에서는 RxSwift framework와 playgoun..
작가 헤르만 헤세 출판사 코너스톤 줄거리 시골에서 출생한 주인공 한스 기벤라트는 어렸을 때 부터 총명한 머리를 타고났다는 마을사람들의 칭찬에 부합하기 위해 도시로 진학했고 그곳에서 주어진 삶에 적응하지 못하고 방황한다. 결국 실패한 한스는 고향으로 쫓기듯 돌아오고, 여느 마을사람들과 다름없이 기계공으로써의 삶을 사는가 했지만 얼마 지나지않아 사고로 허무하게 죽는다. 감상 데미안을 읽고 몇개월이 지나서 또 헤르만 헤세의 작품을 골랐다. 중반 정도까지 읽었을 때 청소년기에 동성애를 느끼게 된 주인공에 대한 이야기인 줄 알았는데 주인공이 고향으로 돌아오고 결국 사고로 죽은 결말까지 읽었을 때는 이게 무슨 이야기인지 좀 당황스러웠다. 책 마지막에 있는 해설을 대충 읽어보니 어른들의 무관심이 한스를 죽음으로 내몰..
- Total
- Today
- Yesterday
- OS
- DesignPattern
- C
- Spring
- SOCKET
- Java
- SwiftUI
- SHADER
- 수학
- JSP
- game
- Git
- 알고리즘
- 국내여행
- ue4
- ios
- machine learing
- 드라마
- winsock
- C/C++
- Cocos2d-x
- 자료구조
- 운영체제
- scala
- rxswift
- mongoDB
- database
- swift
- 데이터베이스
- C++
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |