요즘 어느 사람을 만나더라도 어색하지 않은 화제거리가 바로 코인이다.
진짜 치트키처럼 좀 어색하다 싶으면

저기... 혹시 코인 하세요...?

이 말 한마디면 정적을 깨고 말문이 트일 정도다.

나 역시도 코인을 하고있는데 주식같은 경우에는 장종 시간도 있고... 주말에는 쉬지않는가... 물론 해외주식을 같이하고있다면 잘시간도 없겠지만 근데 코인은 밤낮도없고... 주말도없고... 걍 쉬는시간이 없으니 사람들이 하루종일 잠도못자고 보고있는게 아닌가 싶다.
이럴때 필요한게 이 아니겠는가?!

그래서 파이썬으로 코인 자동매매봇을 만들어보기로 했다. 일단 어떤 라이브러리를 써서 코인을 매수하고, 매매하고, 데이터를 어떻게 얻어오며 어떤 데이터를 얻어올 수 있는지도 알아냈고 이제 가장 중요한 어떨때 팔고, 어떨때 사야하는지를 결정하는 핵심인 알고리즘만 남았다.

자... 여기까지 갑자기 내가 잘못찾아왔나...? 분명 제목은 코드서버 구축기 인데 무슨 코인자동매매야...? 하겠지..?

일단 여기까지 잠깐 스탑하고... 언제 어디서든지 코인 자동매매가 잘 되고있는지 혹은 알고리즘이 이상하게 되서 긴급하게 패치를 해야할 경우 언제어디서든지 코드에 접근하여 수정하거나 패치를 해야할 경우가 있을것같다는 생각이 들었다. 그러기 위해선 언제어디서든 코드를 수정할 수 있는 개발환경이 갖춰져야 하는데...

회사는 언리얼 엔진을 쓰고있어서 사실 코드 에디터 만으로 할수있는게 없다. 엔진을 실행시켜야하는데 이걸 할빠엔 직접 돌리거나 정 상황이 안된다면 원격툴같은 (나 같은 경우에는 AnyDesk를 쓰고있다.) 걸로 접속을 해야하는데 태블릿 버전은 영... 좋지않아서...일단 단축키나 윈도우 키+다른키 같은 명령도 안먹고 어쩌고저쩌고... 회사생각하면 언제어디서든 개발하는 환경 자체가 필요하지 않다. 집에서는 집컴도 좋아서 집에서 걍 하면되고 회사에서는 회사컴이 좋으니 하면되고 다른곳에서도...? 어... 워라밸은 지키자... 내 좌우명이 할땐 하고 놀땐 놀자이다. 그날 못 끝낸 일이라면 야근을 해서라도 하고 주말이나 쉴때는 쉬자 제발...

그래서 별 필요없던 이런 환경 자체가 파이썬을 배우면서 확 달라졌다. 이러한 환경이 필요했고 파이썬 정도면 가능하기때문에 구축하기를 시작했다...

검색을 쫌 하니 code server 라는것을 찾았다. 제대로 찾아본건 아닌데 vscode가 웹으로 돌아가기 쉬운 언어로 베이스가 짜져있어서 이렇게도 가능한거라고 본거같다.

code server는 웹에서 vscode인터페이스가 뜨고 vscode 처럼 쓸 수 있는 환경을 제공한다. 하지만 code server라는 이름에 걸맞게 웹에서 스탠드 얼론으로 돌아가는게 아닌 server가 필요하다. 이 서버는 사실 어떤거라도 될 수 있다. 컴퓨터, 안드로이드, ios,맥... 어... 사실 ios랑 맥은 안해봤다. 내겐 애플제품이 한개도 없어서...

뭐 여러가지 다른 환경이 있지만 여기선 내 상황만 고려한 해결책을 서술할 것이다.

내 네트워크 환경은 일단...

이렇게 구성되어 있고, NAS는 Synology nas라서 도메인을 발급받아 놨다. 그래서 우리집 ip는 도메인으로도 접속이 가능한 상태이고 접속 시 1번 컴퓨터에 붙을지, 2번 컴퓨터에 붙을지, 나스에 붙을지를 공유기에서 포트포워딩으로 결정하도록 했다.

