목표
- Spring Boot와 외부 API를 활용하여 가상화폐 시세 정보를 수집·처리하고, 알림을 제공하는 API
기술 스택
▶ 선택한 이유
- OpenFeign vs RestTemplate
- Spring Data JPA와 유사하게, 간결하고 선언적인 방식으로 HTTP 요청을 구성할 수 있는 인터페이스를 제공하므로, HTTP 클라이언트 구현에 신경 쓰지 않아도 되고, 외부 서비스를 로컬 메서드처럼 쉽게 호출할 수 있습니다.
- 여러 외부 서비스를 내 애플리케이션의 비즈니스 로직과 효과적으로 통합할 수 있고, 기능 확장에도 유연하게 대응할 수 있을 것이라 판단해 OpenFeign을 선택했습니다.
- JPA(Hibernate) vs MyBatis
- DB 매핑을 자동화해 주고, 기본적인 CRUD를 제공하므로, 비즈니스 로직에 더 집중할 수 있습니다.
- 이 프로젝트의 목표는 비즈니스 로직과 외부 서비스 통합이므로, 복잡한 쿼리와 고급 매핑에 유리한 MyBatis보다, 직관적이고 객체 지향적으로 데이터 처리 작업을 수행할 수 있는 JPA가 적합하다고 판단했습니다.
- REDIS
- 사용자의 요청에 따라 일정 간격(실시간 또는 분 단위)마다 시세 정보와 목표 가격를 저장·조회해야 하므로, 낮은 지연 시을 가진 REDIS를 이러한 기능에 활용하는 것이 적절하다고 판단했습니다.
- Slack API vs Email, SMS…
- Slack 알림은 사용자가 즉각적으로 반응할 수 있는 환경을 제공하고, 슬래시 커맨드 등 기능을 추가할 수 있어, 다른 서비스(웹 또는 앱)를 통하지 않고도 사용자와 애플리케이션이 상호작용을 할 수 있습니다.
- OpenFeign을 활용한 Slack API 통합이 이 프로젝트 목표에 더 부합하다고 판단했습니다.
요구 기능
- 시세 정보 수집: 외부 가상화폐 거래소 API로부터 실시간 시세 정보를 수집하는 기능
- 시장가, 거래량, 변동률 등을 포함하는 데이터를 제공하는 서비스를 선택해야 한다.
- 알림 조건 검사: 사용자가 설정한 조건을 충족했는지 확인하는 기능
- 시세 정보를 사용자가 설정한 가격 기준과 비교하여, 지정된 가격에 도달했는지 등
- 실시간 알림 발송: 특정 조건이 충족될 경우, 시스템은 사용자에게 실시간으로 알림을 발송하는 기능
- 이력 관리 : 시세 정보, 사용자 알림 설정 등의 이력을 관리하는 기능
구현
https://seongho-jo-5.tistory.com/47
'Framework > Spring' 카테고리의 다른 글
[Spring] 혼자서 해보는 가상화폐 시세 알림 API - 확장 (0) | 2024.01.17 |
---|---|
[Spring] 혼자서 해보는 가상화폐 시세 알림 API - 구현 (2) | 2024.01.14 |
[Spring] OpenFeign 알아보기 (0) | 2024.01.09 |
[Spring] 스프링 프레임워크 핵심 원리 (1) | 2023.11.27 |
[Spring Boot] 기능 기반 패키지 구조(package-by-feature) (0) | 2023.10.22 |