Weather-island APN server v1.0.0-beta
Pre-release
Pre-release
Si-Hyeak-KANG
released this
11 Mar 09:44
·
10 commits
to main
since this release
Release Date : 24-03-11
해당 버전은 배포 직전 통합 테스트를 위해 주어진 요구사항에 맞게 기능을 갖추었습니다. 테스트 파일의 개발환경은 Docker 이미지로 업로드한 상태입니다.
요구사항
- 앱의 Live Activity 활성화시 서버 요청 API
- 일정 주기 날씨 체크
- APN 푸시 알림 전송 기능 구현
- 날씨 스케줄러 중단 및 토큰 폐기 적용
개발환경
- Java17, SpringBoot, Gradle
- Redis
- Lombok, WebFlux(webClient), Scheduler, AOP, Spring Validation, ObjectMapper
- Base64(ES256), JWT
- eatthepath.pushy(APNs)
- WeatherKit API
- Docker
상세 구현 내용
- 앱 토큰 및 날씨 등의 정보 저장 API 구현
- 요청 데이터를 Redis에 저장
- 스케줄러 동작
- 성공/실패 응답 전송
- APNs 푸시 알림 즉시 전송 API 구현 (테스트용)
- 일정 시간 날씨 변동 체크 스케줄러 구현
- Thread 풀 기반 비동기 방식 스케줄러 적용
- 특정 Device토큰의 스케줄러 동작 관리 - 작업 중단 구현
- 로컬(1분), 개발(10분), 운영(30분) 환경에 따라 다른 작업 주기 설정
- APNs 푸시 알림 기능 구현
- 비동기 이벤트 처리
- 푸시 타입 live activity 적용
- payload로 변경된 온도 전송
- 날씨 조회 기능 구현
- [개발,운영환경] WeatherKit API 기반 날씨 조회 기능 구현
- WeatherKit API의 인증키를 위한 JWT 생성 기능 구현
- [로컬, 테스트환경] 날씨 가상 조회 난수 출력 기능 구현
- Open weather API 기반 날씨 조회 기능 구현
- 로크 트래킹 AOP 구현
- 프로젝트 전역의 예외 처리 코드 구현