Intercepting Route에 새로고침용 페이지 붙이기
QA 기간이라 하루에 고치는 이슈가 열 개를 넘는다. 그중 원인을 제대로 이해하고 고친 게 하나 있어서 적어 둔다.
QA 기간이라 하루에 고치는 이슈가 열 개를 넘는다. 그중 원인을 제대로 이해하고 고친 게 하나 있어서 적어 둔다.
QA 기간이라 이번 주는 버그를 잡는 커밋이 대부분이었다. 그중 두 달 넘게 마음에 걸려 있던 시간대 문제를 정리했다.
개인 레슨 관리와 통계 화면에 '엑셀 다운로드' 버튼을 붙였다. 파일은 서버에서 만들지 않고, 엑셀용 데이터 조회 API의 JSON을 받아 브라우저에서 xlsx 라이브러리로 만든다.
로그인하고 센터를 고르면 지금까지는 센터 정보 페이지로 들어갔다. 이번에 그 자리에 대시보드를 만들었다. 날짜별로 가입 고객, 이용 고객, 매출, 개인 레슨 현황을 한 화면에 모아 보여주는 페이지다.
CRM은 한 센터의 대표, 매니저, 팀장, 트레이너가 같이 쓴다. 지금까지는 누가 로그인해도 같은 화면이 보였는데, 이번 주부터 권한에 따라 수정 기능을 막는 작업을 했다.
QA 서버에 배포가 돌기 시작하면서 기능 말고 운영 쪽 작업이 늘었다. 이번 2주 동안은 에러가 났을 때 어디서 잡히고 누가 알 수 있는지를 정리했다.
1월에 쿠키로 로그인을 만들 때는 액세스 토큰이 만료되면 그냥 로그인 화면으로 보냈다. 이번 주에 로그아웃 기능을 붙이면서, 미뤄 두었던 토큰 갱신도 같이 처리했다.
회원 상세 페이지에 실제 API를 붙이는 차례가 왔다. 그런데 page.tsx 하나에 회원 정보, 상품 카드, 결제 내역 테이블이 다 들어 있어서 API를 붙이기 전에 먼저 쪼갰다.
CRM 웹에 사용 데이터를 쌓기 위해 Google Analytics를 붙였다. 마침 Next.js 14.1에서 @next/third-parties가 나와서 그걸 써봤다.
회사에서 App Router로 CRM을 만들고 있지만, 일정에 쫓기다 보니 이해하지 못한 채 넘어간 부분이 많았다. 1월 한 달은 주말과 퇴근 후에 X(트위터) 클론을 만들면서 Next.js 14를 처음부터 다시 짚었다.