본문 바로가기

분류 전체보기34

iOS의 뷰가 그려지는 과정 서론 iOS개발을 하다가 보면 가끔 View가 말을 듣지 않을때가 있다. 분명 원하는 값을 다 주었는데도, 이게 왜 안보여? 이건 또 왜이렇게 보여? View를 디버깅하기위해서 계속해서 앱을 껏다 켰다 하는 시간은 우리의 개발시간을 상당히 잡아먹는다. View가 그려지는 과정을 이해함으로써 이 시간을 줄여보자. Run Loop View가 그려지는 과정을 이해하기 위해서는 Run Loop의 개념을 이해해야 한다. Run Loop의 정의를 보자. input sources들이 manage되는 프로그래밍적인 interface이다. 여기서 input sources란, 키보드, 마우스, 소켓 등등의 사용자가 어떠한 입력을 하는 것을 말한다. 따라서, Run Loop는 모든 사용자의 입력을 처리하는 객체라고 할 수 .. 2022. 6. 19.
정규 표현식 in Swift 정규표현식 정규 표현식(regular expression), 간단히 regexp 또는 regex, rational expression) 또는 정규식 (正規式)은 특정한 규칙을 가진 문자열의 집합을 표현하는 데 사용하는 형식 언어 이다. - 위키백과 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어. 기본 문법 ^ 시작 \d 숫자 $ 종료 \D 숫자를 제외한 모든 문자 {N, } N개 이상 ? 없거나 하나이상 [ ] 괄호 안의 임의의 문자 ( ) 문자 묶음 처리 (.) 임의의 문자 \1 앞의 부분식 * 0개 이상 == {0, } + 1개 이상 == {1, } ? 1개 == {0, 1} \W 알파벳 or 숫자를 제외한 문자 \w 알파벳 or 숫자 예제 let pattern = "^[A-Za-.. 2022. 6. 14.
OAuth 간편 로그인 요즘은 어떠한 서비스(웹,앱)에 가입하지 않더라도 다른 서비스회사(구글,카카오,네이버..)의 정보를 이용해 간단하게 로그인 할 수 있는 기능을 제공해 주곤 한다. 이번 토이 프로젝트 진행시에 카카오 로그인을 구현하다가 삽질을 많이 했는데, 그 원리를 알지 못하니 많은 어려움이 있었다. 이게 어떻게 가능한지 각 서비스별로 구체적인 방법은 다 다르지만 대부분 비슷하기 때문에 이번 포스팅에서는 생활코딩님의 예제 + 카카오 디벨로퍼 사이트를 참고해서 진행해 본다. OAuth OAuth는 간편 로그인 서비스의 핵심이다. OAuth("Open Authorization")는 인터넷 사용자들이 비밀번호를 제공하지 않고 다른 웹사이트 상의 자신들의 정보에 대해 웹사이트나 애플리케이션의 접근 권한을 부여할 수.. 2022. 6. 12.
Type Erasure in Swift 계기 토이 프로젝트를 진행 중 Protocol의 Associated Type을 이용해서 타입을 추상화 시키려 했으나 밑과 같은 에러를 마주쳤다. 도대체 이런 Error가 왜 생기고 이를 해결하기 위한 방법을 알아보자. Error: Can only be Used as a generic constraint ... 계기가 되었던 이 에러는 도대체 왜 나오는 것일까? 이유부터 말하자면 컴파일러 타임에 타입을 추론하지 못해서 생기는 문제이다. 먼저 이 에러가 나오는 상황을 예시를 들어서 알아본다. protocol SomeProtocol { var some: String { get } } struct A: SomeProtocol { var some: String = "A" } struct B: SomeProtoco.. 2022. 5. 23.