목록SWIFT (5)
비트와 자장가
스위프트 5.7에 regex 문법이 추가되었다. 아직 정리를 한 곳이 없는 것 같아서 직접 예시를 만들어보았다. 레젝스 리터럴 먼저, 자바스크립트랑 비슷한 레젝스 리터럴 문법이다. let emailRegex = /^[\w\.-]+@[\w\.-]+[\w-]{2,}$/ let invalidEmail = "efd-sadf.1203@f(nv.cofm" let validEmail = "efd-sadf.1203@fnv.cofm" extension String { var isValidEmail: Bool { self.wholeMatch(of: emailRegex) != nil } } invalidEmail.isValidEmail // false validEmail.isValidEmail // true 레젝스 빌더 보..
스위프트 네이티브로 시스템 프로그래밍이 가능해지는 "스위프트 시스템" api가 어제 오픈소스화 됐다. 크로스플랫폼이 아니라 멀티플랫폼으로, 맥, ios, watchos, tvos를 지원하고, 소스가 공개되며 리눅스 지원을 추가했다고 한다. "we’ll be working to adopt System in the Swift Package Manager. This will include enhancements to FilePath and adding support for the recently announced Swift on Windows." 하지만 머잖아 윈도우즈도 지원할 예정이라고 한다. Our immediate goal is to simplify building cross-platform librar..
swift on windows 드디어 스위프트의 윈도우즈 공식 지원이 시작되었다. 자고 일어나서 윈도우즈를 켤 마음이 든다면 조금 갖고 놀아야겠다. 그리고 크로스플랫폼 지원에 대한 언질도 조금 주는데, 어떤 식으로 결과물이 나올지 참 궁금하다. swiftui가 appleui 같은 이름으로 안 불리는 것도 swiftui를 애플 것이 아닌 스위프트의 영역으로 남길 것이라는 해석을 읽은 적이 있는데, 특히 arm 맥을 준비하며 내놓은 big sur를 보더라도, 페이스북의 리액트네이티브나 구글의 플러터처럼 완전한 크로스플랫폼을 노리는 것일지도 모르겠다. ios 사용자를 맥으로. ios 개발자를 맥으로. 시장성이 더 좋아진 앱스토어를 미끼로, 편한 크로스플랫폼 swiftui를 미끼로, 모두를 swift 개발자로...
모든 프로그램은 순차, 분기, 반복의 집합체로서 동작한다. 1. 순차sequence 프로그램은 줄마다 순서대로 실행된다. 사람이 물을 컵에 받아 마시는 것을 의사코드pseudo-code(프로그래밍언어의 구조를 나타내기 위해 사용되는 가짜 프로그램언어)로 나타낸다면 아래처럼 할 수 있다: pick_up(cup) pour(water, into: cup) sip(water, inside: cup) 컵을 집고 물을 컵에 따르고 컵에 들은 물을 한 모금 마신다. 이 세 명령의 순서가 뒤바뀌면 '물 마시기'는 실패한다. 순차적으로 실행된다는 사실을 전제하지 않고는 프로그래밍이 불가능하다. 프로그램은 모두 목표가 있고, 그 목표를 달성하기 위해 작은 절차들을 차례로 실행해야 한다. 2. 분기selection 프로그램..
대중들에게 가장 잘 알려진 한국어 tts(text-to-speech) 서비스로는 카카오 스피치, 네이버 클로바 더빙, 구글 클라우드 tts가 있다. 많은 tts 서비스는 영어를 기반으로 하고 있어, 해당 기술을 구현하기 위해서는 머신 러닝이 필수적이다. 영어는 쓰이는대로 발음되는 것이 아니기 때문이다. 하지만 한국어는 다르다. 한 글자는 한 음절에 상응하고, 보이는대로 발음되지 않을 때는 명확한 발음규칙이 있다... ...고 생각하고 머신 러닝이 없거나, 최소화된 tts를 만들자며 예전 코딩을 막 배우기 시작했을 때 토이 프로젝트로 시작했던—하루 만에 그만 둬 버린—한국어 발음 변환 프로그램을 이틀 간 리팩토링하며 새로운 사실을 발견했다. string만 보고선 단어가 합성어인지 아닌지 알 수 없기 때문에..