Commit graph

45 commits

Author SHA1 Message Date
2f64941817 심볼 계산기 계산 기능 + 체납 툴팁 + 탭 저장
- 완료일 계산: 매일 일퀘 + 매 목요일 주간퀘 n회분 일괄 지급으로 시뮬레이션
  (extra는 즉시 적용, 금일 일퀘 완료면 오늘 제외)
- 각 카드의 남은 일수/예상 완료일, 탭 전체의 완료 예상일 표시
- 주간퀘에 0회(0개) 옵션 추가
- 성장치 호버 시 현재 성장치로 올릴 수 있는 최대 레벨 툴팁
- 선택 탭(아케인/어센틱/그랜드 어센틱)을 캐릭터별로 persist

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 15:06:45 +09:00
e01aa99069 심볼 계산기 계산값/API 연동/UX 보강
- /api/character/symbols 엔드포인트: Nexon API의 symbol-equipment를
  (type, region, level, growth, force) 구조로 정제 후 반환
- 프론트: useQueries로 각 캐릭터 심볼 자동 로드, 새로고침마다 갱신,
  syncCharacterSymbols로 store의 progress에 병합
- equipped 판정을 store 기반으로 전환
- 남은 심볼/필요 메소/체납 메소 실제 계산, 만렙 시 '-' 표시
- 성장치 라벨 현재 레벨 기준 표시, 만렙 시 MAX/amber 색상 + 퍼센트 숨김
- 일퀘/주간퀘/추가 심볼 비활성화 및 완료 토글 숨김 (만렙)
- 하단 요약 누적 체납/남은 필요 메소 실제 합산, 라벨 색상 통일
- 메소 값 호버 시 '억/만' 한글 축약 툴팁
- Select 비활성 상태에서 금지 커서 제거

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 14:27:01 +09:00
73c024b7a7 심볼 계산기에 zustand 도입 + 캐릭터별 상태 저장
- zustand + persist 미들웨어로 캐릭터 목록·선택 상태·심볼 진행 저장
- 스토어 스키마: progress[charId][symbolId] = { level, growth, daily, weeklyCount, extra, dailyDone }
- Symbol.jsx가 localStorage useState 코드 대신 useSymbolStore 사용
- SymbolCard가 charId 기반으로 값 읽기/업데이트
- 닉네임 입력/조회 버튼 높이 정렬 (border-2 → border + box-border)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 14:06:01 +09:00
34a8158074 심볼 레벨 메소 BIGINT 확장
그랜드 어센틱심볼 상위 레벨 메소가 INT(2.1B) 범위를 초과하므로
SymbolLevel.meso_cost를 BIGINT로 변경.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 13:59:44 +09:00
eb4369d8fb 심볼 계산기/관리자 API 연동 및 입력 확장
- 공개 /api/symbols 엔드포인트 추가 (레벨 포함)
- 심볼 계산기가 DB 데이터 기반으로 탭·카드 구성, 하드코딩 data.js 제거
- 심볼 카드 입력: 일퀘/주간퀘 Select(회→개 표기)/추가 심볼 3열
- 카드 상단에 '금일 일퀘 완료/미완료' 토글 (완료=에메랄드, 미완료=빨간색)
- 관리자 페이지: 목록/폼 실 API 연결, dnd-kit 드래그 순서 변경,
  레벨별 메소 입력 쉼표 포매팅 및 한글 요약 표시

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 13:43:52 +09:00
33de50bc2d 심볼 관리자 페이지 UI + 심볼 테이블
- 모델 2개 추가: Symbol (type/region/image/max_level/daily_default/weekly_default/sort_order)
  + SymbolLevel (symbol_id/level/required_count/meso_cost)
