profile
NAVER WORKS iOS Dev

Functor와 Monad

요즘 레츠스위프트를 구독하면서 여러가지 소식들을 접하고 있다. 여러 소식 중에 함수형 프로그래밍과 관련된 글을 그저께 읽다가 Functor와 Monad를 다시 접하게 되었다. 이 친구들은 기술 면접 준비하다가 몇번 스치다가 말았던 부분인데, 시간도 많으니! 이번 기회에

2021년 1월 29일
·
0개의 댓글

Navigation Controllers

Navigation controller(이하 NavC)는 계층 구조의 컨텐츠를 drill-down 형식으로 제공하기 위해 view controller들의 스택을 관리해준다. 이 계층 구조는 self-contained한데, 그 뜻은 필요한 기능들은 다 갖추고 있다는 의미

2021년 1월 27일
·
0개의 댓글

Encoding and Decoding URL Data

이 글은 사실 URL Session Programming Guide for iOS에 있는 내용을 공부하면서 번역한 내용인데, 예전 내용이라서 내용을 바꿀 필요가 생겨서 혼자서 예제를 작성해보았다. 따라서, URL Session Programming Guide for i

2021년 1월 27일
·
0개의 댓글

Understanding Cache Access

URL loading 시스템은 on-disk와 in-memory 캐쉬를 제공한다. 2개의 차이를 기본적으로 짚고 넘어가자면, 전자는 하드디스크에 접근하는 시간을 개선하기 위해 RAM에 저장하는 기법이고, 후자는 더 빠른 시간으로 접근하기 위해 CPU 안의 작은 메모리를

2021년 1월 27일
·
0개의 댓글

Life Cycle of a URL Session

우리는 URLSession을 시스템이 제공하는 delegate나 커스텀 delegate와 함께 사용할 수 있다. 일반적으로 앱이 다음과 같은 일을 한다면 반드시 커스텀 delegate를 사용해야한다.앱이 실행 중이지 않는 동안 컨텐츠를 다운로드 받거나 업로드 할 bac

2021년 1월 27일
·
0개의 댓글

Using Key-Value Observing in Swift

객체의 프로퍼티에 대한 변화를 다른 객체에게 알려보자.Key-value observing(이하 KVO)는 어떤 객체의 프로퍼티에 대한 변화를 알려주기 위해 사용하는 Cocoa programming 패턴이다. 모델과 뷰 사이처럼 논리적으로 분리되어있는 파트 간에 변화를

2021년 1월 27일
·
0개의 댓글

App Architecture

이번 글에서는 앱을 설계 시 고려해야 할 점을 다룰 것이다. 본격적으로 개발에 필요한 것들이 나오지 않을까 싶다. 시작하겠다!Launch experience라는 단어가 많이 나오는데, 앱을 실행시켰을 때의 경험이나 느낌을 의미하는 것 같다. 이런 경험을 좋게 해 줄 가

2021년 1월 26일
·
0개의 댓글

Collections

Collection은 사진 같은 콘텐츠를 관리해주고 출력시켜주는 역할을 한다. table처럼 선형적인 구조를 꼭 지켜야 하는 것은 아니라서 다양한 방법으로 표현할 수 있다. 이 collection은 이미지가 베이스인 콘텐츠를 표현할 때 사용하면 좋다. 기타 다른 부분,

2021년 1월 25일
·
0개의 댓글

Tab Bars

Tab bar는 앱의 하단에서 볼 수 있고, 주어지는 기능을 빠르게 전환할 수 있게 해준다. 막대처럼 보이는 이 tab bar는 반투명이고 백그라운드 틴트 색을 가질 수 있으며, 언제나 같은 높이를 가진다. 키보드를 쓸때면 키보드에 의해 가려진다. Tab bar는 여러

2021년 1월 25일
·
0개의 댓글

Toolbars

Toolbar는 앱 스크린 하단에 있는 bar를 말하며, 현재 보이는 뷰와 콘텐츠와 관련된 액션을 수행하는 역할을 한다. 기본적으로 투명한 상태이고 background tint를 가질 수 있다. 사용자가 원하지 않을 때는 숨겨지기도 한다. 예를 들면, Safari 같

2021년 1월 25일
·
0개의 댓글

중간 점검

사실 중간 점검이라고 할게 없다. 중간은 커녕 제대로 시작도 못했으니...더군다나 최근까지 인턴 생활을 하면서 블로그 활동을 제대로 하지 못했다. 그래서 지금부터 다시 시작하려고 한다.시작하기에 앞서 포스팅 방식을 조금 바꾸려고 한다. 원래는 로드맵 순서대로 공부를 하

