에러 핸들링은 정말 중요합니다. 단순히 라이브러리에서 발생하는 에러를 처리하는 것 뿐만 아니라, 비즈니스 로직에 따라 적절한 에러를 생성하고 다른 레이어에서 처리해야합니다. 그래서 이번 포스팅에서는 Combine에서 에러를 핸들링하는 방법을 정리해보았습니다. 에러의 종류 프로그램에는 2가지 종류의 에러가 있습니다. 개발자 에러와, 사용자 에러입니다. 개발자 에러는 개발 도중, 즉 디버그 모드에서 발생할 수 있는 에러입니다. 개발자 에러를 내기 위해서는 assert문을 주로 사용하며 assert문은 코드를 작성하는 단계에서 문제가 있을 경우 프로그램을 중단하고 에러 메세지를 표시해줍니다. 이를 통해 개발자는 논리가 맞는지 확인하거나, 전달받은 값이 유효한 값인지 확인해볼 수 있습니다. assert문은 릴리..
일반적인 동기 함수 테스트는 정말 간단합니다. func test_signup_email_validation() { // True XCTAssertTrue(viewModel.isValidEmail("test@example.com")) XCTAssertTrue(viewModel.isValidEmail("user@domain.co.uk")) // Fasle XCTAssertFalse(viewModel.isValidEmail("invalid_email")) XCTAssertFalse(viewModel.isValidEmail("user@.com")) XCTAssertFalse(viewModel.isValidEmail("@domain.com")) } 함수의 input과 output이 명확하므로 손 쉽게 여러 Tes..
프로젝트 도중에 Combine을 이용하던 중 Subject를 써야할 일이 있었는데, Published는 프로퍼티 래퍼로 감싸져 있는데 Subject는 그냥 써야해서 좀 아쉽더라구요. typealias 이용하고 있다가 이번에 바꿔보기로 했습니다. 프로퍼티 래퍼(Property Wrapper)란? 우선 프로퍼티 래퍼는 SwiftUI를 쓰시는 분들이라면 모두 익숙하실 @State, @Binding 등 '@' 표시가 붙은 어노테이션을 말합니다. 이 프로퍼티 래퍼는 어떻게 구현되어 있을까요? 바로 @propertyWrapper를 이용해서 만들어집니다. @State의 정의부를 보면 이렇게 프로퍼티 래퍼를 쓴 struct 형태로 정의되어 있는 것을 보실 수 있습니다. 따라서 @propertyWrapper를 사용한다면..
- Total
- Today
- Yesterday
- design pattern
- 리액티브 프로그래밍
- SwiftUI
- reactive programming
- SWM
- 프로그래머스
- coordinator pattern
- RX
- Bloking/Non-bloking
- ios
- notion
- Flux
- Architecture Pattern
- MVI
- GetX
- DocC
- 비동기/동기
- combine
- Flutter
- healthkit
- TestCode
- 코디네이터 패턴
- 노션
- Swift Concurrency
- MVC
- programmers
- MVVM
- 소프트웨어마에스트로
- 아키텍쳐 패턴
- swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |