pile·
프론트엔드·쏘카쏘카·

쏘카프레임 — Android/iOS 공유 앱 프레임워크와 개발자 경험 설계

쏘카가 2019년 앱 전면 개편 시 설계한 Android/iOS 공유 앱 프레임워크(SocarFrame)의 철학과 아키텍처 1편이다. 개발자 경험(DX)과 팀 생산성을 핵심 설계 목표로 삼아 "마치 한 사람이 작성한 듯한" 코드 일관성과 플랫폼 경계 극복을 추구한 원칙을 소개한다.

핵심 포인트
  • Android·iOS 양 플랫폼이 공유할 수 있는 추상화 경계를 드러내 한 플랫폼 개발자가 다른 플랫폼 코드를 빠르게 이해 가능
  • 플랫폼 지식을 라이브러리 레이어에 격리해 비즈니스 기능 개발자가 플랫폼 선택을 매번 고민하지 않도록 설계
  • 엄격한 코딩 컨벤션 + 인지적 축약 유도로 코드 일관성 확보 — 서로의 실수를 바로잡고 위임이 쉬운 환경
  • 화면을 웹으로 교체하거나 다시 네이티브로 전환해도 문제없도록 UI 레이어 경계 설계
  • 주니어는 비즈니스 개발하며 프레임워크(플랫폼 설명서)로 점진적 성장, 시니어는 프레임워크 진화에 집중
상세 정리
  • 설계 동기: 잉여 시간 확보 → 인프라·라이브러리 개선 재투자 → 다시 잉여 시간 증가 선순환 구조 목표
  • 플랫폼 추상화: 같은 시스템의 Android·iOS 코드가 동일한 사고방식으로 읽히도록, 한 플랫폼 개발자가 반대편 코드 빠르게 파악
  • 크로스플랫폼 대비 포지셔닝: Flutter/RN 대비 생산성 낮지만 네이티브 품질·장기 안정성 유지, 기존 네이티브 서비스에서 채택 용이
  • 넓은 커버리지 원칙: "없으면 할 법하지 않으니 없는 것, 되는 건 매뉴얼에 있다" — 개발자가 매번 새로 조사 불필요
  • 웹-네이티브 전환 설계: 화면 레이어 경계 구분으로 웹·앱 개발자 모두 활용, 서비스 유동성과 UI 완성도 사이 선택 폭 확보
  • 주니어 온보딩: 진입 장벽 높아지지만 난이도 증가가 아닌 배울 양 증가, 프레임워크 코드로 플랫폼 이해를 점진적으로 습득
  • 시니어 역할: 기술 트렌드 선반영 + 미래에 필요한 기반 기능 개발 — 할 것/배울 것/미리 해둘 것 명확히 분리
  • 기대 효과: 제품 안정성·개발 속도·기획 피드백 속도 향상, AI 코드 완성 정확도 부수 효과(일관된 코드 = 좋은 학습 데이터)
  • 운영 과제: 예외 없는 규격 준수 유지가 가장 어렵고, 프레임워크도 기술 트렌드에 맞춰 다음 세대로 지속 진화 필요
왜 읽나모바일 팀 공통 프레임워크를 설계하거나 Android·iOS DX 통합을 고민하는 팀에게 쏘카의 의사결정 맥락을 직접 들을 수 있다. 기술 구현보다 "왜 이렇게 설계했는가"에 집중해 아키텍처 판단 근거가 풍부하다.
쏘카
쏘카 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·LINE EngineeringLINE Engineering·

    AI로 웹 엔지니어 없이 LINE 앱 안에서 그룹 영상 통화 서비스 만들기

    LINE Planet 팀의 PM과 Android 엔지니어 두 명이 웹 전문 엔지니어 없이 LINE 앱 내에서 그룹 영상 통화 서비스를 개발한 과정을 다룬다. LIFF(LINE Front-end Framework)와 LINE Planet SDK를 활용해 React/Vite 기반 웹 앱을 구성했고, Firebase Cloud Functions로 별도 서버 인프라 없이 구현을 완료했다.

    #react#webrtc#firebase+2