약 4개월이라는 시간 동안 React로 구현된 명지대학교 학생회비 관리 웹 프로젝트를 SwiftUI를 사용해 iOS 앱으로 마이그레이션하는 작업을 완료했다. 설계 단계에서는 MVVM 아키텍처를 채택하여 비즈니스 로직과 UI를 분리했고, alamofire + Combine 프레임워크를 활용해 비동기 통신 처리를 구현했다. UI/기능 구현 과정에서는 SwiftUI의 장점을 최대한 활용하여 직관적이고 반응성 높은 인터페이스를 만들었다. 앱스토어 심사와 배포 과정에서는 앱 심사 가이드라인을 꼼꼼히 준수하며, 필요한 스크린샷과 설명을 상세히 준비했다.
자세한 작업일지는 아래의 링크에서 볼 수 있다.
투명지 iOS 작업일지
웹 환경과 네이티브 앱 환경의 차이점을 직접 체감할 수 있었다. 특히 iOS의 네이티브한 기능들이 사용자 경험을 크게 향상시켰다:
이러한 요소들이 웹보다 훨씬 자연스럽고 풍부한 사용자 경험을 제공할 수 있었다. 특히 영수증 관리 기능에서는 카메라를 통한 OCR 기능을 추가할 예정이며, 이는 웹에서는 구현하기 어려운 네이티브 앱만의 강점이 될 것이다.
처음에는 모든 기능이 하나의 프로젝트에 얽혀있어 코드 의존성이 복잡하고 빌드 시간도 길었다. Tuist를 도입하여 다음과 같이 모듈을 분리했다:
이를 통해:
앱 출시 후 지속적인 업데이트를 진행했다:
각 업데이트마다 사용자 피드백을 적극 반영하여 더 나은 서비스를 제공하고자 노력했다.
이번 작업을 통해 서비스 운영의 진정한 의미를 깊이 이해할 수 있었다. 웹과 앱 서비스를 동시에 운영하고 배포하면서, 단순한 기능 구현을 넘어선 더 큰 그림을 보게 되었다. 특히 실제 사용자들의 피드백을 받고 대응하는 과정에서, 개발자의 관점이 아닌 사용자의 관점에서 생각하는 것의 중요성을 배웠다.
예를 들어, 영수증 관리 기능에서 월별 필터링 기능을 추가할 때도 단순히 기술적인 구현에만 집중하지 않았다. 사용자들이 실제로 어떤 상황에서 이 기능을 필요로 하는지, 어떻게 하면 더 직관적으로 사용할 수 있을지를 고민했다. 이러한 고민은 결과적으로 사용자들의 높은 만족도로 이어졌다.
이러한 경험들을 통해 개발자로서 가장 중요한 것은 기술적 완성도와 함께 사용자의 니즈를 정확히 파악하고 반영하는 것임을 깨달았다. 앞으로도 이러한 사용자 중심적 사고를 바탕으로, 더 나은 서비스를 만들어가고자 한다.