전체보기 238

[iOS] NSOperation과 NSOperationQueue 개념과 사용

비동기적 프로세싱을 위해서 iOS 플랫폼에서 GCD 디스패치를 주로 사용하게 된다. GCD는 개발자에게 복잡한 스케줄링 혹은 논리 구조로부터 해방시켜준다. 특히 Block Coding을 이용하여 단순 구현을 쉽게 만들어준다. 하지만 보다 복잡한 로직의 구현과 코드 재사용성을 높히기를 원한다면 NSOperation과 NSOperationQueue를 사용하면 좋다. NSOperation은 GCD처럼 비동기적 프로세싱을 위해서 안성맞춤이다. 대표적인 비동기 로직으로 네트워크나 파일I/O 등 엑세스 시간이 긴 작업들이 있다. 앞서 말한 비동기 로직을 처리할 때, 사용하면 된다. NSOperation NSOperation의 구현은 마치 Java의 Thread 구현과 비슷하다. 먼저 알아두어야할 것은 NSOpera..

[Apple] WWDC 2015 키노트 요약

1. 26회 WWDC2. OS X / iOS / watchOS + Music OS X El Capitan3. 요세미티 업데이트 비율이 55%이다. 윈도우 8.1은 7%에 불과하다.4. 새로운 OS X의 이름은 요세미티안에서 찾았다. '엘 캐피튼'5. 사용자 경험과 성능을 강조6. 스팟라이트, 빌트인 앱, 윈도우 메니지먼트 시스템7. 메일앱 스와이프 제스쳐를 이용한 편의성 증대8. Pin site : site를 pin해 놓고 지속적으로 접근이 편리하도록 했다. 사파리 윈도우를 닫아도 다른 링크를 열어도 pin은 남아있다.9. 탭 별로 미디어를 종료할 수 있다. 10. 스팟라이트에서 게임 스코어를 확인하고, 날씨, 주식 등을 검색 가능하다. 또한 스팟라이트 창을 이동가능하다.11. mail, finder 등..

WWDC/2015 2015.06.10

[Software Engineering] GitHub에서 놀자!! (깃허브 사용법)

깃허브(이하 '깃헙')는 개발자들의 놀이터이다. 하지만 놀이기구를 탈 줄 모르는 개발자들이 많아 필자가 깃헙을 사용하면서 터득한 내용들을 공유하려고 한다. 깃헙에서 놀고 싶고 전세계 개발자들과 교류하고 싶은 개발자들은 이 글을 참고하기를 바란다. 혹시 GitHub(깃헙)이 아닌 형상관리 도구인 Git(깃)을 찾는 분이리면 'Git의 개념과 기초 사용법'으로 가길 바란다. https://github.com/MBKwon 1. 놀이터 몰색 우선, 내가 놀고싶은 놀이터를 찾는 일이 필요하다. 내가 사용하는 주요 프로그래밍 언어, 관심있는 플랫폼, 사용중인 라이브러리/프레임워크와의 연관성 등 개발자들은 자신이 놀 놀이터에 관해 호불호가 갈리게 되어 있다. 깃헙에서 자신이 놀고 싶은 놀이터를 찾는 것도 하나의 일이..

[iOS] Core Animation 사용하기

미려한 UI를 위해선 아름다운 효과는 필수이다. 하지만 아름다운 효과를 위해 animation을 무리하게 사용하면 main thread에 너무 많은 작업을 가중시킨다. 미려한 UI를 위해 animation을 사용하되, main thread에 작업을 가중시키지 않기 위해 무엇을 해야할까? 그 방법 중에 하나가 UIView대신에 Layer를 이용한 animation의 구현이다. UIView는 이벤트 입력을 받을 수 있는 View의 전체를 이동하는 반면, Layer는 View의 UI 표시영역만 사용하게 된다. 이를 이용한 animation은 main thread의 부담을 덜어주게 된다. UI 표시영역, 즉 비트맵 상의 이미지만 움직이기 때문에 소프트웨어적으로 drawRect:를 통해 다시 그리지 않고 비트맵 ..

[iOS] iOS에서 쿠키 사용하기 (NSHTTPCookieStorage, NSHTTPCookie)

쿠키란? 쿠키는 웹 사이트로부터 받아 사용자의 브라우저에 저장하는 작은 데이터이다. 쿠키는 웹사이트를 로드할 때마다 사용자의 활동과 식별을 위해 서버로 다시 돌려 보내는데 사용된다. 쿠키는 상태 정보를 기억하고 버튼 클릭, 브라우징 히스토리, 로그인 등 브라우저에서의 활동을 기록하는 데 필요한 신뢰있는 메카니즘으로 만들어졌다. 쿠키는 기본적으로 자신을 보낸 서버의 도메인을 가지고 있고 해당 도메인에 연결할 때마다 사용된다. 데이터는 'name=value' 구조로 구성된 String 데이터 쌍이다. 쿠키는 일반적으로 웹브라우저가 종료되기 전까지 유지되며 만료시간을 설정할 경우에는 브라우저가 종료되도 설정한 만료시간까지 유지된다. 아래를 보면 쿠키가 'session'이란 name에 'eylZWNIbnQiOl..

[iOS] iOS 멀티태스킹 (Background Service 이용하는 법 : iOS7 이상)

iOS7부터 '멀티 태스킹'에 대해 강력한 지원을 해준다. Background의 세계가 열렸다. 사용자들이 Foreground에서 기다리던 시대는 지났다. 개발자들은 Background를 지원하며 사용자들이 지루하게 기다린 시간을 줄일 의무가 '자의 반, 타의 반'으로 부여됬다. 그럼, 멀티태스킹을 지원하기 위한 Background Service에 대해 알아보자. ** 아래의 기능들을 통해 완전히 종료된 앱을 실행상태로 만드는 것은 불가능하며, 메모리에 로드된 상태의 background에서만 실행을 보장한다. 새로운 멀티 태스킹 API로는 3가지가 추가되었다. 3가지는 아래와 같다. 1. Background Fetch 주기적인 업데이트 사용할 때 사용2. Remote Notification (Silent..