All
-
Swift - Error Handling(do-catch, try?, try!)Programming/Swift 2022. 3. 29. 23:12
안녕하세요 BeePeach입니다. 오늘은 Error Handling 방법 중에 2, 3번째에 해당하는 do-catch와 Optional try에 대해서 공부해보도록 하겠습니다. try와 do-catch 일반적인 try는 이전 포스팅에서 사용해봤습니다. 그냥 try를 사용했더니 Error를 handling하고 있지 않다고 컴파일 에러가 나서 throws를 추가해 문제를 해결했습니다. 이 방법은 4가지 방법중 첫 번째 방법인 propagating error입니다. throws를 사용하지않고 try를 사용하는 방법은 do-catch문과 함께 사용하는 것입니다. do-catch do-catch문은 Error 예외처리를 할 때 많이 사용하는 방법입니다. do 안에서 try와 함께 Error를 throw하는 코드를..
-
Swift - Error Handling (throws와 rethrows)Programming/Swift 2022. 3. 27. 12:36
안녕하세요 BeePeach입니다 :) 오늘은 이전에 공부했던 throws와 헷갈리기 쉬운 rethrows에 대해서 공부해보도록 하겠습니다. throws throws 키워드 말고 rethrows라는 키워드도 존재합니다. rethrows는 파라미터로 throws를 포함하는 함수를 받을 때 사용하는 키워드입니다. 중요한 것은 '파라미터로 throws 함수를 받는다'라는 것입니다. 그냥 외부에 존재하는 throws 함수를 사용하는 것과 구별해야 합니다. MyError를 정의해주고 someErrorFunction을 정의했습니다. 이 함수는 단순하게 Error를 던지는 함수입니다. 내부에서 Error를 throw 하고 있으니까 throws 키워드를 사용해줘야겠죠? 여기까지는 이전 포스팅에서 공부한 내용입니다. 그리..
-
RxSwift - Subject와 RelayProgramming/RxSwift 2022. 3. 25. 16:48
안녕하세요 BeePeach입니다. 오늘 공부해볼 내용은 Subject와 Relay입니다. RxSwift의 기본개념에서 알아본 것처럼 Observable은 단방향입니다. 이벤트를 방출할 수 있지만 받지는 못합니다. 반대로 Observer는 이벤트를 받을 수는 있지만 방출할 수는 없습니다. 앱을 개발할때 Observable이 값을 방출하는 중에 Observer에게 이전에 정의해놓지 않은 새로운 값을 방출해야 하는 경우가 매우 많습니다. 그런데 Observable은 앞에서 말했듯이 read only이기 때문에 새로운 값을 방출하도록 할 수 없습니다. create, just, of 등 오퍼레이터를 사용할때 미리 정의해놓은 값만 방출합니다. 이럴 때 Observable과 Observer의 특성을 모두 가지는 Su..
-
Swift - Error Handling(throws)Programming/Swift 2022. 3. 25. 15:28
안녕하세요 BeePeach입니다 :) 오늘은 Error Handling 중에서 throws에 대해서 조금 자세히 공부해보도록 하겠습니다. Error가 throw 됐다면 반드시 이 Error를 어떻게 다룰지에 대한 코드를 작성해야 합니다. 다른 대안으로 시도해본다던지 사용자에게 실패에 대한 정보를 준다던지와 같이 말이죠. 이러한 것을 Error를 handling한다고 표현합니다. 에러를 다룬다?? 해석하기 애매하니 에러를 핸들링한다라고 표현하겠습니다. Swift에서 에러를 다루는 방법에는 4가지가 있습니다. 1. Error를 propagate(전파)하는 방법 2. do-catch문을 사용하는 방법 3. Optional try를 사용하는 방법 4. assert를 이용하여 에러를 발생시키지 않는 방법 여담으로..
-
RxSwift - TraitProgramming/RxSwift 2022. 3. 24. 21:07
안녕하세요 BeePeach입니다 :) 오늘은 Trait에 대해서 공부해보도록 하겠습니다. Trait는 이전에 우리가 공부한 기본적인 Observable보다 좀 더 특정된 기능에 집중한 Observable입니다. Trait들도 결국에는 Observable입니다. 그래서 Trait를 쓰는 코드에는 우리가 공부했던 Observable을 사용해도 아무런 문제가 없습니다. 하지만 Trait를 사용하는 이유가 존재하겠죠? Trait를 이용하면 간편하고 직관적인 코드를 만들 수 있습니다. 오늘은 RxSwift에서 제공하는 Trait에 대해서 공부해볼 예정입니다. 그 이후 RxCocoa를 공부하고 난 뒤에 RxCocoa에서 제공하는 또 다른 여러 Trait를 살펴보도록 하겠습니다. 일반적으로 RxSwift에서 제공하는..
-
Swift - Error Handling 기초Programming/Swift 2022. 3. 24. 20:14
안녕하세요! BeePeach입니다 :) 에러가 발생할 때 매번 우리가 만든 앱이 종료된다면 별점 테러를 받고 사용자들이 다 떠나가겠죠?? 프로젝트를 진행하는데 있어서 에러 처리는 매우 중요한 부분 중에 하나입니다. 그래서 오늘은 Error에 대해서 공부를 해보도록 하겠습니다. 참고로 이 포스팅에서 다룰 내용은 Runtime에 발생하는 에러에 관한 내용입니다. Compiletime에 발생하는 에러는 컴파일시점에 에러에 관해 알 수 있기 때문에 비교적 쉽게 처리할 수 있습니다. 어떠한 작업들은 항상 성공한다는 보장이 없습니다. 예를 들어서 disk에서 파일을 가져오는 작업에서 여러가지 실패할 수 있는 상황들이 존재합니다. 해당 path에 파일이 존재하지 않는 경우, 파일 읽기 권한이 없는 경우, 파일을 원하..
-
RxSwift - Observable factoryProgramming/RxSwift 2022. 3. 21. 18:31
안녕하세요 BeePeach입니다 :) 오늘은 Observable factory에 대해서 공부해보도록 하겠습니다. 사실 이 부분은 이후에 포스팅할 Operator부분에서 다뤄도 되는 부분인데 먼저 다뤄보도록 하겠습니다. Observable factory 란 Observable에서 제공하는 deferred 오퍼레이터를 이용해서 조건에 따라 구독자마다 새로운 Observable을 생성하는 것을 말합니다. Factory 즉, 공장이라는 것을 떠올려보면 Observable을 찍어내는 공장을 생각하면 됩니다. 주의해야하는 것은 조건에 따라 다른 이벤트를 방출하는 게 아니라 다른 Observable을 생성한다는것입니다. 말로만해서는 이해가 안가니까 찬찬히 살펴보도록 하겠습니다. deffered 오퍼레이터를 살펴보면 ..
-
Design Pattern - MVC 패턴Programming/Design Pattern 2022. 3. 20. 16:33
안녕하세요 BeePeach입니다. 오늘 공부해볼 내용은 디자인 패턴 중에서 가장 기초적인 MVC 패턴입니다. MVC 패턴은 UIKit 프레임워크를 사용할 때 Apple에서 기본적으로 사용하고 있는 패턴입니다. Apple developer 사이트에서도 UIKit에 관한 document를 보면 core app object들이 MVC 패턴으로 되어있는 것을 확인할 수 있습니다. 그럼 MVC 패턴이란 무엇이고 어떤 특징이 있는지 같이 공부해보도록 해요! MVC MVC는 Model, View, Controller의 줄임말입니다. 각각의 객체를 이용해서 application을 개발하게 됩니다. 그럼 각각 어떤 역할을 하는지 보겠습니다. Model은 application의 data를 관리합니다. 주로 struct, ..