ABOUT ME

안드로이드 개발자를 꿈꾸는 곳

Today
Yesterday
Total
  • iOS 개발자가 없는 상황에서 Android 개발자가 iOS 앱을 유지보수한 경험
    iOS 2025. 3. 31. 22:54
    728x90
    반응형

    1. 배경

    2024년 말, 회사에서 갑작스럽게 iOS 개발자가 퇴사하는 일이 발생했다. 기존 iOS 앱의 유지보수는 물론, 신규 기능 추가까지 필요한 상황이었지만, 팀 내에 iOS 경험이 있는 개발자가 없었다. 결국, Android 개발자인 내가 긴급 투입되어 iOS 앱을 유지보수하게 되었다. 처음에는 막막했지만, 다양한 시행착오를 겪으며 iOS 개발을 경험할 수 있었다.

     

    2. iOS 개발 환경 적응하기

    Xcode와 Swift 익히기

    Android 개발자는 주로 Android Studio와 Kotlin을 사용하지만, iOS는 Xcode와 Swift를 기본으로 한다. 처음에는 UI 배치 방식부터 프로젝트 구조까지 모든 것이 낯설었다.

    • Xcode: IDE의 단축키부터 빌드 및 디버깅 방식까지 적응하는 데 시간이 필요했다.
    • Swift: Kotlin과 문법적으로 유사한 부분이 있어 기본적인 코드 이해는 수월했지만, Optionals Combine 같은 개념은 새로 익혀야 했다.
    • 스토리보드 vs 코드 기반 UI: Android의 XML 레이아웃과 Jetpack Compose처럼 iOS도 스토리보드를 활용하거나 코드로 UI를 작성하는 방식이 있었다.

    주요 개념 학습

    • ViewController의 생명주기: Android의 Activity  Fragment의 생명주기와 유사하지만 미묘한 차이가 있었다.
    • Autolayout: ConstraintLayout과 개념이 유사하지만, Xcode의 UI 툴을 이용하는 방식이 달라 적응이 필요했다.
    • Dependency Management: Android의 Gradle과 달리 iOS는 CocoaPods과 Swift Package Manager(SPM)를 활용한다. 프로젝트에 따라 사용 방식이 달라 미리 확인이 필요했다.

     

    3. 유지보수 과정에서 겪은 문제와 해결 방법

    라이브러리 관리 이슈

    기존 iOS 프로젝트는 CocoaPods을 사용하고 있었는데, pod install 실행 시 충돌이 발생했다. 원인은 오래된 의존성 버전과 Xcode 업데이트 불일치였다. 이를 해결하기 위해 다음 단계를 거쳤다.

    1. Podfile.lock을 삭제하고 pod install --repo-update 실행
    2. 필요 없는 의존성 제거 및 최신 버전으로 업데이트
    3. Xcode 버전에 맞춰 프로젝트 설정 변경

    앱 스토어 배포 문제

    Android는 Google Play Console을 통해 쉽게 배포할 수 있지만, iOS는 App Store Connect를 통해 진행해야 한다. Apple의 인증서 및 프로파일 시스템은 처음 접하는 개발자에게는 난관이었다.

    • 프로비저닝 프로파일 및 인증서 설정: 기존 개발자의 Apple 계정에서 필요한 인증서를 받아야 했다.
    • 앱 심사 대응: Google Play보다 엄격한 심사 기준이 적용되므로, 개인정보 보호 및 UI 가이드라인을 철저히 점검해야 했다.

    크래시 분석 및 디버깅

    Android에서는 Firebase Crashlytics를 많이 사용하지만, iOS에서도 동일한 Crashlytics를 사용할 수 있었다. 그러나 iOS 특유의 dSYM 파일 관리가 필요했는데, 이를 제대로 업로드하지 않으면 크래시 리포트에서 스택트레이스를 확인할 수 없었다.

    • upload-symbols 스크립트를 활용하여 dSYM 파일을 자동 업로드하도록 설정

     

    4. 얻은 교훈과 느낀 점

    크로스플랫폼 개발의 중요성

    Android와 iOS를 모두 경험해 보니, 크로스플랫폼 개발 프레임워크(Flutter, React Native)의 필요성을 더 깊이 이해하게 되었다. 유지보수 비용을 낮추고 개발 속도를 높이려면 이런 기술도 고려해야 한다.

    Android와 iOS의 차이를 이해하는 것이 중요하다

    서로 비슷하면서도 다른 점이 많다. 특히 UI/UX 정책, 권한 시스템, 백그라운드 작업 방식 등에서 차이가 있으므로, 양쪽의 특징을 잘 이해해야 한다.

    빠르게 적응하는 능력이 중요하다

    완전히 새로운 환경에서도 빠르게 적응하려면, 공식 문서와 기존 코드 분석을 병행하는 것이 효과적이다. 그리고, ChatGPT 같은 AI 도구를 활용하는 것도 큰 도움이 되었다.

     

    5. 마무리

    갑작스러운 iOS 개발자의 공백을 메우면서 많은 것을 배울 수 있었다. 물론 Android 개발자로서의 주 업무에 집중해야 하지만, iOS에 대한 기본적인 이해를 갖추면 팀 내에서 더욱 가치 있는 역할을 할 수 있다고 느꼈다. 앞으로도 양 플랫폼의 차이를 이해하며 개발할 수 있도록 지속적으로 학습해야겠다.

    728x90
    반응형

    댓글

Designed by ZibroTistory.