이끌든지 따르든지 비키든지

Framework/Spring

[Spring] 혼자서 해보는 가상화폐 시세 알림 API - 설계

SeongHo5 2024. 1. 11. 23:07

목표

- Spring Boot와 외부 API를 활용하여 가상화폐 시세 정보를 수집·처리하고, 알림을 제공하는 API

 


기술 스택

사용할 기술

▶ 선택한 이유

  • OpenFeign vs RestTemplate
    • Spring Data JPA와 유사하게, 간결하고 선언적인 방식으로 HTTP 요청을 구성할 수 있는 인터페이스를 제공하므로, HTTP 클라이언트 구현에 신경 쓰지 않아도 되고, 외부 서비스를 로컬 메서드처럼 쉽게 호출할 수 있습니다.
    • 여러 외부 서비스를 내 애플리케이션의 비즈니스 로직과 효과적으로 통합할 수 있고, 기능 확장에도 유연하게 대응할 수 있을 것이라 판단해 OpenFeign을 선택했습니다.
 

[Spring] OpenFeign 알아보기

OpenFeign은 Spring Cloud 기반의 선언적 HTTP 클라이언트 도구로, 간편하게 외부 API를 호출 할 수 있는 도구이다. 어노테이션과 인터페이스 기반의 간소화된 코드 작성으로, 외부 API를 마치 로컬 메서

seongho-jo-5.tistory.com

 

  • 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