학구스
130
2019-07-22 13:17:55
1
161

외부 API 값을 실시간으로 디비에 담을때 사용하는 방법이 있나요?


안녕하세요!


현재 주식관련된 API 를 통해 2000여개 종목의 현재가 리스트를 DB에 실시간까진 아니어도 주기적으로

최신화 해주기위해 크론방식을 이용해서 2000개종목을 for문을통해 DB에 3분간격으로 업데이트 해주고있습니다.


외부 API를 직접적으로 뿌려주면 요청량도 어마어마하고 속도적인면에서도 떨어져서 이렇게 진행하고있는데요,

혹시 크론방식말고 다른분들은 이런경우가 생기면 어떤방식을 사용하시는지 궁금합니다 ㅠㅠ!

0
0
  • 답변 1

  • BK
    694
    2019-07-23 03:22:27

    웹훅 (Webhook) API를 제공한다면, 대부분 그 쪽으로 연동하죠.



    수학적으로 크론으로 Long-Polling (즉, 수신자 측에서 조회) 방식으로 "실시간"을 성취하려면 조회분기가 0의 한계로 도달해야 함으로, 결과적으로 해당 API에 디도스를 때릴수 밖에는 없습니다.

    결국 수신자가 조회(pull)하는 구조를 발신자가 통보(push)하는 구조로 invert시켜야만 "실시간"이 가능한데, 주로 이 push API를 흔히 Webhook이라고들 하죠:

    Webhook이란?


    Webhook(웹훅)이란, 서버에서 어떠한 작업이 수행 되었을 때 해당 작업이 수행되었음을 HTTP POST로 알리는 개념을 말합니다. Webhook을 구현한 웹 애플리케이션은, 특정 작업이 수행될 때 URL에 대해 POST방식으로 요청을 생성합니다. 이 때, url(콜백 url)은 웹 애플리케이션을 사용하는 유저가 자신의 URL을 지정할 수 있습니다.


    유저의 입장에서는 지속적으로 데이터를 폴링(polling)하여 대부분의 경우 불필요한 정보를 받는 대신, webhook을 활용하여 중요한 이벤트가 발생했을 때에만 정보를 수신할 수 있습니다. 이를 활용하여 유저의 커스텀 기능이나 다른 애플리케이션과 통합하거나 기능을 확장할 수 있습니다.


    https://docs.iamport.kr/tech/webhook

    종목 주식에 변동상황이 있을때만 발신하는 Webhook endpoint가 있는지/제공하는지 찾아보는게 우선일것 같네요.

    0
  • 로그인을 하시면 답변을 등록할 수 있습니다.