Skip to content

Conversation

@KimGiii
Copy link
Contributor

@KimGiii KimGiii commented Jun 28, 2025

📌 연관된 이슈 번호

🌱 주요 변경 사항

1. 서비스 레이어 분리

  • 새로 생성: services/isa/rebalancing-service.ts
  • RebalancingService 클래스 생성
  • 비즈니스 로직을 서비스 레이어로 이동
  • 커스텀 에러 클래스 추가 (InvestmentProfileNotFoundError, ISAAccountNotFoundError)
  • 타입 정의 및 상수 export

2. API 레이어 간소화

  • 수정: app/api/isa/rebalancing/route.ts
  • 중복된 타입, 상수, 함수 제거
  • 서비스 레이어 호출로 로직 간소화
  • 인증 및 에러 처리만 담당하도록 역할 명확화

3. 테스트 파일 추가

  • 새로 생성: tests/services/rebalancing-service.test.ts
  • 서비스 로직 단위 테스트 (11개 테스트 케이스)
  • 투자 성향별 포트폴리오 추천 로직 검증
  • 에러 처리 및 엣지 케이스 테스트
  • 새로 생성: tests/api/isa-rebalancing-api.test.ts

API 엔드포인트 통합 테스트 (6개 테스트 케이스)

  • 인증 및 HTTP 응답 검증

에러 상태 코드 테스트

  • 새로 생성: tests/helpers/rebalancing-helpers.ts
  • 테스트용 헬퍼 함수 및 모킹 데이터
  • 재사용 가능한 테스트 유틸리티

기술적 개선사항

코드 품질 향상

  • 관심사 분리: API는 HTTP 처리, 서비스는 비즈니스 로직 담당
  • 중복 코드 제거: 동일한 타입과 함수 중복 제거
  • 타입 안정성: TypeScript 타입 정의 강화
  • 에러 처리: 커스텀 에러 클래스로 명확한 에러 메시지

테스트 커버리지

  • 단위 테스트: 서비스 로직 독립적 테스트 가능
  • 통합 테스트: API 엔드포인트 전체 플로우 테스트
  • 모킹: Prisma 클라이언트 모킹으로 격리된 테스트 환경

성능 최적화

  • 번들 크기 감소: 불필요한 import 및 함수 제거
  • 메모리 효율성: 중복 데이터 구조 제거

📸 스크린샷 (선택)

image image

@KimGiii KimGiii linked an issue Jun 28, 2025 that may be closed by this pull request
@KimGiii KimGiii self-assigned this Jun 28, 2025
@dbstj0403 dbstj0403 merged commit 16f08bc into develop Jun 28, 2025
1 check passed
@VarGun VarGun deleted the test/#200-rebalancing-recommend branch July 2, 2025 00:05
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.

[ Feat ] Rebalancing 테스트 구현

5 participants