| Screen ID |
Screen Title |
Screen Path |
| HOME-01 |
홈 |
/ |
앱 진입 시 가장 먼저 보여지는 메인 화면. 프로모션 배너, 신상품(뉴어라이벌) 영역, 에디터 큐레이션 콘텐츠, 하단 푸터로 구성되며 로그인/비로그인 사용자 모두에게 동일하게 노출된다(개인화 없음).
| 용어 |
설명 |
| 배너 |
홈 화면 상단에 표시되는 프로모션 이미지. 자동 롤링되며 클릭 시 지정 페이지로 이동 |
| 뉴어라이벌 |
신상품(입고 후 2주 이내)을 소개하는 영역. 전체 상품과 브랜드별 필터 제공 |
| 알림 배지 |
읽지 않은 알림이 있을 때 표시되는 노란색 표시 |
| 칩 버튼 |
뉴어라이벌 영역에서 ALL 또는 특정 브랜드를 선택하는 버튼 |
| 큐레이션 (Curation) |
에디터가 선별한 상품 컬렉션. 특정 테마나 브랜드 중심으로 그룹화 |
| 컨텐츠 타입 |
Strapi에서 관리하는 콘텐츠 분류. 큐레이션 섹션은 contentsType = CURATION으로 식별 |
| 요소 |
설명 |
| 메인 탭 |
메인 / 응모 / 피드 중 “메인” 선택 상태로 표시 |
| 알림 아이콘 |
클릭 시 알림센터로 이동. 읽지 않은 알림이 있으면 노란색 배지 표시 |
로그인/비로그인 사용자 모두에게 노출되며 홈 화면에서만 표시된다. 관리 어드민: Strapi > 탑배너 관리
| 항목 |
규칙 |
| 노출 조건 |
displayDate = null이면 항상 노출, 값이 있으면 해당 기간에만 노출 |
| 정렬 기준 |
order ASC — 숫자가 낮을수록 먼저 노출. 동일 값이면 publishedAt DESC |
| 자동 롤링 |
3초 간격으로 다음 배너로 자동 전환 |
| X 버튼 (배너 2개 이상) |
현재 배너만 닫고 다음 배너 즉시 표시 |
| X 버튼 (배너 1개) |
배너 영역 전체 제거, 재표시 없음 |
| 스크롤 연동 |
아래로 스크롤 시 숨김 / 위로 스크롤 시 재표시 |
| 배너 클릭 |
link URL로 이동 (인앱 네비게이션 기본) |
| 텍스트 컬러 우선순위 |
① textEditor에서 직접 지정한 컬러 → ② textColor 필드 값 (X 버튼 컬러도 동일 우선순위) |
| 배너 0개 |
배너 영역 전체 숨김 |
Strapi 등록 필드
| 필드명 |
설명 |
입력 형식 |
필수 여부 |
title |
배너에 표시되는 텍스트 (textEditor 지원) |
텍스트 |
필수 |
link |
배너 클릭 시 이동할 URL |
URL 문자열 |
필수 |
order |
노출 순서 (낮을수록 먼저 노출) |
숫자 |
필수 |
textColor |
텍스트 기본 컬러 |
HEX 컬러코드 |
선택 |
displayDate |
노출 기간 (null이면 항상 노출) |
시작일~종료일 |
선택 |
publishedAt |
Strapi 게시 상태 |
Published 설정 필요 |
필수 |
publishedAt이 Draft 상태이면 앱에 노출되지 않는다.
order 값 변경 시 다른 배너 순서에 영향을 주므로 전체 목록의 order 값을 확인 후 저장한다.
textColor 수정 시 textEditor에서 직접 컬러가 지정된 경우 textColor 필드는 무시된다.
- Strapi에서 삭제 시 복구 불가. 일시 숨김이 필요하면 삭제 대신
displayDate 기간 제한 또는 Unpublish를 사용한다.
신상품(입고 후 2주 이내)을 소개하는 영역. 상품 데이터 기반으로 자동 노출되며 ALL 및 브랜드별 칩 필터를 제공한다. 관리 어드민: 자체 어드민 > 상품 관리 > 상품 상세
| 항목 |
규칙 |
| 노출 조건 |
visible = 1 AND new_arrival = 1 AND 현재 시각 < new_arrival_until |
| 노출 기간 |
new_arrival_until 초과 시 실시간으로 자동 제외 |
| 정렬 기준 |
API 응답 순서 그대로 표시 |
| 상품 수 제한 |
최대 30개 표시 (ALL / 브랜드별 동일) |
| 품절 상품 |
노출 유지, UI에 품절 표시 |
| 브랜드 칩 |
isNewArrival: true인 브랜드를 알파벳순으로 최대 10개 표시 |
| 전체보기 |
쇼핑 > 전체 상품 카테고리 화면으로 이동 |
| hover 효과 |
상품 이미지 변경 + 사이즈 정보 표시 |
자체 어드민 설정 필드
| 필드명 |
설명 |
입력 형식 |
필수 여부 |
visible |
상품 노출 여부 |
1=노출, 0=숨김 |
필수 |
new_arrival |
뉴어라이벌 여부 |
1=신상품, 0=일반 |
필수 |
new_arrival_until |
뉴어라이벌 노출 종료 일시 |
날짜+시각 (예: 2026-03-15 23:59:59) |
필수 |
thumbnailUrl |
기본 상품 이미지 URL |
URL 문자열 |
필수 |
hoverUrl |
hover 시 표시할 이미지 URL |
URL 문자열 |
선택 |
new_arrival_until을 입력하지 않으면 노출되지 않는다.
- 즉시 종료가 필요하면
new_arrival_until을 현재 시각 이전으로 수정하거나 new_arrival = 0으로 변경한다.
에디터가 선별한 상품 컬렉션을 테마·브랜드 중심으로 묶어 노출하는 영역. 관리 어드민: Strapi > 큐레이션 관리
| 항목 |
규칙 |
| 노출 조건 |
contentsType = CURATION AND displayStartAt ≤ 현재 시각 ≤ displayEndAt |
| 정렬 기준 |
sort ASC. 동일 값이면 publishedAt DESC |
| 상품 순서 |
contentComp.productlist 배열 입력 순서 그대로 표시 |
| 개별 상품 제외 |
visible = 0인 상품만 제외 (섹션 전체 숨김 아님) |
| 전체 상품 제외 |
표시 가능 상품이 0개이면 해당 섹션 전체 숨김 |
| 전체보기 버튼 |
goToLink 값이 있을 때만 표시 |
| 노출 기간 초과 |
publishedAt 기준 3개월 경과 시 자동으로 목록에서 제거 |
Strapi 등록 필드
| 필드명 |
설명 |
입력 형식 |
필수 여부 |
contentsType |
콘텐츠 분류 |
CURATION 고정 입력 |
필수 |
title |
큐레이션 제목 |
텍스트 |
필수 |
sort |
노출 순서 (낮을수록 먼저) |
숫자 |
필수 |
displayStartAt / displayEndAt |
노출 시작/종료 일시 |
날짜+시각 |
필수 |
goToLink |
전체보기 버튼 이동 URL (없으면 버튼 미표시) |
URL 문자열 |
선택 |
contentComp.productlist |
노출할 상품 ID 배열 (입력 순서 = 노출 순서) |
상품 ID 목록 |
필수 |
publishedAt |
Strapi 게시 상태 |
Published 설정 필요 |
필수 |
- 상품 추가/제거: 큐레이션 상세 > 상품 리스트에서 ID를 추가/삭제. 배열 순서 = 앱 노출 순서.
- 노출 순서 변경:
sort 값 수정. 동일 값이면 publishedAt 최신순 노출 — 순서를 명확히 하려면 고유 값을 지정한다.
- Strapi 삭제 시 복구 불가. 일시 숨김은
displayEndAt을 현재 시각 이전으로 변경하거나 Unpublish 처리한다.
| 그룹 |
메뉴 항목 |
| Company |
웍스아웃에 대하여 / 멤버십 / 매장정보 / 채용안내 |
| SHOPPING GUIDE |
회원 혜택 / 반품 안내 / 배송 안내 / 구매 안내 / 기프트카드 및 예치금 안내 / 세탁 및 취급 시 주의사항 |
| HELP |
문의하기 / 자주하는 질문 |
| 소셜 미디어 |
유튜브 / 페이스북 / 인스타그램 아이콘 |
- 각 섹션은 아코디언 형태로 펼침/접기 가능.
- 모든 메뉴 항목은 웹뷰로 열림.
- 소셜 미디어는 외부 앱 연동 우선, 실패 시 웹뷰로 대체.
- 엔드포인트:
GET /v1/top-banners
- 호출 시점: 홈 화면 진입 시 최초 1회
- 활용 필드:
publishedAt(노출 상태/정렬), displayDate(노출 기간), title(텍스트), link(이동 URL), order(정렬), textColor
- 엔드포인트:
GET /v1/notification/badge
- 호출 시점: 홈 화면 진입 시 / 앱이 백그라운드에서 포그라운드로 전환될 때
- 활용 필드:
new(읽지 않은 알림 수, 1 이상이면 노란색 배지)
- 실제 알림을 읽어야만
new 값 감소. 배지는 숫자 없이 점으로만 표시. 읽지 않은 수가 9 이상이면 9+ 표시 (구 정책에는 숫자 미표시로만 기술 — 아래 미결 사항 참조)
- 엔드포인트:
GET /v1/products/new?page=0&mainCategoryId={id}
- 호출 시점: 홈 화면 진입 시 / ALL 칩 선택 시
- 활용 필드:
isNewArrival, thumbnailUrl, hoverUrl, initialPrice/currentPrice/discountedRate, brandName/productName, sizes(hover 시 표시)
- 상품 표시 최대 30개. 전체보기 클릭 시 쇼핑 전체 상품 카테고리로 이동.
- 엔드포인트:
GET /v1/products/newFilter?mainCategoryId={id}
- 호출 시점: 홈 화면 진입 시 (브랜드 칩 생성용)
- 활용 필드:
brands(isNewArrival: true인 브랜드 목록)
- 알파벳순 정렬 후 최대 10개 브랜드 칩 생성.
- 엔드포인트:
GET /v1/products/new?brandIds={id}&page=0&mainCategoryId={id}&size=20
- 호출 시점: 특정 브랜드 칩 선택 시
- 해당 브랜드의
isNewArrival: true 상품만 표시. 표시 방식은 ALL과 동일.
- 엔드포인트:
GET /articles/new-product-list (Strapi API)
- 호출 시점: 홈 화면 진입 시 (큐레이션 영역 로드)
- 활용 필드:
contentsType(CURATION만 필터), title, sort, displayStartAt/displayEndAt, goToLink, contentComp.productlist
- 상품은 배열 순서대로 표시. 전체보기 클릭 시
goToLink 기반 필터 적용된 쇼핑 화면으로 이동.
- 엔드포인트:
GET /v1/products/{productIds}
- 호출 시점: 홈 화면 진입 시 (큐레이션 영역 로드),
contentComp.productlist에서 추출한 ID로 조회
- 원본 배열 정렬 순서 유지. 품절 상품도 표시하되 품절 표시 적용.
| 실패 API / 상황 |
처리 방식 |
| 배너 API 실패 / 배너 0개 |
배너 영역 전체 숨김 |
| 알림 배지 API 실패 |
배지 미표시 (조용한 실패) |
| 뉴어라이벌 API 실패 |
“상품을 불러올 수 없습니다” 메시지 |
| 신상품 없음 |
“현재 신상품이 없습니다” 메시지 |
| 브랜드 없음 |
ALL 칩만 표시 |
| 큐레이션 Strapi API 실패 |
“컨텐츠를 불러올 수 없습니다” 메시지 |
| 큐레이션 없음 |
“현재 큐레이션 컨텐츠가 없습니다” 메시지 |
| 큐레이션 상품 상세 조회 실패 |
해당 상품만 제외하고 나머지 표시 |
| 푸터 웹뷰 로딩 실패 |
“페이지를 불러올 수 없습니다” + 재시도 버튼 |
| 외부 앱 연결 실패 |
기본 브라우저로 대체 실행 |
| 네트워크 오류 |
화면 전체 레벨 “네트워크 연결을 확인해주세요” + 재시도 버튼 |
| 3개월 경과 큐레이션 |
자동으로 목록에서 제거 |
- 홈 화면 필수 API는 병렬로 호출한다.
- 뉴어라이벌 데이터: 1시간 캐시.
- 큐레이션 데이터: 6시간 캐시 (콘텐츠 변경 빈도가 낮음).
- 알림 배지는 실시간 동기화 필요 (캐시 미적용).
- 배너 이미지는 lazy loading, 상품 이미지는 썸네일 우선 로드 + hover 이미지 사전 로드.
- 초기 로딩 시 스켈레톤 UI로 로딩 상태 표시. 중요 콘텐츠(배너, 뉴어라이벌) 우선 로드, 큐레이션은 뷰포트 진입 시 lazy loading, 푸터는 스크롤 시점에 로드.
- 브랜드 정책, 상품 표시 정책, 쇼핑 정책 (별도 문서화 예정)
- 알림센터
- 피드 메인
| 항목 |
내용 |
| 뉴어라이벌 노출 개수 |
구버전(정책, 2025-10-29 기준) 값 ALL/브랜드별 각 20개, 신버전(마스터, “일본 기획 내용 반영” 2026-02-19 기준) 값 30개. 본문에는 신버전(30개) 채택. 이 값이 KR 공통 적용인지 JP 전용 변경인지 확인 필요 |
| 배너 정렬 기준 필드 |
구버전 정책 문서 내에서도 “sort 값 낮은 순”(화면 구성 섹션)과 “createdAt 최신순”(API 연동 섹션)이 서로 다르게 기술되어 있었음. 마스터 문서는 order ASC(동일 값이면 publishedAt DESC)로 일관되게 정리됨 — 본문은 마스터 값 채택. 실제 API 응답 필드명(order/sort/createdAt) 최종 확인 필요 |
| 큐레이션 컨텐츠 타입 범위 |
구버전 정책은 큐레이션 섹션에 NEW_ARRIVAL, CURATION 두 타입을 함께 포함했으나, 마스터 문서는 CURATION 타입만 큐레이션으로 정의. 신버전(마스터) 값 채택 — NEW_ARRIVAL 타입 처리 방식(뉴어라이벌 영역과 중복 여부) 확인 필요 |
| 알림 배지 “9+” 표시 |
마스터 문서에는 “읽지 않은 알림 수가 9 이상이면 9+로 표시”라는 규칙이 있으나, 정책 문서에는 “숫자 표시 없이 단순 노란색 점”으로만 기술되어 있어 서로 모순. 실제 UI 스펙 확인 필요 |
| 버전 |
날짜 |
변경 내용 |
| v1.0 |
2026-07-30 |
최초 작성 (홈 화면 마스터 + 홈 화면 정책 병합) |