#Next.js
글 6편
-
localStorage에 남은 isAuthenticated: true가 로그인을 막았다
문제: 로그인 페이지가 “로딩 중…“에서 안 넘어간다 사용자 포털 버그 리포트 한동안 안 쓰다가 다시 진입하면 로그인 화면이 “로딩 중…“만 표시한 채 정지 폼 미표시 → 로그인 경로 없음 localStorage 비우면 정상 복귀 localStorage를 비워야 풀린다 → 원인은 ...
-
invalidateQueries를 refetchQueries로 바꿨더니
문제: mutation 후 목록이 즉시 안 바뀐다 관리자 포털과 사용자 포털 양쪽에서 반복된 QA 피드백. 증상 — 항목을 삭제하거나 생성했는데 목록이 그대로 반영 시점 — 탭을 옮겼다 오거나 새로고침한 뒤 전제 — mutation 성공 후 invalidateQueries 호출 중...
-
게이트웨이가 죽었는데 사용자가 F5를 누른다 — 브라우저 서킷 브레이커
문제: 새로고침이 서버를 한 번 더 때린다 구성: 같은 백엔드를 공유하는 쌍둥이 Next.js 프론트엔드 — 관리자 포털, 사용자 포털 게이트웨이가 502/503/504 반환 시 두 앱 모두 전역 오버레이 표시 (“잠시 후 다시 시도해 주세요”) 진짜 문제는 그 다음: 사용자가 멈...
-
navigator.clipboard는 HTTPS에서만 동작한다
문제: 복사 버튼이 아무 반응이 없다 화면: 관리 화면 기능: 값 복사 버튼 로컬: 정상 동작 배포 환경: 버튼 눌러도 무반응 에러 토스트 없음, 콘솔 출력 없음 원인 위치 — 코드가 아니라 배포 환경 조건: HTTPS가 아닌 환경에서 서비스되는 경우 navigator.clipbo...
-
탭 상태를 useState에 두지 마라 — URL 파생 상태로 바꾸기
문제: 사이드 메뉴로 이동하면 탭이 안 바뀐다 관리자 포털의 여러 목록 화면이 탭 보유 탭 상태 위치 — ?tab= 쿼리 파라미터 그 덕에 되는 것 — 링크 공유, 새로고침 담당 훅 — useTabQuery 하나 QA에서 올라온 증상 사이드 메뉴 구성 — ?tab=code 링크와 ...
-
사이드바 권한 분기 100줄을 지우고 ICON_MAP만 남기다
문제: 사이드바가 권한을 안다 사용자 포털 사이드 메뉴: 상수 배열로 하드코딩 두 그룹의 메뉴가 파일 안에 박혀 있음 각 항목에 permission 문자열 부착 // 권한 코드와 경로는 가명. 구조만 그대로다. const GROUP_A_MENU_ITEMS = { ALPHA: { l...