MD-19 · 히든 탭

메인 컨텐츠 관리 — 숨김 페이지 (상단 노출 + 링크 전용 숨김 탭)

상단 노출 카테고리만 있던 메인 컨텐츠를 노출/숨김 2단으로 확장해, 상단 밖 숨김 페이지를 만들고 배너·링크로만 진입시킨다.

🟡 준비 필요 메인 컨텐츠 링크 진입 미확정 순번 재계산

핵심 결정

노출 모델
상단 노출(TOP) / 숨김(HIDDEN) 2단 — 기존 usable은 on/off 축 그대로 유지
진입 방식
[결정 대기] 배너·이미지 link / 퀵메뉴 content_id / 딥링크 중 택1 (구두 확인 후)
순번 규칙
노출↔숨김 이동 시 양쪽 그룹 sort_order 즉시 재계산(빈 번호 없이 1부터)
빈 페이지
노출 컨텐츠 0건 숨김 페이지는 링크 진입 시 빈 상태 안내, 상단 전환 차단(가정)
벤치마크
식봄식 '상단 밖 숨김 페이지' 구조를 참고
01

정책 / 정의

용어를 못 박고, 규칙을 명확히

용어 정의
용어정의
상단 노출 카테고리앱 메인 상단 탭에 노출되는 카테고리. 현행 메인 컨텐츠의 유일한 상태.
숨김 페이지상단 탭에는 없지만 지정 링크로만 진입 가능한 메인 컨텐츠 페이지.
노출 상태(expose_type)카테고리의 상단 노출 여부 TOP/HIDDEN. 이번에 신설하는 개념·컬럼.
사용여부(usable)카테고리 on/off 스위치. 노출 상태와 별개 축이며, off면 상태 무관 전부 미노출(가정).
링크 키(link_key)숨김 페이지를 지목하는 유니크 식별자(가정: slug). 진입 방식 확정 후 사용.
순번(sort_order)같은 노출 상태 그룹 내 정렬 순서. 이동 시 재계산 대상.
진입 경로숨김 페이지로 들어오는 통로 — 배너·이미지 링크 / 퀵메뉴 / 딥링크.
정책 (규칙)
#규칙비고
1노출 상태는 TOP/HIDDEN 2값으로 관리한다.usable(on/off)과 독립 축. usable=false면 상태 무관 미노출(가정).
2상단 탭에는 TOP + usable=true 카테고리만 sort_order 오름차순으로 노출한다.ix_mcc_expose_sort 인덱스로 조회.
3HIDDEN 카테고리는 상단 탭에서 제외하고, 지정 링크로만 진입시킨다.식봄식 상단 밖 숨김 페이지 구조.
4노출↔숨김 이동 시 이동 대상과 잔여 그룹의 sort_order를 즉시 재계산한다.빈 번호 없이 1부터 연속. 이동 확인 모달에서 재계산 미리보기 제공.
5숨김 페이지 진입 방식은 [결정 필요] — 구두 확인 후 확정한다.가정: 기존 main_content_image.link / quick_menu.content_id 재사용 우선, 신규 slug는 최소화.
6빈 페이지(노출 컨텐츠 0건)는 링크 진입 시 빈 상태 안내를 띄운다.가정: 빈 페이지는 상단 노출(TOP) 전환을 차단.
7TOP→HIDDEN 전환 시 상단 탭에서 즉시 제거하되, 이미 배포된 유효 링크는 계속 동작한다.링크 진입 경로의 연속성 보장.
8link_key는 유니크하며, 삭제·off된 카테고리 링크 진입은 404 대신 안내 화면으로 처리한다.가정. ux_mcc_link_key 부분 유니크 인덱스.
9노출 상태 변경은 이력을 남긴다.가정: main_content_category_expose_log(before/after/changed_by).
02

ERD

데이터 구조 · 관계 · DDL

main_content_category WRITE
idPK varchar(255)
parent_idFK varchar(30)
namevarchar(255)
sort_orderinteger
usableboolean
expose_typevarchar(10)
link_keyvarchar(60)
bookmark_onboolean
메인 컨텐츠 카테고리. 노출 상태(expose_type)·링크 키(link_key) 신규 추가. 상단/숨김을 이 테이블에서 분기.
main_content READ
idPK varchar(100)
category_idFK varchar(255)
namevarchar(30)
typevarchar(30)
usableboolean
카테고리에 속한 개별 컨텐츠(배너·타임세일·그리드 등). 빈 페이지 판정에 사용.
main_content_image READ
idPK integer
content_idFK varchar(30)
linkvarchar
sort_orderinteger
컨텐츠 이미지·링크. link 컬럼이 숨김 페이지 진입 경로 후보 1.
main_content_category_expose_log 신규
idPK bigserial
category_idFK varchar(255)
before_typevarchar(10)
after_typevarchar(10)
changed_byvarchar(20)
노출↔숨김 전환 이력(가정). 감사 추적용.
main_content.category_id → main_content_category.id (카테고리별 컨텐츠)
main_content_image.content_id → main_content.id (컨텐츠 이미지·링크)
quick_menu.content_id → 숨김 페이지 진입 링크(후보 경로)
main_content_category_expose_log.category_id → main_content_category.id (노출 전환 이력)
-- 메인 컨텐츠 카테고리에 '노출 상태(상단/숨김)'와 '링크 키' 추가
-- 기존 usable(on/off)은 그대로 두고, 상단 노출 여부를 별도 축으로 분리한다.
ALTER TABLE main_content_category
  ADD COLUMN expose_type VARCHAR(10) NOT NULL DEFAULT 'TOP',   -- 노출 상태: TOP(상단 노출) / HIDDEN(숨김·링크 전용)
  ADD COLUMN link_key    VARCHAR(60);                          -- 숨김 페이지 진입용 링크 키(slug). 진입 방식 확정 후 사용(가정)

