목록iOS (42)
study record
GCD란? 멀티코어와 멀티 프로세싱 환경에서 최적화된 프로그래밍을 할 수 있도록 애플이 개발한 기술. 언제 GCD를 사용하게 되는가? 이벤트들을 비동기적으로 처리하지 않으면 메인 스레드에서 데이터를 가져오고 기다렸다가 UI를 업데이트하며 지연이 발생할 수 있다. 데이터베이스에서 데이터를 한번에 지연없이 가져올 수 없는 경우가 발생하기 때문이다. 이렇게 되면 데이터를 가져올 때까지 UI update도 늦어지게 된다. 이러한 경우를 해결하기 위해 GCD를 사용하게 된다. 뿐만 아니라 네트워킹, 이미지 프로세싱 등 많은 작업을 메인 스레드에서 모두 진행하게 되면 User Interface의 대응이 느려지거나 중지가 되기 때문이다. GCD는 비동기 Queue(Dispatch Queue)를 생성하고, 데이터를 G..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/mWH1W/btrvbflV5Hr/fEeEWI08K78YrshozcHAYk/img.png)
Subject Subject란 Observable이자 Observer의 성격을 지니고 있다. Subject는 동적으로 값을 발행할 수 있다. Subject는 구독하고 있는 여러 Observer들에게 값을 발행할 수 있다. Subject는 Observable을 상속하고 있다. 이는 Subject가 Observable이자 Observer라는 것을 의미한다. Observer(관찰자)의 성격을 지니고 있기 때문에 Observable을 구독할 수 있다. Observable이기 때문에 이벤트를 발행할 수도 있다. * view의 유저 인터렉션을 viewModel의 Subject가 구독하고, 구독을 통해 발행된 값을 바탕으로 viewModel에서 비즈니스 로직을 거쳐 가공된 데이터를 View가 구독함으로써 로직을 구성..
Observable : 특정 형태의 데이터를 전달하는 이벤트를 비동기적으로 생성할 수 있는 객체. Observable은 Hot Observable, Cold Observable 두가지 종류로 구분될 수 있다. Hot Observable과 Cold Observable을 구분하는 기준은 다음과 같다. 이벤트 발생이 시작되는 시점(구독시 vs 구독과 관계 없이) 구독했을 때 이벤트 시퀀스를 처음부터 관찰할 수 있는가(있다 vs 없다) Hot Observable Hot Observable은 구독 여부에 상관 없이 이벤트를 발생시키기 때문에 일단 동작하기 시작하면 리소스를 사용하게 된다. 따라서 구독했을 때 이벤트 시퀀스를 처음부터 관찰하지 못할 수 있다. 구독하는 시점에 따라서 전달받는 요소가 다르다. 또한 이..
// 먼저 행간 조절 스타일 설정 let style = NSMutableParagraphStyle() style.lineSpacing = 10 let attributedString = NSMutableAttributedString(string: textView.text) // 자간 조절 설정 attributedString.addAttribute(NSAttributedString.Key.kern, value: CGFloat(2.0), range: NSRange(location: 0, length: attributedString.length)) // 행간 스타일 추가 attributedString.addAttribute(NSAttributedString.Key.paragraphStyle, value: sty..