챗GPT를 이용해서 가상화폐 자동매매 코드짜본 후기, 챗GPT일시키는 요령

다시, 가상화폐 자동매매 코드 구축

비트코인의 거대한 상승은 놓쳤지만 그 다음에는 알트코인의 상승이 따라온다는 것을 경험적으로 알고 있습니다. 물론 경험적으로 그랬을뿐이고 두 번 정도밖에 그런적이없어서 (2017년, 2021년) 이번에도 그럴 것이라고는 장담할 수 없습니다.

원래 비트코인 자동매매시스템을 구축해서 2022년 하반기~2023년 1분기까지 돌리다가, 코드도 잘 안돌아가고 마침 돈도 안벌리는 하락장이어서 관심을 끄고 버려뒀는데, 그 결과 2024년의 비트코인 대상승장을 놓쳤습니다.

이 다음에 오는 가상화폐 알트코인 장은 가상화폐 자동매매 시스템을 구축하여, 너무 늦지않게 발을 담궈보려합니다. 물론 큰 수익을 바라는 것은 아닙니다. 다만 발이라도 담그고 있으면 아무것도 하지않는것보다는 효과가 좋겠지 라고 생각하고 있습니다.

챗GPT를 이용한 코드(프로그래밍) 해보기

불과 2년전, 대학원을 다닐때 그리고 제가 가상화폐 자동매매 시스템을 만들때는 챗GPT가 없었습니다. 조악한 코드지만 직접 짰습니다. 인터넷과 책과 다른사람들의 블로그 유튜브 그리고 깃허브까지 봐가면서요.

A라는 블로거(유튜버)가 한개 코인을 자동매매하는 코드를 올렸다면 그걸 일단 가져오고, 나는 여러개 코인을 하고싶으면 거래대상 코인을 리스트로 만들어서 반복문을 만들고 그 반복문 안에 다른 사람의 코드를 끼워넣는 그런식으로 코드를 만들었습니다.

저는 코딩능력이 일천(얕다는 뜻, 천개가 아님) 하기때문에 저렇게 만들면서 시간이 꽤 걸렸고, 한땀한땀 만들면서 구동해가면서 디버그해가면서 만드느라 힘이 들었습니다. 그렇지만 2년이 지난 2024년이되자, 코딩 환경은 엄청나게 대격변을 했습니다. 바로 챗GPT때문입니다.

프로그래밍, 코딩에 강점이 있는 챗 GPT

챗GPT를 써본사람들의 불만은 이게 대답을 제대로 못한다고 하는것이고, 그 대답이 미숙하거나 틀린 대답을 뱉어내는 영역을 가만히보면 바로 “지식 검색” 의 영역입니다. 지식이라는건 YES와 No가 있고 이것에 대해서는 생각과 판단을 해야하는데 챗GPT는 판단은 하지 않습니다.

그러다보니 할루시네이션 이라는 챗GPT의 속칭 거짓말, 거짓말을 하면서도 본인이 거짓말을 한다고 알지조차 못하는 저 잘못된 답변을 내놓을 가능성이 높아집니다. 대신 사람의 경우에는 그 잘못된 대답을 빠르게 포착해 낼 수 있지요. 그렇기때문에 지식검색의 영역에서는 챗GPT의 단점이 잘 보이는 것입니다.

그렇지만 프로그래밍, 코딩의 영역에서는 그렇지 않습니다. 상대적으로 일반 지식검색에 비해서는 사람이 챗GPT의 잘못된 점을 알아차리기 쉽지 않습니다. 전문 개발자가 아니면 그러기 쉽지 않지요. 그런데 챗GPT의 입장에서는, 인간이 물어보는 지식을 검색하는것은 사실 챗GPT가 볼때는 그게 무슨이야기인지 모르고 0과 1로 이루어진 것 뿐입니다만,

만약 사람이 이야기를 하면서 프로그래밍을 해달라고하거나 코드를 짜달라고하면 챗GPT는 그렇게 코드를 짜서, 그것이 어떻게 구동하는지 자기가 판별할 수 있고, 무엇보다 사람의 자연어가 아닌 컴퓨터의 코드기때문에 챗GPT본인에게 더 익숙하고 친숙할 것입니다.

그런 특성으로 인해서 챗GPT에게 코딩을 시켜본 결과 일반 지식검색에 비해서 상당히 만족스러운 결과를 얻었습니다. 아마 이것은 위에서 이야기한 사람과 챗GPT(컴퓨터)의 각기 잘하는 영역의 차이때문에 더 이렇게 느끼는 것 같습니다.

  • 일반 지식검색 : 사람이 잘 함, 사람이 잘못된거 잘 찾음, 챗GPT의 전문영역이 아님
  • 프로그래밍(코딩) : 사람이 잘 할 수 있지만 사람의 언어가 아니므로 잘못된거 잘 못찾음, 챗GPT의 전문영역이자 컴퓨터언어임

이래서 그런게 아닐까 싶습니다.

실제 챗GPT에게 가상화폐 자동매매 코딩을 시켜보면서 느낀 주의할점