2021년 1월 25일
·
0개의 댓글

Live Photos

라이브 포토는 정적인 사진에 생명감을 불어넣듯 소리와 움직임으로 관심있는 한 순간을 캡처해준다. 이 기능이 켜져있으면, 카메라 앱은 오디오와 사진이 찍힌 순간의 앞과 뒷 프레임을 포함한 추가적인 컨텐츠를 캡처해준다. 라이브 포토를 보고 싶다면 그냥 누르고 있으면 재생된

2021년 1월 25일
·
0개의 댓글
post-thumbnail

Stanford cs193p 2017 Winter 9강

시작에 앞서 인프런 강의가 갑작스럽게 2017 겨울강의로 넘어갔다...9강부터는 2017 겨울 강좌로 글을 발행하겠다. 아 그리고 강의에서 사용 중인 twitter API는 더 이상 사용할 수 없다. 그냥 코드만 쳐보고 싶으면 가능하나 다음과 같이 Twitter 프로젝

2020년 10월 6일
·
0개의 댓글
post-thumbnail

Stanford cs193p 2016 8강

spinner를 만들고자 사용했다. 아래 그림처럼 설정을 해주면, 따로 hidden 설정해 줄 필요없이 멈추면 알아서 없어진다.줌 기능을 사용하고 싶을 때 단순히 viewForZooming(in:)만 쓴다고 해결되지 않는다. 다음과 같이 최소, 최대 설정을 해줘야 비로

2020년 10월 1일
·
0개의 댓글
post-thumbnail

Stanford cs193p 2016 7강

http 경로로 된 데이터를 다운로드 받으려고 하면 iOS 단에서 차단해버린다. 따라서 info.plist에 관련 정보를 추가해줘야 한다. 다음과 같이 말이다!버전이 업그레이드 되면서 그런건지 몰라도 scroll view 혼자 단독으로 두면 에러가 발생한다. 바로 사이

2020년 9월 23일
·
0개의 댓글
post-thumbnail

Stanford cs193p 2016 6강

각 Tab은 서로 독립적이다. 따라서, 서로 segue를 연결시킬 필요가 없고, 어쩌피 그렇게 하지도 못한다! 독립적이므로 viewDidLoad()도 한번 호출된다.실습을 그대로 따라하는데 다음과 같은 이슈가 발생했다. 이 이슈를 스택오버플로우에 물어보느라 제때 글을

2020년 9월 22일
·
0개의 댓글

iOS

위키에 따르면 앱 개발자에게 제공하는 추천 사항들(말 그대로 가이드라인)이라고 한다. 제공 목적은 UI를 직관적이게 만들도록 하여 사용자 경험을 극대화시키는 것이라고 한다. 애플에서는 기기 별로 가이드라인을 제공하고 있다. 나는 iOS 개발자가 되고 싶기 때문에 iOS

2020년 9월 19일
·
0개의 댓글

Stanford cs193p 2016 5강

@IBDesignable을 사용하면, UIView를 직접 서브클래싱해서 스토리보드에 그리는 경우에 앱을 실행시키지 않고도 스토리보드에서 확인할 수 있다.@IBInspectable을 사용하면, Inspectors에서 값을 변경할 수 있는 공간이 생긴다. 다만, Inter

2020년 9월 18일
·
0개의 댓글
post-thumbnail

Stanford cs193p 2016 4강

정말 궁금했던 사항이었다. 회전되면 위 2개 값은 어떻게 설정되는 것일까? 강의에 따르면 다음과 같다.위 그림 기준으로 설명하자면, 일단 Frame은 회전된 뷰 B를 감싸는 최소 직사각형 사이즈를 가진다. 따라서 값으로 표현하면 ((140, 65), (320, 320)

2020년 9월 10일
·
0개의 댓글

Stanford cs193p 2016 3강

오늘 iOS 스터디에서 잠깐 옵셔널에 대해서 얘기한 적이 있는데 이번 강의에서도 다루었다. 기록할 내용은 다음과 같다.옵셔널은 enum으로 짜여져 있고, 위에서 정의한 x와 y끼리는 같은 거라고 보면 된다. None하고 Some이 어떻게 쓰이는 건지 알게되었다. 마지막

2020년 9월 8일
·
0개의 댓글