Skip to content

fix: BaseImage skeleton 표시 지연 처리#753

Open
bottlenote-app[bot] wants to merge 1 commit into
mainfrom
fix/base-image-skeleton-delay
Open

fix: BaseImage skeleton 표시 지연 처리#753
bottlenote-app[bot] wants to merge 1 commit into
mainfrom
fix/base-image-skeleton-delay

Conversation

@bottlenote-app

@bottlenote-app bottlenote-app Bot commented Jul 8, 2026

Copy link
Copy Markdown
Contributor

관련 이슈 (Related Issue)

  • N/A

PR 타입 (Type of Change)

  • ✨ feat: 새로운 기능
  • 🐛 fix: 버그 수정
  • ♻️ refactor: 리팩토링
  • 💄 style: UI/스타일 변경
  • 📝 docs: 문서 수정
  • 🔧 chore: 설정/빌드 변경
  • 🧪 test: 테스트 추가/수정

변경 사항 (Changes)

  • BaseImage skeleton 표시를 즉시 노출하지 않고 100ms 이후에도 이미지 로딩 중일 때만 표시하도록 변경
  • 이미지 로딩이 100ms 이내에 완료되는 캐시 히트/빠른 로딩 케이스에서는 skeleton이 깜빡이지 않도록 isLoadingshowSkeleton 상태를 분리
  • 로딩 완료 시 지연 타이머를 정리하고 skeleton 표시 상태를 초기화

변경 이유 (Reason for Changes)

  • 기존에는 isLoading 초기값이 true라 캐시된 이미지도 첫 렌더에서 skeleton이 잠깐 노출되어 UX상 깜빡임이 발생할 수 있었습니다.
  • useLayoutEffect로 paint 전 동기 체크를 수행하는 방식보다, 이미지가 많은 화면에서도 paint blocking 부담이 적은 100ms delayed skeleton 방식을 적용했습니다.

스크린샷 (Screenshots)

Before After
캐시/빠른 이미지 로딩에서도 skeleton이 순간 노출될 수 있음 100ms 이내 로딩 완료 시 skeleton 미노출

테스트 방법 (Test Procedure)

  1. pnpm exec eslint src/components/ui/Display/BaseImage.tsx
  2. pnpm lint
  3. pnpm exec tsc --noEmit 실행 시 기존 src/api/auth/auth.api.test.ts의 Response mock 타입 오류로 실패 확인

셀프 체크리스트 (Self Checklist)

  • 로컬에서 정상 동작 확인
  • pnpm lint 통과
  • 불필요한 console.log 제거
  • 반응형/모바일 대응 확인 (UI 변경 시)

참고 사항 (Additional Information)

  • 신규 의존성 추가 없음
  • pnpm lint는 기존 warning만 출력하고 exit code 0으로 통과했습니다.
  • tsc --noEmit 실패는 이번 변경 파일이 아닌 기존 테스트 mock 타입 이슈입니다.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants