주식데이터를 가져오는 방법으로는 증권사 api도 있고, github에 올려져 있는 여러 코드들도 있지만 Django 백앤드에 필요한 상장주식코드(ETF 포함)만 가져오는데 무겁게 하기 싫어 코드를 짜보았습니다. 여러 블로그와 github 코드를 참고하였는데 최근에 정책의 변화인지 기존의 글들을 따라하면 otp가 공백으로 들어오는 현상이 발생하더라구요.

insomnia에서 request를 보내면 되는데 VS code안에서는 공백이 돌아와서 한참 해맴...

https://leesunkyu94.github.io/data%20%EB%A7%8C%EB%93%A4%EA%B8%B0/make_data/#

https://github.com/sharebook-kr/pykrx

그래서 위 두 곳의 정보를 통해 코드를 재구성해 보았습니다. ( 제 생각에 종목코드 외에 과거 데이터, 공매도 데이터 등이 추가로 필요하면 위의 github 코드는 pypi에도 올려져 있으니 그냥 pip install pykrx 한 다음에 모듈을 사용하는 것이 가장 좋을 것 같습니다. )

감사하게도 계속 보수 중이십니다.

 

https://github.com/qhqnf/asset-dashboard/blob/master/stocks/management/commands/crawler.py

결론적으로는 위 블로그에서 기술된 기존 방식에서 헤더에 {"User-Agent": "Mozilla/5.0"} 만 더해주면 돌아가더라구요.  아마 무분별하게 크로울링을 하는 것을 방지하기 위해 웹을 통해 가져가도록 만든 것으로 예상이 됩니다. 그리고 제가 만든 종목코드와 현재가만 가져오는 코드는 위의 제 github에 있고, 제 코드는 전날의 데이터를 가져와서 데이터프레임을 iloc[0:3]을 해서 현재가까지만 column을 가져온 것 뿐입니다.

 

* 저는 현재 미래에셋대우, NH투자증권(모바일증권 나무 앱), 한국투자증권, 삼성증권 등에서 거래하고 있으며 아래 글은 주관적인 저의 의견을 담은 글입니다.

요즘 들어 동학개미운동이란 말도 나올 정도로 개인투자자 분들이 투자를 시작하시고, 예탁금이 사상 최고에 도달하고 있다고 합니다. 그래서 증권사 어플을 여러가지 써 본 입장에서 어떤 증권사가 편리한 어플과 서비스를 가지고 있는지 말해보려고 합니다. 먼저 전체적인 서비스에 대해 얘기한 후, 각 증권사의 어플에 대한 주관적인 느낌을 써보겠습니다. 

 

1. 증권사 서비스

저는 주로 미래에셋대우와 NH투자증권에서 거래합니다. 공모주 청약 때문에 여러 증권사와 거래를 하면서 각각 증권사 지점을 방문도 해보고, 전화도 많이 걸고는 하는데 서비스를 받는데까지 걸리는 시간이 모든 증권사에서 꽤나 오래 걸렸습니다. 따라서 저는 증권사의 서비스에서는 평가할 것이 거의 없고, 집이나 직장에서 가장 가까운 증권사가 만족도에 가장 큰 영향을 미치는 것 같습니다.

결론: 가장 가까운 증권사가 제일 편하다.

저게 다 증권사...역시 강남

2. 어플

하지만 이제 대부분 비대면계좌개설을 하고, 비대면 계좌개설을 해야 수수료 혜택을 받을 수 있기 때문에 어플의 UI/UX가 매우 중요해졌다고 생각합니다. 따라서 제가 사용해본 경험을 통해 각 증권사 어플들은 어떤 특징을 가지고 있는지 알려드리겠습니다.

0123
각 어플들의 홈 화면, 왼쪽부터 NH, 

저는 어플을 쓰면서 많이 쓰는 탭이 자산조회, 주식잔고, 주식현재가, 주식주문입니다. 아마 다들 비슷하실 거라고 생각합니다. 저는 그 중에서도 매일 주식잔고만 확인하고, 변화만 체크하는 경우가 많이 때문에 주식잔고 탭을 기준으로 평가해보면 아래와 같습니다.

- 주식 잔고 탭 UI/UX

NH투자증권(모바일증권 나무) > 미래에셋대우 = 삼성증권 > 한국투자증권 

근데 미래에셋대우의 특징은 주식잔고 탭에 여러가지 버튼이 있어서 정보가 많이 들어 있습니다. 하지만 거의 쓰지 않기 때문에 높히 평가하진 않았습니다. 일단 NH투자증권의 어플이 가장 단순하고, 한눈에 보기 좋게 되어 있습니다. 그 다음으로 미래에셋대우와 삼성증권인데 사실 이 어플들도 편리하다고 생각합니다. 하지만 한국투자증권 어플은 확인할 때마다 계좌비밀번호를 넣어야해서 하루에 여러번 그 탭을 보는 입장에서 불편했다고 생각합니다.

 

다음으로는 나머지 탭들 ( 주식 주문, 주식현재가, 기타 등등 ) 을 보면 특이하게 대부분 비슷하게 만들어져 있습니다. ( 증권사 어플을 만들어주는 업체가 따로 있는게 아닐까 생각할 정도로... ) 

0123
왼쪽부터 NH, 삼성증권, 미래에샛대우, 한국투자증권 

사실 주식주문 탭은 평가하기에 대부분 비슷하지만 그래도 순서를 정해보자면...

삼성증권 = NH투자증권 > 한국투자증권 = 미래에셋대우

이정도인 것 같습니다. 그리고 나머지 서비스 탭들은 거의 만지지 않아서 평가하지는 않겠습니다.

마지막으로 증권사 선택에 팁을 드리자면 가장 많이 사용하는 서비스에 따라 증권사를 선택하는 것이 중요하다고 생각합니다. 지점을 많이 방문해야 된다면 무엇보다 집이나 직장과의 거리가 가장 중요할 것 같고, 조금 불편하더라도 낮은 수수료가 중요하다면 소형사를 선택할 것 같습니다. ( 예를 들어 공모주 청약을 많이 한다면 IPO를 많이 주관하는 대형사를 선택한다던지...) 아무튼 좋은 증권사 선택하셔서 편리하게 이용하셨으면 좋겠다는 마음에서 글을 써보았습니다.

* React Native를 이용하여 개발하면서 Expo라는 앱을 사용하게 되었는데 Dev tool을 사용하면 갑자기 네이버도 안 들어가지고 '사이트에 연결할 수 없습니다' - ERR_CONNECTION_FAILED 라고 떠서 stackoverflow를 참고하여 해결한 방법입니다. (일반적인 경우에도 해결방법이 될 지는 모르겠네요...)

해결방법을 알려준 stackoverflow의 유저도 저와 굉장히 유사한 환경에서 개발을 하고 있었는데

1. WSL을 이용해 Ubuntu를 사용

2. React-Native와 Expo를 사용해 개발 중

위와 같은 상황에서 Expo Dev-tool을 사용하다보면 갑자기 인터넷이 연결되어 있지만 네이버와 같은 평범한 사이트도 연결이 되지 않는 상황이 벌어지고 있는 것 같습니다. 컴퓨터를 껐다가 키면 해결되긴 하지만 번거롭기 때문에 그보다 쉬운 방법을 알려주었습니다.

1 - WIN+R -> services.msc 검색 -> 서비스 창이 뜸
2 - LxssManager 찾기
3 - 우클릭 후 재시작

'네이티브 ELF 이진 파일의 실행을 지원합니다.' 라는 걸 보니 확실히 React Native와 관련이 있는 거 같긴한데... 왜 이러는 걸 까요... 아무튼 재시작을 하면 모든 사이트들이 잘 돌아가긴 합니다...ㅋㅋ

출처: https://stackoverflow.com/questions/58159333/err-connection-failed-on-chrome-ie-after-20-minutes-of-working-when-internet-is

합격!

5월 31일 날 SQLD 시험을 봤는데 한 달만에 시험 결과가 나왔네요. 다행이 두 과목 모두 50% 이상 맞췄고, 총점 60점 이상으로 합격했네요. 사실 SQL을 직접적으로 사용하려는 목적보다 python Django를 이용하면서 데이터베이스 지식이 필요하기도 하고, 데이터를 다루는데 RDBS에 대한 기본 지식은 갖추어야 할 것 같아 자격증 공부를 해보았습니다. 기본지식을 쌓고자 하는 목적이었기 때문에 한 달만에 따고자 하는 마음가짐으로 임했습니다.

60점 이상이면 합격

 

먼저 저는 컴퓨터공학 전공자는 아니고, 프로그래밍에 관심있는 사람 정도로 생각해주시고 읽어주세요.

제 생각에 전공자가 아니더라고 한 달이면 SQLD 자격증을 딸 수 있다고 생각합니다. 왜냐하면 합격기준이 높지 않기 때문입니다. 그렇다고 문제의 난이도가 엄청 낮지는 않습니다. 그런데 왜 한 달이면 충분히 자격증을 딸 수 있느냐? 어려운 문제는 꽤나 풀기 난해하지만 쉬운 문제만 다 맞추어도 60점을 충분히 넘을 수 있기 때문입니다.

