pile·
모바일·마켓컬리마켓컬리 Hello World·

iOS 개발자 관점의 뷰티컬리 앱 서비스 런칭기

iOS 개발자 관점에서 마켓컬리 앱에 뷰티컬리를 붙여 오픈한 과정을 다룬다. 앱 상위 개념인 site를 도입해 마켓·뷰티 전환 시 API path와 노출 상품이 달라지도록 구조를 잡고, 초기 로딩 속도 문제를 의존성 주입 구조 변경으로 개선한 이야기가 핵심이다.

핵심 포인트
  • 상품 개편과 뷰티컬리를 동시에 안고, 상품 개편 QA에 먼저 집중하며 뷰티 개념·정책을 선행 학습해 착수 시점을 앞당겼다.
  • site는 앱 상위 개념으로, site가 바뀌면 API path가 바뀌고 홈·카테고리·검색의 상품 노출이 종속된다.
  • 레거시의 단일 클래스 의존성 주입 구조에 site를 단방향으로 주입해 상태 불일치를 방지했다.
  • 마켓·뷰티 추천 페이지의 구좌 UI가 유사해 공통 성질로 모델링하고 코드 상당 부분을 재사용했다.
  • 오픈 후 로딩 지연 이슈를, site 프로퍼티 대신 site 서비스 클래스를 주입하는 방식으로 개선했다.
상세 정리
  • 일정 전략: 8월 전 배포라는 비즈니스 타깃이 있어, 상품 개편 QA 집중과 뷰티 개념·정책 선이해로 언제든 개발에 착수할 수 있는 환경을 먼저 만들었다.
  • site 개념 도입: 버티컬 서비스가 상품 하위 개념인 것과 달리 site는 앱 상위 개념으로 해석했고, site 변경 시 API path가 바뀌어 홈·카테고리·검색 노출이 달라진다.
  • 의존성 구조 이해: 레거시는 한 클래스에서 앱 전체 의존성을 생성·주입하는 구조라, site 변경 시 기존 주입을 유지하며 site를 추가 주입해 단방향 흐름을 만들어 상태 불일치와 사이드이펙트를 최소화했다.
  • 협업: API에 site 구분 path가 추가돼, 안드로이드 개발자와 응답 정합성을 맞추려 site path를 적용한 Postman을 공유했다.
  • 구좌 재사용: 홈-컬리 추천의 요소인 구좌는 백오피스로 동적 처리되는 템플릿 구조인데, 마켓·뷰티가 노출 상품만 다르고 구좌 형태는 동일해 공통 모델링으로 코드를 재사용해 짧은 일정에 대응했다.
  • 초기 오픈: 7월 29일 새벽 앱스토어 심사 승인 후 오전에 배포했고, 안드로이드 선행 개발자의 이슈 공유·가이드와 기획자의 MVP 조율이 도움이 됐다.
  • 로딩 지연 문제: site 전환 시 의존성 주입으로 RootViewController를 새로 만드는 구조라, 기본 앱 구성과 컬리 추천 구좌 API 호출이 낭비되고 응답 지연 시 화면 로딩이 느렸다.
  • 개선: 하위 계층에 site 프로퍼티를 계속 주입하던 방식을, site 서비스 클래스를 주입하고 내부에서 site를 관리해 항상 같은 값을 유지하며 필요한 곳만 subscribe하도록 바꿨다. 전환마다 새로 생성하지 않고 서비스 레이어의 이벤트 처리로 RootViewController 생성용 API 호출을 줄여 로딩 시간을 단축했다.
  • 회고: 전환 속도는 본인은 불편을 못 느꼈으나 주관보다 데이터·타 직군 시각을 참고해야 함을 배웠고, 이후 뷰티 유입용 플로팅 버튼도 목업 기준 정책 선반영 후 디자인 병행으로 개발했다.
왜 읽나iOS 앱에 새 버티컬을 얹으며 의존성 주입 구조와 초기 로딩 성능을 고민하는 모바일 개발자에게 site 주입 설계와 서비스 클래스 전환의 실전 판단을 보여주는 사례.
마켓컬리
마켓컬리 Hello World 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 모바일·토스 SLASH토스 SLASH·

    토스의 디바이스 팜 만들기

    토스가 각 팀이 각자 운영하던 작은 디바이스 팜을 하나의 중앙 플랫폼 '네뷸라(Nebula)'로 통합한 과정을 다룬다. Appium 대신 자체 드라이버를 개발해 클릭 13.5배, 텍스트 입력 10배의 성능을 달성했고, Android와 iOS 미러링도 직접 내재화해 실기기 원격 조작과 화면 실시간 공유를 동시에 가능하게 만들었다. 현재 100대를 넘어 수백 대를 향해 24시간 가동 중이다.

    #android#ios#appium+2
  2. 모바일·LY CorporationLY Corporation·

    AI 에이전트를 위한 Android CLI: 대규모 모바일 개발 환경에 적용하기

    LINE Android 팀이 수백 개 Gradle 모듈 규모의 대형 저장소에서 Google의 Android CLI를 AI 에이전트(Claude Code, Codex, Gemini 등)와 함께 운용하며 겪은 토큰 낭비·오작동 문제를 해결한 과정을 다룬다. 얇은 래퍼와 스킬 레이어를 추가해 CLI 출력을 에이전트 친화적으로 정규화하고, Android Studio 연동 기능을 텍스트 검색보다 정확한 시맨틱 심볼 탐색에 활용하는 방법을 소개한다.

    #android#claude-code#mcp+2
  3. 모바일·토스 SLASH토스 SLASH·

    디자이너가 시안 대신 앱을 만든 이유

    토스 UX 디자이너가 AI를 협력자로 삼아 피그마 시안 대신 실제 SwiftUI 코드로 iOS 앱을 직접 구현한 경험을 다룬다. "데드엔드" 화면(송금·결제 완료 등)을 다음 경험의 시작점으로 전환하는 underlay 컴포넌트를 설계하면서 Metal 셰이더 구현까지 디자이너가 주도했고, 완성된 코드를 개발팀에 전달해 협업 방식 자체를 바꿨다.

    #design-system#ai-coding#ios+2