1. 페이지네이션 컴포넌트
- useMemo 활용: 복잡한 페이지네이션 계산 로직을 메모이제이션하여 성능 최적화
- 크기별 로직: sm/lg 두 가지 크기에 따라 다른 표시 로직 구현
- 조건부 렌더링: 페이지 수가 1개 이하일 때는 렌더링하지 않음
2. 기사님 마이페이지
- 단계별 에러 처리: 사용자 정보와 기사님 정보 조회를 분리하여 각각 처리
- 타입 가드: 데이터 존재 여부를 확인하여 타입 안전성 보장
- 조건부 렌더링: 로딩 상태에 따라 적절한 UI 표시
3. 기사님 프로필 수정
- 이미지 업로드 최적화: FileReader API를 활용한 효율적인 이미지 처리
- S3 연동: Presigned URL을 통한 직접 업로드로 서버 부하 감소
- 실시간 폼 검증: React Hook Form을 활용한 효율적인 폼 관리
4. 기사님 기본정보 수정
- 소셜 로그인 구분: userProvider 상태로 사용자 타입 감지
- 조건부 렌더링: 소셜 로그인 사용자에게는 비밀번호 필드 숨김
- 동적 레이아웃: 일반 로그인은 2열, 소셜 로그인은 1열 레이아웃 적용
공통 최적화
- 타입 안전성: TypeScript 인터페이스로 엄격한 타입 정의
- 에러 처리: try-catch와 토스트 메시지로 적절한 에러 처리