- /admin/symbol 라우트와 심볼 목록/편집 UI (결정석 관리 스타일 차용)
- 심볼 목록 dnd-kit 드래그앤드랍 순서 변경
- 심볼 폼: 이미지 업로더, 종류/지역 입력, 만렙·일퀘·주간퀘 입력
- 레벨별 필요 개수/메소 테이블 (만렙에 따라 행 자동 조정)
- 메소 입력 쉼표 포매팅 + "N억 N,NNN만" 한글 요약 (amber, 고정 높이)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 13:06:30 +09:00
c9a130ea65 심볼 계산기 디자인 초안
- /symbol 경로에 Symbol 페이지 추가 (풀스크린 레이아웃)
- 아케인/어센틱/그랜드 어센틱 탭 (DB에서 대표 심볼 아이콘 가져옴)
- 캐릭터 닉네임 검색 → /api/character/search 연동 및 여러 캐릭터 추가 가능
- 캐릭터 카드: 큰 이미지 + 닉네임 + 레벨/직업 (좌우 스크롤)
- 카드 우상단 삭제 버튼
- 캐릭터 목록 + 선택 상태 localStorage 영속화
- 심볼 카드 그리드: 아이콘, 레벨, 성장치 진행바, 일퀘/주퀘 획득 입력,
  남은 심볼/필요 메소/체납 메소/남은 일수/예상 완료일 (목업)
- 하단 요약 카드: 만렙 완료 예상일 + 누적 체납 메소 + 누적 필요 메소

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 12:07:07 +09:00
317754206d 모바일 오버스크롤 배경 흰색 문제 해결
html/body에 background-color도 명시해 브라우저 고무줄 영역에서
흰색이 보이지 않도록 하고 overscroll-behavior-y: contain 추가.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 11:28:02 +09:00
d69f4f3322 해방 계산기 보스 이미지 png → webp 전환
- data.js의 보스 이미지 확장자와 QuestSelector/ProgressBar의 URL을 webp로 변경
- QUEST_BOSS_IMAGE_BASE 경로에서 중복된 /boss 제거

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-15 11:18:00 +09:00
aa5db4b4c2 해방 계산기 미사용 코드 정리
- WeekCard, WeeklyDesignMocks 컴포넌트 삭제 (현재 사용처 없음)
- progressByWeek/updateWeek/addWeek/removeWeek/setFirstWeekDate/totalCumulative 등
  주차별 모드 도입 전 잔여 코드 제거
- 사용하지 않는 export(addWeeks, getThursdayOfWeek) 및 import 정리
- calcMonthlyDoneEarn 미사용 함수 제거

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:36:32 +09:00
6243dea01e 주차별 모드 해방일 계산 + 헤더/주차 행 표시 정리
- weekly 모드 시뮬레이션: 1주차는 시작일 당일에 (주간-완료) 적립,
  2주차 이후 매 목요일에 해당 주차 설정의 주간 합 적립