1번 컴퓨터는 주로 사용하는 메인컴퓨터고 2번 컴퓨터는 사실 1번 컴퓨터를 사고 난 다음 버림받은 컴퓨터라 아무것도 안하고 놀고있다. 이걸 팔까 하는 생각도 했었는데 어느 날 2번 컴퓨터에는 원래 ssd와 hdd가 설치되어 있었는데 ssd가 인식이 안되더니 그때부터 컴퓨터가 엄청나게 느려지는 현상이 발생했었다. 나는 이게 컴퓨터가 수명이 다되서 그런가... 생각해서 그냥 방치를 하다가 파는걸 생각하니 진짜 믿을수없을정도로 느려 터졌는데 이걸 팔기에는 엄청난 양심의 가책이 느껴져 파는걸 포기했었다.
어느 날 이 컴퓨터에도 서브로 돌릴 일이 생각나서 잠깐 써보려고했는데 진짜... 여전히... 너무나도 느린것이다... 근데 갑자기 이 컴퓨터 사양을 생각하니 도저히 이렇게 느려질 수가 없는데... 내가 이 노트북에 쓴 돈이 그래도 적은돈은 아닌데... 하는 생각에 분노와 억울함이 밀려오더니 ssd때문인걸까 하고 NVMe ssd를 하나 주문했다.
교체하려고 기판을 뜯어보니 ssd는 죽은것같고... hdd를 보니... 무슨... 첨보는 하드가 들어있는것이다... rpm도 낮고... 그리곤 생각났다.

아... 이거 가성비 쩌는거였지...

알고보니 ssd에만 몰빵하고 생각해보니 ssd가 그렇게 망가지는거면 몰빵도 안한것같네... hdd에는 겁나 구린걸 넣어놓은것이다. 그로인해 내 돈은 구매당시에 어느정도 세이브를 했기에 뭐... 그렇게 화가 나지는 않았지만 여튼 그렇게 ssd를 까니 2번 컴퓨터는 다시 그렇게 원래 모습대로 돌아와줬다...

그렇게 원래대로 돌아온 컴퓨터지만 여전히 할일이 없어서 놀고있었는데 바로 코드서버로 만들기로 했다.

code server를 윈도우에 설치하는 방법보다 먼저 생각해야하는 방법이 어떻게 실행하는가 인데, 크게 두가지가 있다.

  • Power shell
  • Ubuntu

나같은 경우에는 조금 생각해보니 git이나 perforce같은 소스컨트롤을 사용해야할 일이 있을것같아서 원격으로 접속 가능한 ssh를 사용할 일이 많을것같았다. 또한 ssh명령어를 생각하면 power shell보다는 개인적으로 ubuntu가 더 익숙했기에 ubuntu를 사용한 설치방법을 써내려갈것이다.

리눅스를 윈도우에 설치하려면 또 여러가지 설정을 해야했었고 설치법도 wsl1과 wsl2 이렇게 두가지로 나뉘어지고 두가지에 따라서 결정적으로 hyper-v 로 인해 가상랜을 하나 더 만드는게 달랐어서 애를 먹었다... 이건 나중에 차차 자세하게 설명을 할것이다.

그래서 순서에 대해서 간략하게 정리를 하면

  1. Ubuntu설치
  2. SSH 서버 구축
  3. code-server 설치
  4. 외부에서 code-server로 접속 가능한 환경 만듬

하지만 이걸 하면서도 여러가지 문제가 많이 발생했기에 아마 글이 더 길어질것이다.
이 글은 이 모든일을 겪고 난 다음 기록으로 남겨둬야겠다고해서 쓰는거라... 후... 그래도 결국 해냈다... 다 하는데 2주정도 삽질을 한것같다...
이제 코인매매 알고리즘을 짜면되는데... 글이나 쓰고있네...

언제만드냐고오...

profile
개발하다가 나온 여러가지 고민과 그에 대한 해결책들을 간결하지않고 일기처럼 끄적여봅니다.

0개의 댓글