MyCat은 주변 지인의 요청으로 시작한 개인 학습용 iOS 앱입니다.
다양한 고양이 이미지를 외부 API에서 받아와 인스타그램 릴스 스타일 UI로 랜덤하게 보여주며, 즐겨찾기와 사용자 이미지 업로드 기능을 포함합니다.
네트워크 통신은 URLSession부터 Alamofire, 그리고 Router 패턴까지 점진적으로 적용하며 실무에 가까운 코드 구조를 익혔습니다.
- 고양이 이미지를 외부 API에서 받아와 인스타그램 릴스(Reels) 스타일 UI로 랜덤하게 보여줍니다.
- 사용자는 이미지 즐겨찾기, 로컬 저장, 직접 이미지 선택 및 업로드가 가능합니다.
- URLSession부터 Alamofire, Alamofire Router 패턴까지 네트워크 통신 구조를 단계적으로 개선하며 실무에 적합한 코드 작성법을 학습했습니다.
- 1인 개인 프로젝트 (기획부터 설계, 개발 전 과정 수행)
버전 | 설명 | 링크 및 사용 기술 |
---|---|---|
URLSession | 네이티브 URLSession 기반 구현 | 🔗 바로가기 Swift, URLSession |
Alamofire | Alamofire 도입 개선 버전 | 🔗 바로가기 Swift, Alamofire |
Alamofire + Router | Router 패턴 활용 최종 구조 | 🔗 바로가기 Swift, Alamofire, Router 패턴 |
각 저장소에서는 네트워크 구조 발전 과정을 확인할 수 있습니다.
-
랜덤 고양이 이미지 보기
API에서 받아온 고양이 이미지를 인스타그램 릴스 스타일의 UI로 랜덤하게 표시합니다.
(릴스 UI란 짧은 영상이나 이미지를 세로로 스와이프하며 넘기는 방식의 사용자 인터페이스입니다.) -
앨범에서 고양이 사진 선택 및 업로드
사용자가 사진 앱에서 직접 고양이 이미지를 선택해 앱에 업로드할 수 있습니다. -
즐겨찾기 및 로컬 저장 기능
마음에 드는 고양이 이미지를 즐겨찾기에 추가하고, 로컬에 저장하여 관리할 수 있습니다.
- iOS 기본 네트워크 프레임워크인
URLSession
을 사용해 직접 요청, 응답 및 JSON 파싱 구현 - 네트워크 기본 구조를 이해하는 데 중점
- 코드 중복과 복잡성 문제 존재
Alamofire
도입으로 네트워크 요청과 에러 처리 간소화- 코드 가독성과 유지보수성 향상
- API 요청별로 라우터를 분리하는 구조 도입
- 모듈화 및 확장성이 뛰어난 네트워크 아키텍처 완성
- 실무에 적합한 네트워크 처리 방식 경험
- 본 프로젝트는 The Cat API를 사용하여 고양이 이미지를 제공합니다.
- API 문서: https://docs.thecatapi.com/