Skip to content

[PR] ky 인스턴스 설정#20

Merged
kimnamheeee merged 1 commit intodevfrom
5-feature-ky-instance
Jan 9, 2026
Merged

[PR] ky 인스턴스 설정#20
kimnamheeee merged 1 commit intodevfrom
5-feature-ky-instance

Conversation

@kimnamheeee
Copy link
Collaborator

@kimnamheeee kimnamheeee commented Jan 9, 2026

#️⃣ 연관된 이슈

관련된 이슈 번호를 적어주세요. 예: #이슈번호
#5

#️⃣ 작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요. (이미지 첨부 가능)

ky 인스턴스 설정
아래와 같은 기능이 들어 있습니다


1. 환경 변수 기반 API Endpoint 관리

  • VITE_API_URL이 설정되지 않은 경우 애플리케이션 시작 시 즉시 에러 발생
  • 설정 누락을 런타임이 아닌 초기 단계에서 조기 감지

2. 공통 Request 설정

  • prefixUrl을 통한 API Base URL 일괄 적용
  • credentials: 'include' 설정으로 세션 기반 인증 지원
  • 기본 Content-Type: application/json 헤더 적용
  • 요청 타임아웃: 10초

3. 재시도(Retry) 정책

  • 최대 재시도 횟수: 2회
  • 재시도 대상 HTTP 메서드:
    • GET, POST, PUT, DELETE, PATCH, OPTIONS
  • 재시도 대상 상태 코드:
    • 408, 429, 500, 502, 503, 504
  • 인증 오류(401/403) 및 일반 클라이언트 오류는 재시도 대상에서 제외

4. 요청–응답 시간 측정

  • beforeRequest 단계에서 요청 시작 시간 기록
  • afterResponsebeforeError에서 요청 소요 시간 계산
  • WeakMap<NormalizedOptions, number> 사용으로 메모리 누수 방지

5. 개발 환경 전용 API 로깅

DEV 환경에서만 활성화

Request 로그

  • HTTP 메서드 및 요청 URL 출력
  • 재시도 설정 정보 출력
  • Authorization, Cookie 헤더 마스킹 처리

Response 로그

  • HTTP 상태 코드 및 성공 여부 출력
  • 요청 소요 시간(ms) 출력
  • 실패 응답의 경우 response body(JSON) 출력 시도

6. 민감 정보 보호

  • 로그 출력 시 인증/세션 관련 헤더는 ***로 마스킹
  • 보안 정보의 콘솔 노출 방지

7. 인증 에러(401 / 403) 통합 처리

  • beforeError hook에서 401 / 403 응답 감지
  • 해당 응답을 도메인 에러인 AuthError로 변환하여 throw
  • HTTP client는 상태 감지 역할만 수행하고,
    실제 UX 처리(로그아웃, 리다이렉트 등)는 상위 앱 레이어에서 처리

8. 네트워크 및 런타임 에러 대응

  • 네트워크 오류, 타임아웃 등 Response가 없는 에러도 일관되게 처리
  • 에러 발생 시 요청 시작 시간 기록 정리
  • DEV 환경에서 에러 상세 로그 출력

#️⃣ 테스트 결과

코드 변경에 대해 테스트를 수행한 결과를 요약해주세요. 예: 모든 테스트 통과 여부, 새로 작성한 테스트 케이스 등

#️⃣ 변경 사항 체크리스트

  • 코드에 영향이 있는 모든 부분에 대한 테스트를 작성하고 실행했나요?
  • 문서를 작성하거나 수정했나요? (필요한 경우)
  • 코드 컨벤션에 따라 코드를 작성했나요?
  • 본 PR에서 발생할 수 있는 모든 의존성 문제가 해결되었나요?

#️⃣ 스크린샷 (선택)

관련된 스크린샷이 있다면 여기에 첨부해주세요.

#️⃣ 리뷰 요구사항 (선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요.
예시: 이 부분의 코드가 잘 작동하는지 테스트해 주실 수 있나요?

코드 변경 줄 수가 많은 이유는 yarn.lock 때문입니다... ky.ts 만 확인해 주세요

📎 참고 자료 (선택)

관련 문서, 스크린샷, 또는 예시 등이 있다면 여기에 첨부해주세요

@kimnamheeee kimnamheeee requested a review from c0912jy as a code owner January 9, 2026 12:29
@kimnamheeee kimnamheeee linked an issue Jan 9, 2026 that may be closed by this pull request
6 tasks
@github-actions
Copy link

github-actions bot commented Jan 9, 2026

CI 통과했습니다!

  • Lint / Type / Test / Build 모두 성공
  • dev 브랜치로 머지 가능합니다 🚀

Copy link
Collaborator

@c0912jy c0912jy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

확인했습니다!

@kimnamheeee kimnamheeee merged commit 32677d7 into dev Jan 9, 2026
1 check passed
@kimnamheeee kimnamheeee self-assigned this Feb 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[FEATURE] ky 인스턴스 생성

2 participants