콘텐츠로 이동

[WORKSOUT] 홈

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 최초 작성 (홈 화면 마스터 + 홈 화면 정책 병합)