34 KiB
34 KiB
Changelog
이 프로젝트의 모든 주요 변경사항을 기록합니다. 형식은 Keep a Changelog를 따르며, Semantic Versioning을 준수합니다.
[1.0.0-beta.5] - 2026-05-12
Fixed
- 알림 센터의 미확인 알림 카운트 뱃지·알림 행의 unread 점·"읽지 않은 알림만" 체크박스가 다크 모드에서 색상이 부정합하게 노출되던 문제 수정
[1.0.0-beta.4] - 2026-05-11
Added
- 본인인증 정책이 활성화된 모든 강제 지점(회원가입·비밀번호 재설정·민감 작업·게시판/이커머스 정책 등)에서 동일한 모달 UX 가 자동으로 표시되도록 공통 본인인증 모달 추가
- 본인인증 모달의 "취소" 클릭 시 서버 본인인증 challenge 가 즉시 정리되도록 개선 — 미인증 challenge 가 만료까지 남아있던 동작이 audit 기록과 함께 즉시 cancelled 상태로 정합
- 외부 본인인증 provider 플러그인이 자기 SDK UI 를 주입할 수 있는 슬롯 도입 — 다음 우편번호 / WYSIWYG 에디터 와 동일한 G7 표준 패턴으로 KCP·PortOne·토스인증·Stripe Identity 등 추가 가능
- 본인인증 챌린지 화면 (
/identity/challenge) — render_hint 에 따라 OTP 코드 입력 / 이메일 링크 안내 / 외부 본인인증 리다이렉트 3종 분기. 만료 카운트다운(분:초), 남은 시도 횟수, 30초 재전송 쿨다운, live region 접근성 지원. 모달과 동일한 결과 통보 흐름을 사용하여 코어 인터셉터의 launcher 폴백과 일관 - 회원가입 폼이 쿼리 파라미터로 전달된
verification_token을 서버로 자동 전송하도록 개선 — 코어 본인인증 인프라(Mode B) 연동 - 로그인 화면에 세션 만료 안내 토스트 추가 — 토큰 만료로 자동 리다이렉트된 사용자에게 "세션이 만료되었습니다. 다시 로그인해 주세요." 메시지 표시 (
?reason=session_expired쿼리 파라미터 감지) (#19 @abc101 님께서 건의해주셨습니다.)
Fixed
- 사용자 프로필/게시글 목록/마이페이지에서 댓글 수가 0으로 표시되던 문제 수정 (#11 @laelbe 님께서 제보해주셨습니다.)
- 게시글 상세의 댓글/답글/첨부파일 헤더 카운트가 실제 수와 어긋나던 문제 수정 (#11 @laelbe 님께서 제보해주셨습니다.)
- 비로그인 상태에서 사용자 공개 프로필 페이지 접근 시 페이지가 표시되지 않던 문제 수정
- 주문 완료 페이지의 "이 배송지를 주소록에 저장" 버튼이 작동 불가 상태였던 문제 수정 — 호출 URL 누락으로 요청이 발송되지 않고 성공/실패 토스트도 표시되지 않던 회귀 해소
Changed
- 코어 최소 요구 버전을 7.0.0-beta.4 로 상향 — 엔진의
startInterval/stopInterval액션 핸들러(engine-v1.45.0) 의존 - 번들 모듈 의존성 최소 버전을
>=1.0.0-beta.3로 상향 (sirsoft-board, sirsoft-ecommerce, sirsoft-page)
[1.0.0-beta.3] - 2026-04-21
Fixed
- 알림 레이어를 닫을 때 목록이 읽음 상태로 갱신되지 않아 재토글 시 읽음 처리가 누락되던 문제 수정
- 알림 레이어 무한 스크롤 시 "안 읽은 알림만" 필터가 유지되지 않아 읽은 알림이 섞여 노출되던 문제 수정
- 알림 레이어 무한 스크롤 시 동일 페이지 API 가 중복 호출되던 문제 수정
- 안 읽은 알림이 없는데도 알림 레이어를 닫을 때 읽음 처리 API 가 불필요하게 호출되던 문제 수정
- 알림 드롭다운이 화면 경계를 벗어나지 않도록 자동으로 좌/우 정렬 전환 및 최대 너비 제한
[1.0.0-beta.2] - 2026-04-20
Added
- NotificationCenter 컴포넌트 — 알림 드롭다운, 무한 스크롤, 안 읽은 필터, 개별/전체 삭제 (관리자 템플릿과 동일 UX)
- 알림 전체 삭제 확인 모달 추가
- 마이페이지 알림 목록에 "안 읽은 알림만" 필터 토글 추가
- 실시간 알림 수신 시 카운트 갱신 + 토스트 표시 (WebSocket 연동)
- 게시판/쇼핑몰 레이아웃에 SEO 설정 적용
- 게시글 상세 페이지에 이전글/다음글 네비게이션 추가 — 독립 API로 비동기 로딩하여 초기 렌더링 속도 개선
Changed
- 코어 최소 요구 버전을 7.0.0-beta.2 로 상향
- 모듈/플러그인 의존성 버전 제약을 실제 릴리스 버전에 맞춰 정비
- TabNavigation / Header / MobileNav / PageSkeleton 컴포넌트를 반응형으로 개선 —
useResponsive()hook 기반 단일 분기 렌더링 - 헤더 알림 버튼을 NotificationCenter 드롭다운으로 교체
- 언어 선택 UI를 하드코딩에서
localeNames기반 동적 생성으로 전환 - HtmlContent DOMPurify를 FORBID 방식으로 전환 (보안 기본값 항상 유지)
- HtmlEditor/HtmlContent를 extension_point로 변환
- 인기글 기간 필터 "전체" 옵션을 "연간"으로 변경
Fixed
- 마이페이지 배송지 관리에서 수정 버튼에 권한 체크가 누락되어 있던 문제 수정
- 인기상품/신상품/최근본상품 섹션 반응형 개선 — grid 기반 카드 크기 제어 및 스크롤 버튼 breakpoint별 비활성화 처리
- 다크 모드 variant 누락 보완
- FileUploader 갤러리 이미지 깨짐 수정 — stale closure 문제
- 사용자 화면 버전 배지 표현식 수정
- 모바일 메뉴 통합검색 Enter 키 미작동 수정 — keydown 액션 누락
- 상품 상세 페이지 모바일에서 가격이 중복 표시되던 문제 수정 — 모바일/데스크톱 가격 섹션을 상호 배타적 조건부 렌더링으로 분리
- 상품 상세 모바일 가격 표시에 할인율 누락 수정 — PC와 동일하게 할인율 표시 추가
- 주문 상세 아이템의 상태 뱃지·배송정보·구매확정/리뷰 버튼이 DOM에 이중 렌더링되던 문제 수정 — CSS hidden 토글에서 조건부 렌더링으로 전환
- 장바구니 요약 패널이 모바일에서 sticky로 고정되어 스크롤 시 비정상 동작하던 문제 수정
- 모달 내부 Select 드롭다운이 잘려 보이는 문제 수정
[1.0.0-beta.1] - 2026-04-01
Changed
- 오픈 베타 릴리즈
[0.5.1] - 2026-03-30
Changed
- 마이페이지 프로필 국가 입력항목 및 표시 숨김 처리 (_edit.json, _view.json)
Fixed
- 게시글 작성 폼의 첨부파일 안내 문구(최대 개수/용량)가 게시판 설정과 무관하게 고정 표시되던 문제 수정 — 게시판 설정값에 따라 동적으로 표시 (#228)
- 비로그인 사용자가 로그인이 필요한 게시판 접근 시 오류 화면이 순간 노출된 후 리다이렉트되던 문제 수정 — "로그인이 필요합니다" 안내 후 로그인 페이지로 이동 (#228)
- 본인이 작성한 댓글/답글의 수정·삭제 버튼이 표시되지 않던 문제 수정 (#228)
- 주문 상세·결제 페이지 배송지 다국어 키 누락 수정 —
mypage.order_detail.paid_at,shop.checkout.intl_*키 9개 추가 (ko/en mypage.json, shop.json)
[0.5.0] - 2026-03-30
Added
- 상품 상세 페이지에 1:1 문의 QnA 탭 화면 추가
- 비로그인/로그인/관리자 권한에 따라 버튼 및 기능 분기
- 문의 클릭 시 내용과 답변 인라인 펼침
- 비밀글 토글 필터 (전체 / 비밀글 제외)
- 문의 작성/수정/삭제 모달, 관리자 답변 등록/수정/삭제
- 작성자명 마스킹, 비밀글 잠금, 페이지네이션
- 마이페이지에 상품 1:1 문의내역 탭 추가
- 내 문의 목록, 답변 여부/내용 확인
- 필터 탭 (전체 / 답변 대기 / 답변 완료)
- 문의 수정, 삭제 (답변 유무에 따라 삭제 안내 모달 분기)
- 문의 게시판 미설정 시 안내 화면 표시
- TabNavigation 컴포넌트: 모바일 배지 가로 배치 개선
[0.4.34] - 2026-03-30
Fixed
- 다크모드 전수 조사 및 수정 — TSX 컴포넌트 약 11건의 누락된
dark:variant 추가- FileUploader(FileList, SortableThumbnailItem, FileDropZone), Header, Modal 등
- main.css:
.btn-primary,.btn-danger,.btn-secondary,.btn-ghost다크 variant 추가
- Select 컴포넌트 다크모드 텍스트 색상 누락 수정 — 커스텀
bg-*className 사용 시 텍스트 색상 자동 보충 로직 추가 - safelist에
dark:hover:text-red-*,dark:hover:text-green-*,dark:focus:ring-blue-400패밀리 추가
[0.4.33] - 2026-03-30
Changed
- 페이지 전환 시 스켈레톤 UI → 스피너 로딩으로 변경 (transition_overlay style: skeleton → spinner)
- PageLoading.tsx 컴포넌트 신규 추가 (스피너 아이콘 + 다국어 텍스트, 포지셔닝/배경/다크모드 자체 제어)
- _user_base.json 및 mypage/*.json 7개 레이아웃 설정 변경
- 다국어 번역 키 추가: nav.loading (ko: "로딩 중...", en: "Loading...")
[0.4.32] - 2026-03-30
Fixed
- FileUploader 상품 수정 시 이미지 순서 유실 버그 3건 수정 — customOrder 상태 도입으로 기존/신규 파일 간 드래그 순서 보존, handleDragEnd에서 customOrder 기반 정렬, 업로드 완료 즉시 pending ID→hash 교체 (useFileUploader.ts)
- FileUploader onReorder 콜백 추가 — 드래그 순서 변경 및 업로드 완료 시 부모에게 정렬된 파일 목록 전달 (useFileUploader.ts, FileUploader.tsx, types.ts)
- FileUploader 업로드 응답 ResponseHelper 이중 래핑 대응 — response.data.data ?? response.data 패턴 (useFileUploader.ts)
[0.4.31] - 2026-03-29
Fixed
- FileUploader mime_type null 방어 코드 추가 — optional chaining으로 startsWith 에러 방지 (useFileUploader.ts, SortableThumbnailItem.tsx, FileList.tsx, utils.ts)
- FileUploader 대표이미지 식별 hash 기반 전환 — primaryFileId 비교/이벤트에 hash 우선 사용, 복사 모드(id 없는 이미지) 삭제 시 서버 API 호출 스킵 (useFileUploader.ts, FileList.tsx, types.ts)
- FileUploader 복사 모드 이미지 삭제 후 재출현 버그 수정 — deletedIdsRef에 hash 추가 추적, initialFiles 동기화 시 hash 기반 필터링 (useFileUploader.ts)
[0.4.30] - 2026-03-28
Fixed
- FileUploader 업로드 후 'uploading' 항목 영구 잔류 버그 수정 —
response.data?.data이중 접근을response?.data로 수정 (ApiClient가 Axios response.data를 이미 언래핑하므로), attachment null 시 에러 상태 전환 방어 로직 추가 (useFileUploader.ts) (#225)
Added
- FileUploader 업로드 응답 파싱 테스트 추가 — renderHook 기반 훅 직접 테스트로 정상 파싱 및 null 응답 방어 검증 (FileUploaderUpload.test.ts) (#225)
[0.4.29] - 2026-03-27
Changed
- Toast 기본 위치를 top-right → bottom-center로 변경 — 우측 상단 버튼과의 겹침 해소 (#148)
- Toast 숨김 애니메이션 방향을 position에 따라 분기 처리 (bottom → 아래로, top → 위로)
[0.4.28] - 2026-03-26
Fixed
- FileUploader 컴포넌트 모달 내 사용 시 무한 렌더 루프로 인한 모달 닫기/등록 버튼 미작동 수정:
initialFiles = []기본값이 매 렌더마다 새 참조 생성 → useEffect 무한 실행 → startTransition 모달 닫기 렌더 영구 차단. 모듈 레벨 EMPTY_FILES 상수 + useMemo 기반 참조 안정화로 해결 (FileUploader.tsx, useFileUploader.ts)
[0.4.27] - 2026-03-26
Fixed
- 리뷰 작성 모달 닫기/등록 버튼 클릭 불가 수정:
flex flex-col max-h-[75vh]이중 overflow 래퍼 제거 —max-h-[75vh]가 Tailwind CSS 빌드에 미포함되어 높이 제한 미적용 → 콘텐츠가 Modal 컴포넌트의max-h-[90vh] overflow-hidden경계를 초과하여 버튼 영역이 클리핑됨. 구매확정 모달과 동일한 플랫 구조로 변경 (_modal_write_review.json)
[0.4.26] - 2026-03-26
Fixed
- FileUploader accept 검증에서 MIME 타입 와일드카드(image/, video/ 등) 미지원 버그 수정 (useFileUploader.ts)
- 리뷰 작성 모달 닫기 불가 버그 수정: 모달 최상위 actions의 onClose 이벤트가 모달 닫기 기능 충돌 (_modal_write_review.json)
- 리뷰 작성 모달 FileUploader 미지원 props 제거: showPreview, multiple, buttonLabel, maxFileSize → maxSize
Added
- 리뷰 작성 모달 제출 버튼 스피너 표시 (구매확정 모달 패턴 동일: Icon spinner + animate-spin)
[0.4.25] - 2026-03-25
Fixed
- 주문 상세 쿠폰 할인코드 참조 키 수정:
discountCodes→discount_codes(snake_case 정규화) (_items.json)
[0.4.24] - 2026-03-25
Added
- 주문 취소 모달: 주문금액 비교 테이블 (취소 전/후 13개 항목 비교 + 적색 하이라이트 + 다통화 인라인 표시)
- 주문 취소 모달: 쿠폰 상세 표시 (상품/주문/배송비쿠폰별 적용 쿠폰명 + 할인금액)
- 주문 취소 모달: 상품 소계 표시 (단가 × 수량 = 소계)
- 다국어 키 18개 추가 (ko/en — comparison_title, col_before, col_after 등)
Changed
- 주문 취소 모달 크기 조정 (size: lg → width: 750px, max-w-full)
- 취소 모달 "환불 예정금액" 섹션을 "주문금액 비교" 테이블로 전면 교체
[0.4.23] - 2026-03-25
Added
- 주문 상세 상품 영역(_items.json): 체크박스 기반 상품 선택 + 상태 뱃지 + 배송사/운송장 표시 + 취소 버튼 이동
- 주문 상세(show.json): selectedItemIds, selectAllItems initLocal 상태 추가
Fixed
- 주문 취소 모달(_modal_cancel.json): isOpen prop 기반 제어에서 openModal/closeModal 패턴으로 전환 — modals 섹션에서 모달이 열리지 않던 버그 수정
- 주문 취소 모달: 커스텀 헤더 제거(중복 닫기 버튼/빈 헤더 해결) — Modal title prop 사용
- 주문 취소 모달: cancelReason setState가 모달 격리 스코프에 기록되어 커스텀 핸들러에서 읽지 못하던 버그 수정 — $parent._local 패턴 적용
- 주문 취소 버튼: 상품 미선택 시 숨김 → 비활성화(disabled) 상태로 변경
[0.4.22] - 2026-03-26
Added
- 게시판 목록/상세에서 manager 권한 사용자 대상 "삭제된 게시글 포함" / "삭제된 댓글 포함" 토글 UI 추가
- 게시판 목록 카드/갤러리 타입에 삭제 글 포함 토글 UI 추가
Fixed
- 대댓글 UI 들여쓰기 버그 수정
- PageSkeleton: Flex/Grid 컴포넌트의 레이아웃 props(justify, align, direction, gap 등)가 스켈레톤에서 누락되는 문제 수정 (resolveLayoutProps)
- UserInfo.tsx: AuthorInfo 인터페이스에 uuid 필드 누락 수정 (TS2339 빌드 오류)
[0.4.21] - 2026-03-24
Added
- 마이페이지 주문 취소 모달 확장: 부분취소 지원 (옵션별 수량 선택, 환불 예상 금액 표시)
- 주문 취소 관련 다국어 키 추가 (ko/en common, mypage)
Changed
- 주문상세(show.json): 취소 버튼 조건 개선 (취소 가능 상태에서만 표시)
Fixed
- 마이페이지 프로필에서 국가 선택 목록이 올바른 다국어 이름으로 표시되지 않던 문제 수정
- 마이페이지 프로필에서 언어 선택 목록이 앱 지원 언어 기준으로 표시되지 않던 문제 수정
[0.4.20] - 2026-03-23
Changed
_global.currentUser?.id→_global.currentUser?.uuid전환 (12개 파일, 24개 참조)- Header.tsx: currentUser.id → currentUser.uuid 전환
- UserInfo.tsx: author.id → author.uuid 프로필 URL 전환
- _post_form.json: author.id → author.uuid 전환
Fixed
- 글쓰기 버튼 abilities 비활성화 누락 수정 —
can_write !== true시 버튼 disabled 처리
[0.4.19] - 2026-03-23
Fixed
- 비회원 로그인 체크 시
_global.currentUser빈 배열 truthy 오판 수정 —?.uuid속성 체크로 변경 (7건: _info_summary, _welcome_card, _checkout_discount, _checkout_items, _checkout_mileage) - 쿠폰 다운로드 conditions 핸들러
"else"→"then"수정 — else 키 미지원으로 login_required_modal 미동작 (2건: _info_summary)
[0.4.18] - 2026-03-23
Fixed
- UserInfo 드롭다운 메뉴가 overflow-hidden 부모(카드/갤러리)에 가려지는 문제 — React Portal(createPortal)로 document.body에 fixed 렌더링, 스크롤/리사이즈 시 자동 닫기 추가
- 사용자 작성글(users/posts) 페이지네이션 무반응 수정 — setState key/value 리터럴 저장 + refetch 잘못된 핸들러명 → navigate+mergeQuery 패턴으로 변경, URL 동기화 지원
[0.4.17] - 2026-03-23
Added
- Hr (수평선) basic 컴포넌트 추가 — HTML
<hr>래퍼, className 지원
[0.4.16] - 2026-03-21
Added
- 마이페이지 6개 레이아웃에 3단계 스켈레톤 타겟팅 적용
transition_overlayoverride:target: "mypage_tab_content",fallback_target: "main_content_area"- 마이페이지→마이페이지 탭 전환: 탭 컨텐츠 영역만 스켈레톤 (탭 네비 유지)
- 헤더→마이페이지 전환: 컨텐츠 영역만 스켈레톤 (헤더 유지)
- 초기 로드(직접 URL): 전체 페이지 스켈레톤
- 대상: orders, profile, board, addresses, wishlist, notifications
- PageSkeleton: Header/Footer 컴포지트 스켈레톤 추가 — fullpage 스코프에서 헤더/푸터 구조 표현
Fixed
- PageSkeleton:
sanitizeClassName에서 standaloneborder클래스 미제거 — 스켈레톤 요소에 검정 테두리 누출 방지 - PageSkeleton:
filterChildren상호 배타적 값 분기(=== 'value') 감지 — 게시물 상세 등에서 type별 조건부 블록 중복 렌더링 방지 - PageSkeleton: 텍스트/버튼 스켈레톤 크기 실제 비율에 맞게 조정 (H1 w-2/5→w-3/5, Span w-1/6→w-1/4, Button w-20→w-24)
- PageSkeleton: children 있는 Button 컨테이너에 스켈레톤 경계(border+bg) 추가 — 버튼 형태 시각적 표현
[0.4.15] - 2026-03-21
Fixed
- PageSkeleton: children이 있는 Button을 컨테이너로 처리 — 게시판 행 래퍼(Button > desktop/mobile Div) 정상 렌더링
- PageSkeleton: empty state 조건(
=== 0,.length === 0,.total === 0) 부정 조건 감지 추가 —_empty_states.json스킵 - PageSkeleton: 비-컨테이너 컴포넌트 className sanitize 적용 — 스켈레톤 바에 원본 색상(bg-red-500 등) 누출 방지
[0.4.14] - 2026-03-21
Fixed
- PageSkeleton: Tailwind 반응형 display 클래스(
hidden lg:grid,lg:hidden) JS 런타임 해석 추가resolveResponsiveDisplay()—window.innerWidth기준 Tailwind cascade 적용- 데스크톱에서
hidden lg:grid→grid, 모바일에서lg:hidden→ 숨김 처리
- PageSkeleton: arbitrary
grid-cols-[...]값을 inlinegridTemplateColumnsstyle로 변환- Tailwind 빌드 CSS에 포함되지 않는 동적 grid 값 지원
- PageSkeleton: 로딩/에러 wrapper 컨테이너 스킵 — 모든 자식이 부정 조건(
!data,hasError)인 경우 컨테이너 자체 제거 - PageSkeleton: 표현식/반응형 해석 파이프라인 정리 —
renderSkeletonNode에서 일괄 처리 (표현식 → 반응형 → sanitize → grid inline style)
[0.4.13] - 2026-03-21
Added
- PageSkeleton 컴포넌트 — 레이아웃 JSON 컴포넌트 트리 기반 동적 스켈레톤 UI 렌더러 (engine-v1.24.0)
- 컴포넌트 트리를 재귀 순회하여 텍스트→바, 인풋→사각형, 미디어→큰 사각형 등 자동 생성
- DataGrid, Tabs 등 복합 컴포넌트 특화 스켈레톤 지원
- iteration 블록 기본 반복 횟수 설정 가능
- pulse/wave/none 애니메이션 지원, 다크 모드 호환
- 접근성: role="status", aria-busy="true"
Changed
_user_base.jsontransition_overlay를 skeleton 스타일로 변경 (opaque → skeleton)
[0.4.12] - 2026-03-21
Changed
_user_base.json페이지 전환 오버레이를 엔진 레벨transition_overlay로 교체 (engine-v1.23.0)- React 컴포넌트(PageTransitionBlur) → 순수 DOM 조작으로 변경 (stale flash 근본 해결)
target: "main_content_area"지정으로 헤더/네비게이션은 유지, 콘텐츠 영역만 오버레이
Removed
_user_base.json에서 PageTransitionBlur 컴포넌트 제거 (transition_overlay로 대체)
[0.4.11] - 2026-03-21
Added
- PageTransitionBlur 컴포넌트 — 페이지 전환 시 전체 콘텐츠 블러 오버레이 (TransitionManager 구독)
_user_base.json에 배치, 레이아웃 전환 시 stale DOM flash 방지- backdrop-blur-sm + bg-white/30 dark:bg-gray-900/30 + pointer-events-none
- PageTransitionIndicator(z-50)보다 아래 레이어(z-40)에 위치
UserInfo컴포넌트subTextTitleprop 추가 — 날짜 tooltip 지원
Changed
- 게시판 레이아웃 날짜 표시 —
created_at→created_at_formatted+titletooltip 적용 (14개 파일)
Fixed
UserInfo드롭다운이 카드형/갤러리형에서 잘리거나 겹치는 문제 수정 (absolute→fixed포지션)- 블라인드/삭제 게시글의
UserInfo드롭다운 메뉴가 투명하게 보이던 문제 수정 - Font Awesome Pro 아이콘 4종 → Free 버전으로 교체
[0.4.10] - 2026-03-19
Added
- seo-config.json
header_nav렌더 모드 — Header 컴포넌트 SEO 렌더링: 사이트명 링크 + 정적 네비게이션($t: 다국어 키) + boards iterate 네비게이션 - seo-config.json
footer_nav렌더 모드 — Footer 컴포넌트 SEO 렌더링: 사이트명 + 소셜 링크 + 커뮤니티/정보/정책 링크 그룹($t: 다국어 키) + 저작권 + Powered by - Header/Footer component_map
render속성 변경 —text_format→header_nav/footer_nav전환
[0.4.9] - 2026-03-19
Added
- _user_base.json
meta.seo.data_sources에boards추가 — SEO 렌더링 시 게시판 목록 데이터 사전 로드 - _user_base.json
meta.seo.vars.site_name추가 — Header/Footer seoVars 치환용
[0.4.8] - 2026-03-19
Added
- seo-config.json
seo_overrides섹션 추가 —_local.collapsedReplies와일드카드 오버라이드로 대댓글 SEO 강제 펼침 - seo-config.json
pagination_links렌더 모드 + Pagination 컴포넌트 렌더 설정 추가
[0.4.7] - 2026-03-19
Added
- seo-config.json Avatar/UserInfo text_format 렌더 모드 추가 — 댓글 작성자 닉네임, 작성일 SEO HTML 출력 (
{author.nickname}dot notation)
[0.4.6] - 2026-03-19
Added
- _user_base.json에 기본 SEO 설정 추가 (
enabled: false,og.type: "website") — 자식 레이아웃 SEO 상속 기반 마련
[0.4.5] - 2026-03-18
Changed
- 위시리스트 레이아웃 페이지네이션 경로 수정 —
WishlistCollection응답 구조 대응 (wishlist.data.total→wishlist.data.pagination.total등)
[0.4.4] - 2026-03-18
Added
- seo-config.json에
product_card_viewfields 렌더 모드 추가 — ProductCard 컴포넌트의 상품 정보(이미지, 가격, 할인, 라벨 등) SEO HTML 생성
Fixed
- 상품 목록 레이아웃 데이터 경로 수정 (
products?.data→products?.data?.data) — ProductCollection 응답 구조 대응 - seo-config.json Header/Footer format 변수명 수정 (
siteName→site_name) — seoVars 주입 키와 일치
Changed
- shop/index.json SEO data_sources에
categories추가 — 카테고리 데이터 SEO 활용
[0.4.3] - 2026-03-18
Added
- seo-config.json에
text_props,attr_map,allowed_attrs선언 추가 — 텍스트 추출, 속성 매핑, 허용 속성을 템플릿 수준에서 선언 - 레이아웃 JSON
meta.seo에page_type,toggle_setting,vars선언 추가 — SEO 변수 치환, 페이지 유형, 모듈 SEO 토글을 레이아웃 책임으로 이전
Changed
- SEO 엔진 하드코딩 제거 — text_props/attr_map/allowed_attrs, vars/page_type, toggle_setting 모두 선언적 설정으로 이전
[0.4.2] - 2026-03-18
Added
- seo-config.json Icon 컴포넌트
name_to_class속성 추가 — name prop을 Font Awesome CSS class로 변환 - seo-config.json Header/Footer 컴포넌트
text_format렌더 모드 적용 — 빈 태그 방지
Fixed
- seo-config.json image_gallery src 필드 패턴에
download_urlfallback 추가 — DB url 컬럼 비어있을 때 API 서빙 URL 사용
[0.4.1] - 2026-03-18
Fixed
- seo-config.json image_gallery 렌더 모드 alt 필드 패턴 수정 (
{alt}→{alt_text_current|alt_text|alt},{url|src}→{url|src|image_url})
[0.4.0] - 2026-03-18
Added
- seo-config.json에 기본 컴포넌트 30개 매핑 추가 (Div, Span, P, H1-H6, A, Button, Img 등)
- seo-config.json에 render_modes 섹션 추가 (image_gallery, tab_list, text_format, html_content)
- seo-config.json에 self_closing 태그 목록 추가 (img, input, hr, br)
Changed
- SEO 컴포넌트→HTML 매핑을 엔진 하드코딩에서 seo-config.json 선언적 설정으로 이전
[0.3.2] - 2026-03-18
Added
- 상품 상세 리뷰 탭 구현
- 별점 통계: 평균 별점 및 1~5점 분포 바 표시
- 옵션 필터: 구매 옵션별 리뷰 필터링
- 포토리뷰 필터: 이미지 있는 리뷰만 보기
- 정렬: 최신순 / 별점 높은순 / 별점 낮은순
- 리뷰 이미지 미리보기 모달 (슬라이더, 이전/다음 탐색)
- 리뷰 이미지 최대 4개 그리드 표시, 초과 시 +N 오버레이
- 상품 카드에 평균 별점 및 리뷰수 표시
- 리뷰 관련 다국어 키 추가 (한국어/영어)
Fixed
- 별점 분포 바 너비 계산 수정
- 개별 리뷰 별점 아이콘 표시 수정
[0.3.1] - 2026-03-17
Fixed
- 로그인 성공 시 "이미 로그인되어 있습니다" 중복 토스트 수정
- 프로필 메뉴 주문내역/찜목록 navigate 경로 수정
- 주문 배송지 변경 openModal 핸들러 포맷 수정 (
params.modalId→target) - 마이페이지 배송지 삭제 버그 수정 —
handler: "confirm"→ setState + openModal 모달 패턴 전환 - 마이페이지 배송지 기본배송지 체크 버그 수정 —
editingAddress: null→{ is_default: false }초기화 - 마이페이지 배송지명
[object Object]표시 수정 — Form auto-binding name prop 제거 - 마이페이지 배송지 카드 간격 미적용 수정 — iteration/space-y 요소 분리
- 배송지 덮어쓰기 모달 truthy 체크 수정 (
editingAddress?.id)
Added
- 마이페이지 배송지 삭제 확인 모달 (스피너 처리 상태 포함)
- 배송지 삭제 관련 다국어 키 추가 (
delete_title)
Changed
- 마이페이지 배송지 수정/삭제 아이콘 버튼 → 텍스트 버튼 변경
- 마이페이지 배송지 기본배송지 라벨-체크박스 연동 (htmlFor)
[0.3.0] - 2026-03-07
Added
- 마이페이지 배송지 관리 화면 (목록, 추가/수정/삭제 모달)
- 체크아웃 배송지 저장 체크박스 및 배송지명 입력
- 체크아웃 배송지 관리 모달 (신규 배송지 추가/선택)
- 주문상세 배송지 변경 모달
- 배송지명 중복 덮어쓰기 확인 모달
- 마이페이지/체크아웃 배송지 관련 다국어 키 추가 (ko/en)
Changed
- 체크아웃 배송비 표시 영역 배송지 변경 연동 개선
- 체크아웃 주문요약 결제수단 바인딩 수정 (
_computed.selectedPaymentMethod사용)
Fixed
- 체크아웃 무통장입금 결제수단이 'card'로 잘못 전송되던 문제 수정
- 배송지 변경 시 배송비 미재계산 수정
- 배송지 모달 폼 전송 실패 수정
[0.2.7] - 2026-03-16
Fixed
- 상품 그리드 페이지네이션 수정 — ServerSidePagination 컴포넌트 전환
- 검색 필터 바 카테고리 경로 수정
Changed
- 라이선스 프로그램 명칭 정비
[0.2.6] - 2026-03-13
Added
- 이미 신고한 게시글/댓글의 신고 버튼 비활성화 처리 추가
Changed
- 카드형/갤러리형 게시글 목록 레이아웃 재설계 — UI 구조 및 표시 방식 개선
- 카드형 게시판 좌우 여백 및 썸네일 이미지 모서리 디자인 개선
- 블라인드 처리된 게시글 안내 메시지 통일
Fixed
- 존재하지 않는 게시글 접근 시 404 페이지로 이동하지 않던 문제 수정
[0.2.5] - 2026-03-12
Added
- 신고 모달 자동 블라인드 사유 다국어 키 추가 (ko/en)
- manifest에 license 필드 및 LICENSE 파일 추가
Changed
- 신고 모달 상세 사유 입력란 플레이스홀더 문구 수정
[0.2.4] - 2026-03-11
Changed
- 게시판 레이아웃 10파일의
permissions→abilities,user_permissions→user_abilities키 수정 — 백엔드 abilities 표준에 맞춤 - 상품 Q&A 탭의
permissions?.posts_create→abilities?.can_write키 수정 - 마이페이지 배송지 삭제 버튼 조건을
!address.is_default→address.abilities?.can_delete === true변경
[0.2.3] - 2026-03-10
Fixed
- 댓글에서 답글 버튼이 게시판 설정과 무관하게 표시되지 않는 버그 수정
- 댓글 더보기 메뉴(답글/수정/삭제)가 조건에 따라 올바르게 표시되지 않는 버그 수정
[0.2.2] - 2026-03-09
Added
- 게시판 index/show/form 유형별 레이아웃 구조 개편 — 유형별 UI를
partials/board/types/유형/독립 partial로 분리하여, 새 유형 추가 시 기존 파일 수정 없이 새 파일 생성만으로 완결되도록 개선 - 게시글 이전/다음글 네비게이션을 별도 partial로 분리
Changed
- 갤러리형 게시글 목록 레이아웃의
permissions?.can_view바인딩을abilities?.can_view로 변경 (코어 표준화)
Fixed
- 비밀글 수정폼에서 비밀번호 확인 후 게시글 내용이 표시되지 않던 문제 수정
- 게시글 상세 답글 목록이 반복 렌더링되지 않던 표현식 오타 수정
[0.2.1] - 2026-03-06
Fixed
- 상품 상세 쿠폰 배지 데이터 경로 수정 (
productDownloadableCoupons.data→.data?.data) - 쿠폰 배지/확인 모달 API 필드 매핑 수정 (
discount_type/discount_value→benefit_formatted,name→localized_name,id→coupon_id) - 다운로드 완료 쿠폰 비활성화 상태 추가 (
is_downloaded기반 disabled + 아이콘 전환) - 쿠폰 다운로드 후 상품 상세 쿠폰 목록 즉시 갱신 (
refetchDataSource추가) - 핸들러명 수정:
refreshDataSource(미존재) →refetchDataSource
[0.2.0] - 2026-03-06
Added
- 쿠폰 다운로드 모달 (
_modal_coupon_download.json) — 3-상태 분기(로딩/빈상태/데이터), 페이지네이션, 다운로드 버튼 - 쿠폰 다운로드 확인 모달 (
_modal_coupon_download_confirm.json) — 상품 상세 개별 쿠폰 다운로드 확인 - 로그인 필요 안내 모달 (
_modal_login_required.json) — 비로그인 사용자 쿠폰 다운로드 시도 시 - 상품 상세 쿠폰 배지 섹션 (
_info_summary.json) — 다운로드 가능 쿠폰 뱃지 표시, 로그인/비로그인 분기 - 체크아웃 할인 섹션에 쿠폰 다운로드 버튼 추가 (
_checkout_discount.json) checkout.json— 쿠폰 다운로드 모달 연동 (initLocal 상태 + modals 등록)show.json— 쿠폰 데이터소스 + 모달 3종 등록 + init_actions 상태 초기화- 쿠폰 다운로드 다국어 키 21건 추가 (ko/en
shop.json)
[0.1.5] - 2026-03-05
Changed
- 신고 모달 내부 상태 구조 개선 — 모달에서 정상적으로 데이터 접근 가능하도록 수정
- 신고 모달 취소 시 입력 내용 초기화 추가
Fixed
- 신고 모달에서 사유 미선택 시 콘솔 오류가 발생하던 문제 수정
- 게시글 상세 페이지 신고 폼 변수명 오타 수정
[0.1.4] - 2026-03-03
Changed
- 게시글 목록 답글 depth 시각화 —
style.marginLeft동적 계산 (depth * 1rem, 최대 10rem, 데스크톱·모바일 동일 적용) - 사용자 답글 버튼 — 공지글이 아니고 최대 답글 깊이 미만인 게시글에만 표시되도록 조건 수정
- 마이페이지 "내가 쓴 댓글" 탭 — Post 집계 기반 →
/me/my-commentsComment 기반 페이지네이션 전환 - 마이페이지 게시판
myCommentsdata sourceauto_fetch: false설정 (기본 탭 진입 시 불필요한 API 호출 방지)
[0.1.3] - 2026-03-02
Changed
- Footer JSDoc 주석 저작권 연도 2025 → 2026 변경
[0.1.2] - 2026-02-27
Changed
- 코어 페이지 기능을 sirsoft-page 모듈로 전환
- 페이지 조회 API를 모듈 엔드포인트(
/api/modules/sirsoft-page/pages/{slug})로 변경 - 회원가입 레이아웃에서 페이지 버전 관련 바인딩 제거
- 통합검색 페이지 탭을 모듈 API 기반으로 전환 (contents/policies → pages 통합)
- sirsoft-page 모듈 의존성 버전 조건 수정 (>=0.1.2 → >=0.1.1)
Removed
- 코어 페이지 API 참조 제거 (회원가입 약관/개인정보 data_source)
- user_consents 관련 version 바인딩 제거
[0.1.1] - 2026-02-24
Changed
- 버전 체계 조정 (정식 출시 전 0.x 체계로 변경)
- 모듈 의존성 버전 조건 수정 (>=1.0.0 → >=0.1.1)
[0.1.0] - 2026-02-23
Added
- 사용자 기본 템플릿 초기 구현
- 템플릿 구조 (template.json, routes.json)
- 기본 컴포넌트 세트 (Basic 30개, Composite 18개, Layout 4개)
- 인증 화면 (로그인, 회원가입, 비밀번호 찾기/재설정)
- 게시판 화면 (목록, 상세, 작성/수정, 인기글)
- 쇼핑몰 화면 (상품 목록/상세, 장바구니, 주문/결제, 주문 완료)
- 마이페이지 (프로필, 주소 관리, 주문 내역, 위시리스트, 알림)
- 검색 화면 (통합 검색, 카테고리별 탭)
- 정책 페이지 (이용약관, 개인정보처리방침, 환불정책, FAQ, 소개, 문의)
- 사용자 프로필 공개 페이지
- 에러 페이지 (403, 404, 500, 503)
- 커스텀 핸들러 (장바구니, 통화 포맷, 상품 옵션, 테마 전환, 스토리지)
- 다크 모드 지원
- 반응형 레이아웃
- 다국어 지원 (ko, en)
- 다중 통화 지원