본문으로 건너뛰기
← Projects
SI 프로젝트커머스

셀포레스트

영양제와 비건 스킨케어를 다루는 입점형 모바일 커머스입니다. 소비자용 Flutter 앱과 입점사·관리자가 함께 쓰는 어드민 웹을 처음부터 끝까지 혼자 만들었습니다.

참여 기간
2026.03 – 현재
소속
한다글다글
담당
소비자 앱 · 어드민 웹
스택
FlutterTypeScriptNext.jsReactTailwind CSS

어떤 서비스인가

매거진을 읽다가 그 자리에서 상품을 사는 구조의 커머스입니다. 건강 팁과 영양제 Q&A 같은 콘텐츠가 홈의 절반을 차지하고, AI 챗봇이 그 글을 근거로 영양제를 추천합니다.

소비자는 앱으로, 입점사와 관리자는 웹으로 들어옵니다. 세 부류가 같은 백엔드를 쓰고 화면만 다릅니다.

주요 기능

  • 소셜 로그인과 결제, 매거진·상품 탐색, AI 챗봇 추천
  • 입점사 — 상품 등록, 주문·배송·반품 처리, 문의·리뷰 답변, 정산 확인
  • 관리자 — 회원·입점사·쿠폰·매거진·배너 관리와 매출 대시보드

맡은 범위

  • 소비자 앱 전체 — 기획 화면부터 스토어 배포까지 단독
  • 어드민 웹 전체 — 입점사 화면과 관리자 화면 모두
  • 결제·딥링크·푸시 등 네이티브 연동

딥링크 — 앱이 준비되기 전에 도착하는 링크

알림톡이나 푸시를 눌러 들어오면 앱이 아직 화면을 그리기 전이라 이동 요청이 그대로 사라졌습니다. 링크를 큐에 담아뒀다가 화면이 준비된 뒤 처리하도록 바꿨습니다.

스플래시가 끝나면서 홈이 다시 덮어쓰는 문제, 딥링크로 들어와 뒤로 가면 앱이 꺼지는 문제도 같은 흐름에서 이어 잡았습니다.

목록 — 탭을 빨리 바꾸면 섞이는 결과

다음 페이지를 불러오는 중에 탭을 바꾸면 이전 조건의 응답이 뒤늦게 도착해 목록에 섞였습니다. 「총 0개」라고 쓰여 있는데 상품이 남아 있는 상태가 됐습니다.

요청마다 번호를 붙여 조건이 바뀐 뒤 도착한 응답은 버리도록 했습니다.

릴리스 — 브랜치가 갈라지며 되살아난 버그

릴리스 브랜치에서 고친 네 건이 기준 브랜치에 합쳐지지 않아, 이후 새로 딴 모든 브랜치에서 같은 버그가 다시 나타났습니다.

누락분을 병합해 복구하고, 앱도 어드민과 같은 개발 브랜치 기반 PR 흐름으로 옮겼습니다.