공부 방법은 먼저 이론은 SQL 자격검정 이론서 두꺼운 책을 시중에서 팔고 있지만 그걸로 공부하지는 않고, 구글이나 네이버 검색으로 정리되어 있는 것을 읽거나 dbguide.net 에서 찾을 수 있는 정보로 공부를 했는데 지금은 이 페이지가 이사를 해서 잘 안나오는 것 같습니다...

그리고 연습문제는 데이터산업진흥원에서 출판한 SQL 자격검정 실전문제집을 사서 풀어보았습니다. 이게 정말 도움이 되는게 SQLD 시험이 아래 책에서 나온 문제와 비슷하게 출제되기 때문에 저는 이 책을 세 번정도 읽어보고 합격할 수 있었던 것 같습니다.

SQL 자격검정 실전문제

지금까지 프로그래밍을 하면서 옵티마이저 같은 개념은 적용해본 적이 없는데 Django를 다루면서 데이터베이스를 이용해보니 Many-to-Many와 같은 관계나 데이터베이스의 기본지식을 알고 있는 것이 매우 도움이 된 것 같습니다. 이래서 컴퓨터공학에서 왜 데이터베이스 과목을 필수로 배우는지 이해할 수 있는 부분이었습니다.

 

2달에 걸친 풀스택 에어비앤비 클론 코딩을 드디어 끝냈내요. 이 코스를 통해 python과 Django를 배울 때는 재밌어서 하루도 빠짐없이 코딩을 했습니다. 5월에는 천천히, 6월에는 2배 정도 빠르게 했으니 아마 열심히 하시는 분이라면 6주면 끝낼 수 있지 않을까 싶습니다. (사실 AWS와 연동하는데 일주일 동안 풀지 못한 오류가 있었는데 그거 때문에 시간을 많이 잡아먹음... 혹시라도 같은 오류가 나시는 분이 있을까 글도 올림 - [Django/AWS EB] wsgiPath 오류 및 502 Bad gateway)

 

5월과 6월 장장 2달간의 코딩

 

니꼴라스와 함께한 첫 풀스택 클론 코딩의 후기를 말해보자면 먼저 하고 싶은 말은 처음에는 어렵습니다. 처음에는 코드를 같이 써보고도 어떻게 돌아가는지 이해가 되지 않습니다. 근데 강의를 들어보면 같은 문제를 여러가지 방식으로 풀어주거나 비슷한 걸 여러 개  같이 만들어보는데 이렇게 여러 번 반복하다보면 갑자기 이해가 됩니다. 예를 들어 Django에서는 template(html)과 view와 url을 같이 쓰는데 대충 설명해보자면 template는 유저가 보는 화면을 구성하는 것이고, view는 그걸 돌리는(?) 방식이고, url는 www.naver.com 같이 주소라고 보시면 됩니다. 처음에는 이 세가지가 어떻게 연결되는지 잘 이해가 되지 않는데 여러 번 만들다 보면 이해가 됩니다.

 

내 home view

 

두 번째로 느낀 것은 코코아톡 강의나 바닐라JS강의를 들을 때는 몰랐는데 AWS에 배포를 하고 누군가가 내가 만들걸 볼 수 있게 되었을 때 굉장한 보람을 느꼈습니다. 그래서 강의 중 이 배포 부분이 가장 어렵고, 가장 보람을 느끼게 되는 부분이 아닐까 싶습니다. 

마지막으로 어느정도 난이도가 있는 강의를 들었다고 생각하지만 오히려 이 강의를 들으면서 제가 얼마나 아무것도 몰랐는지 느끼게 되었습니다. Django라는 framework가 굉장히 편리하게 만들어져 있음에도 불구하고, 이걸 정말 전문적으로 이용하기 위해서는 이제 wsgi랑 서버에 대해서도 알아야 하고, 실제 실무에서는 백엔드와 프론트엔드를 나누어 놓기도 하는데 그러기 위해서 API 특히, Django REST API(DRF)에 대해서도 알아야 하고, 그리고 이번에 만든 것은 굉장히 정적인데 이걸 멋지게 만들려면 Javascript를 이용해 사용자의 이벤트를 잡아줘야 하고, 등등.

결론적으로 이 에어비앤비 클론 코딩 강의는 코딩을 하면서 보람을 많이 느끼게 한 강의라고 생각하고, 클론 코딩 강의이기 때문에 부담없이 천천히 배울 수 있는 강의라고 생각합니다.

강의와 별개로 혼자 만들어본 My reservation
끝!

저는 이제 정말 장고를 잘 이용하기 위해서 노마드 코더에서 REST API 강의를 수강해보겠습니다ㅋㅋ

+ Recent posts