코인도 주식도 항상 가격이 오르락내리락 한다.

 

그런데 "어디쯤에서 사람들이 가장 많이 매수했을까?" 하는 궁금증이 생겼다.

 

그 해답이 바로 평균가라는 정보다.

 

예를 들어 어떤 종목의 현재 가격이 3만 원이라고 해보자.


이게 '머리'에 해당할 수도 있고, '어깨', '몸통', '무릎', '발' 같은 위치로 나눠서


현재 가격이 고점인지 저점인지 감을 잡는 데 참고할 수 있다.

 

처음엔 이 평균가 데이터가 단순히 앱에서 보여주는 숫자일 뿐이라고 생각했다.


그런데 문득 궁금해졌다.

 

"이 숫자는 어떻게 계산되는 거지?"


"서버에선 뭘 주고받길래 이런 데이터가 나오는 걸까?"

 

사실 이런 호기심은 나만의 투자 도우미 앱을 만들면서 시작됐다.


"어떤 기능을 넣으면 좋을까?" 고민하며 증권사 앱들을 둘러보다가,


이 평균가 기능이 꽤 유용해 보여서 직접 구현해보고 싶어진 것이다.

 

요즘 증권사 앱들에 들어가 보면 '평균가' 항목을 제공하는 곳도 있고,


아예 보여주지 않는 곳도 있다.

 

보통 이 '평균가'는 그 증권사를 통해 해당 종목을 매수한 사람들의 평균 단가를 의미한다.

 

예를 들어 삼성전자 주식의 현재가가 10만 원인데,


앱에서 평균가가 6만 5천 원으로 표시된다면?


대부분 싸게 샀고, 지금은 수익 중이라는 뜻이다.

 

재밌는 건 이 데이터를 단순 숫자가 아니라 시각적으로 보여주는 방식이다.

 

많은 앱이 사람의 신체 구조에 빗대어 다음과 같이 표현한다.

  • 머리
  • 어깨
  • 몸통
  • 무릎

예를 들어 평균가가 2만 원이고, 현재 가격이 1만 원으로 '발'에 해당된다면?


거의 저점으로 볼 수 있다.


이럴 경우, 매수 포인트로 판단할 수도 있는 것이다.

 

물론 이런 단순한 지표 외에도 기술적 분석은 반드시 병행되어야 한다.

 

그래서 이 기능을 나만의 투자 앱에 넣어보기로 마음먹고, 분석을 시작했다.


먼저 앱에서 이 평균가가 어떻게 서버에서 데이터가 전달 되는지 확인하려면,

 

서버와 어떤 데이터를 주고받는지를 파악해야 했다.

 

당연히 프록시 툴을 먼저 써봤지만,


패킷이 하나도 잡히지 않았다.

 

요즘 증권사 앱들은 보안과 속도를 위해


TCP 소켓 통신을 사용하며, 암호화까지 적용되어 있어서


일반적인 방법으로는 내용을 확인할 수 없었다.

 

결국 해당 앱을 뜯어보기로 했다.

 

당연히 증권사 앱답게 루팅 탐지, 디버깅 탐지, 피닝 탐지 등 엄청난 보안 로직들이 적용되어 있었다.

 

위의 탐지 로직 등을 우회하면 드디어 코드와 앱의 실행 과정을 분석할 수 있었다.

 

코드를 분석하면서 서버와 주고받는 구조를 추적 및 분석을 하였고,


마침내 평균가 요청 패킷 구조와 암호화 키, 응답 데이터 형식을 확인할 수 있었다.

 

예를 들어 삼성전자 종목 코드와 함께 평균가 요청을 보내면,


서버는 해당 종목에 대한 이용자 평균 매수 단가를 계산해 응답해준다.

 

응답값은 단순 평균뿐 아니라,


머리, 어깨, 몸통, 무릎, 발에 해당하는 구간별 가격까지 함께 포함되어 있었다.

 

아래 왼쪽 그림은 현재 삼성전자의 현재가와 전날과의 대비 등락을 보여주는 화면이다.

 

해당 종목을 클릭하면 오른쪽 그림처럼 현재 삼성전자의 평균 단가를 보여주는

 

그림을 출력하도록 기능을 추가하였다.

 

 

반응형

+ Recent posts