슈퍼앱

모바일 A/B테스트
모바일 개발자의 Scalability와 앱 아키텍처

회사나 서비스가 망하지 않는 이상 앱은 계속해서 커지고 복잡해질 거예요.

8개국 1억 8천만 사용자를 보유한
동남아 최대 슈퍼앱 Grab은 어떻게
100명이 넘는 iOS 개발자가 병목 현상 없이
한 달에 수십 개의 새 기능을 매주 배포할 수 있을까?

.
.
.
그 답은,
바로 확장 가능한 아키텍처 덕분입니다.

프레임워크나 언어의 종류와 상관없이
아키텍처에 확장성을 갖추기 위한
개념을 학습합니다.

비즈니스 로직 구현부터,
리팩토링을 통해 앱의 확장성을
높일 수 있는 방법을 실습해봅니다.

테스트 종류와 특징, 그리고
테스트를 전략적으로
활용하는 방법을 배웁니다.

라인, 네이버웹툰을 거쳐 글로벌 슈퍼앱 Grab에서 iOS 프로젝트를 리드한
노수진이 생각하는 모바일 아키텍처에서의 확장성(Scalability)이란?

모바일 팀과 앱의 규모가 계속 커져도 사용자 경험과,
개발자 경험 모두를 안정적으로 유지하는 것이라고 생각합니다.

개발자의 기술력은 개발 과정에서 발생하는 병목 현상을 얼마나 잘 처리하는지에서 보여지죠.
서버의 경우에는 많은 사용자가 서버에 몰릴 때 병목 현상이 발생하지만, 모바일의 경우에는 오히려 하나의 프로그램에 다수의 개발자들의 코드가 몰릴 때 병목현상 발생한다고 볼 수 있습니다.

Grab 모바일 개발 팀은 확장 가능한 아키텍처 덕분에 100명 이상의 iOS 개발자가 모빌리티, 푸드, 페이먼트, CX 등 10개 미만의 큰 Tech Family로 나뉘어져 있지만, 각 팀은 다른 팀이 만드는 기능을 활용하면서도 소비자에게 안정적인 서비스를 제공하면서, 개발자의 생산성도 높일 수 있었습니다.

Overview

확장성이 높은 아키텍처를 만들기 위해서는 무엇이 필요할까요?
3가지 필수 개념 & 함께 시너지 효과를 낼 수 있는 인프라까지 알려드립니다!

  • 1부. 코드 레벨 아키텍처

    ▪객체를 조립해서 사용하는 방식
    ▪언어, 프레임워크 종류를 초월하여 아키텍처를 잘 설계하는 법

  • 2부. 모듈 레벨 아키텍처

    ▪앱 아키텍처의 확장성을 위해 필수적인 작업
    ▪개발 속도 증가, 유지 보수 및 테스트가 쉬워짐
    ▪느슨한 결합을 위한 의존성 주입의 개념과 패턴

  • 3부. 자동화 테스팅

    ▪버그를 줄여 개발자 경험을 높이는 법
    ▪테스트의 종류와 전략적 활용법

  • 4부. 확장성 있는 인프라

    ▪피처플래그
    ▪품질 모니터링
    ▪좋은 개발 문화 사례

Project | 미니 슈퍼앱 만들기

확장성이 높은 아키텍처를 만들기 위해 Composition, 모듈화, 테스트를
실제 슈퍼앱 축소판 프로젝트를 만들어보며 단계별로 실습해봅니다!

▪Swift 기반 iOS 앱으로, 앱 내 각종 서비스들(택시, 마트 등)이 있고, 자체 결제 플랫폼(페이)이 있습니다.
▪각 서비스는 모듈로 분리되어 각 파트 개발자들이 서로에게 영향을 주지 않고, 소스코드 의존성이 없기 때문에 병렬로 개발할 수 있습니다.
▪결제나 유저 프로필처럼 다른 모듈에서도 사용해야하는 공통 기능은 인터페이스를 통해 다른 모듈에 제공되기 때문에 아무리 기능이 커지고 복잡해져도 다른 모듈과 개발자에 영향을 주지 않습니다.

STEP 1    복잡한 뷰와 플로우 만들기

▪인터랙션이 복잡한 뷰를 composition 아키텍처로 작게 분해한 뒤 조립해봅니다.
▪비즈니스 로직이 앱을 주도할 수 있다는 RIBs 아키텍처의 장점을 활용하여 복잡한 플로우도 재사용 가능하게 개발해봅니다.

