[Swift] Swift에서 정규표현식 사용하기 저는 지금까지 텍스트 필드 위에 입력되는 사용자의 입력이나 텍스트 덩어리에서 원하는 패턴의 값을 뽑아내거나 검증을 할 때 항상 모든 경우에 대해 if-else 와 같은 조건문을 이용하였습니다. 하지만 이렇게 조건문으로 모든 것을 해결하려하니 코드의 가독성, 효율성이 떨어질 뿐만 아니라 시간도 꽤나 소모되는 경우가 허다했습니다. 그러던 와중 매번 나랑은 관계없다고 생각한 정규표현식을 사용하고 느낀 편리함을 기록해보고자 이렇게 글을 작성하게 되었습니다. 그럼 바로 시작해보도록 하겠습니다. NSRegularExpression 먼저 Swift에서 정규표현식을 사용하여 패턴을 검증하기 위해선 NSRegularExpression을 사용해야 합니다. 앞에 NS-가 붙어..
[Swift] 프로토콜과 제네릭 그리고 열거형 Swift를 활용한 프로그램 설계 규칙에 있어서 메소드 인터페이스가 동일하면 프로토콜을 활용하고 로직은 동일하나 타입만 다르다면 제네릭을 활용하는 것이 좋은 설계 규칙 중 하나로 뽑힙니다. 오늘은 프로토콜(Protocol)과 제네릭(Generics)을 같이 사용해보고 이를 통해 배운점을 기록해보고자 합니다. 다음은 프로토콜에 관해 제가 작성한 포스팅들입니다. Protocol [1] Protocol [2] 다음은 제네릭을 사용해 iOS에서 코드를 줄여본 경험을 작성한 포스팅입니다. [ios] 제네릭을 이용해 코드 중복 제거하기 프로토콜과 제너릭에 대한 기본적인 지식이 필요로 하는 포스팅입니다. 프로토콜(Protocol) 과 제네릭(Generics) 인터페이스가..
[Swift] Functor and Monad in Swift Swift의 Monad를 소개하기 위해 작성된 포스팅으로 Monad를 단독으로 다루는 것보다 Functor와 함께 이야기하는 것이 이해에 도움이 된다고 생각하여 Functor와 Monad를 이해하기 위한 몇몇 개념과 함께 이들을 알아보도록 하겠습니다. Context 컨텍스트(Context)와 컨텐트(Content)의 관계는 다음과 같습니다.컨텍스트는 컨텐트를 담고있는 형태로 옵셔널(Optional)을 예로 들면 Optional(2)에서 Optional은 컨텍스트가 2 는 컨텐트가 됩니다. 만일 옵셔널안에 값이 존재하지 않는다면 컨텍스트만 존재하는 꼴이 되겠죠. 이렇게 컨텍스트는 무언가를 담고있는 것을 의미합니다. 이렇게 무엇을 담고있다는 의미..
[Swift] Hashable 안녕하세요. 오늘은 제너릭을 공부할 때도 딕셔너리를 공부할 때도 언급되는 Hashable 프로토콜에 대해 공부해보려 합니다. 사실은 제너릭에 관한 내용을 정리하려 했으나 그 이전에 앞서 Hashable을 먼저 정리해야 할 것 같아서 이렇게 글을 작성하게 되었습니다. 그럼 바로 시작해보도록 하겠습니다. Overview 스위프트에서 딕셔너리의 키와 세트로 사용되기 위해서는 해당 타입은 반드시 Hashable 프로토콜을 준수해야 합니다. 그렇기 때문에 String, Integer, Floating-point 그리고 Boolean 타입과 같은 Standard library에 속한 많은 타입들은 Hashable 프로토콜을 준수합니다. 심지어는 세트 타입도 기본적으로는 해시값을 제공합..
[Swift] 접근제어 Access Control 안녕하세요. 오늘은 접근제어에 대해 공부를 해보았습니다. 접근제어는 객체지향 패러다임에서 중요한 개념 중 하나인 은닉화를 구현하기 위한 아주 중요한 기능입니다. 그럼 바로 공부한 내용을 정리해보도록 하겠습니다. Module 우선 접근제어를 이해하려면 스위프트에서의 모듈의 개념을 이해하셔야 합니다. 모듈은 코드의 묶음 단위로 프레임워크, 라이브러리, 어플리케이션처럼 배포할 코드들의 묶음을 나타냅니다. 즉 하나의 프레임워크는 하나의 모듈이고 우리가 Xcode로 만드는 프로젝트 역시 하나의 모듈입니다. 그리고 우리는 import를 통해 외부 모듈을 우리의 프로젝트(모듈)에서 사용할 수 있습니다. Access Level 본격적으로 접근수준의 종류에 대해 알아보도..
[Swift] String 좀 더 알아보기 (2) 안녕하세요. 오늘은 Swift의 String에 대해 더욱 깊게 알아보는 시간을 갖도록 하겠습니다. 이 글을 읽기 전 제가 이전에 쓴 String 좀 더 알아보기 (1) 를 보고 오시면 도움이 될 것입니다. 지난 포스팅에서 제가 Swift에서 String은 각각의 문자에 대해 다른 언어들과 다르게 정수의 인덱스로 접근이 불가능하다고 살짝 언급하였습니다. ex) String[2] 오늘은 이러한 이유에 대해 공부해도록 하겠습니다. Unicode Scalars Unicode : Unicode는 각기 다른 입력 시스템의 문자를 인코딩, 표현, 처리하기 위한 국제적인 표준입니다. Unicode로는 모든 언어의 거의 모든 문자를 표현하고 텍스트 파일이나 웹 페이지와 ..
[Swift] String 안녕하세요. 오늘은 Swift의 타입 중 하나인 String에 대해 간단히 알아보는 시간을 갖도록 하겠습니다. 제가 String을 포스팅하게 된 이유는 굳이 공부할 필요 없다고 생각하여 사용하다가 여러 크고 작은 문제에 부딛혀 이렇게 제대로 공부를 하고 기록을 하고자 포스팅을 하게 되었습니다. 이번 포스팅에서는 기본 String부터 조금 더 심화된 부분까지 다뤄보도록 하겠습니다. 그럼 바로 시작해보도록 하겠습니다 Basic Swift의 String에서는 + 연산이 가능합니다. Swift4에서는 """ 과 """ 사이에 여러 줄을 넣을 수 있습니다. 기본적으로 Swift에서 String은 값 타입입니다. (String은 Struct입니다.) 기본적으로 String에는 내장된 메소..
if-let을 사용할 때 유의해야할 점. 안녕하세요. 오늘은 제가 if-let을 사용할 때 유의해야 할 점에 대해서 알아보도록 하겠습니다. 이 글을 작성하게 된 이유가 제가 if-let을 완벽히 알지 못해 발생한 실수로 에러를 잡는데 많은 시간을 소비했기 때문입니다. 그럼 본격적으로 시작해보도록 하겠습니다. if-let if-let은 옵셔널 타입의 값을 안전하게 추출하기 위해 사용합니다. 기본적인 사용법은 다음과 같습니다. if-let을 사용할 때는 다른 변수명을 사용해도 되지만 추출하려는 변수의 이름과 동일하게 사용해도 상관없습니다. 만일 if-let 구문안에서 값을 바꾸려고 하면 어떻게 될까요? 네 맞습니다. let으로 선언된 값을 바꾸려하기 때문에 당연히 에러가 발생합니다. 그럼 String과 같은..
- Total
- Today
- Yesterday
- Operating System
- edwith
- TableView
- 오토레이아웃
- CRUD
- notificationcenter
- iPhone
- 프로토콜
- 스위프트
- 운영체제
- nodejs
- 클로저
- Protocol
- Codable
- 부스트코스
- auto layout
- UIResponder
- Swift
- 테이블뷰
- segue
- boostcourse
- 백준
- oauth2.0
- 아이폰
- UIControl
- storyboard
- Xcode
- 알고리즘
- Algorithm
- IOS
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |