바이낸스
바이낸스 FIX Heartbeat TestRequest 뜻 2026|연결 건강·응답 ID·무수신 점검
FIX Heartbeat와 TestRequest의 역할, HeartBtInt와 응답 ID를 설명합니다. 무수신·로컬 부하·재연결에서 연결 건강과 주문 결과를 나눠 확인하는 절차를 정리합니다.

바이낸스 FIX Heartbeat TestRequest 뜻 2026|연결 건강·응답 ID·무수신 점검
바이낸스 FIX Heartbeat와 TestRequest는 연결 상대가 정상적으로 통신하는지 확인하는 관리 메시지입니다. 주문 신호나 체결 보고가 아닙니다. 가격이 잠시 움직이지 않는 상황과 연결이 고장 난 상황을 구별하려면 업무 데이터와 연결 건강을 따로 읽어야 합니다.
2026년 11월 5일 확인한 Binance Spot FIX 문서를 기준으로 설명합니다. FIX의 관리 메시지를 WebSocket의 ping/pong과 같은 형식으로 전송하지 않습니다. 목적이 비슷해 보여도 프로토콜과 필드, 응답 규칙이 다릅니다. 이 글은 실제 주문을 넣는 실습이 아니라 연결 운영을 이해하기 위한 가이드입니다.
왜 연결 건강 확인이 필요한가
소켓이 열려 있다는 표시만으로 상대 서버와 응용 프로그램이 계속 정상 동작한다고 단정할 수 없습니다. 네트워크 중간 구간이나 수신 처리기가 멈추면 연결 객체는 남아 있어도 업무 자료가 전달되지 않을 수 있습니다. 반대로 시장 사건이 드문 구간에서는 자료가 잠시 없더라도 연결이 정상일 수 있습니다.
이 차이를 무시하면 두 종류의 실수가 생깁니다. 정상적인 조용한 구간마다 재접속을 반복하거나, 오래된 마지막 값을 계속 정상 자료로 표시하는 일입니다. 관리 메시지는 상대와의 통신 상태를 확인하는 데 사용하고, 시장 데이터의 신선도와 주문 상태는 별도로 검증해야 합니다.
연결 건강이 정상이라는 사실이 주문 접수나 체결을 의미하지도 않습니다. 서버가 Heartbeat에 응답했다고 이전 주문이 성공했다고 기록하면 안 됩니다. 연결 수준의 확인과 경제적 결과의 확인을 나누는 것이 이 글의 가장 중요한 원칙입니다.
세 가지 필드와 메시지
HeartBtInt: 관리 간격
HeartBtInt는 Logon에서 정하는 heartbeat 간격입니다. 현재 공식 현물 FIX 문서는 5~60초 범위를 안내합니다. 이 값은 시세 갱신 주기, 주문 유효기간이나 체결 예상 시간이 아닙니다. 프로그램이 어떤 간격으로 연결 건강을 다룰지에 관한 세션 조건입니다.
간격을 작게 선택한다고 무조건 좋은 것은 아닙니다. 처리 지연이나 회선 상태, 라이브러리 동작과 운영 요구를 함께 검토해야 합니다. 임의의 값을 거래소가 권장하는 최적값처럼 제시하지 않습니다. 실제 설정과 서버의 Logon 응답을 대조해 적용 상태를 확인하는 편이 좋습니다.
Heartbeat: 연결 관리 응답
Heartbeat는 메시지 유형 0에 해당합니다. 서버의 무송신 구간에서 연결을 확인하거나 클라이언트가 세션 건강을 알리는 데 쓰이며, TestRequest의 응답으로도 사용됩니다. 따라서 같은 Heartbeat라는 이름이어도 어떤 맥락에서 나온 메시지인지 확인해야 합니다.
일반적인 주기 관리 메시지와 특정 TestRequest에 대한 응답은 구분할 필요가 있습니다. 후자에서는 요청의 식별자를 맞춰야 합니다. 아무 Heartbeat나 하나 도착했다고 진행 중인 특정 시험 요청의 응답이 완료됐다고 처리하지 않습니다.
TestRequest와 TestReqID
TestRequest는 메시지 유형 1이며 상대에게 Heartbeat 응답을 요구합니다. TestReqID는 이 요청을 구분하는 문자열입니다. 현재 공식 문서는 응답 Heartbeat에 원래 TestReqID가 반영돼야 한다고 설명합니다. 값이 같아야 어떤 시험 요청에 대한 응답인지 연결할 수 있습니다.
TestReqID는 주문 ID나 체결 ID가 아닙니다. 연결 관리 사건을 식별하는 값입니다. 이름에 ID가 붙었다는 이유로 모든 자료를 같은 식별자 공간에 넣으면 안 됩니다. 세션 관리 기록과 주문 장부를 연결할 수는 있지만 서로 대체할 수는 없습니다.
| 항목 | 뜻 | 의미하지 않는 것 |
|---|---|---|
| HeartBtInt | 관리 간격 | 주문 만료·시세 갱신 보장 |
| Heartbeat | 연결 관리 메시지 | 주문 체결 보고 |
| TestRequest | 응답 확인 요청 | 매수·매도 요청 |
| TestReqID | 시험 요청 식별자 | 거래소 주문 번호 |
| 응답 확인 | 해당 관리 요청에 응답함 | 과거 업무 결과 전체 확인 |
무수신 상황을 읽는 순서
1. 어느 자료가 없는지 구분
시장 가격이 안 오는지, 계정 보고가 안 오는지, 모든 네트워크 자료가 없는지 먼저 나눕니다. 어느 한 종류의 업무 자료가 조용한 것과 전체 세션이 조용한 것은 다릅니다. 구독 대상과 보고 모드에 따라 평상시 수신 양도 달라질 수 있습니다.
감시 화면에는 마지막 원본 수신, 마지막 유효 업무 자료, 마지막 관리 응답을 따로 표시할 수 있습니다. 세 시각을 하나의 마지막 갱신으로 덮으면 관리 메시지는 오는데 가격 자료는 오래된 상태를 발견하기 어렵습니다. 반대로 가격 변화가 없다는 이유로 연결 장애를 과도하게 판단할 수도 있습니다.
2. 현재 세션 조건 확인
로그인에 사용한 HeartBtInt와 세션 역할, 응답 모드를 확인합니다. 예전 설정 파일의 값이 아니라 실제 연결에서 사용한 조건을 기준으로 봐야 합니다. 재연결하면서 설정이 달라졌다면 이전 연결의 기준을 그대로 적용하지 않습니다.
여러 세션을 운용한다면 연결별 상태를 따로 기록해야 합니다. A 연결의 응답을 B 연결의 정상 근거로 사용할 수 없습니다. 같은 서버 호스트와 계정이라도 소켓과 세션은 별도이며, 관리 요청의 범위도 해당 연결을 기준으로 확인해야 합니다.
3. 시험 요청과 응답 연결
TestRequest를 사용하는 경우 요청을 보낸 사실과 해당 ID를 기록합니다. 응답이 오면 메시지 종류와 TestReqID를 확인합니다. 값이 다르면 아직 원래 요청에 대한 응답이 확인된 것이 아닙니다. 단순히 어떤 메시지가 도착했다는 이유로 모든 대기 요청을 해제하지 않습니다.
로컬에서 같은 ID를 동시에 여러 시험에 재사용하면 늦은 응답의 귀속을 판단하기 어려워질 수 있습니다. 구현에서는 세션 안에서 진행 중인 요청을 혼동하지 않도록 관리해야 합니다. 공식 허용 형식과 라이브러리의 처리 규칙도 확인해야 합니다.
4. 응답이 없으면 연결 정책에 따라 처리
공식 문서는 지정된 시간 안에 올바른 ID의 응답을 받지 못하면 연결 종료가 발생할 수 있다고 안내합니다. 클라이언트 쪽에서도 상대 응답이 확인되지 않을 때 연결과 세션을 새로 준비하는 절차가 필요합니다. 이때 인증이나 제한을 우회하지 않습니다.
연결을 새로 열었다는 사실은 업무 자료 복구가 완료됐다는 뜻이 아닙니다. 필요한 구독을 복원하고, 주문 결과나 장부가 불명확한 구간을 대조해야 합니다. 연결 건강 확인은 복구의 첫 단계이지 모든 상태를 자동으로 복원하는 기능이 아닙니다.
자동 처리 라이브러리를 사용할 때
FIX 엔진이나 라이브러리가 이미 Heartbeat와 TestRequest를 처리할 수 있습니다. 이 경우 응용 프로그램에 별도 타이머를 추가하기 전에 기존 기능과 책임 범위를 확인해야 합니다. 두 계층이 동시에 관리 요청을 만들면 불필요한 메시지와 혼동이 생길 수 있습니다.
중복 응답이 정상처럼 보여도 송신량과 관리 기록에 영향을 줄 수 있습니다. 문서상 기능이 있다는 사실과 현재 설정에서 활성화됐다는 사실도 다릅니다. 라이브러리 설정, 실제 수신 표본과 송신 기록을 함께 확인하면 자동 처리 범위를 파악하기 쉽습니다.
특히 업무 처리 큐와 관리 응답이 같은 무거운 작업 뒤에 묶여 있는지 살펴볼 필요가 있습니다. 분석 계산이 느려져 관리 응답도 지연되면 네트워크가 정상이어도 세션이 종료될 수 있습니다. 연결 관리와 업무 계산의 책임을 구분하는 설계를 검토할 수 있습니다.
이 설명은 특정 라이브러리의 스레드 구조를 보장하는 안내가 아닙니다. 사용하는 제품의 문서와 실제 실행 환경을 기준으로 검증해야 합니다. 단순히 별도 스레드를 만들면 모든 지연이 해결된다고 가정하지 않습니다.
네 가지 사례
사례 1. 시세는 멈췄지만 관리 응답은 정상
시장 자료 화면의 값이 한동안 같아도 Heartbeat와 시험 응답이 정상이라면 연결 전체가 끊겼다고 바로 결론 내리지 않습니다. 먼저 필요한 스트림이 등록돼 있는지, 실제 시장 자료가 수신되는데 표시만 멈춘 것인지, 사건 자체가 없는 구간인지 구분합니다.
원본 시장 자료가 계속 들어오는데 화면만 멈췄다면 표시나 내부 계산을 점검합니다. 구독이 없다면 구독 상태를 확인해야 합니다. 모든 문제를 재연결로 처리하면 수신 범위가 바뀌거나 중복 자료가 늘어 원인을 더 찾기 어려워질 수 있습니다.
관리 응답이 정상이어도 오래된 시세를 최신으로 표시해서는 안 됩니다. 연결 정상과 자료 신선도를 다른 상태로 보여주면 사용자가 현재 확인 가능한 범위를 이해하기 쉽습니다. 자동 계산도 필요한 자료의 유효성을 따로 확인해야 합니다.
사례 2. Heartbeat는 왔지만 ID가 다름
설명용 시험 요청 T1을 보낸 뒤 응답에서 T0가 보였다고 가정합니다. 두 문자열은 가상 식별자입니다. 어떤 관리 메시지를 받았다는 사실과 T1의 응답을 받았다는 사실은 다릅니다. 진행 중인 시험 목록과 원래 요청 값을 대조해야 합니다.
이전 요청의 늦은 응답인지, 중복 ID 관리 문제인지, 응답 작성 오류인지 살펴봅니다. 모든 Heartbeat에서 마지막 시험을 성공 처리하는 구현이면 잘못된 정상 판정이 발생할 수 있습니다. 메시지의 역할과 식별자를 동시에 검사해야 합니다.
응답이 맞지 않는 상황에서 제한 없이 새 시험을 쏟지 않습니다. 기존 관리 상태와 라이브러리 동작을 확인하고 현재 공식 조건에 맞춰 복구해야 합니다. 잘못된 값을 숨기거나 임의로 맞춰 성공 처리하는 것은 점검을 무의미하게 만듭니다.
사례 3. 계산 부하가 커진 뒤 연결 종료
시장 자료가 몰리는 구간에서 파싱과 저장이 느려졌다고 가정합니다. 관리 응답도 같은 작업 흐름 뒤에 대기한다면 응답 시한을 놓칠 수 있습니다. 이 경우 회선 품질만 확인하면 실제 로컬 병목을 놓칠 수 있습니다.
수신 시각과 처리 시작, 응답 송신 기록을 비교합니다. 메시지를 늦게 받은 것인지 받은 뒤 늦게 처리한 것인지 나눠야 합니다. 관리 기능의 자동 처리 여부와 큐 적체도 확인합니다. 숫자를 임의로 크게 바꾸기 전에 어느 단계가 지연되는지 찾아야 합니다.
복구 후에는 동일한 부하 조건에서 관리 응답과 업무 처리 상태를 함께 검증합니다. 평상시 접속에 성공했다는 결과만으로 부하 상황에서도 정상이라고 판단하지 않습니다. 장애 표본은 민감한 인증 자료를 제거한 뒤 필요한 범위에서 보관합니다.
사례 4. 재연결했지만 주문 결과는 불명확
연결이 종료되기 직전에 주문 요청이 있었고 응답을 못 받았다면, 새 연결의 건강 확인이 성공해도 원래 주문 결과는 아직 별도 문제입니다. 원래 주문 식별자와 계정 보고, 조회 자료로 상태를 대조해야 합니다.
연결 장애를 주문 실패로 바꾸고 같은 주문을 다시 보내면 중복 노출이 생길 수 있습니다. 반대로 이전 주문이 체결됐다고 추정해서 장부를 채워도 안 됩니다. 확인 가능한 근거로 현재 상태를 좁히고 미확인 구간을 남겨야 합니다.
관리 메시지의 성공 기록은 연결 복구의 증거로 보존합니다. 주문 최종 상태와 수량은 계정 업무 자료로 확인합니다. 두 기록이 모두 필요하지만 서로를 대체하지 않는다는 점을 운영 화면과 알림에서도 유지해야 합니다.
연결 건강 기록의 설계
기록에는 세션 세대, 역할, 관리 간격, 마지막 원본 수신 시각과 진행 중인 TestReqID를 남길 수 있습니다. 상태는 정상, 응답 확인 중, 연결 종료, 새 세션 준비, 업무 대조 중처럼 목적에 따라 구분합니다. 이 이름들은 내부 설계 예시이며 거래소 UI의 공식 상태 이름이 아닙니다.
시각을 비교할 때는 단위를 통일하고 원본 의미를 보존합니다. 프로그램 내부 타이머의 경과 시간과 사람이 읽는 현지 시각은 다른 목적입니다. 시스템 시계가 조정되는 환경에서는 경과 시간 측정의 방법도 검토해야 합니다. 특정 언어의 구현을 그대로 보장하는 안내로 일반화하지 않습니다.
알림은 해결 행동과 연결돼야 합니다. 관리 응답 누락이면 세션 건강을 확인하고, 시장 자료 누락이면 구독과 파서, 자료 신선도를 확인합니다. 주문 결과 불명확이면 원래 업무 식별자로 대조합니다. 모두 연결 오류라는 같은 제목으로 표시하면 잘못된 재시도로 이어질 수 있습니다.
민감한 Logon payload와 실제 키를 진단 기록에 넣지 않습니다. 문제를 설명하는 데 필요한 것은 역할과 시각, 메시지 종류와 비밀이 아닌 식별 범위인 경우가 많습니다. 인증 자료를 복사해야만 진단할 수 있다고 생각하지 않습니다.
배포 전 시험표
| 시험 | 기대하는 확인 | 바로 단정하지 않을 것 |
|---|---|---|
| 조용한 업무 구간 | 관리 상태와 업무 자료 구분 | 시장 중단 |
| 시험 요청 | 같은 ID의 응답 연결 | 아무 수신이면 정상 |
| 잘못된 ID 표본 | 원래 요청 미확인 유지 | 값 강제 수정 |
| 로컬 부하 | 수신·처리·송신 지연 구분 | 모든 문제는 회선 |
| 세션 종료 | 종료 원인과 새 세션 준비 | 주문 자동 취소 |
| 재접속 | 관리 정상과 업무 복구 분리 | 장부 완전 복원 |
시험은 실제 위험 주문을 만들지 않는 적절한 환경과 도구에서 설계해야 합니다. 관리 메시지 처리와 내부 상태 표는 기록 재생이나 검증용 표본으로 확인할 수 있는 범위가 있습니다. 실거래를 점검 수단으로 삼기 전에 시험 범위와 영향부터 정해야 합니다.
운영 상태를 더 세밀하게 구분하기
연결 건강과 자료 사용 가능성
운영 화면에 녹색 점 하나만 있으면 무엇이 정상인지 알기 어렵습니다. 전송 연결, FIX 로그인, 관리 응답, 시장 자료 신선도와 계정 대조 상태는 각각 확인 근거가 다릅니다. 한 단계가 정상이라고 다른 단계까지 정상으로 덮지 않는 것이 좋습니다. 예를 들어 관리 응답은 오지만 호가 구독이 빠진 상태는 연결 건강은 확인돼도 분석 준비는 끝나지 않은 상태입니다.
이 구분은 사용자에게 어려운 내부 용어를 늘리기 위한 것이 아닙니다. 실제로 결정을 내리는 데 필요한 범위만 보여주면 됩니다. 마지막 시세 확인 시각과 현재 수신 상태, 주문 결과 미확인 여부처럼 행동과 관련된 상태를 명확하게 전달해야 합니다. 모든 기술 로그를 화면에 노출하는 것과 정확한 상태 전달은 다릅니다.
타이머의 책임과 수신기의 책임
타이머는 언제 확인이 필요한지 판단하고 수신기는 어떤 응답이 왔는지 해석합니다. 두 역할의 상태가 어긋나면 이미 답을 받은 요청을 계속 대기하거나 다른 ID의 응답으로 완료할 수 있습니다. 진행 중인 요청의 생성·송신·응답·종료 기록이 연결돼야 합니다. 동시에 여러 관리 흐름이 있다면 어떤 계층이 최종 책임을 갖는지 정하는 편이 좋습니다.
FIX 엔진이 관리 기능을 맡는다면 응용 프로그램은 엔진이 제공하는 상태를 어떤 의미로 사용하는지 확인합니다. 네트워크가 연결됐다는 이벤트와 세션 준비 완료 이벤트가 다를 수 있습니다. 라이브러리의 명칭을 추측하지 말고 문서와 실제 기록으로 확인해야 합니다. 이미 자동 응답이 있는데 별도 수동 코드가 같은 메시지를 만드는지 점검하는 것도 중요합니다.
무수신을 진단하는 기록 예시
설명용 세션 C1에서 마지막 원본 수신은 10시, 마지막 시장 사건은 그보다 이르고, 시험 응답은 10시 직후 확인됐다고 가정합니다. 이 기록만으로 가격 자료의 정상 여부를 확정할 수는 없습니다. 어떤 시장 자료를 기대했는지와 갱신 조건, 파서의 처리 여부를 함께 봐야 합니다. 관리 응답이 있었다는 근거는 통신 점검의 일부로만 사용합니다.
반대로 원본 수신은 있지만 해석 오류가 계속된다면 아무 수신이 있다는 이유로 업무 자료를 정상 처리하지 않습니다. 관리 메시지조차 파서에서 올바르게 분기되는지 확인해야 할 수 있습니다. 원본 바이트 수신, 메시지 해석과 업무 의미 검증을 나눠 보면 오류 위치를 좁히기 쉽습니다. 실제 인증 자료는 이런 기록에 포함하지 않습니다.
부하 상황에서 확인할 항목
연결 상태 검사는 평상시보다 부하가 커질 때 의미가 드러나는 경우가 많습니다. 저장 작업이 느려졌는지, 계산이 길어졌는지, 관리 응답이 처리 큐 뒤에 대기하는지 확인합니다. 수신과 송신이 별도라는 사실만으로 응용 프로그램이 서로 독립적으로 진행된다고 가정하지 않습니다. 사용하는 엔진과 작업 구조를 기준으로 검토해야 합니다.
오류가 발생하면 같은 표본을 통해 수정 전후를 비교하는 것이 좋습니다. 정상 구간에서만 확인하면 병목이 사라졌다는 결론을 내리기 어렵습니다. 응답 누락 횟수뿐 아니라 처리 대기와 오류 분류가 어떻게 바뀌었는지 살핍니다. 처리량을 높였지만 관리 상태를 잘못 판정한다면 개선이라고 보기 어렵습니다.
복구 이후 인수 기준
운영자에게 넘길 때는 관리 응답 회복과 업무 대조 결과를 각각 제시할 수 있어야 합니다. 새 세션의 조건, 필요한 자료 수신과 미확인 주문의 범위를 확인합니다. 현재 계정 상태를 조회로 보완했다면 모든 과거 보고를 수신한 것으로 표현하지 않습니다. 현재 상태 회복과 과거 이력 완전성은 다른 결과입니다.
다음 담당자가 같은 오류를 확인할 수 있도록 공식 문서, 설정의 의미와 기록 위치를 연결합니다. 비밀값 자체 대신 비밀값을 안전하게 관리하는 위치와 접근 원칙을 설명하면 됩니다. 확인 순서가 문서화돼 있으면 같은 무수신 상황에서 사람마다 다른 재시도를 하는 일을 줄일 수 있습니다.
관리 메시지와 성능 측정
시험 요청에 대한 응답 시간을 관측하더라도 그것을 주문 처리 지연으로 바꾸지 않습니다. 관리 메시지와 업무 요청은 목적과 처리 범위가 다릅니다. 측정값에는 어떤 요청부터 어떤 관측까지인지, 어느 장비에서 잰 값인지와 단위가 필요합니다. 로컬 처리 지연이 섞인 값을 거래소 엔진의 순수 지연이라고 광고할 근거는 없습니다.
평균 한 값보다 긴 지연 구간과 복구 상태를 함께 보면 운영 품질을 이해하는 데 도움이 됩니다. 단, 측정하지 않은 수치를 예시로 실제 성능처럼 제시하지 않습니다. 이 글은 연결 관리 원리와 확인 절차를 설명하며 독자의 환경에서 검증한 결과를 대신하지 않습니다.
FAQ
Q1. Heartbeat가 오면 주문도 체결됐나요?
연결 관리와 주문 업무는 다른 정보입니다. Heartbeat는 주문 수량과 최종 상태의 증거가 아닙니다. 실제 계정 보고나 조회를 통해 주문 결과를 확인해야 합니다.
Q2. TestRequest가 시험 주문인가요?
연결 상대에게 관리 응답을 요구하는 메시지입니다. 주문 유효성을 시험하는 Test Order와도 다릅니다. 이름의 test만 보고 같은 기능으로 묶으면 안 됩니다.
Q3. TestReqID는 주문 번호인가요?
관리 요청의 응답을 연결하는 식별자입니다. 계정 주문과 체결의 식별자 공간과 구분해야 합니다. 같은 문자열이 보이더라도 같은 경제적 사건을 의미하지 않습니다.
Q4. 아무 Heartbeat나 받으면 되나요?
특정 TestRequest에 대한 응답이라면 원래 ID를 확인해야 합니다. 일반 관리 메시지와 특정 요청의 응답을 구분하지 않으면 잘못된 정상 판정이 생길 수 있습니다.
Q5. 간격을 줄이면 더 좋은가요?
운영 환경과 라이브러리 처리, 지연 조건을 함께 봐야 합니다. 현재 공식 허용 범위를 지키되 가장 짧은 값이 모든 환경의 최적값이라고 주장하지 않습니다.
Q6. 시세가 없으면 연결 장애인가요?
업무 자료의 갱신 조건과 구독 상태를 확인해야 합니다. 연결 관리가 정상이어도 자료가 오래될 수 있고, 자료가 조용해도 연결이 정상일 수 있습니다. 두 상태를 따로 봅니다.
Q7. WebSocket ping을 보내면 되나요?
FIX 관리 메시지와 WebSocket 프레임은 형식이 다릅니다. 비슷한 목적이라고 같은 payload를 전송하지 않습니다. 선택한 프로토콜의 공식 규칙을 사용해야 합니다.
Q8. 라이브러리가 자동 처리하나요?
사용하는 제품과 설정을 확인해야 합니다. 기능 지원과 실제 활성화는 다를 수 있습니다. 자동 처리 위에 수동 타이머를 추가하기 전에 중복 응답이 발생하지 않는지 검토합니다.
Q9. 응답이 늦으면 거래소 문제인가요?
로컬 큐와 파서, 계산과 저장이 지연될 수도 있습니다. 원본 수신과 처리·송신 시각을 나눠 살펴야 합니다. 단순한 관측만으로 어느 한 구간의 장애를 확정하지 않습니다.
Q10. 관리 응답이 없으면 계속 재요청하나요?
현재 공식 연결 정책과 제한을 확인해야 합니다. 무제한 요청은 정상 복구가 아닙니다. 원래 대기 요청과 라이브러리 상태를 확인한 뒤 필요한 연결 복구를 수행합니다.
Q11. 연결 종료는 주문 취소인가요?
통신과 계정 주문 상태는 별도로 확인해야 합니다. 연결이 닫혔다는 사실만으로 원래 주문 결과를 추정하지 않습니다. 새 연결에서 원래 식별자로 대조해야 합니다.
Q12. 새 연결에 이전 정상 상태를 복사하나요?
설정은 재사용할 수 있어도 실제 정상 확인은 새 세션에서 필요합니다. 구독과 업무 상태까지 복구됐는지도 별도 검증해야 합니다. 이전 연결의 성공 기록이 새 연결의 증거는 아닙니다.
Q13. 여러 연결의 응답을 합쳐도 되나요?
관리 응답은 해당 세션의 요청과 연결해야 합니다. 다른 연결이 정상이라는 사실로 현재 연결의 대기 요청을 완료 처리하면 안 됩니다. 연결 세대를 기록하는 이유가 여기에 있습니다.
Q14. 진단할 때 키를 공유해야 하나요?
실제 키와 서명 자료를 공개할 필요는 없습니다. 민감값을 제외한 역할과 메시지 종류, 시각과 오류 정보를 중심으로 확인합니다. 비밀 자료는 적절한 로컬 관리 범위에 둡니다.
Q15. 복구 완료 기준은 무엇인가요?
관리 응답 회복과 필요한 업무 자료의 정상 수신, 불명확한 주문 대조를 나눠 봅니다. 소켓이 다시 열렸다는 상태만으로 모든 업무가 복구됐다고 표시하지 않습니다.
체크리스트
- 현물 FIX 관리 메시지를 기준으로 하는가
- HeartBtInt와 시세 갱신 주기를 구분했는가
- 실제 Logon 조건을 확인했는가
- 세션별 관리 상태를 분리했는가
- TestReqID를 원래 요청과 대조하는가
- 일반 Heartbeat와 시험 응답을 구분하는가
- 라이브러리 자동 처리 범위를 확인했는가
- 중복 타이머와 응답을 점검했는가
- 수신·처리·송신 지연을 나눠 보는가
- 연결 정상과 자료 신선도를 구분하는가
- 종료 뒤 미확인 업무를 보존하는가
- 새 세션에서 구독과 업무 상태를 복구하는가
- 무제한 재시도나 제한 우회를 하지 않는가
- 인증 비밀을 기록에서 제외했는가
- 정상·오류·부하·복구 표본을 검토했는가
핵심 정리
| 단계 | 확인 대상 | 남길 결과 |
|---|---|---|
| 설정 | 관리 간격과 역할 | 실제 세션 조건 |
| 관찰 | 어떤 자료가 없는가 | 관리·업무 구분 |
| 시험 | 원래 ID의 응답인가 | 요청별 확인 상태 |
| 종료 | 왜 연결이 닫혔는가 | 원인과 미확인 업무 |
| 복구 | 업무까지 준비됐는가 | 구독·장부 대조 결과 |
바이낸스 FIX Heartbeat TestRequest는 연결을 신뢰할 수 있는지 확인하는 도구입니다. 연결 정상과 주문 결과를 구분하고, 응답 ID와 세션 범위를 지키는 것이 중요합니다. 다음 글에서는 정상 Logout과 유지보수 News를 통해 연결을 어떻게 종료하고 전환하는지 살펴봅니다.
공식 확인 자료: Binance Spot FIX API, 공식 FIX 문서 원본. 확인일은 2026년 11월 5일입니다.
이 글은 기술 정보이며 투자 권유가 아닙니다. 관리 응답은 체결이나 수익을 보장하지 않으며 연결·자료 누락과 구현 오류가 생길 수 있습니다. 실제 적용 전 최신 공식 조건과 사용 환경을 확인하세요.
바이낸스 가입하고 혜택 확인하기+
바이낸스 가입하기
바이낸스 회원가입부터 이메일 인증, KYC, OTP 설정까지 COINSIGN의 단계별 가이드를 확인하면서 진행할 수 있습니다.
바이낸스 가입하기바이낸스 가입방법 8단계 가이드 보기 →