COMMENT ON COLUMN main_content_category.expose_type IS '노출 상태 TOP=상단 노출 / HIDDEN=상단 밖 숨김 페이지';
COMMENT ON COLUMN main_content_category.link_key    IS '숨김 페이지 링크 키(유니크, slug). 진입 경로 확정 후 배너/퀵메뉴/딥링크에서 참조';

-- 링크 키 유니크(NULL 다수 허용)
CREATE UNIQUE INDEX ux_mcc_link_key ON main_content_category (link_key) WHERE link_key IS NOT NULL;

-- 상단 노출 조회 최적화: 노출 상태 + 사용여부 + 순번
CREATE INDEX ix_mcc_expose_sort ON main_content_category (expose_type, usable, sort_order);

-- (가정) 노출 상태 변경 이력. 노출↔숨김 전환 감사 추적용.
CREATE TABLE main_content_category_expose_log (
  id           BIGSERIAL PRIMARY KEY,
  category_id  VARCHAR(255) NOT NULL,   -- main_content_category.id
  before_type  VARCHAR(10)  NOT NULL,   -- 변경 전 노출 상태
  after_type   VARCHAR(10)  NOT NULL,   -- 변경 후 노출 상태
  changed_by   VARCHAR(20)  NOT NULL,   -- 변경 관리자
  changed_on   TIMESTAMP    NOT NULL DEFAULT now()
);
COMMENT ON TABLE main_content_category_expose_log IS '메인 카테고리 노출↔숨김 전환 이력(가정)';
03

스토리보드 — 화면 & 흐름

상단 노출 카테고리만 있던 메인 컨텐츠를 노출/숨김 2단으로 확장해, 상단 밖 숨김 페이지를 만들고 배너·링크로만 진입시킨다.

진입 방식 미확정(★★★ 구두 확인 필요) — 숨김 페이지 접근 경로(배너·이미지 링크 / 퀵메뉴 / 딥링크 중 택1)는 구두 확정 후 개발 착수.
오더히어로 관리 › 메인 컨텐츠 관리컬럼 추가
노출 상태 ▾🔍 카테고리명·링크 키카테고리 추가순번 재정렬숨김↔노출 이동
순번카테고리명노출 상태 🆕컨텐츠 수링크 키 🆕사용여부관리
1BEST상단 노출5bestON이동·수정
2신상품상단 노출3newON이동·수정
식봄 기획전숨김8sikbom-2026ON이동·수정

▲ 메인 컨텐츠 카테고리 목록 — 화면 구성(실 데이터 예시)

1
목록 진입 — 메인 컨텐츠 관리 목록에서 카테고리별 '노출 상태(상단 노출/숨김)' 컬럼과 상단 필터 칩을 확인한다.
2
숨김 페이지 생성 — 카테고리 추가/수정에서 노출 상태를 '숨김'으로 지정하고 링크 키를 입력한다. 상단 탭에는 나타나지 않는다.
3
노출↔숨김 이동 — 이동 버튼 클릭 시 확인 모달이 뜨고, 상단 그룹과 숨김 그룹의 sort_order 재계산 결과를 미리 보여준다.
4
진입 경로 연결 — 배너·이미지 link 또는 퀵메뉴에 숨김 페이지 링크 키를 연결한다. (방식은 구두 확정 후)
5
앱 반영 — TOP은 상단 탭에 노출, HIDDEN은 탭에서 사라지고 연결된 링크로만 진입한다. 컨텐츠 0건이면 빈 상태 안내.
04

화면 상세 — 세부 표·규칙

목록 외 품목표·모달·규칙 등 세부 화면

노출↔숨김 이동 확인 모달
항목이동 전이동 후
노출 상태상단 노출(순번 3)숨김(링크 전용)
상단 그룹 순번1·2·3·4·51·2·3·4 (뒤 자동 당김)
진입 경로상단 탭지정 링크만
이동 시 양쪽 그룹 sort_order 재계산 결과를 미리보기로 제시하고 확인받는다. 빈 페이지는 상단 전환 버튼 비활성(가정).
숨김 페이지 진입 방식 결정표 [결정 대기]
방식재사용 컬럼장점결정
배너·이미지 링크main_content_image.link기존 CMS 그대로 재사용후보 ★
퀵메뉴quick_menu.content_id홈 상단 퀵 진입후보
딥링크 URL신규 link_key(slug)외부 공유 가능구두 확정 필요
★★★ 구두 확인 후 택1. 신규 컬럼 최소화 원칙상 기존 link/content_id 재사용 우선 권고(가정).