피드로 돌아가기
앱 개발파트의 업무프로세스 수립기
올리브영 테크블로그올리브영 테크블로그
Mobile

앱 개발파트의 업무프로세스 수립기

올리브영 앱개발팀이 코딩 컨벤션, 아키텍처 패턴, 개발 프로세스를 체계화해 하이브리드 플랫폼 전환 기반 조성

2021년 1월 23일15intermediate

Context

올리브영 앱은 2016년 출시 이후 웹앱으로 유지되었으나, 더 나은 사용자 환경을 위해 하이브리드 플랫폼으로의 개편을 추진해야 했다. 다양한 언어(Kotlin, Swift, TypeScript)와 플랫폼(Android, iOS, ReactNative)을 다루는 팀이 일관된 코드와 구조 기준 없이 개발하고 있었다.

Technical Solution

  • 코딩 컨벤션 수립: Kotlin(ktlint, detekt), Swift(SwiftLint), TypeScript/JavaScript(ESLint, Prettier) 적용해 플랫폼별 언어 스타일 검사 자동화
  • Lint 도구 통합: AndroidLint로 프로젝트 구조(미사용 네임스페이스, 지원 중단 API 호출) 검사
  • MVVM 패턴 채택: 데이터 바이딩을 통해 View와 ViewModel을 1:n 관계로 설계해 모듈 독립성 확보 및 유닛테스트 용이화
  • Reactive Programming 구현: Android는 AAC(LiveData, ViewModel, Room), Coroutines 적용; iOS는 RxSwift 도입; ReactNative는 Redux 상태 관리 구현
  • 개발 프로세스 정의: 플래닝포커로 일정 산출, 코드리뷰 기반 머지, 단위테스트-통합테스트-배포-회고 사이클 수립
  • 배포 전략 분리: debug/release Flavor 설정해 테스트 빌드와 릴리즈 빌드 구분
  • Git 관리 규칙: .gitignore 파일 상세 설정(macOS, Swift, Xcode, CocoaPods 포함)

Key Takeaway

신규 모바일 팀 구성 시 먼저 언어/플랫폼별 정적 분석 도구를 통해 코드 스타일을 강제하고, MVVM + Reactive Programming 패턴으로 아키텍처를 통일하며, 코드리뷰 기반의 개발 프로세스를 정립하면 팀의 지식 공백을 최소화하고 메인터넌스 비용을 낮출 수 있다.


다국어 플랫폼을 지원하는 모바일 개발팀에서 ktlint, detekt, ESLint, Prettier 같은 자동화된 Lint 도구를 초기에 설정하고, MVVM 패턴과 AAC/RxSwift/Redux 같은 반응형 프로그래밍 라이브러리를 표준화하며, 플래닝포커와 코드리뷰 기반 개발 사이클을 정의하면 개발자 온보딩 시간을 단축하고 코드 리뷰에서 버그 조기 발견률을 높일 수 있다.

원문 읽기