Tistory 글 160편을 Docusaurus로 옮기기
2022년 11월부터 2023년 4월까지는 Tistory에 글을 썼다. 알고리즘 풀이, 자바스크립트와 리액트 정리, 주간 회고 같은 글들이다. 학습 노트는 이미 이 Docusaurus 블로그에 모으고 있어서, 예전 글도 오늘 전부 옮겨 왔다.
2022년 11월부터 2023년 4월까지는 Tistory에 글을 썼다. 알고리즘 풀이, 자바스크립트와 리액트 정리, 주간 회고 같은 글들이다. 학습 노트는 이미 이 Docusaurus 블로그에 모으고 있어서, 예전 글도 오늘 전부 옮겨 왔다.
이번 달에는 퇴근 후 개인 프로젝트로 운영 도구를 하나 만들었다. 여러 나라의 오픈마켓에 상품을 파는 판매자가 원가와 할인을 관리하는 운영 도구다. 판매자 PC에서만 돌고, 마켓의 Open API를 로컬 Node 서버가 대신 호출한다.
이달 초 파일럿 도메인이 운영 시나리오 검증을 통과했다. 어제는 나머지 도메인을 전부 authFetch로 옮겼고, 오늘은 그 위에 같은 오리진 프록시를 얹었다.
7월에 다음 릴리스로 미뤄 둔 authFetch 연결 작업을 다시 잡았다. 예전 브랜치는 원격에서 지워지고 커밋만 남아 있었는데, 그사이 develop과 여섯 파일이 충돌했다. 브랜치를 되살리는 대신 설계부터 다시 쓰고 파일 단위로 복원하기로 했다.
빌드 로그를 보다가 운영 빌드가 Node 20.19.4로 돌고 있다는 걸 알았다. Node 20은 올해 4월 30일에 EOL이라 보안 패치가 더 나오지 않는다. 런타임을 올리기 전에, 그동안 "원래 그런가 보다" 하고 넘겼던 설정부터 하나씩 확인했다.
회사 밖에서 Python 사이드 프로젝트를 하나 시작했다. 가상자산 일봉 데이터로 매매 전략을 백테스트하고, 통과한 전략은 실제 돈 없이 모의거래로 매일 돌려 보는 도구다. 프론트엔드 밖의 코드를 오랜만에 처음부터 짰다.
QA에서 access 토큰 수명을 일부러 짧게 줄여 테스트하자 인증 쪽 문제가 여러 개 튀어나왔다. 자동 로그인을 끈 사용자는 토큰이 만료되면 화면이 무한 로딩에 빠졌고, refresh 토 큰까지 만료되면 요청마다 재시도가 반복됐다.
CRM 로그인과 계약서 서명에는 휴대폰 본인인증이 들어간다. QA에서 본인인증이 가끔 실패한다는 제보가 이어졌는데 재현이 잘 되지 않았다.
Next.js 16 브랜치를 QA 환경에 올려 보니 정적 페이지는 빨라졌는데 동적 페이지가 크게 느려졌다. 회원 상세 페이지의 문서 TTFB가 기존 392ms에서 2,813ms가 됐고, Server Action 뒤 화면이 반영되기까지 10초 가까이 걸렸다.
CRM을 Next.js 16으로 올리는 브랜치에서 Tailwind도 v3에서 v4로 올렸다. 공식 업그레이드 도구 한 번에 295개 파일이 바뀌었고 빌드도 통과했다. 그런데 화면을 보니 조건부 색상 몇 군데가 의도와 다르게 나왔다.