2026-07-28 Ruga 작업일지입니다. 오늘은 6건의 작업을 진행했습니다.

admin 공지사항

현상/기능

  • 구분을 공지, 안내, 휴진, 소식, 진료로 변경

현상/기능

  • 만료일 없이도 등록 · 기본 오늘+1달 · 「만료일 없음」 체크 시 날짜 제거

작업

  • 소스
  • NOTICE/GUIDE/CLOSED/NEWS/CLINIC
  • admin 구분 select 자동 반영
  • `lib/` · site/mock 상세 카테고리 동기화
  • `alter_hospital_notices_notice_type_values.sql` + apply 스크립트
  • 소스: — `noExpires` 체크 시 날짜 비움·disabled, 해제 시 오늘+1개월 복원

web 정적 이미지

탈모클리닉 이미지 서버 404

  • 증상: careGuide hair `hair-diagnosis.png` 서버 미표시
  • 원인: 운영 `http://…:3100/images/hair-diagnosis.png` 404 — `deploy/out/web/public/images`에 PNG 미포함(이전 패키지)
  • 조치: 로컬 `public/images` PNG 23개를 `deploy/out/web/public/images`에 복사. 서버에 `deploy/out` 재동기화 필요

web 공지사항

현상/기능

  • `/notice` 목업 데이터 삭제

현상/기능

  • 상단고정 처리된 내용 색상 달리 표시

현상/기능

  • 내용 상하·행간 공간 약 30% 축소, 한 페이지 10개

현상/기능

  • admin 등록 공지를 `/notice`에 표시, 목업 유지, 초과 시 페이징

작업

  • 소스: `lib/` — fillWithMock·site 폴백 제거(admin만), `notice/` 호출 정리
  • 소스: `NoticeItem.isPinned`, `lib/notices` 매핑, `/notice`·홈 Notice — amber 배경·배지
  • 소스: `NOTICE_PAGE_SIZE=10`, `notice/` — `py-11 md:py-16`, 행 `py-3.5`
  • 소스
  • `lib/` — `{ items, pagination }` · `fillWithMock` · `NOTICE_PAGE_SIZE`
  • 신규
  • `notice/` — `?page=` · force-dynamic · fillWithMock
  • `app/` — 반환형 변경 대응
  • 상세 `/notice/[id]`: 목업 상세 유지. admin id 상세는 추후 API 연동

admin 비포&애프터

현상/기능

  • DataTable에 홈페이지 미노출 상태도 표시

작업

  • 소스: — 컬럼 `홈노출`(노출/미노출, `isHidden`)

web 비포&애프터

비포&애프터 페이징 UI 미표시 수정

  • 증상: 등록 5건인데 `/obesity/beforeafter`에 페이징 UI 없음
  • 원인: `revalidate: 300` ISR 캐시가 예전 4건 응답을 유지 → totalPages=1
  • 수정: `getBeforeAfterCasescache: 'no-store'`, 게시판 `force-dynamic`, 페이징 표시를 `totalCount > limit` 기준으로 보강

현상/기능

  • 4개 이상이면 페이징 처리

현상/기능

  • `/obesity/beforeafter`에서 admin 미등록 목업 삭제

현상/기능

  • 팝업에서 이미지 영역 클릭 시 이미지만 더 크게

현상/기능

  • `/obesity/beforeafter`·`/hair/beforeafter` 항목 클릭 시 전체적으로 크게 보이게

현상/기능

  • `admin/before-after` 하단 추가문구가 `/obesity/beforeafter`에 적용되지 않음

작업

  • 소스
  • `lib/` — `{ items, pagination }` 반환, `BEFORE_AFTER_PAGE_SIZE=4`
  • 신규 — 이전/번호/다음
  • pagination·basePath props
  • `obesity|hair/beforeafter/` — `?page=` 서버 조회
  • `app/` — 반환형 변경 대응
  • `lib/` — `mergeWithMock` 제거, API 실데이터만 반환
  • `data/` — `mockBeforeAfterCases` 삭제(타입·라벨만 유지)
  • 영향: obesity/hair beforeafter, 홈 비포&애프터 프리뷰도 admin 데이터만 표시
  • 소스: — 이미지 라이트박스(Escape/배경 클릭 시 상세로 복귀)
  • 신규 — BEFORE/AFTER·설명·footerNote 확대 다이얼로그
  • `subpage/` — 비만/탈모 공용, 카드 클릭 → 모달
  • `obesity/beforeafter/`, `hair/beforeafter/` — summary 갱신
  • `data/` — `BeforeAfterCase.footerNote` 추가
  • `lib/` — API `footerNote` 매핑
  • 카드 하단에 `footerNote` 표시(없으면 기본 고지)

admin 인증

현상/기능

  • 로그인 session이 없거나 만료되면 로그인 페이지로 이동

작업

  • 소스
  • 미로그인 시 `/login?callbackUrl=` 명시 리다이렉트
  • 클라이언트 `unauthenticated` → `/login` 가드 추가
  • `refetchOnWindowFocus` + 5분 `refetchInterval`
  • 로그인 성공 시 `callbackUrl` 복귀