[swift]project_서점App(2)

Jeff·2025년 1월 1일

오늘은 본격적으로 앱을 만들기에 앞서 설계를 해보려고 합니다.

# 설계

  • MVVM 아키텍쳐를 활용
    • Model : BookInfo (api 통신을 통해 받아온 데이터를 관리하는 구조체)
    • View : 검색화면(View, VC), 상세화면(View, VC), 책을 담은 내역화면(View, VC)
    • ViewModel : MainViewModel (앱의 전반적인 비즈니스 로직을 담당)
    • Service : CoreData와 Networking을 담당하는 Manager

# NetworkManger

  • 아래의 사진은 postman을 이용해 api요청 후 받아오는 값을 확인할 수 있었습니다. 이 데이터를 활용하기 앞서 범용적으로 쓰기 위해 NetworkManger를 전역으로 만들어 사용하려고 합니다.

  • 이번 네트워킹을 하기에 앞서 이번에는 RxSwift와 Alamofire의 조합으로 비동기처리와 네트워킹을 직관적이고 간단하게 할 수 있게 구현해 보았습니다.

    위의 사진에서 보시면, Url은 파라미터로 받지만 header 부분을 추가하지 않아 계속해서 오류가 발생했었습니다. 아래 코드와 같이 수정을 통해 api요청을 할 수 있게 되었습니다.

    AF.request(url, headers: header).responseDecodable(of: T.self)
    // headr 부분이 빠져있었던 오류
  • 그렇게 제대로 api통신이 이루어지는 줄 알았지만 아래와 같은 에러를 마주하게 되었습니다.

    초기에 위의 두번째 사진과 같이 구조를 구성하지 않고 documents 부분이 누락되게 구성해 마주쳤던 문제였습니다.

  • 그렇게 모든 수정을 마치고 api를 요청하는 메서드를 아래와 같이 작성하였고, 원하는 정보를 받아볼 수 있었습니다.

profile
기본에 충실한 개발자가 목표!

1개의 댓글

comment-user-thumbnail
2025년 1월 3일

오늘은본격적으로 앱을 만들기에 앞서 설계를 해보려고 합니다.에서 '오늘은'이 인상적이네요. 너무 똑똑한 나는 단 하루만 줘도 뚝딱이다?..멋져

답글 달기