ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 한국투자증권, 텔레그램 API 활용기
    프로그래밍/Open API 2023. 2. 24. 15:30
    반응형

     

      한국투자증권의 Open API와 텔레그램 API를 활용하여 필요한 요청과 그에 대한 결과를 텔레그램 봇 메시지 받는 토이 프로젝트를 진행하였다.  두 API 모두 https 프로토콜을 사용하기 때문에 난이도는 어렵지 않다.  소스는 trader-malchooni란 이름으로 github에 올려놓았다.  링크는 글 하단에 있다.  또한 이 글을 시작으로 필자가 진행 중인 매매시스템 구축에 대해 꾸준히 글을 써보고자 한다.

      이 프로젝트를 활용하면 나의 주식계좌에 대한 접근성이 높아진다.  증권사 어플을 통해서가 아닌 특정 시각에 나의 잔고내역을 텔레그램 메시지로 받아 볼 수 있다.

     

      - 한국투자증권 API

     

       https 프로토콜을 활용하여 API를 제공한 국내 최초의 증권사일 것이다.  이 증권사의 REST API를 알기 전까진 이베스트투자증권의 COM버전의  API를 랩핑 하여 http프로토콜로 사용하고 있었다.  이 랩핑 프로젝트도 아래의 박스를 클릭하면 열람할 수 있다.

     

     

    GitHub - malchooni/buycycle: 증권사 API Restful 변환 모듈

    증권사 API Restful 변환 모듈. Contribute to malchooni/buycycle development by creating an account on GitHub.

    github.com

     

      바이사이클이란 이름으로 소스를 공개하였다.  물론 버그도 있지만 현재까지 잘 활용하고 있다.  한국투자증권 이야기로 다시 돌아와, 증권사에서 https 프로토콜을 사용하여 API를 제공해 주니 필자 입장에선 구미가 당길 수밖에 없었다.  이미 한국투자증권의 ISA계좌를 갖고 있어 open api 서비스를 신청하는 건 어렵지 않았다.  https://apiportal.koreainvestment.com/intro  사이트에 방문하여 api 신청을 하면 비교적 간단하게 key를 발급받을 수 있다.  발급받은 key는 인증, 토큰을 생성하는데 필요하다.

      API 문서를 개발자사이트에서 제공하고 있다.  다만 WADL까지 제공했음 더 좋았을 것 같다.  value object를 생성하는 일이 보통일이 아니다. 

     

      - 텔레그램 API

     

       텔레그램 API에 대한 접근은 매우 쉽고 뛰어났다.  참조할 수 있는 문서들이 많고 API를 접근하기 위한 복잡하고 어려운 절차들이 없어 매우 편리하였다.  그래서 대화형 인풋 아웃풋의 대한 매개체를 텔레그램으로 정하였다.  봇 메시지 업데이트 하는 방법은 getUpdate 메소드를 통해 주기적 텔레그램을 호출하는 방법이 있고, 텔렘그램이 내가 등록한 주소로 호출해 주는 리슨 방식이 있다.  인, 아웃 매개체를 텔레그램으로 선정하였으니 텔레그램 API에 대한 활용도 같이 포스팅할 예정이다.

     

      - trader-malchooni Project

     

      이 프로젝트는 spring-boot를 사용하여 누구나 쉽게 접근할 수 있도록 제작되었다.  bootstrap.yml엔 기본 설정을 담고 있고, application.yml엔 스케쥴러 설정 및 API를 이용할 한국투자증권과 텔레그램에 관한 개인키 설정이 들어간다.  만약 이 프로젝트를 활용한다면 application.yml 파일은 공개해선 안된다.  민감한 정보들이 많이 들어있는 파일이다.

      본래 프로젝트는 DB 연동 및 Buycycle 연동 등이 있으나, 접근하기 쉽게 lite refactoring 하여 trader-malchooni란 이름으로 공개하였다.  아래 링크를 통해 레파지토리에 접근할 수 있다.

     

     

    GitHub - malchooni/trader-malchooni: toy project. 한국투자증권, 텔레그램 연동

    toy project. 한국투자증권, 텔레그램 연동. Contribute to malchooni/trader-malchooni development by creating an account on GitHub.

    github.com

     

      클론 받은 레파지토리의 application.yml 파일을 열어 한국투자증권과 텔레그램에서 생성한 고윳값을 넣어주면 실행 준비가 끝난다.

    # 한국투자증권 설정
    ki:
      appKey: ""
      appSecret: ""
      accountNo: ""
    
    # 텔레그램 설정
    telegram:
      token: ""
      chatId: ""
    
    # 스케줄러 설정
    job:
      cron:
        ki:
          # 토큰 생성
          createToken: "0 55 8 * * MON-FRI"
          # 토큰 폐기
          removeToken: "0 0 18 * * MON-FRI"
          # 잔고 확인
          stockBalance: "10 35 15 * * MON-FRI"

     

      현재는 3가지 메소드만 지원하고 있다.  API 접근을 위한 토큰 생성, 폐기 그리고 잔고 조회이다.   스케줄 주기에 따라 작동한다.  하지만 사용자 이벤트 콜을 위해 @RestController 사용하여 버튼 콜도 생성했다.  웹브라우저를 통해 http://localhost:7772 주소로 접근하면 아래와 같은 페이지를 열람할 수 있다.

     

    http://localhost:7772 웹브라우저로 접근

     

      텔레그램으로 수신된 메시지는 아래와 같다.

    텔레그램 수신 메시지

      앞으로 이 프로젝트에 대한 설명과 기능 추가 포스팅을 진행할 예정이다.

    반응형

    댓글

Designed by Tistory.