Add Axios interceptor for automatic token refresh with mutex pattern
- api.ts: 401 응답 시 자동으로 refresh → retry, 동시 요청은 큐에 대기 (race condition 방지) - auth-context.tsx: interceptor에 콜백 연결 (토큰 갱신/로그아웃) - use-api.ts: 401 retry 로직 제거 (interceptor가 처리) - build.sh: NEXT_PUBLIC 환경변수 검증 단계 추가 - CLAUDE.md: 프론트엔드 빌드 절차 추가 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
41
sundol-frontend/build.sh
Executable file
41
sundol-frontend/build.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# .env 로드
|
||||
ENV_FILE="$SCRIPT_DIR/../.env"
|
||||
if [ -f "$ENV_FILE" ]; then
|
||||
set -a && source "$ENV_FILE" && set +a
|
||||
fi
|
||||
|
||||
# 필수 환경변수 검증
|
||||
echo "=== [0/3] 환경변수 검증 ==="
|
||||
REQUIRED_VARS=("NEXT_PUBLIC_GOOGLE_CLIENT_ID" "NEXT_PUBLIC_API_URL")
|
||||
for var in "${REQUIRED_VARS[@]}"; do
|
||||
if [ -z "${!var}" ]; then
|
||||
echo "ERROR: $var 가 .env에 설정되어 있지 않습니다. 빌드를 중단합니다."
|
||||
exit 1
|
||||
fi
|
||||
echo " $var = ${!var:0:20}..."
|
||||
done
|
||||
|
||||
echo "=== [1/3] Next.js 빌드 ==="
|
||||
npx next build
|
||||
|
||||
echo "=== [2/3] 심볼릭 링크 생성 ==="
|
||||
STATIC_SRC="$SCRIPT_DIR/.next/static"
|
||||
STATIC_DST="$SCRIPT_DIR/.next/standalone/.next/static"
|
||||
|
||||
if [ -L "$STATIC_DST" ] || [ -e "$STATIC_DST" ]; then
|
||||
rm -rf "$STATIC_DST"
|
||||
fi
|
||||
|
||||
ln -s "$STATIC_SRC" "$STATIC_DST"
|
||||
echo "링크 생성 완료: $STATIC_DST -> $STATIC_SRC"
|
||||
|
||||
echo "=== [3/3] PM2 재시작 ==="
|
||||
pm2 restart sundol-frontend
|
||||
|
||||
echo "=== 빌드 완료 ==="
|
||||
Reference in New Issue
Block a user