STEP 2    리팩토링 & 잘못 설계된 모듈 고치기

▪1부에서 작성한 코드는 객체끼리 강하게 결합 되어 있습니다.
▪확장성을 높이기 위해 새로운 코드를 추가해서 모듈로 분리시키고, 조립하는 리팩토링을 진행합니다.
▪모듈을 제공할 때 고려해야할 사항을 알아보고, 잘못 설계된 모듈을 수정하며 코드의 사용성과 OCP(열림-닫힘 원칙)을 다뤄봅니다.

STEP 3    4가지 방법으로 테스트 하기

▪2부에서 모듈화한 코드에 Unit Test, Snapshot Test, UI Test, Integration Test 4가지 테스트를 적용해봅니다.
▪각 테스트의 특징과 어떤 상황에서 어떤 테스트를 적용하면 좋은지 비교해봅니다.

⚠ 잠깐 ⚠

혹시 당신의 팀에서 하나라도 고민하고 있는 문제가 있나요?

앱 또는 팀의 규모가 커져서 늘어난 빌드 시간이나 잦은 코드 충돌 때문에 생산성이 떨어진다.

버그 발생 빈도가 늘어나고, 디버깅에 소요되는 시간이 증가되었다.

자동화 테스트(유닛 테스트, UI 테스트)를 도입하고 싶지만 어떻게 시작해야할지 모르겠다.

사용자가 앱을 최초 실행할 때 걸리는 시간이 증가하고, 앱의 안전성이 떨어진다.

확장 가능한 아키텍처 도입이 당장 필요한 시점입니다!

네이버웹툰, Grab, Amazon 개발자들이 인정한
iOS 앱 개발자 노수진에게 배우는 모바일 아키텍처는 다릅니다!

Top of Top

네이버웹툰·Grab을 거치며
슈퍼앱 개발에 참여하고 아키텍처를 개선했던 iOS 개발자, 노수진

1인 앱 개발부터 iOS 앱 개발자만 100명이 넘는 슈퍼앱 개발까지 경험한 iOS 앱 개발자

앱 개발을 시작할 때 개인 프로젝트로 보안카드 위젯 앱을 개발했고, 앱스토어에서 금융 1위/전체 2위를 하며 2015-2017년 올해를 빛낸 앱으로 선정되었습니다. 그 뒤로 라인, 네이버웹툰을 거치면서 국내에서 규모가 있는 앱 서비스 개발에 참여했는데요, 서비스 규모가 커져가면서 발생하는 문제를 해외의 더 복잡하고 규모가 있는 앱 서비스는 어떻게 해결하는지 궁금한 마음을 안고 Grab에 합류했습니다. 소규모부터 대규모의 팀에서 개발을 하다보니 팀과 서비스가 커지면 앱의 아키텍처부터 달라야 한다는 걸 느꼈죠.

동남아 슈퍼앱 Grab에서 Flutter를 팀에서 최초로 도입하여 미스터리 경품타기 신규 기능 개발 리딩

동남아시아의 우버인 Grab에서 iOS 개발을 하며 여러 프로젝트를 리딩했습니다. 그 중 Flutter를 팀에서 최초로 도입해서 미스터리 경품타기 기능 개발 프로젝트를 리딩할 때 아키텍처의 가장 기본이 되는 Composition에 대해 깊게 이해하고 있었기 때문에 새로운 언어와 아키텍처를 빠르게 이해하고, 프로젝트에 적용할 수 있었습니다.

GrabPay Wallet 충전 프레임워크 2.0 개발 프로젝트 iOS 파트 리딩

유저들이 더 쉽고 빠르게 지갑을 충전할 수 있게 UI/UX를 전면 재개편하고 동남아 여러 국가/은행/충전방식을 확장성있게 지원하기 위한 프레임워크 개발 프로젝트에서 iOS 파트를 리딩했습니다. 사업적으로 중요도가 높고, 기술적으로 난이도가 높았고, 프로젝트 중간에 투입이 되어 시간마저 촉박했죠.
이 때 팀원들과 개발하는 방식을 통일하기 위해 아키텍처 설계부터 다시했고, 결과적으로 개발 속도를 높여 기한 내 개발을 완료했고, 배포 후 유저들의 평균 충전 금액이 높아졌고 conversion rate 또한 기록적으로 높아져서(95% 이상) 회사의 수수료 비용 절감하는 성과를 만들었습니다.

