Skip to content

[ Refactor ] - 잡 변경 시 추천 근무시간 즉시 재계산 및 날씨 API 캐싱 적용 - #176

Merged
hanjyoon01 merged 3 commits into
developfrom
feature/#175
Aug 19, 2026
Merged

[ Refactor ] - 잡 변경 시 추천 근무시간 즉시 재계산 및 날씨 API 캐싱 적용#176
hanjyoon01 merged 3 commits into
developfrom
feature/#175

Conversation

@hanjyoon01

@hanjyoon01 hanjyoon01 commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

관련 이슈

작업 사항

  • 기상청 단기예보 API를 격자(nx, ny) 단위로 캐싱해 캘린더 API 응답 지연 개선
    • 발표시각(02/05/08/11/14/17/20/23시) 단위로만 갱신되는 특성을 이용해,
      같은 격자·같은 발표시각이면 캐시를 재사용하고 발표시각이 바뀔 때만 실제 호출
    • KmaForecastClientTest 추가
  • 잡 등록/수정/비활성화 시 이번 달 추천 근무시간(ALLOCATION_GOAL)을
    다음 조회 시점까지 기다리지 않고 즉시 재계산·저장하도록 변경
    • RecommendedWorkHoursServiceJobService 대신 JobMapper를 직접 참조하도록 변경해 순환 의존성 방지
    • 관련 테스트 6개 수정

JaeYoon added 3 commits August 18, 2026 17:30
- JobCreateRequest, JobUpdateRequest의 FIXED_TASK_PER_HOUR(전 카테고리 3 고정)를
  DEFAULT_TASK_PER_HOUR_BY_CATEGORY 맵으로 교체
- 배달(1)=3.5, 대리운전(2)=1.5, 가사·청소 도우미(4)=0.25
- 매핑 없는 카테고리(택배/물류 상하차, 펫시터·돌봄, 콘텐츠 제작)는 null 유지 -
  JobService의 기존 null-safe 예상소득 계산 경로로 흡수됨, 별도 처리 없음
- KmaForecastClient에 (nx, ny) 격자 단위 인메모리 캐시 추가
- 기상청 단기예보는 발표시각(02/05/08/11/14/17/20/23시) 단위로만
  갱신되므로, 같은 격자에 대해 발표시각이 그대로면 캐시를 재사용하고
  발표시각이 바뀌면 그때만 실제 API를 호출
- 일별/월별 캘린더 조회마다 매번 실제 HTTP 요청이 나가던 문제 해결
- KmaForecastClientTest 추가: 같은 격자 연속 조회 시 API 1회만 호출되는지, 다른 격자는 각각 호출되는지 검증
- JobService.registerJob/updateJob/deactivateJob에서 기존 이번 달 ALLOCATION_GOAL 삭제 후, 조회 시점까지 기다리지 않고
  RecommendedWorkHoursService를 즉시 호출해 재계산·저장
- RecommendedWorkHoursService가 JobService 대신 JobMapper를 직접 주입받도록 변경
  JobService -> RecommendedWorkHoursService 의존 방향을 추가하면서 생기는 순환 의존성 방지
- 위 생성자 시그니처 변경에 맞춰 JobServiceTest 등 관련 테스트 6개 수정
@hanjyoon01 hanjyoon01 self-assigned this Aug 19, 2026
@hanjyoon01 hanjyoon01 changed the title [ Feature ] - 잡 변경 시 추천 근무시간 즉시 재계산 및 날씨 API 캐싱 적용 [ Refactor ] - 잡 변경 시 추천 근무시간 즉시 재계산 및 날씨 API 캐싱 적용 Aug 19, 2026
@hanjyoon01 hanjyoon01 added the 🔨 Refactor 코드 리팩토링 label Aug 19, 2026
@hanjyoon01
hanjyoon01 merged commit 1172745 into develop Aug 19, 2026
2 checks passed
@hanjyoon01
hanjyoon01 deleted the feature/#175 branch August 19, 2026 02:21
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 ] - PER_TASK 잡 taskPerHour 고정값을 카테고리별 기본값으로 변경

3 participants