모바일
보통
코딩
Swift Combine으로 네트워크
Combine 프레임워크로 반응형 네트워크 레이어
40분
85점
#3719
문제 설명
Swift Combine을 사용하여 반응형 네트워크 레이어를 구현하세요.
요구사항
- URLSession 기반 네트워크 요청
- JSON 디코딩
- 에러 처리 (네트워크, 디코딩, HTTP 상태)
- 요청 취소 지원
- 재시도 로직 (exponential backoff)
- 캐싱 레이어
인터페이스
protocol NetworkService {
func request<T: Decodable>(_ endpoint: Endpoint)
-> AnyPublisher<T, NetworkError>
}
enum NetworkError: Error {
case invalidURL
case noData
case decodingError(Error)
case httpError(Int)
case networkError(Error)
}
평가 기준
- Combine 연산자 활용
- 메모리 관리
- 에러 처리 완성도
실행 버튼을 눌러 코드를 실행하세요.