iOS(30)
-
[함수형 프로그래밍] Functor와 Monad
Functor map 함수를 지원하는 컨테이너 타입(map을 구현하는 타입) Context + value + map transform = Functor Context → 어떤 value 가 처해 있는 상태 Collection, Optional 등의 값을 가지는 container 포함하는 value가 generic으로 표현 되어야 함 Value → Context에 넣어지는 실제 내용 Context가 generic으로 표현되기 때문에 어떤 타입의 value라도 사용 가능 Transform → 어떤 값 T를 U로 변환해 주는 function T와 U는 같은 타입이여도 상관 없음 컨테이너에서 값을 뺀 후, 값에 특정 함수를 적용해 타입과 값을 변경하고, 다시 값을 컨테이너에 넣는 것 Array 타입은 map 함..
2020.04.09 -
[Swift] mailto와 MFMailComposeViewController
일하다가 mailto와 MFMail~의 차이점이 뭔지 궁금해져서 찾아봤다. mailto는 메일 앱을 통해메일을 보내는 것이고, MFMailComposeViewController는앱 내에서메일을 보내는 것이다. 메일 계정(설정 - 암호 및 계정)이 없을 경우 MFMailComposeViewController에서 false를 반환한다. class mailTest: MFMailComposeViewControllerDelegate { func sendMail() { let email = "ksmini0212@gmail.com" let subject = "Hello." let bodyText = "It's me" if MFMailComposeViewController.canSendMail() { // 메일 계정이..
2020.04.08 -
[RxSwift] Filtering Operator
filtering Operator를 이용하면 .next이벤트에 조건부 제약 조건을 적용해 처리하고자 하는 요소만 받을 수 있도록 할 수 있다. ignore .next event는 무시한다. .error이나 .complete는 전달한다.(종료되는 시점만 알 수 있음) let strikes = PublishSubject() let disposeBag = DisposeBag() strikes .ignoreElements() .subscribe { _ in print("[Subsscription is called]") }.disposed(by: disposeBag) strikes.onNext("A") strikes.onNext("B") strikes.onNext("C") strikes.onCompleted() ..
2020.04.07 -
[Swift] 센트리(Sentry)를 사용해보자!
백엔드쪽에서는 많이 사용한다고 해요! 전 처음들어봤음 헤헤(사실 아는거 없음) 현재 내가 작성하는 동안은 문서는 swift에 대해선 별로 설명 안해주는거 같음..(5.0.0 베타로 업데이트 되어서 제가 못 찾은거임 ㅠ) Application Monitoring and Error Tracking Software 여기서는 그냥 내가 이래저래 삽질한걸 적은 글.. 센트리란? 센트리는 오류 로그, 오류 스택 트레이스를 모아서 보여주는 서비스로 오픈소스로 쉽게 설치 가능. 회사에서 사용하게 된 배경은 서버에서 로그를 쌓지 않고 있었고, 파이어베이스에서 익셉션 오류로 보여줄까 했지만 다른 크래시랑 겹칠경우 보기가 힘들다는 이유, ga는 갯수가 제한적이다라는 이유로 채택하게 되었다. (솔직히 CS용) 센트리가 패브릭..
2020.04.06 -
[함수형 프로그래밍] 일급 함수
* 이 글은 함수형 프로그래밍 스터디를 하면서 적었던 글로써 사실과 다를 수도 있음.. 일급 함수? 함수 자체를 값으로써 다룰 수 있다. 변수에 할당할 수 있어야 한다. 인자로 전달할 수 있어야 한다. 반환 값으로 전달할 수 있다. Function composition (함수의 합성) 함수의 반환값이 다른 함수의 입력값으로 사용되는 것 함수가 합성되기 위해서는 함수의 반환값과 반환값을 받아들이는 값은 타입이 서로 같아야함 순수 함수를 만들어두고 그것을 조합 및 재활용 함수 단위의 재활용성이 높아진다 코드를 읽기 쉬워진다. ← 이건 아직 잘 모르겠다 함수 단위의 테스트가 쉬워진다 버그의 감소 ← 일단 써봐야 알겠다. func increment(_ value: Int) -> Int { return value..
2020.04.04 -
[함수형 프로그래밍] 순수함수 & 익명함수 & 고차함수
Functional Programming? 자료 처리를수학적 함수의 계산으로 취급 상태와 가변 데이터를 멀리함 변수와 반복문이 없음 Side-effect가 없음 → 동작을 이해하고 예측하기 쉬워짐 Side-effect → 함수형 프로그래밍에서는 잘못된 code로 인한 오동작의 의미가 아닌 실행 결과 상태의 변화를 일으키는 모든 것을 지칭함 → 모듈화 수준이 높으면 재사용성이 높고 좋은 프로그래밍이라 할 수 있다. → 평가 시점이 무관하다는 특성으로 효율적인 로직을 구성하는 것이 함수형 프로그램의 궁극적인 패러다임 순수함수 동일한 인자가 주어졌을 때항상같은 값을 리턴하는 함수 → side effect 가 없음 Thread에 안전하고 병렬적인 계산이 가능 코드의 블록을 이해하기 위해 일련 상태 갱신을 따라갈..
2020.04.03