- 검은 마법사: 슬롯 배정에 따라 1회씩 적립(이미 done이면 제외)
- 마지막 주차 이후로는 마지막 주차 설정을 매주/매월 반복 적용
- 헤더: 주간(초록) + 월간(노랑) / 6500 형식, 모드별 합산
- 주차 행 우측: 주간/월간을 두 줄로 색상 분리 표시 (월간은 있을 때만)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 19:33:31 +09:00
ef8f7d5ea4 주차별 계산 탭 - 주차 추가/삭제/편집 + 영속화
- WeeklyScheduler 컴포넌트: 주차 카드 리스트, 펼침 애니메이션, 추가/삭제
- 주차 추가 시 직전 주차 설정 복사 (done 상태는 초기화)
- 마지막 한 주차는 삭제 불가
- 주차별 날짜 범위 표시 (1주차는 시작 날짜부터 다음 목요일 전일)
- 검은 마법사 월별 슬롯 배정: 한 달에 한 주차만 선점 가능, 두 달 걸치는 주차는 빈 슬롯 활용
- 새 주차 추가 시 같은 달 중복이면 검은 마법사 자동 초기화
- 1주차에만 완료/미완료 버튼 노출
- Select 드롭다운을 portal로 이동해 부모 overflow:hidden 영향 제거
- state.schedulerWeeks로 슬롯별 영속화 + 마이그레이션

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:58:42 +09:00
d1ca41ed4a 해방 주차별 계산 탭 초안
- 계산 모드 탭(단순/주차별)을 상단으로 이동, 각 모드 독립 slot 저장
- 초기화 시 현재 모드 slot만 초기화, 다른 모드는 유지
- 주차별 카드 리스트 + 펼침 편집 영역 목업
- 편집 영역에서 기존 BossRow 재사용 (완료 버튼은 현재 주차에만)
- 검은 마법사 행 항상 표시, 같은 달 다른 주차 배정 시 비활성

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 18:41:53 +09:00
6ca610d014 공지 위젯 펼침/탭 전환 애니메이션 부드럽게
- 더보기/접기를 framer-motion height + opacity + translateY로 전환
- 탭 변경 시 AnimatePresence mode="wait"로 페이드+슬라이드 전환

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 17:15:55 +09:00
f7481acfa3 캐릭터 패널 보스 툴팁 순서 변경
보스 이름 · 난이도 → 난이도 · 보스 이름 순으로 표시하여 난이도 인지를 우선시.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 15:19:04 +09:00
d3fda95d04 해방 계산기 UI 다듬기
- 섹션 폭 max-w-3xl로 통일
- ProgressBar 초상화 테두리 제거, 세그먼트/초상화 간격 gap-2
- 1차 해방 라벨 색상을 에메랄드와 구분되는 보라(#a78bfa)로
- 예상 해방 날짜 텍스트 크기 키우고 요일 표시
- DatePicker 선택 날짜에 요일 표시
- Select 드롭다운이 아래 공간 부족하면 위로 펼침
- Select 옵션 패딩 py-2.5로 키움
- 주간 보스 설정 보스 초상화(w-10)·이름(text-base)·행 높이(h-16) 키움

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 14:22:20 +09:00
e418e651b8 관리자 이미지 그리드 열 수 증가 및 미리보기 픽셀 렌더링
- 그리드를 3/4/6열로 늘려 더 많은 이미지를 한 번에 표시
- 이미지 카드에 image-rendering: pixelated + w/h-full로 픽셀 아트 선명하게 표시

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 13:54:48 +09:00
61822345bf 레이아웃/스크롤바 개선
- Layout 배경 그라디언트를 body fixed 배경으로 이동 (스크롤 시 하단 배경 일관성)
- 해방 계산기 데스티니 탭 placeholder에 최소 높이 부여
- overlayscrollbars 도입: 메인 스크롤바가 콘텐츠를 밀지 않고 오버레이로 표시
- 내부 스크롤 영역은 얇은 커스텀 스크롤바 유지

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 13:35:39 +09:00
85f2d9c482 해방 계산기 추가 개선
- 해방 종류 탭(제네시스/데스티니) 상단에 추가, 데스티니는 구현 예정 안내
- 주간 보스 설정 탭 분리 (단순 계산 / 주차별 계산, 주차별은 준비 중)
- ConfirmDialog 디자인 개편 (아이콘 배지, 큰 타이틀/본문, 프레이머 모션 애니메이션)
- Select/QuestSelector 드롭다운 열림/닫힘 애니메이션
- 해방 계산기 페이지 풀스크린(푸터 숨김)
- 공개 이미지 조회 API(/api/images/:name) 추가
- 현재 진행 상태 섹션 컬럼 폭 조정

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 12:13:34 +09:00
1163f77266 해방 완료일 시뮬레이션 기반 로직으로 교체
포인트 이월(캐스케이드) 및 주간/월간 리셋을 정확히 반영하기 위해
weeksNeeded 공식 대신 이벤트 시뮬레이션으로 완료일을 계산.

- 시작일 당일: (주간 - 완료된 주간 몫) + (이번 달 월간, 검은 마법사 미완료 시)
- 이후 매주 목요일에 주간, 매월 1일에 월간 적립
- 누적이 잔여 흔적을 처음 넘는 이벤트 날짜가 해방일

메이플로드/츄츄지지 계산기 결과와 동일하게 동작함을 확인.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 11:52:44 +09:00
8eaf27d143 해방 주간 보스 설정 + 완료일 계산 로직
- 주간 보스 설정 카드: 보스별 난이도/파티/완료 토글, '격파 불가' 옵션
- 주간/월간 획득 포인트 분리 표시
- 완료일 계산: 시작일 주를 1주차로 포함, 매주 목요일 리셋 기준
- 공식: ceil((남은 흔적 + 완료 보스 포인트) / 주간 획득) + 월간 보스 달력 월(1일) 리셋 반영
- 전체 초기화 버튼
- 보스 이름 파일 경로 수정 (진 힐라, 검은 마법사 띄어쓰기)
- 보스 순서 수정 (더스크 → 진 힐라 → 듄켈)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 09:54:06 +09:00
f0c0ea3c1c 해방 계산기 현재 상태 입력 섹션 추가
- 시작 날짜 / 진행 중 퀘스트 / 현재 흔적 입력 카드
- 퀘스트 선택 드롭다운을 일반 보스 초상화 + 텍스트로 단순화
- 각 퀘스트별 최대 3000 흔적 누적 (다음 퀘스트로 자동 이월 안 함)
- 날짜 유틸을 dayjs(KST) 기반으로 통일

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 08:55:39 +09:00
f27c46f68d 캐릭터 카드 드래그 핸들 영역 제한
카드 전체가 드래그 리스너를 잡고 있어 태블릿에서 세로 스크롤이
불가능했던 문제 해결. useDragControls로 왼쪽 핸들 영역에서만
드래그가 시작되도록 변경.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 08:06:58 +09:00
0c6ccecc90 해방 진행도 UI 세부 조정
- 라벨/밑줄과 세그먼트 바 간격 조정
- 1차/2차 밑줄 사이 간격을 세그먼트 바와 동일하게 맞춤
- 세그먼트 진행도 색상을 인라인 스타일로 변경 (Tailwind 컴파일 이슈 회피)
- 예상 해방 날짜 표시 위치/스타일 다듬기

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 00:26:44 +09:00
f7b1c629f9 해방 계산기 진행도 UI 초안 추가
- 제네시스 8챕터 세그먼트 바 + 보스 초상화
- 1차/2차 해방 구분, 예상 해방 날짜 표시
- 다크 테마 커스텀 DatePicker 컴포넌트 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 00:22:46 +09:00
479835805e 푸터 문구를 NEXON 권장 영문 표기로 변경
- 'This site is not associated with NEXON Korea.'
- 'Data based on NEXON Open API.'

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:46:08 +09:00
6e1df46852 관리자 페이지 헤더/뒤로가기/메뉴편집 단축 제거
- AdminLayout 상단 ADMIN/관리자/로그아웃 헤더 제거
- 뒤로가기 버튼 제거 (홈 헤더 로고로 이동 가능)
- AdminFeaturePage의 메뉴 정보 편집 단축 링크 제거
- 로그아웃은 관리자 홈 하단에 작게 배치

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:42:28 +09:00
0fb325b815 헤더/탭 제목, 커스텀 툴팁, 캐릭터 입력 UI 개선
- 커스텀 Tooltip 컴포넌트 (portal, fadeIn, 자동 위치 보정)
- 헤더에 현재 메뉴 제목 표시 (브레드크럼 스타일)
- 브라우저 탭 제목 자동 동기화
- 캐릭터 닉네임 검색 입력 강조 (아이콘, 두꺼운 테두리, 그림자)
- 결정 개수 강조 (큰 폰트, amber 색상)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 20:38:01 +09:00
b980e7d78a 넥슨 Open API 사용 통계 스크립트 추가
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:21:40 +09:00
7b6a821f36 보스 결정 사용자 페이지 + UI/UX 개선
레이아웃:
- 풀스크린 모드 컨텍스트 (BossCrystal 페이지에서 푸터 숨김 + viewport 고정)
- 캐릭터 패널: 자연 높이 + viewport 한도 + 내부 목록 스크롤
- 보스 패널: 헤더 고정 + 목록 내부 스크롤
- 커스텀 스크롤바 (전역)

캐릭터 패널:
- framer-motion Reorder로 드래그앤드롭 정렬
- 가로 캐릭터 행 + 6x2 보스 그리드 + 난이도 영문 첫글자 뱃지
- 총 수익에 ResizeObserver 기반 자동 폰트 fit
- 캐릭터 삭제 시 첫번째 자동 선택, 입력 재개 시 에러 메시지 자동 제거

기능:
- 공개 보스/캐릭터 API 추가
- API 키 라이브 키로 변경

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 19:17:49 +09:00
793903668c 홈 페이지 공지 위젯 + 푸터 추가
- 넥슨 공지 위젯 (이벤트/캐시샵/업데이트/공지 탭)
- 이벤트/캐시샵은 진행중인 항목 모두, 그 외는 최근 6개
- 더보기/접기 grid-template-rows 애니메이션
- 캐시샵 ongoing_flag 대신 종료일 비교 (누락 항목 수정)
- 제목/부제목 분리, 달력 이모지로 기간 표시
- 공통 푸터 (저작권, 데이터 출처)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:48:05 +09:00
3df639c815 보스 폼 사용성 개선
- 가격 입력 시 Tab으로 다음 활성 가격 칸으로 이동 (체크박스 건너뜀)
- 최대 인원 기본값 6 → 3 (요즘 보스 기본)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:23:45 +09:00
89b0f1066d 하드 난이도 색상을 fuchsia(자홍)로 변경
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:13:06 +09:00
3fdd9fd981 난이도 배지 색상을 게임 내 이미지와 매치
이지(slate), 노말(sky), 하드(pink), 카오스(amber), 익스트림(red)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:09:23 +09:00
88c6d5d5f3 보스 목록 드래그 앤 드롭 정렬 추가
- @dnd-kit으로 드래그앤드롭 정렬 구현
- DragOverlay 패턴으로 부드러운 드래그 애니메이션
- 드롭 시 즉시 UI 반영 + reorder API 호출
- React 19 peer dep 충돌 해결을 위해 npm install --legacy-peer-deps 사용

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:06:08 +09:00
b885f464c3 보스 결정 관리 개선
- 최대 인원수를 보스 단위로 통합 (난이도별 → 보스 공통)
- 가격 입력 시 쉼표 자동 표시 (text + inputMode=numeric)
- registry 캐싱으로 sub-route 변경 시 화면 갱신 안되던 버그 수정

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 16:01:04 +09:00
39cda0d958 보스 결정 관리 페이지(프론트) 추가
- 보스 추가/편집/삭제 폼 (이름, 이미지, 난이도별 가격/인원)
- BossList: 등록된 보스 카드 목록 + 추가 버튼
- 동적 라우트가 sub-path 지원하도록 변경 (:slug/*)
- 커스텀 Checkbox/Select 컴포넌트
- number input 화살표 전역 제거
- 가격 입력 시 메소 단위 미리보기 표시
- 결정석 → 결정으로 용어 통일

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:41:47 +09:00
1de5dcb7b9 URL slug 기반 동적 기능 페이지 라우팅 추가
- features/registry.js: import.meta.glob으로 자동 컴포넌트 등록
- /:slug → features/{slug}/{PascalCase}.jsx 매핑
- /admin/:slug → features/{slug}/{PascalCase}Admin.jsx 매핑
- AdminHome 카드 분리 액션 (본체→기능 관리, ⚙→메뉴 정보 편집)
- AdminFeaturePage에 메뉴 정보 편집 단축 링크 추가
- 예시: features/boss-crystal/ stub 컴포넌트

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:27:04 +09:00
a0fd5a2dbb 메뉴 CRUD 백엔드 + 폼 개선
백엔드:
- Menu 모델 + admin/menus CRUD API + 공개 /api/menus 엔드포인트
- 정렬 변경(reorder) API 추가 (드래그앤드롭 대비)

프론트엔드:
- 메뉴 삭제 기능 (편집 모드 폼 좌측 빨간 버튼)
- ConfirmDialog를 공용 컴포넌트로 추출
- URL 입력을 prefix(/) 형태로 분리, 실제 URL 미리보기 표시
- 캐시 hit 시 폼 동기화 안되던 버그 수정 (useEffect로 데이터 sync)
- 전역 button/a 태그에 cursor-pointer 적용

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:20:46 +09:00
35df389141 이미지 페이징, React Query 도입, 메뉴 항목 추가/편집 폼 구현
- 이미지 목록 서버 사이드 페이징 + 검색 디바운싱
- 전역 React Query 도입 (useEffect → useQuery/useMutation)
- 메뉴 추가/편집 폼 (제목, 설명, URL, 이미지)
- 업로드된 이미지에서 선택하는 ImagePicker 모달
- 미선택 시 default.png를 fallback으로 사용
- AdminHome 카드 클릭 시 편집 페이지로 이동

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 15:11:48 +09:00
921ce9676b 이미지 다중 업로드/삭제 및 중복 방지 추가
- 한 번에 여러 이미지 업로드 (드래그/선택, 개별 이름 수정/제거)
- 다중 선택 삭제 모드 (선택 모드 토글, 전체 선택)
- 커스텀 확인 다이얼로그 (네이티브 confirm 대체)
- 이미지 이름 unique 제약 + 입력 시 실시간 중복/빈 값 검증
- 백엔드 다중 업로드 시 사전 중복 체크
- 카드에서 URL 표시 제거

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 14:42:51 +09:00
65fdc70ff2 이미지 관리 페이지 UI 구현
- 그리드 뷰로 업로드된 이미지 표시 (호버 시 URL 복사/삭제)
- 드래그 앤 드롭 + 클릭 업로드 모달
- 이름 검색 기능
- API 클라이언트가 /api/admin 호출 시 인증 헤더 자동 추가

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 14:27:00 +09:00
72ff284f20 관리자 대시보드 리디자인 및 메뉴/이미지 관리 페이지 추가
- 관리자 페이지 카드형 메뉴 구조로 개편 (DB 연동 준비)
- 메이플스토리 폰트, 단풍잎 favicon 적용
- 헤더 디자인 개선 (백드롭 블러, 단풍잎 로고)
- 홈 페이지를 메뉴 동적 로드 형태로 변경
- 보스 계산기 페이지 제거 (DB 기반으로 재구축 예정)
- 이미지/메뉴 관리 페이지 라우트 추가 (placeholder)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 14:20:32 +09:00
6c51e7d94d OAuth 제거, 닉네임 입력 방식으로 변경 및 관리자 페이지 추가
- 넥슨 OAuth 로그인 제거 (Redis, 세션, User 모델 등)
- 캐릭터 닉네임 입력 → API 키로 조회하는 방식으로 변경
- 관리자 페이지 추가 (/admin?key=<NEXON_API_KEY>)
- 보스 선택 UI를 3단 레이아웃(캐릭터/보스/결과)으로 리디자인
- 캐릭터 및 보스 선택 데이터 localStorage 저장

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 18:02:32 +09:00
4bbb496724 초기 프로젝트 설정
- React + Vite + Tailwind 프론트엔드
- Express + Sequelize + MariaDB 백엔드
- 넥슨 OAuth 2.0 인증 (캐릭터 목록 조회)
- 주간 보스 결정석 수익 계산기 UI (리스트형)
- Docker Compose + Caddy 리버스 프록시 설정
- 보스/난이도 이미지 에셋 포함

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 18:55:06 +09:00