Swift13 정규 표현식 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. 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. Data Testing in Swift 계기 TestCode를 짜다가 Data를 만드는데 너무 많은 코드가 발생함을 인식하고 article을 참고하여 개선 방향을 공부해보고자 한다. Test Data UnitTest를 작성할 때 우리는 종종 고립된 환경에서 타입이나 함수를 테스트한다. 하지만, 이렇게 고립된 환경에서 대부분의 코드는 그 자체로 적절히 작동하지 않는다. 제대로 작동하기 위해서는, 추가적인 Dependecy와 Data를 추가해줘야한다. 테스트 가능한 코드를 작성하는 것의 큰 부분은 우리의 의존성이 어떻게 관리되고, 얼마나 쉽게 대체 될수 있느냐로 귀결되지만 Test Data를 어떻게 구성하고 관리하는지도 똑같이 중요하다. 어떻게 하면 Test Data를 좀더 잘 관리 할 수 있을까? Input and verification Tes.. 2022. 5. 12. Generic을 이용한 CompileTime에 Type 검사하기. 우리는 개발중 분명 complieTime에는 에러가 안났는데, 앱을 실행시켜보니 원하던 방향과 다르게 작동하는 버그를 많이 발견하곤 한다. 따라서, complieTime에 버그를 잡는다면 많은 시간과 노력이 준다는 것을 알고 있다. 그중 한 예시를 들어보고 어떻게 하면 Complie시에 버그를 잡아 낼 수 있는지 알아보자. 예시 개발중에 많은 단계에서 우리는 객체에 대해 unique한 Identifier(식별자)가 필요할 때가 있다. 예를 들면, 로그인을 할때 사용자를 식별한다던지, Cache를 할때 이미 Cache된 데이터인지 아닌지 등등.. 주로 특정한 객체를 추적하고 그에 따른 값이나 결과를 가져오기 위해 사용이 된다. 문제는 이러한 Identifier를 가지는 타입의 객체가 여러개 일 수 있다는 .. 2022. 5. 12. 이전 1 2 3 4 다음