Skip to content

refactor: shared api client 추가 및 response types 추가#75

Open
MintPansy wants to merge 3 commits intodevelopfrom
refactor/api-foundation
Open

refactor: shared api client 추가 및 response types 추가#75
MintPansy wants to merge 3 commits intodevelopfrom
refactor/api-foundation

Conversation

@MintPansy
Copy link
Copy Markdown
Contributor

📝 개요

공통 API 호출 규약을 맞추기 위해 shared/lib/api 레이어를 추가하고, ApiResponse/ApiError 타입과 apiRequest 공통 클라이언트를 도입했습니다. 개발 환경에서 프로필/리뷰 관련 요청이 정상적으로 목킹되도록 mocks/handlers/index.ts 핸들러 구성을 정리했습니다.

🔗 관련 이슈

🛠️ 변경 사항 (Checklist)

  • ✨ Feature: 새로운 기능 추가
  • 🚀 Enhancement: 기존 기능 개선/성능 향상
  • 🐞 Bug: 버그 수정
  • ♻️ Refactor: 코드 구조 개선 (기능 변화 없음)
  • 🏗️ Chore: 빌드/패키지 설정/단순 잡일
  • 🎨 Design: UI/UX 스타일 수정
  • 📚 Documentation: 문서 수정

✅ 아래 내용을 한 번 더 점검해 주세요

1. 의도와 가독성 (Naming & Readability)

  • 의도 중심 네이밍: 변수명에서 '역할'이, 함수명에서 '행위+대상'이 명확히 드러나나요?
  • 선언적 코드: '어떻게'가 아닌 '무엇을' 하는지 코드만 보고도 알 수 있나요? (복잡한 로직은 내부 메서드로 숨겼나요?)
  • 주석: 코드만으로 설명이 어려운 '특정 로직'에만 주석을 달았나요?

2. 타입과 논리 (Type Safety & Logic)

  • 타입 안전성: any 사용을 지양하고, 모든 함수의 반환 타입을 명시했나요?
  • 엣지 케이스: 데이터가 없거나(null/undefined), 에러가 발생할 경우를 처리했나요?
  • 하드코딩 방지: API 주소나 설정값들이 환경 변수나 상수로 분리되었나요?

3. 코드 다이어트 (Clean-up)

  • 찌꺼기 제거: 디버깅용 console.log나 사용하지 않는 import를 모두 지웠나요?
  • 불필요한 코드: "나중에 쓰겠지" 하고 남겨둔 죽은 코드(Dead Code)는 없나요?
  • Linter: 린트 에러나 워닝이 남아있지 않나요?

4. 지속 가능성 (Sustainability)

  • 테스트: 수동으로든 코드로든 정상 작동을 확인했나요? (특히 기존 기능이 망가지지 않았나요?)
  • 문서화: 새로운 환경 변수나 라이브러리가 추가되어 README 업데이트가 필요한가요?

💭 회고 (Optional)

백엔드 스펙 확정 전 단계에서 공통 계약과 클라이언트를 먼저 정리해, 이후 도메인 API 마이그레이션과 페이지 개발을 병렬로 진행하기 쉬운 상태를 만들었습니다. 다음 단계는 머지 이후 최신 기준으로 각 feature API를 apiRequest 패턴으로 점진 이관하는 것입니다.

@MintPansy MintPansy self-assigned this May 6, 2026
@MintPansy MintPansy added the ♻️ Refactor 기능 변화 없이 코드 구조만 개선 label May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

♻️ Refactor 기능 변화 없이 코드 구조만 개선

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[refactor] API 요청/응답 처리 공통화 (ApiRequest, ApiError)

1 participant