이승민
• 2021 ~ 현재
Momenti / Senior iOS Engineer
- 인터랙티브 멀티미디어 플랫폼 개발

• 2020 ~ 2021
Grab / Senior iOS Engineer, Engineering Owner
- GrabPay Wallet 충전 프레임워크 2.0 개발 프로젝트에서 iOS 파트 리딩
- 미스터리 경품타기 기능 개발 프로젝트에서 최초로 Flutter 도입하여 프로젝트 리딩
- P2P 송금 기능 모듈화

• 2018 ~ 2020
네이버웹툰 / iOS Developer
- 새 컨텐츠 유료 모델(너만무료) 개발 리딩, 신규 유저를 위한 작품 추천 기능,유니버셜 앱 전환, 배너 광고 통합 및 개선
네이버랩스 / iOS Developer
- AWAY 차량용 인포테인먼트 앱, AKI 보호자용 앱 개발

• 2015
라인 / Android Developer
- 라인 Lite 안드로이드 앱 개발
<강연 및 기타 활동>

• 2020 ~ 현재
DevChat.tv iPhreaks / Panelist

• 2019
SwiftFest Boston / Speaker

• 2019
try! Swift NYC / Speaker

• 2019
NAVER Tech Concert: Mobile / Speaker

• 2019
Notable Me 앱/ 개인 프로젝트

• 2015
보안카드 위젯 앱 / 개인 프로젝트
- 2015-2017 App Store 올해를 빛낸 인기 앱 선정
해외 슈퍼앱 iOS 앱 개발 프로젝트를 리딩했던
iOS Developer 노수진의 아키텍처 설계 방법
지금 최저가로 만나보세요!
(자동) (자동) (자동)
정가 (자동)
현재 판매가 (자동)
12개월 무이자 할부 시 (자동)
상세 커리큘럼

Intro.

1부. 코드 레벨 아키텍처 : 재사용 가능한 코드를 만드는 스킬

2부. 모듈 레벨 아키텍처 : 유지 보수와 개발 속도를 고려하는 모듈화

3부. 자동화 테스팅

4부. 확장성 있는 인프라 : 코드만으로 해결할 수 없는 문제들

FAQ
강의를 수강하는데 필요한
사전지식이 있나요?
▫️[필수] Swift 초급 이상 + protocol 개념 이해 및 활용 경험
▫️[권장] 하나 이상의 iOS 아키텍처(MVC, MVVM, ReSwift, VIPER, RIBs 등)를 사용해 앱을 개발해 본 경험이 있다면 더욱 많은 인사이트를 가져갈 수 있습니다.

* 본 강의는 Swift에 대한 기초 지식을 다루지 않습니다.

어떤 사람이 들으면
가장 도움이 될까요?
▫️실무 iOS 개발 경험 2년 이상의 시니어 개발자
▫️하나 이상의 아키텍처를 사용해 앱을 개발한 경험이 있는 사람
▫️실습은 iOS 앱을 기반으로 하지만, Swift 문법에 대한 지식이 있다면 학습하는 이론에 대한 내용은 다른 플랫폼 모바일 앱(Android, Flutter 등)에도 적용 가능 합니다.

*본 수업에서 진행하는 모든 실습은 iOS 앱을 기반으로 하고 있으며, Mac으로 진행되며 windows 사용자는 수강에 어려움이 있을 수 있습니다.

실습에
사용하는 Tool
▫️Xcode 13
▫️Swift
▫️Swift Package (퍼스트파티 의존성 관리툴)
▫️Combine (퍼스트파티 비동기+이벤트 기반 프레임워크)
▫️RIBs(우버에서 만든 아키텍처 프레임워크)
▫️XCTest (테스트 프레임워크)
패스트캠퍼스

수강료.

  • The RED : 슈퍼앱 운영을 위한 확장성 높은 앱 아키텍처 구축 by 노수진

    현재 정가 대비 67% 할인 중!
    12월 31일 금요일 자정 까지

    정가 770,000원
    현재 판매가 249,000원

    12개월 무이자 할부 시 월 20,750원

국내 9개 카드사 12개월 무이자 할부 지원! (간편 결제 제외)

  • 삼성카드
  • 신한카드
  • 롯데카드
  • 현대카드
  • 하나카드
  • BC카드
  • KB국민은행
  • 씨티카드
  • NH농협카드