그렇지만 인간을 완전 대체할 수는 없는 챗GPT

그렇지만 만능은 아니고 의외로 헛점들이 좀 있었습니다. 챗GPT가 코딩을 잘한다는 사실을 알게되면 가장 궁금한 것이

  • 그렇다면 이제 코딩을 전혀 못하는사람도 프로그래밍을 막 할 수 있는거야?
  • 프로그래머는 이제 다 실직위기야??

라는것이겠지요. 이에 대한 저의 생각을 말해보면, 저처럼 어정쩡하게 코딩하는 사람들은 일자리가 다 없어질 것 같구요, 아주 잘하는 프로그래머는 앞으로도 계속 승승장구 할 것 같습니다. 지금하고 뭐가다르냐구요?

지금까지는 잘하는사람은 Top대우를 받고, 잘 못하는 사람도 그럭저럭 먹고살 수 있었는데 그런사람들이 다 사라진다는 이야깁니다. 이렇게 이야기할 수 있겠죠. 인터넷 강의가 발달하기 이전에는 대치동 1타강사는 당연히 잘나갔지만 대충가르치는 동네학원도 먹고살 수 있게 수요가 좀 있었는데, 인강이 발달하고나서는 대치동 1타강사의 인강이 다 퍼져나가면서 어설픈 동네학원은 망하게 된 것과 같다고 할 수 있습니다.

그럼 제가 해본 결과 챗GPT가 코딩을 얼마나 잘하는지 어떤걸 잘 못하는지 경험담을 좀 풀어놓도록 하겠습니다.

주의할점 : 한번에 일을 다시키면 안된다

챗GPT에게 가상화폐 자동매매 코드를 짜달라고 일을 시킬때 한번에 다시키면 안됩니다. 무슨이야기냐면,

  • 시세를 다 불러오고
  • 그 시세를 기반으로 이평선을 만들어서
  • 이평선이랑 오늘 현재가를 비교해서 상승장인지 하락장인지 판별하고
  • 그 판별한 것을 기준으로 계좌 금액의 절반을 매수를 해주고
  • 하루동안 보유하다가 다 팔아줘
  • 아 손절선은 5%여야하고 익절선은 20%여야해

이런식으로 명령을 내리고 엔터를 누르면 안된다는겁니다. 이러면 챗GPT가 코드를 뱉어내긴 뱉어냅니다. 그렇지만 사람도 한번에 여러가지 일을 시킴당하면 혼란스럽고 뭐하나 빼먹고 그러잖아요? AI도 마찬가지입니다. 얘도 함수를 다섯개를 짜야하는데 말을 다섯개를 한번에 다시키면 한두개를 빼먹거나, 변수를 빼먹거나합니다. 그래서 굉장히 그럴싸하지만, 실제로 돌려보면 에러가 나고 그렇습니다.

그럴때는 가슴이 덜컹 합니다. 아니 챗GPT가 코드를 잘짠다더니 안돌아가네? 이거 믿을 수 있는거야? 라면서 지금부터 할 작업에 대한 신뢰가 낮아집니다. 하지만 그럴 필요는 없습니다. 우리가 사무실에서 신입과 일하면서 신입이 뭘 가져왔는데 뭐하나 빠져있거나 오타있으면

야 이거 빠졌다 다시가져와라

라고 하지 않습니까? 챗GPT도 그렇습니다. 물론 그런문제는 있습니다. 신입이 오타를 안내고완벽하게 잘 해온다면 그 신입이 하는 일에 대해서 믿음을 가지고 다음부터는 검증을 안해도되는데 신입이 저런식으로 자꾸 오타를 내오면 내가 다 봐야되는거잖아요.

네, 봐야죠. 그건 어쩔수없습니다. 그정도는 합시다. 왜냐면 대신 내가 처음부터 다 짜지 않아도 되잖아요. 그리고 직접 머리를 쓰고 기계식 키보드를 두드려가면서 코드를 입력하지 않고 사람이 하는 자연어로 이러이러한 가상화폐 자동매매 프로그램을 짜줘라, 조건은 이렇다 라고하면 10초만에 뚝딱 코드를 뱉어내는거, 이 속도와 편함만 해도 엄청나지 않습니까.

단계 by 단계로 시키자

그럼 한번에 일을 다시키지 않고 어떻게 시키느냐? 단계 단계별로 시키는게 방법이었습니다. 챗GPT라는 녀석은 사람이 말을하면 순식간에 기다란 코드를 짜주기때문에, 그걸 받아서 읽어나가거나 비교를 하거나 실행을 돌리면, 틀렸을 경우 틀린부분을 찾기가 굉장히 힘이듭니다.

그럴때 하나를 시키고 실행해보고 검증하고, 하나를 시키고 실행해보고 검증하고, 이러면서 나아가야합니다. 그게 한번에 일을 시키는 것보다 느려보이지만 결과적으로는 더 빠른 길입니다. 예를들면 이런거죠. 가상화폐 자동매매시스템을 만들건데, 파이썬으로 짤거고

  • 현재가 조회하는 함수를 만들어줘 -> 출력물을 실행해봄
  • 이평선 계산하는 함수를 만들어줘 -> 출력물을 실행해봄
  • 위에서 니가 만든 함수를 다 합쳐서 하나의 코드로 만들어줘

