이베스트에서 제공하는 XingAPI에 의한 로그인 기능은 키움API에서 제공하는 기능과는 사뭇 다르다.
먼저 키움API의 경우에는 로그인 할때 키움 HTS에서 로그인하는 것과 같은 방식을 제공한다.
로그인과 동시에 HTS 서버에 접속하고 업데이트 버전이 있을 경우 업데이트를 진행하고 그 다음 로그인까지
완료하는 과정을 거친다.
L-ATS v1.0을 통해 확인해 보자.
이베스트 XingAPI는 'HTS 서버 연결'과 'HTS 로그인'이 별개로 동작한다.
즉, HTS 서버 연결 상태를 고려하여 로그인/로그아웃 처리를 진행해야 한다.
물론 HTS 서버에 연결이 되어야 로그인이 될 것이다. 아래 두 경우는 분명 다르게 동작해야 한다.
- 서버가 연결되어 있지 않은 상태에서의 로그인/로그아웃 시도
- 서버가 연결되어 있는 상태에서의 로그인/로그아웃 시도
간단해 보이지만 쉽게 생각할 수 없는 부분이다.
[ 대략적인 동작 과정 ]
1. 프로그램 실행 후 먼저 프로그램 로그인을 시도한다.
2. '이베스트 HTS 서버' 연결을 시도한다.
2-1. 연결이 완료 될 경우, 해당 연결 서버의 정보를 표시한다.
2-2. 연결이 되지 않을 경우, 환경 설정 값에 의해 서버 연결을 재시도 한다.
2-2-1. 환경 설정 값에 의한 재연결 시도 횟수 초과 시 자동으로 프로그램을 종료한다.
3. '이베스트 HTS 서버' 연결을 별도로 관리한다.
3-1. HTS 서버와의 연결 상태를 주기적으로 확인하고, 연결 유실 시 재연결을 시도하도록 관리한다.
3-2. 화면 한편에 현재 HTS 서버와의 연결 상태를 한번에 확인 할 수 있도록 표시한다.
가장 신중하게 생각해야할 부분은 'Connection 관리' 부분이다.
네트워크 개발을 하던 첫 회사에서 'Connection 관리'가 생각보다 단순하지 않고 쉽지 않다는 것을 많이 느꼈다.
지금 로직을 구성한다 해도 100% 완벽하게 할 수 있을지 의문이다.
Connection 관리는 아래 두 개의 환경 설정 값에 의해 동작하도록 해야한다.
- Connection Check Interval (확인 시간 간격)
- Connection Check Count (최대 확인 횟수)
솔직히 Connection 관리는 실시간(Realtime)성이 가장 중요한 시스템에서 필수적인 것이지만
Trading 시스템에서는 크게 중요하지 않을 수도 있다.
때문에 'HTS 로그인' 상태에서 'HTS 서버' Connection이 끊길 경우(네트워크 장애 등) 프로그램을 자동 종료하여도 크리티컬하진 않을 것이다.
보유 계좌 리스트 조회 완료.
다음 포스팅은 '자산현황' 조회와 '잔고현황' 불러오기가 될 예정이다.
'Trading' 카테고리의 다른 글
[Trading] L-ATS 사용자 시나리오 (0) | 2020.08.02 |
---|---|
[Trading] 사용자 정보 구조 (0) | 2020.07.18 |
[Trading] 프로그램 로그인 (0) | 2020.06.21 |
[Trading] 두번째 프로그램 (0) | 2020.06.07 |
[Trading] 첫번째 프로그램 (0) | 2020.05.24 |