주식 거래 프로그램, 심지어 자동 매매를 목적으로 하는 프로그램의 개발을 생각할 뿐이었지만, 드디어 어제부터 시작했습니다. 그런데 하루만에 다시 원점으로 돌아간 상태입니다. 왜??? 역시 생각과 현실은 다르고 아무리 계획을 하고 준비를 해도 막상 하다보면 생각지도 못했던 문제들을 만날 수밖에 없기 때문입니다. 무슨 문제가 있는 걸까요?http://www.podbbang.com/ch/1780825?e=24153829
사업하는 개발자 – SoSo CEO 개발한 사소한 사업자 SoSo CEO 의식의 흐름대로 이야기합니다.^^www.podbbang.com
자바에서 개발할 수 있을까?
나는 자바의 개발자였습니다. 프로그램 개발을 하면 당연히 자바가 1위입니다. 그래서 주식 정보/거래/자동화 모두 Java에서 작업한다고 생각하기 시작했습니다. 문제는 주식 정보와 매매 기능을 API에서 제공하는 대다수 증권 회사에서 자바는 지원을 하지 않다는 점입니다. 참고 되는 사례는 물론 증권 거래를 구현할 때 필요한 라이브러리도 자바 개발자를 사용할 수 있는 것은 없었습니다. 대부분이 VB, C#, Python기준 자료 뿐이었습니다. 그러나 겨우 자바로 개발하기 때문에 알아보았는데, 이러한 부분은 경험이 없어 어제 하루 종일 삽만 했어요. 제가 이렇게 자바에 고집할 이유가 몇가지 있습니다.1. 먼저 저는 Java이 가장 편하고, 가장 잘 다루는 프로그램 언어입니다.2. Java는 Windows프로그램, 모바일(Android)앱, 웹 개발이 모두 가능합니다.3. C#는 프론트 영역 개발이 가능하지만 제 입장은 주식 프로그램 하나 개발 때문에 C#을 새롭게 배울 의향이 없습니다. 4. 파이썬을 이용하면 쉽게 증권 회사의 API을 사용할 수 있고 뜻도 있지만 프런트 영역의 개발에 제한이 있습니다.
Python에서 주식정보를 읽어온 결과 화면
하지만 어제부터 지금까지 총 2일간 삽질을 한 결과 자바에서는 안 된다는 결론에 도달했고 결국 파이썬에서 개발하기로 했습니다. 그리고 예상대로 위와 같이 파이썬으로 바로 증권사 API를 사용하여 주식 정보에 접근할 수 있고, 그러면 당연히 매매까지도 어렵지 않게 이루어질 수 있다는 것입니다. 주식자동매매 프로그램 UI는 파이썬이 아닌 다른 언어로 개발하면 되고 자동화 기능은 시간이 좀 걸리겠지만 파이썬으로 구현하면 좋을 것 같아요. 자바를 사용하지 않고 개발을 하기 때문에 시간이 걸리지만 어쩔 수 없기 때문에 감수하기로 한 것입니다. 그런데 여기서 새로운 문제가 발생했습니다. HTS 필수?Java에서는 증권 회사 API사용조차 못했지만 Python에서 처음 1시간도 되지 않아 증권 회사 API을 통해서 몇가지 기능을 바로 실행하고 결과까지 확인할 수 있었습니다. 문제는 그처럼 증권사 API을 사용하기 위해서는 증권 회사 HTS가 설치된 창에서 HTS가 실행된 상태에서만 증권 회사 API을 사용할 수 있다는 점이었습니다. 어라…? 이러면 나가인데….;;그 이유는….1.HTS가 설치되지 않으면 안 되는 것이므로 윈도에서만 자동 거래 프로그램이 정상으로 동작할 수 있다는 이야기로, 2. 창에서만 실행 가능하므로 자동 거래 프로그램 개발을 작업한 노트북과 컴퓨터의 전원이 끊어지면, 주식 프로그램도 실행할 수 없다는 얘기!제가 생각했던 것은 Linux서버(AWSEC2)에서 RestAPI의 형태로 주식 거래를 할 수 있는 웹 서비스가 목적이었지만, Linux는커녕 Windows가 설치되고 있는 노트북에서만 실행할 수 있으므로, 이 정도면 주식 자동 매매 프로그램의 개발 자체를 할 필요는 없는 수준입니다. 물론 방법은 있습니다. 노트북/PC를 서버로서 사용하거나 AWS의 LightSail서비스를 사용하고 가상 창에서 작업을 할 수 있습니다. 그러나 주식 자동 매매 프로그램 전용으로 사용할 노트북과 컴퓨터 자체가 없이 새로 구입할 뜻도 없습니다. 또 AWS의 LightSail은 유료 서비스입니다. 처음의 3개월은 무료로 쓰는데 3달만 쓰겠다고 프로그램 개발을 하는 게 아니니. 만약 이 프로그램을 나 혼자 사용할 목적이었다면 현재 사용하고 있는 노트북을 주식 거래하는 동안 켜든지 좋고, LightSail을 유료로 사용하는 것도 괜찮은 방법입니다. 그러나 이 프로그램은 나 혼자 사용하려는 목적보다는 온라인에서 많은 사람을 대상으로 웹 서비스를 하는 것이 목적이며 그런 측면에서는 개인 노트북/PC는 성능상 좋지 않아 LightSil은 비용이 적지 않은 경우가 있습니다. 혹시나 해서 유튜브와 서점에서 자동 매매와 관련한 내용을 알아보니 이는 어쩔 수 없이 내용 같았습니다.(아니….솔직히 윈도에서만 사용이라면 HTS를 사용하면 되는데 왜 개발합니까…;;;)가상 화폐결국 목표 자체를 주식에서 암호화폐로 변경했습니다. 당연히 증권사 주식 API를 사용할 때보다 가상화폐 증권사 API를 사용할 때 제한이 훨씬 적거나 없기 때문입니다.결론은 “가상화폐 API는 자바에서 개발이 가능하고 Rest API 기반이기 때문에 주식 프로그램 개발 시 문제가 된 제한이 전혀 없다…!!”입니다.이런 내용은 주식 프로그램을 개발하고자 하기 전부터 알고 있었지만 가상화폐보다는 주식 자동매매 프로그램이 더 필요했고 활용할 여지도 많았기 때문에 주식 프로그램 개발을 시작한 것입니다. 하지만 주식증권사 API를 사용해보니 제가 생각했던 쪽에서는 전혀 활용할 수 없는 것 같아 어쩔 수 없네요.자바에서 암호화폐 정보를 읽어온 결과 화면가상 통화에서 결정되면 결과는 점점 나오고 있습니다. 자바 언어로 개발할 수 있기 때문에 그럴 수밖에 없잖아요! 코딩을 하면서도 역시 제일 익숙한 언어로 한다고 일도 쉽고 효율도 좋았고 국내 주식이 없이 가상 통화인 것이 유감이긴 하지만 어쨌든 가상 화폐로 정하면 앞으로 해야 할 것이 보이고 생각보다 재미 있는 것이 많아 보이기도 합니다. 가장 흥분하는 사실은 역시 RestAPI방식이기 때문에 웹 서비스가 가능하다는 사실입니다!!이 방법으로는 이미 테스트까지 완료되었습니다. 가상화폐는 되는데 주식은 왜 이렇게 못하느냐 하는 아쉬움이 있는데 제가 모르는 이유가 있겠죠;; 가상화폐로 목표를 수정하면서 자동매매보다는 가상화폐 모의거래를 할 수 있는 서비스를 만들어볼까 생각중입니다. 아직 확정되지 않았고 생각할 것도 몇 가지 남아 있습니다. 정말 오랜만에 이렇게 긴 시간을 개발 때문에 고민이 되네요. ㅎㅎ 궁금하신점이나 문의는 아래 링크를 클릭하셔서 카톡으로 연락주세요!! http://pf.kakao.com/_tLxlJxb