이런식으로 일을 하라는 것입니다.

이런 방법은 새로 코드를 하나 짜달라고할때보다, 기존 코드를 보여주면서 고쳐달라고 할때 더욱 빛을 발합니다. 반드시 그렇게 해야합니다. 왜냐면 챗GPT는, 위에서 말했듯이 코드를 길게 짜주기때문에 이런이런 개선점을 한번에 여러가지를 말한 다음에

자 지금까지 말한걸 다 반영해서 짜줘 라고 하면 아주 긴 코드가 나옵니다. 근데 그 코드를 돌렸는데 안돌아가고 에러가 나거나 내가 원하는 결과가 나오지 않고 다르게 돌아간다면, 어디가 변했고 어디가 틀렸는지 알아채기가 너무 힘듭니다.

어디가 개선됐는지 알 수 없으면 기존 코드까지 망쳐버리고 완전 수렁에 빠져버릴 수 있지요. 제가 경험한 것인데, 원본 코드 120줄짜리를 주면서 이러이러한점을 추가했으면 좋겠다 라고 했더니 중간에 한줄두줄씩 삽입을 해왔는데, 뭐 그건 좋아요. 근데 보다보니까 원본과 비교를 해보니 함수 하나가 통으로 날아간겁니다.

그래서 야 너 왜 내 원래 코드에서 함수 하나를 맘대로 없앴냐 라고 했더니 죄송합니다 하면서 함수를 되살려서 새 코드를 뱉어내는겁니다? 그걸 몰랐으면 기능이 완전 이상해질뻔했잖아요. 가상화폐 자동매매를 하면서 매매 대상은 물색하고 주문까지 넣는데, 자동매매니까 계속해서 탐색하고 주문을 넣어야하는데 주문을 맨처음 한번 넣고 끝나버릴뻔 했습니다.

코딩을 아예 모르면 쓰기 어려운 챗GPT코딩

사실 그렇습니다. 아예 모르면 안돼요. 왜냐면 제가 위에서 설명한 사례들만 봐도, 이녀석이 잘 짜오기는 하는데 잘못짠 것을 바로잡는 것, 찾아내는것은 바로 사람인 저의 영역이거든요. 그런의미에서 아예 코딩을 하나도 못하는 사람이 챗GPT를 이용해서 비트코인자동매매 프로그램을 짠다는건 좀 지난한 고생이 예상됩니다. 예를들면 이런거죠.

개발자한테 일을 시키는데, 개발자가 일을 잘 했는지 못했는지 몰라요. 돌려보니까 잘 안돌아가요. 그럼 어디가 잘못됐고 니가 뭘 잘못한 것 같으니 고쳐와라 이렇게 해야되는데

야 잘 안되잖아 빨리 고쳐 야 이번에도 안되는데 다시해와 야 이번에도 안돼 왜이래?

의 과정을 무한히 반복해야될 수도 있는 것입니다. 결국 내가 잘 모르면 일을 시키고 조질때도 잘 못조지는 것은 인간을 대하는 현실세계나 기계를 대하는 코딩의 영역이나 다 똑같은 것이라 할 수 있지요.

대안적 방법론 제시

만약 내가 코딩을 하나도 할줄 모른다, 그런대 챗GPT를 이용해서 가상화폐 자동매매 프로그램을 만들고싶다 라고 하면 이렇게 일을 시키면 될 것 같습니다.

  1. 먼저 내가 무엇을 원하는지 요건을 매우 세세하게 정하세요. 그냥 사람들끼리 말하듯이 개떡같이 말하면 찰떡같이 알아듣기를 바라지 마시고, 초등학교 저학년에게 지시한다고 생각하고 모든것을 다 규정하고 정의하고 세세하게 지정해 두세요
  2. 그리고 그 조건을 챗GPT에게 보여주면서 이런 코드를 짜달라고 하세요.
  3. 짜 온 코드를 실행해보면서 잘 안돌아가면 그 오류를 복붙해서 보여주세요. “야 이런오류가 나는데 이 오류가 뭔지 설명해주고, 니가 짜 준 코드의 어디가 잘못돼서 이런 오류가 발생하는지 설명해주고, 오류가 안나게 코드를 고쳐주고 어디를 고쳤는지 화살표든 형광펜이든 표시해줘” 이런식으로 명령을 내립니다.

저렇게 하면 결국은 아무리 코딩을 못하더라도 챗GPT를 이용해서 잘 돌아가는 비트코인 자동매매 프로그램을 만들 수 있으리라 생각합니다. 세상이 참 좋아졌습니다. 컴퓨터가 인간의 생산성을 극도로 끌어올린 것 처럼, AI의 발달은 할 수 있는 것을 더욱 많게 만들어 냈습니다.

Leave a Comment