초안

임혜정·2024년 8월 16일
0
post-custom-banner

API로 데이터를 불러올 때 반드시 Network Manager를 사용해야하는 것은 아니지만 사용하므로서 이점은

  1. 코드 재사용 - 여러 곳에서 네트워크요청을 할 때 중복코드 감소
  2. 일관성 - 한 곳에서 관리하므로 일관된 방식으로 처리가능
  3. 유지보수 - 변경이 필요할 때 쉽게 수정가능하다
  4. 중앙화된 에러처리로직 구현하기 쉽다
  5. 인터셉터 추가 - 요청/응답을 가로채서 공통 작업 (로깅,인증...)을 수행하기 쉽다.

간단한 앱이라면 URLSession을 직접 사용해도 충분할 수 있지만 확장가능성을 염두해둔다면 Network Manager로 관리하는 것이 좋다.

Network manager를 작성할때 포함되어야 하는 주요 항목

HTTP 메서드 지원

  • GET, POST, PUT, DELETE 등의 기본적인 HTTP 메서드를 지원해야 합니다.

URL 구성

  • 기본 URL과 엔드포인트를 조합하는 기능이 필요합니다.

파라미터 처리

  • URL 쿼리 파라미터와 body 파라미터를 처리할 수 있어야 합니다.

헤더 설정

공통 헤더와 요청별 커스텀 헤더를 설정할 수 있어야 합니다.

응답 파싱

  • JSON 등의 데이터를 Swift 객체로 변환하는 기능이 필요합니다.

에러 처리

  • 네트워크 오류, HTTP 상태 코드 처리 등의 에러 핸들링 메커니즘이 필요합니다.

비동기 처리

  • 요청의 비동기 처리를 위해 completion handler나 async/await 지원이 필요합니다.

인증 관리

  • 토큰 기반 인증 등 필요한 인증 매커니즘을 처리할 수 있어야 합니다.

재시도 메커니즘

  • 네트워크 오류 시 자동 재시도 기능을 구현할 수 있습니다.

로깅

  • 디버깅을 위한 요청/응답 로깅 기능이 유용합니다.

캐싱 (선택적)

  • 필요에 따라 응답 데이터의 캐싱 기능을 구현할 수 있습니다.
profile
오늘 배운걸 까먹었을 미래의 나에게..⭐️
post-custom-banner

0개의 댓글