내 맘대로 공작소!!
키움증권과 이베스트를 사용할 수 있는 무료로 배포되는 주식 자동매매 프로그램 입니다.
제가 배포하고 있는 무료 자동매매 프로그램 입니다. 개발을 진행한지는 좀 되서 그나마 안정적으로 프로그램을 운용하고 있습니다.
하지만!! 중요한건 프로그램 보다는 주식에서 수익 종목을 선정하는 당신의. 실력!!
프로그램은 아래 블로그에서 다운받으실 수 있습니다.
키움증권 무료 자동매매 프로그램
이베스트증권 무료 자동매매 프로그램
시스템 설정화면 1 (키움/이베스트용 모두 비슷합니다.)
시스템 설정화면 2 (키움/이베스트용 모두 비슷합니다.)
시스템 설정화면 3 (키움/이베스트용 모두 비슷합니다.)
예전에 간략히 적었던 프로그램 소개 입니다.
안녕하세요. 주식으로 1 주식 자동 매매 프로그램 만드는 방법 돈벌고 싶은 남자 '팡규' 입니다.
1. 퐝규의 자동매매 프로그램의 시작
2016년 3월부터 재테크를 하기 위하여 차근차근 진행하여 왔던 시스템 매매 프로그램을 드디어 공개하게 되었습니다.
주식을 처음 접하는 시기에 막상 시작은 하였지만 매매 타이밍을 놓치기 일수였고 무엇보다 회사 업무시간에 핸드폰을 만지작 거리니 너무 신경이 쓰였습니다. 그렇게 시간이 흐르고 금전적인 손실과 귀차니즘이 최고조에 올랐을 떄 '프로 그램이 자동으로 사고 팔고 하면 신경을 안써도 되지 않을까? ' 하는 생각이 들어 자동매매 프로그램에 첫발을 내딛게 되었습니다.
2. 금전적인 부담이 없는 무료 프로그램
프로그램을 처음에 준비하면서 8개월 정도는 자금을 약 2000만원 정도 투자 하여 월 회비가 있는 유료 프로그램을 이용 하였습니다.
이용 초기에는 수익도 생기도 금방 부자 되겠다 싶을 정도로 좋았습니다. 그렇지만 월 회비를 지불 할때마다 원금이 되고 이후에는 손실이 되고 의미가 없었습니다. 즉, 돈을 번다라는 느낌이 없었습니다. 그리고 프로그램에서 매수하여 묶여 있는 종목이 늘어가면서 돈이 유동성이 없어지고 ' 교착상태 '가 되었습니다. 즉, 돈이 묶인다 라고 해야 하지요. 이 후 7종목에 2000만원 가까이 분산되어 프로그램은 몇 달동안 그냥 켜고 끄고 하는 상태가 됩니다. 그렇게 답답하게 진행되다가 겨우겨우 원금에 가까워져 수동 매매하고 빠져 나왔습니다. 이렇게 수익이 없는 상태 인데도 월 회비가 지불 된다면 부담이 많이 되겠지요. 이러한 경험 때문에 무료로 배포를 하게 되었습니다.
저는 주식을 잘 알지는 못합니다. 단지, 주식을 자동으로 사고팔수 있도록 프로그램만 만들었을 뿐입니다. 즉, 프로그램 상에 제공되는 전략들도 제가 주식을 하면서 "아, 이런게 있었으면 좋겠다." 라고 판단해서 기능을 넣은것 뿐입니다. 제가 만든 전략은 그저 손실을 최소화 하고 수익도 적당히 벌어보려고 만든 것 입니다.(아직 수익도 없네요.)
#1 주식 자동 매매 프로그램 만드는 방법
오늘부터 파이썬(Phthon)을 이용한 '주식 투자 자동화'가 가능한 프로그램을 만들어보고자 합니다. 이번 포스팅은 가볍게 시작할 수 있는 포스팅으로, 주식 투자에 대해 어려움을 겪고 계시거나 초보 주린이분들도 휩게 따라 하실 수 있도록 주식 투자의 기본적인 개념을 간단하게 정리하고, 파이썬 주식 투자 자동화가 어떻게 이루어지는지 그 구조를 간단히 설명해드리겠습니다.
마지막으로 일주일간 파이썬을 이용한 주식 투자 자동화 프로그램을 가지고 그 결과가 어떻게 나왔는지 알아보도록 하겠습니다.
먼저 주식이 무엇인지 그 개념을 간단히 설명드리겠습니다. 주식이란 어떤 회사가 있을 때 그 회사의 지분을 나눠놓은 조각을 의미합니다. 주식을 가지고 있다면 이 회사를 일부 소유하고 있는 것이라고 생각하시면 됩니다.
그래서 내가 어떤 회사의 주식을 가지고 있다면 회사의 방향성에 대해서 입장을 표명할 수 있는 '의결권'을 가질 수 있고, 회사가 돈을 벌었을 때 그 돈의 일부를 배당금의 형태로 받아갈 수도 있습니다.
주식을 사고 팔 수 있는 곳, 증권사
그러면 주식을 어디서 살 수 있는지 알아보겠습니다. 주식은 일반적으로 우리가 당근마켓이나 중고나라에서 중고물품을 거래할 때처럼 어떤 사람이 특정 가격에 올려놓은 주식을 사야 됩니다. 하지만 아쉽게도 당근마켓이나 중고나라에서 주식을 구하기는 쉽지 않고, 이와 비슷한 증권사에서 주식을 사고팔 수 있도록 중계를 해주고 있습니다.
중고나라_당근마켓_증권사
실제로 주식을 거래하는 창을 보면 쉽게 말해서 판다는 사람도 있고, 산다는 사람도 있는데 여러분이 지금 당장 삼성전자 1주를 사야 된다면 어떤 선택지를 고르실건가요?
삼성전자 1주 5.7만원에 팝니다.
삼성전자 1주 5.6만원에 팝니다.
삼성전자 1주 5.5만원에 팝니다.
삼성전자 1주 5.4만원에 삽니다.
삼성전자 1주 5.3만원에 삽니다.
당연히 제일 저렴한거, 5.5만 원에 올라온 주식을 사고 싶으시겠죠. 여러분이 파는 사람이고, 지금 당장 팔아야 된다면 당연히 제일 비싸게 산다는 사람에게 팔아야겠죠. 그래서 이러한 가격들을 '호가'라고 부르는데, 파는 것 중에 가장 싼 것은 '매도호가', 사는 것 중에 가장 비싼 것은 '매수호가'라고 부르게 됩니다.
주식 호가, 봉차트
실제로 증권사 어플에 삼성전자 호가를 보시면 이런 식으로 다양한 가격에 판다고 내놓은 사람과 다양한 가격에 산다고 올려놓은 사람들이 있습니다. 수요와 공급에 의해서 산다는 사람이 많고, 옆에 있는 수량이 점점 줄어든다면 주가도 함께 올라가겠죠.
현대차 주가
반면에 반대로 판다는 사람이 많으면 계속 팔려서 주가가 떨어집니다. 그래서 이렇게 호가가 계속 왔다갔다 할텐데, 이렇게 호가가 오르락 내리락 하는 것을 일자별로 나타내게 되면 오르락 내리락하는 그래프가 생기게 됩니다. 그래프를 자세히 보시면 빨간 봉과 파란 봉으로 구성되어 있는 모습을 확인하실 수 있습니다.
카카오 주가
이렇게 봉들이 들어간 차트를 봉차트(캔들차트)라고 부릅니다. 봉은 빨간색인 양봉과 파란색인 음봉이 있습니다. 양봉부터 보면 Y축의 높이가 높을수록 가격이 높습니다. 주식 시장은 시간하는 시간과 끝나는 시간이 있는데, 시작하는 시간의 가격인 시가(장 시작할 때의 주가)보다 종가(장 끝날 때의 주가)가 더 높은 경우에 양봉 을 그리게 됩니다.
나머지 얇은 꼬리들은 주식 가격에 계속 왔다 갔다 할 테니까 이게 최저로 내려갔을 때, 가장 저렴할 때가 '저가'이고 가장 높이까지 올라갔을 때가 '고가'라고 합니다.
음봉 의 경우 반대로 시가(장 시작할 때의 주가)보다 종가(장 끝날 때의 주가)가 더 낮은 경우 입니다. 따라서 우리는 봉차트의 봉을 통해서 주가가 어떻게 변해왔는지 한 번에 알 수 있습니다.
주식으로 돈 버는 방법
주식 거래로 돈을 벌려면 당연합니다. 가격이 쌀 때 샀다가 가격이 비쌀 때 팔면 됩니다. 그러면 이제 파이썬으로 이런 주식 투자를 자동화하는 방법에 대해 알아보겠습니다. 먼저 파이썬으로 주식을 언제 사고, 언제 팔 것인지 투자 전략을 구현할 것이고 작업 스케줄러를 이용해서 매일 주식 시장이 열릴 때마다 증권사 API를 통해서 자동으로 매수, 매도가 이루어지도록 만들어보겠습니다.
그러면 쌀 때 사고 비쌀 때 팔고 할 수 있겠죠. 이런 거래가 발생하거나 어떤 특정 이벤트가 있을 때마다 'slack'이라는 메신저로 알림이 오도록 만들어 보겠습니다. 이렇게 구성하고 코드를 돌려 놓으면 우리는 아무것도 안해도 매일 slack 메신저를 통해 우리의 코드가 돈을 벌어오는 것을 확인할 수 있습니다.
이때 우리가 투자 전략을 어떻게 구현하느냐에 따라서 수익률은 굉장히 달라질 수 있습니다. 우리는 래리 윌리암스라는 인물의 '변동성 돌파 전략' 을 사용해서 구현할 것입니다. 전략에 대해 간단히 소개해드리자면, 일정 수준 이상의 상승세를 돌파 신호로 판단하고 그 추세를 따라서 수익을 실현하는 단기 트레이딩 전략입니다.
변동성 돌파 전략
우리는 대신증권 크레온으로 시작
추후에는 이 전략 외에도 딥러닝을 사용하는 등 좀 더 다양한 전략을 이용하여 구현해볼 겁니다. 또 우리는 증권사를 이용해서 거래를 해야 되기 때문에 증권사 API를 사용해야 됩니다. API를 제공하는 대표적인 증권사로 키움증권, 대신증권 크레온, 이베스트 투자증권에서 API를 제공하고 있습니다.
키움증권_크레온_이베스트 투자증권
이중에서 우리는 사용성이 가장 좋다고 알려진 대신증권의 크레온 API를 사용 해보겠습니다. 혹시 아직 대신증권의 증권 계좌가 없으시다면 따라해보시기려면 크레온 계좌를 미리 개설하는 것을 권장드립니다.
다음으로 위에서 설명드린 방법대로 일주일간 프로그램을 이용하여 투자한 결과에 대해 말씀드리겠습니다. 코드를 돌려 놓으면 매일 스마트폰으로 slack 메신저를 통해 무엇을 샀고, 얼마를 벌었다는 이런 정보들이 자동으로 들어오게 되어있습니다.
주식 투자 자동화 프로그램 실전 결과
slack_주식 손익
그래서 투자금을 넣고 일주일 간 돌려보았더니 총실현손익으로 9,743원이 벌린 것을 확인할 수 있었습니다. 그러면 52주, 1년으로 환산하면 65.5%, 약 66%의 연 수익률 을 올릴 수 있었습니다. 요즘 은행 이자가 2%도 안되는 시점에 어마어마한 수익률을 보여주고 있습니다.
물론 이 추세가 계속 영원히 지속된다고 보장할 순 없고, 일자별로 보시면 아시겠지만 5원 벌었다가 1,000원 잃고, 1,300원 잃었다가, 7,000원 벌었다가 이런 식으로 매일매일 그 시장 상황에 따라서 전부 다르게 동작합니다.
막연한 수익률의 기대감만으로 하시는 것이라면, 그렇게 큰 기대는 하지 않으셨으면 좋겠습니다. 어디까지나 수익률이 궁극적인 목표가 아닌, 이런 방식으로 주식 투자 자동화가 가능하다는 것을 보여드리기 위함이기 때문입니다.
이번 포스팅을 통해 주식 투자 세계에 입문하게 되신 분들을 포함하여 주식 투자 자동화에 첫걸음을 디딘 분들, 모두 환영합니다. 주식 투자 자동화 관련 포스팅은 날마다 한 개씩 업로드 될 것이고, 크게는 이번편을 포함해서 총 4편 을 끝으로 마칠 것이니 끝까지 함께 하시고 만족하실만한 프로그램을 만드셨으면 좋겠습니다. 앞에서도 언급했지만, '투자 전략'에 따라 수익률은 극대화 되기 때문입니다.
우측 하단 '꿀벌의 주식 블로그 구독'을 하시면 주식 투자 자동화 포스팅을 포함하여 주식 관련 포스팅 업데이트 알림을 바로 받으실 수 있습니다.
[팍스넷뉴스 김가영 기자] 한국블록체인스타트업협회(이하 협회)가 암호화폐 자동 거래를 위한 교육 사업을 실시한다.
신근영 한국블록체인스타트업협회장(사진)은 팍스넷뉴스와의 인터뷰를 통해 “이달부터 본격적인 암호화폐 퀀트 트레이딩 교육을 실시할 것”이라고 밝혔다. 앞서 협회는 KQN(Korea Quant Network)교육센터를 지난달 8일 출범했다.
퀀트는 수학·통계에 기반해 컴퓨터 알고리즘을 만들어 투자모델을 만들거나 금융시장 변화를 예측하는 투자기법을 말한다. 전통적인 금융시장에서는 컴퓨터 알고리즘에 기반한 퀀트 투자가 대중적으로 쓰인다.
암호화폐 거래에서도 퀀트에 대한 수요가 점차 높아지고 있다. 신 회장은 “코인 시세는 24시간 동안 시시각각 변하는 데다 상·하한가가 없다”며 “이러한 암호화폐의 특성 때문에 거래소 이용자들은 계속 거래소 웹사이트를 들여다보고 있어야 한다는 불편함이 있다”고 말했다. 또 “7~8개 거래소 관계자와 다수의 코인 트레이더들을 만나본 결과, 자동화된 트레이딩 시스템에 대한 니즈가 매우 높다는 것을 알 수 있었다”며 퀀트 트레이딩 교육 사업을 시작하게 된 배경을 설명했다. 실제로 KQN교육센터는 국내외 암호화폐 거래소 3곳과 손 잡고 교육 사업을 진행할 예정으로 이미 몇몇 거래소와 협의를 진행 중이다.
신 회장은 “페이스북이나 JP모건이 스테이블코인을 발행한다고 밝혔는데, 이처럼 거대 기업과 기관이 암호화폐 업계에 들어오면서 암호화폐는 점차 금융 분야로 편입될 것으로 생각한다”며 “자동 거래의 수요가 점차 높아질 것이기 때문에 전문적인 퀀트 트레이더가 필요하다”고 말했다.
현재 국내 트레이더들이 사용하는 자동화 트레이딩 툴은 모두 4가지로 ▲미국에서 개발된 트레이드스테이션(T/S) ▲한국에서 T/S를 참고해 개발한 예스트레이더 ▲한국금융IT에서 개발한 시그널메이커 ▲T/S의 업그레이드 버전인 멀티차트(MC) 등이다.
KQN교육센터는 이 중 예스트레이더, 시그널메이커, MC의 교육 분야 독점 사업권을 획득했다. 또 교육에 필수적인 툴인 OMS(Order Management System), DMS (Data Management System) 개발을 마친 상태이다.
신 회장은 과거 투자자문사를 경영하면서 자동화 트레이딩 분야에서 10년 넘게 활동한 경력이 있다. 또 앞서 2010년부터 현재까지 시스템 트레이딩 협회 회장을 역임하고 있다. 이러한 경험을 바탕으로 퀀트 교육 사업을 실시해 빠른 시일 내에 1000명 이상의 우수한 암호화폐 퀀트 트레이더를 길러내는 것이 목표라고 전했다.
이번 KQN교육센터 사업은 한국블록체인스타트업협회 산하 교육 분과의 사업 중 하나로 추가할 계획이다. 6월부터 교육을 시작하고 9월부터는 거래소와 협력해 트레이더들 상호 교류의 장이면서 교육 시설을 갖춘 ‘암호화폐 트레이딩 센터’를 설립·가동한다. 신 회장은 "교육을 마친 트레이더들의 실전 투입은 빨라야 10월 이후일 것으로 예상한다"고 설명했다.
교육센터 강사로는 성필규 PK투자자문 회장, 장장희 제이나비 대표, 주준석 오라플랫폼 대표, 조민 든든홀딩스 이사 등 전문 시스템 트레이더와 관계자들로 구성됐다. 또 어드바이저 강사로는 현 서울대, 국민대 교수와 트레이더들이 합류했다.
신 회장은 “교육장이 될 트레이딩 센터의 구축이 늦어진다면 적당한 교육기관의 설비를 임차해 먼저 교육사업을 시작할 것이며, 6월 중 KQN 출범행사를 하고 본격 교육 사업을 시작할 예정”이라고 말했다.
2021년 7월 22일부터 10월 3일까지 프론트엔드 개발자로 참여한 프로젝트의 회고를 적어본다.
GitHub - 201411108/Coin_Auto_Trading: PybithumbAPI를 이용한 코인 자동매매 웹사이트
PybithumbAPI를 이용한 코인 자동매매 웹사이트. Contribute to 201411108/Coin_Auto_Trading development by creating an account on GitHub.
시작 계기
한창 더운 여름의 어느 날. 같이 1 주식 자동 매매 프로그램 만드는 방법 취업 준비를 위한 코딩 테스트를 공부하던 동기 형으로부터 쟝고(Django)를 사용한 백엔드 프로젝트를 하려고 한다는 얘기를 들었다. 당시 나는 프론트엔드 직무를 위주로 여러 기업들에 지원서를 넣었고, 기술 과제들을 풀며 자신감과 도전 정신이 넘쳐있었다.(과제들을 모두 불합격했다.) 프론트엔드는 어떻게 구성할 것이냐고 물어봤고, QT를 사용해서 데스크탑 앱 형태로 백엔드의 기능을 단순 보여주는 용도로 진행할 것이라는 얘기도 들었다.
프론트엔드 개발자가 있다면 백엔드 하는 팀원들은 프론트와 연동할 수 있는 기회를 얻을 수 있어서 좋고,
나는 내가 백엔드에 신경을 쓰지 않아도 되고, 백엔드와 통신을 좀 더 연습해볼 수 있는 기회라서 좋을 것 같잖아?
이런 생각으로 프론트엔드 개발자로 같이 하고 싶다는 의사를 전달했고, 프로젝트에 참여하게 되었다.
팀은 4명의 백엔드 개발자와 1명의 프론트엔드 개발자(본인)으로 총 5명으로 이루어졌다.
로그인 화면
어떤 프로젝트인가?
프로젝트는 가상화폐 거래소 중 하나인 빗썸에서 제공하는 api를 활용한 가상화폐 자동거래 서비스이다.
백엔드는 파이썬 웹 프레임워크 중 하나인 플라스크(Flask)를 사용하여 작성되었다. 빗썸 api에서 필요한 정보를 받아 자동거래 서비스를 구현하고 프론트엔드에 표시하기 위한 정보를 RestAPI로 작성하였다.
프론트는 타입 스크립트(Typescript)를 사용한 리액트(React)로 작성되었다. 사용자가 서비스를 사용할 수 있도록 UI를 작성하였고, 백엔드에서 제공하는 RestAPI를 활용하여 사용자에게 필요한 정보를 제공하고 사용자의 응답을 백엔드에 전달하는 기능을 구현하였다.
서비스를 사용하는 사람은 빗썸 api에서 제공하는 키값을 통해 먼저 로그인을 진행한다. 로그인을 진행하면 내가 보유하고 있는 가상화폐 현황과 빗썸에서 가장 인기 있는 상위 20개의 가상화폐 거래 현황을 확인할 수 있다.
보유하고 있는 가상화폐와 상위 20개 가상화폐의 일부 정보는 24시간을 기준으로 업데이트되며, 일부 정보는 실시간으로 업데이트된다.
로그인을 한 이후 우측 상단의 거래 시작 버튼을 누르면 서버에서 자동거래를 진행한다. 거래 시작 버튼은 거래 종료 버튼으로 변하게 되고 거래 종료 버튼을 누르면 서버에서 자동 거래를 종료하고 진행된 거래 내역을 사용자에게 표시한다.
좋았던 점
- 백엔드 개발자와 소통의 중요성을 몸소 느낄 수 있었다.
프로젝트를 진행하며 가장 좋았던 점을 뽑자면 소통의 중요성을 직접 느낀 것이다.
주변 지인들로부터 실제 현업에서 프론트엔드 개발자와 1 주식 자동 매매 프로그램 만드는 방법 백엔드 개발자 간 소통이 많아야 프로젝트가 잘 될 수 있다라는 말을 들은 적이 있다.말로만 들었을 때 잘 와닿지 않았는데 이번 프로젝트를 진행하며 왜 두 파트 사이의 소통이 중요한지 작은 부분이라고 깨달음을 얻을 수 있었다.
프로젝트 초반에는 서로 협업을 하지 않고 서로 맡은 파트들만 각자 진행하는 방식으로 진행하였다. 이렇게 하니 프론트엔드에서는 화면을 모두 구성하였지만 막상 백엔드에서는 다른 작업을 하고 있어 필요한 정보를 보내주는 api가 작성이 되있지 않기도 했고, 백엔드에서 api를 작성했지만 프론트엔드에서 다른 기능을 구현하고 있어 해당 api가 잘 1 주식 자동 매매 프로그램 만드는 방법 동작하는지 확인하지 못하는 등등 여러 문제들을 마주하게 되었다. 프로젝트 중반이 넘어가고 나서야 서로 내용을 공유하며 필요한 부분에 집중할 수 있게 되었다.
헷갈리는 의견을 바로 공유해서 해결할 수 있었다.
특히 api를 작성하는 부분에서 보내주는 데이터나 형태 등을 바로바로 논의할 수 있는 환경을 조성하고 나서는 작업에 소모되는 시간을 크게 줄일 수 있었다. 오히려 소통이 너무 과하면 서로 의견 충돌이 있지 않을까 다소 걱정했지만 오히려 빠르게 소통해서 발생한 혹은 발생할 문제를 해결하는 것이 훨씬 더 좋다는 것을 느낄 수 있었다.
- 깃 머지 시 충돌 등 팀 프로젝트에서 겪을 수 있는 문제들을 경험하고 해결해 볼 수 있었다.
프로젝트에서는 버전 관리 도구로 깃허브(Github)를 사용하였다. 개발하는 기능에 따라 여러 브렌치로 나누고 기능 구현이 끝나고 나면 main 브렌치로 머지하는 방식으로 개발을 이어나갔다. 다들 여러 사람과 하나의 깃 레포지토리에서 브렌치를 나누어 작업하는 것이 익숙하지 않다 보니 많은 문제 상황들을 겪게 되었다. 특히, 첫 번째 머지를 할 때는 수많은 컨플릭트(conflict)들을 마주하게 되었고, 이를 해결하기 위해 사회적 거리두기 시간제한이 있는 18시가 거의 다 되어서야 머지를 완료할 수 있는 경험을 겪게 되었다.
컨플릭트를 처음 맞이하게 되면 일단 한숨부터 나온다. 어디서부터 손을 봐야 할지, 누가 작성한 코드로 해야 하는지, 어떻게 수정해야 구현된 기능들이 손상 없이 합칠 수 있는지 등등등 컨플릭트를 해결하고 머지를 하기 위해서는 많은 과정들을 필요로 한다. 솔직히 혼자 프론트엔드 개발자였기 때문에 이 컨플릭트 문제에서는 다소 자유로울 수 있지만 다른 팀원들이 이 문제를 겪고 해결해나가는 과정을 함께하면서 앞으로 어떤 프로젝트를 진행하던 컨플릭트 문제에서 당황하지 않고 조금 더 빨리 해결할 수 있는 능력을 쌓을 수 있었다.
프론트엔드 개발을 함께하는 팀원이 있었다면 다른 좋은 점들을 느꼈을 수 있을 것이라고 생각하는데 일단 회고록을 작성하는 지금 현재 느낀 좋았던 점은 이 2가지를 뽑을 수 있을 것 같다.
아쉬웠던 점
그렇다고 마냥 좋은 점만 있는 것은 아니다. 아쉬운 점도 있다. 아쉬운 점도 좋았던 점과 마찬가지로 2가지를 뽑아보겠다.
- 일정에 쫓겨 기술 부채(technical debt)를 많이 남기게 되었다.
프로젝트를 진행하다보면 가장 흔하게 경험하는 문제가 바로 기한에서 오는 압박감으로 인한 문제라고 생각한다. 이번 프로젝트도 이를 피하지 못하였다. 원래는 팀원들 중 몇 명이 아직 학생이기 때문에 개강 전인 9월 전에 마무리를 하려고 했으나, 작업을 하다보니 생각보다 해야할 작업이 많아서 좀 더 연장되게 되었다. 그렇게 프로젝트를 진행하던 중 KBSC 공모전을 알게 되었고 이를 지원하게 되며 또 기한의 압박에 시달리게 되었다.
이 기한의 압박으로 인해 구현한 서비스에는 많은 기술 부채가 존재한다. 몇몇을 소개하면 다음과 같다.
- 로그인 기능 시 jwt 등의 방법을 사용하지 않고 세션 스토리지(session storage)를 사용하였다. 이는 보안 문제 등으로 이어질 수 있어서 제대로 구현된 로그인 기능이라고 말하기 어렵다.
- 실시간 통신 방법이라고 말했지만 실제로는 실시간 통신이 아니다. 실시간 통신이 이어지는 부분은 빗썸 서버와 백엔드에 구현되어 있고 백엔드와 프론트가 통신하는 방법은 RestAPI를 지속적으로 호출하는 방법을 사용하여 구현되어 있다. 원래 기획한 대로면 웹소켓(Websocket)을 사용해서 구현되어야 하는 부분이지만 기한으로 인해 제대로 구현하지 못하고 넘기게 되었다.
- 사용자 UX적인 측면이 고려되지 않았다. 로그인 시 백엔드에서 DB로부터 정보를 받아오기 때문에 일정 시간이 소모된다. 이 때, 화면에 어떠한 표시도 되지 않아 사용자 UX가 좋다고 말할 수 없다.
우선 동작하는 코드를 만들어야 했기 때문에 많은 기술 부채를 남기게 되었다. 이는 차차 리팩토링과 함께 진행할 예정이고, 리팩토링과 기술 부채를 해결해나가는 과정은 블로그 포스팅으로 다루려고 생각하고 있다.
- KBSC의 주제를 잘못 알고 참여 신청을 하였다.
이 아쉬운 점은 프로젝트의 아쉬움이라기 보다는 개인적인 아쉬움이다. 이번 KBSC의 주제는 "환경을 바꾸는 소프트웨어"였다. 공고를 보고 든 생각은 '아, 환경을 바꾸는 소프트웨어라면 우리가 진행하고 있는 프로젝트도 가상 화폐가 도입되는 경제 환경을 바꾸는 소프트웨어라고 말할 수 있겠구나.'라는 생각이었다. 지금 생각해보면 참 얇게도 생각했다. 이런 짧은 생각으로 팀원들에게 참여해보자고 권했고, 신청서를 제출하기 전 날에서야 이 환경이 자연 환경을 말하는 것을 알게 되었다. 굉장히 부끄러웠다. 당연히 주제를 맞지 않는 프로젝트를 제출했기 때문에 본선에 진출하지 못했다. 팀 프로젝트이기 때문에 의견을 낼 때는 한 번 더 생각하고 의견을 제시해야겠다는 다짐을 하게 되었다. 한 편으로는 같이 확인해주지 않은 팀원들에 대한 원망을 0.5 티 스푼만큼 1 주식 자동 매매 프로그램 만드는 방법 했다.
회고를 해보니 생각보다 많은 일들이 있었구나를 알게 되고 앞으로 개선해나가야 할 점도 알 수 있어서 좋은 것 같다. 앞으로 어떤 프로젝트를 하게 될 지 모르겠지만 이번 프로젝트의 경험을 비료삼아 더 나은 결과물을 완성해야겠다는 다짐을 하게 된다. 재밌게 진행한 프로젝트이고 비록 많은 부채와 함께하지만 공모전에 제출할 수 있었던 프로젝트라 기억에 남을 것 같다.
0 개 댓글