K
KRYFT Problem Bank
모바일 보통 코딩

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 연산자 활용
  • 메모리 관리
  • 에러 처리 완성도
실행 버튼을 눌러 코드를 실행하세요.