지피티; 클로드로 코딩 혼자서 공부하기 1

아니? 지피티가 이런 것까지 가르쳐 준다구?


안녕하세요. 저는 혼자서 코딩 공부를 하고 있는 40대 직장인 캡틴코드입니다.


저는 코딩을 잘하지는 않지만 프로그램 기획과 매니징을 했었습니다. 창업을 해서 앱을 만들어 본적도 있습니다.


일을 할 때는 코딩하는 개발자님들을 팀원으로 해서 각종 프로젝트를 했었습니다.


그러던 차에 이제는 제가 직접 코딩을 배워서 제가 하고 싶은 프로젝트를 해보고 싶었어요. 


내가 직접 코딩을 하면 개발자님들에게 일을 요청하는 데에도 도움이 되고, 


나중에 저 스스로 창업을 하는데도 도움이 될 거라고 생각했어요.


지금 다니는 회사를 평생 다닐 것이 아니기 때문에, 코딩을 배워서 평생 직업으로 삼고 싶었습니다. 


그래서 구글검색을 하고, 책을 읽고, 유튜브에서 강의 동영상을 보았습니다.


그런데 지루했어요. 진도가 잘 안 나가고, 중간에 이해가 안되는게 있어도 이걸 물어볼 데가 없더라구요. 


제가 IT 업계에서 일을 오래 했었기 때문에, 컴퓨터와 기술에 대한 여러가지 개념은 오히려 경험이 적은 개발자님보다 더 많이 아는 경우도 있었어요. 


그런데 제가 원하는 것을 제가 원하는 방식으로, 저의 수준에 맞추어서 설명을 해주는 그런 책이나, 강의 동영상이 없더라구요. 


초보자를 대상으로 하는 책을 보면 어떤 내용은 너무 쉬워서 지루하고, 어떤 내용은 설명이 저한테 와닿지가 않아서 지루했어요.


그러다가 챗지피티; 클로드 등의 AI 서비스로 공부를 시작하게 되었습니다. 줄여서 지피티; 클로드라고 할게요.


지피티는 제가 공부를 하는데 드는 시간을 많이 줄여 주었습니다. 


과거에는 코딩을 공부하려면, 책을 읽거나 강의를 보다가, 이해가 안되는 부분은 구글검색을 해서 추가로 설명하는 글을 읽고 공부를 했었습니다. 


이것도 그때에는 매우 효과적인 방법이었어요. 궁금한 것에 대해서 구글검색을 자주 하는 개발자냐, 검색을 잘 안하는 개발자냐에 따라서 학습 속도가 달라졌습니다. 


에러 문구가 나왔을 때 그 에러 문구를 구글검색에 따옴표 “ “ 치고 검색하면 다른 사람들의 해결 방법을 볼 수 있었어요. 


이 공부 방법이 지피티 나오기 전에 지난 한 15년 동안 코딩공부를 잘하는 거의 최고의 방법이었습니다. 


그런데 이 방법도 두 가지 불편함이 있었어요.


첫째는, 영어로 검색하고 영어로 된 설명을 봐야 했습니다. 그래서 개발자와 개발자가 되고 싶은 학생이 영어를 얼마나 편하게 여기고 코딩 뿐만 아니라 영어도 공부하려고 하느냐에 따라서 크게 갈렸어요. 


영어공부 안 하면 구글검색 잘 못하니까 개발 실력이 정체되는 경우가 많았습니다. 최신 기술을 접하고 시도해 보는데서 뒤쳐지니까요.


다행히 구글번역기 파파고 등 번역 서비스를 이용하면 모르는 영어 문장이 나와도 번역을 한 번 해보고 큰 틀에서 이해를 할 수 있었어요. 


모르는 단어도 번역앱으로 자꾸 번역해 보면 외워지고 그래서 나중에는 익숙해 졌습니다. 코딩 공부를 영어로 하게 되면 영어까지 잘하게 되는 1석2조 효과도 있었어요. 물론 어느정도 오래 공부를 해야 하지만요. 


이 영어 때문에 코딩공부가 빨리 안되고 시간이 길어지는 단점이 있었습니다. 


둘째로 불편한 점은, 구글검색을 해도 내가 원하는 설명이 안 나올 때가 자주 있다는 것입니다. 


지금 내가 겪고 있는 궁금한 점이 일치가 안되는 경우가 자주 있어요. 


이러면 다른 사람의 다른 사례를 보면서, 지금 내가 겪는 상황에 대입을 해서 유추를 해야 합니다. 


이것도 자주 하다보면 사고력이 발달해서 코딩 공부가 되기는 됩니다. 그런데 시간이 많이 걸립니다. 


물론 구글검색 안 하고 책만 보면서 고민하는 것보다는 검색을 하는게 더 효과적입니다.


그런데 검색을 하는 것보다 더 나은 방법이 이제 있습니다. 지피티를 활용해서 공부를 하는 겁니다. 


지피티에게 물어보면서 코딩공부를 하면, 구글검색을 하면서 공부를 하는 것보다 시간이 훨씬 더 많이 절약됩니다. 


그리고 지피티는 내가 지금 처한 상황에 맞추어서, 내 수준에 맞게 대답을 해주기 때문에 검색을 통해서 공부하는 것보다 더 도움이 됩니다.


만약 지피티의 대답이 이해가 안되면, 더 쉽게 설명해 달라거나, 다른 방식으로 설명해 달라고 할 수 있어요. 이게 진짜 크게 도움이 되는 부분입니다. 


저는 앞으로 지피티; 그외 AI 비서 서비스를 이용해서 코딩을 공부하는 챌린지를 해볼 생각인데요.


앞으로 100개의 코딩 소스를 공부하고 그 과정을 글과 영상으로 올릴 생각입니다. 


제가 이 영상을 만들게 된 이유는, 지피티로 공부를 할 수 있다고 홍보를 하는 영상은 많은데, 실제로 그걸 어떻게 매일 매일 다양한 공부에 적용하는지는 설명해주는 분이 없었기 때문입니다.


다른 분들이 제가 공부하는 것을 보면서 자신감을 얻고, 도전을 해보는 계기가 되었으면 합니다. 


이 챌린지 영상을 하면서 이런 공부를 해서 어디에 어떻게 써먹는지도 중간중간 설명을 해드릴게요. 


저는 지피티를 이용하면서 제가 어느정도 아는 부분까지도 마치 처음 배우는 사람처럼 질문을 할 것입니다. 


그렇게 질문하고 답을 하는 과정을 보면서 시청자님들도 “이렇게 질문할 수도 있구나, 나도 이렇게 질문하면 되겠구나.”하는 자신감을 얻었으면 좋겠어요.


저는 지피티와 클로드라는 AI 서비스를 이용하고 있습니다. 둘 다 무료버전으로 이용하고 있고, 앞으로 사용을 하다가 더 좋은 답변을 보고 싶으면 유료 버전으로 갈아탈 생각입니다. 


그래서 오늘은 첫번째 공부로 지피티; 클로드에게 간단한 파이썬 프로그램을 해석해 보겠습니다. 


제가 클로드에 질문을 한 이유는 별다른 이유가 없고, 최근에 클로드를 시험삼아 사용해 보았기 때문입니다. 


지피티를 사용해도 되고 처음 코딩을 공부하는 사람을 기준으로 했을 때, 답변 수준은 거의 비슷합니다. 


저는 클로드에 “파이썬으로 실행되는 게임 한 개 코드 예제 보여주라”라고 했습니다. 

 




그랬더니 클로드에서는 텍스트 기반 게임 소스코드를 적어주었습니다. 


저는 이것을 VScode라는 프로그램에 붙여넣고 game.py라는 파일로 저장했습니다. 


VScode 프로그램과 파이썬 프로그램 설치 방법은 “VScode 설치”, “파이썬 설치” 키워드로 검색을 하면 다른 분들이 잘 가르쳐 주시니까 따라서 해보세요. 


이제 이 코드에 대해서 궁금한 것을 차근차근 다 물어보면 됩니다. 




파이썬에 대해서 책을 읽거나 검색을 해서 공부를 할 때는 그 책의 내용대로, 검색한 컨텐츠의 내용대로 배워야 하기 때문에 직접 내가 겪는 문제에 대한 질문을 못하고, 유추를 해야 합니다. 그게 불편한거죠. 


그런데 지피티; 클로드 같은 AI 서비스는 그냥 내가 지금 보고 있는 그 코드에서 궁금한 점을 바로 물어볼 수 있습니다. 


“def play_game(): 이게 무슨 뜻이니?”같이 너무 순진하고 초보적인 질문을 해도 지피티는 받아줍니다. 오히려 그래서 도움이 됩니다. 


그래서 저는 def가 함수라는 것을 정의하는 명령어라는 것을 바로 이해하게 되었습니다. 


그리고 들여쓰기를 하면 함수 안의 내용이 되기 때문에 들여쓰기가 매우 중요하다는 것도 배웠죠.

그리고 그 내용을 VScode 프로그램의 소스코드 안에 메모로 적었습니다. 이걸 주석; 영어로는 comment라고 하는데요. 


이렇게 코드를 한줄 한줄 해석해서 이해하면 공부에 크게 도움이 됩니다. 




화면에서 # 기호 뒤에 쓰여진 글이 제가 코멘트로 남긴 메모입니다. 이렇게 메모를 하면서 코드를 해석하면 학습 진도가 매우 빨라집니다. 



내가 이해한게 맞는지 다시 물어보니 클로드가 친절하게 확인을 해줍니다. 이런 사소한 것을 물어보는 습관이 중요합니다. 





저는 문뜩, 이 텍스트 기반 게임을 실행시켜 보고 싶어졌습니다. 


파이썬 프로그램을 실행시키려면, 콘솔 커맨드에서 “python 파일이름.py”를 입력하고 엔터치면 됩니다.  


그런데 게임에서 다시 콘솔 커맨드로 빠져나오는 방법을 제가 모르겠어요. 그걸 그냥 대화하듯이 클로드에게 물어보았습니다. 


이렇게 뜬금없이 질문해도 클로드; 지피티는 받아줍니다. 너무 든든합니다. 





저는 이어서 제가 궁금한 것들을 계속 빠짐없이 물어보았습니다. 


코드 내용 순서대로 물어보기도 하고, 두서없이 생각난 것을 물어보기도 하고, 제가 스스로 유추해서 이해한 것을 확인하는 것을 물어보기도 했습니다. 





와 진짜 너무 도움됩니다. 책으로 공부하려면 수십 페이지 읽고 나서 실습할 예제를 그냥 5분만에 바로 시작할 수 있습니다. 


똑같은 예제를 실습해 보기 위해서, 책으로 공부를 하려면 진도를 어느정도 나가야 합니다. 시간이 몇 배에서 몇십 배 차이납니다. 


이게 지피티; 클로드를 사용했을 때 얻을 수 있는 장점이에요. 시간이 절약되요. 





잡담처럼 중간에 생각나는데로 말을 해도 클로드; 지피티는 받아줍니다. 





이제 제가 스스로 코드를 읽고 유추한 것을 클로드에게 물어보았습니다. 제가 질문을 하는 것이 중요합니다. 제가 주도해서 학습이 되는 거죠. 







다음 코드 문장에 대해서 물어 보았습니다. 이렇게 물어보면서 파이썬이라는 코딩 언어의 문법에 대해서 배울 수 있습니다. 


코딩 언어라는 것이 외국어를 배우는 것과 유사합니다. 


우리가 한국어를 잘하지만 한국어 문법이 왜 이렇게 되어 있는지 물어보면 설명을 하기에는 난처한 경우가 많습니다. 


왜냐하면 우리도 그냥 자주 말하고 읽고 쓰고 하다보니 익숙해진 것이지, 이게 왜 그런지 쉽게 설명해 주는 것은 안 해보았기 때문입니다. 


이것은 개발자 입장에서도 마찬가지인데, 개발자에게 코드에서 이 부분이 뭘 의미하느냐 물어봤을 때, “그냥 원래 그렇게 쓰는 거다”라는 답변을 들을 때가 많습니다. 


개발자들도 “이렇게 코드를 쓰면 저렇게 결과값이 나온다”는 방식으로 배우고 거기에 익숙하기 때문에, 순진한 초보자의 입장에서 물어보는 다양한 질문에 대답을 못해주는 경우가 많습니다.


특히 코드 문장에서 이 부분은 왜 이렇게 써야 하는지, 이게 뭘 의미하는지, 너무 초보적인 질문이라서 물어볼 수가 없었던 것을 지피티; 클로드에서는 다 물어볼 수가 있습니다. 


우리가 아기들이 배우는 것을 보면 “엄마 이게 뭐야?”하는 식으로 순진한 질문을 많이 하잖아요. 초보자는 그런 순진한 질문, 너무 기본적이어서 어이가 없는 질문을 많이 해봐야 합니다. 그래야 뇌가 발달하고 학습이 빨리되요.


많은 사람들이 이런 순진한 질문을 하는 것이 주저되어서 공부를 시작하지 못하는 경우가 많습니다. 


순진한 질문을 하는 것이 두려워서, 주저가 되어서, 어느정도 책을 읽고 강좌를 보고 지식을 충분히 쌓은 다음에 공부를 하려고 하면 시간이 많이 걸립니다. 


제가 이런 과정을 보여드리는 이유가 바로 이것입니다. 







이렇게 질문을 해서 “secret_number = random.randint(1, 100)” 코드에서 앞부분인 secret_number은 변수의 이름을 지정해준 것이라는 것, 그리고 뒷부분은 파이썬 내장함수를 불러와서 계산을 한 것이라는 것을 알 수 있었습니다. 


이렇게 물어본 다음, 제가 이해한 내용이 맞는지 확인을 해봅니다. 








파이썬 기초 책을 읽으면 이 자료유형에 대한 내용이 2장이나 3장에 나옵니다. 그런데 이제 책을 읽고 있을 필요가 없습니다. 그냥 지금 내가 보는 코드에 대해서 차근차근 물어보면 됩니다. 


그리고 책을 읽을 때는, 나중에 실습할 때 코드를 보게 되어도, 이 코드에서 왜 이 명령어가 사용되었는지, 왜 이 유형인지 설명이 안되어 있습니다. 


지피티; 클로드에서는 그걸 그냥 바로 물어볼 수 있습니다. 왜 하필이면 이 명령어를 써야하는지, 지금 쓴 이게 어디에 작용하는지 그런 직설적인 것을 바로 물어볼 수 있습니다. 물어보는 이 태도가 핵심입니다. 





그리고 저는 그 내용을 VScode 프로그램에 메모로 남겼습니다. 이러면 아주 충실한 학습 노트가 됩니다. 





초보자처럼 했던 질문 또하고, 비슷한 질문 또 해도 됩니다. 이 과정에서 저는 파이썬이라는 코딩 언어의 문법에 익숙해지게 됩니다. 


attempts는 그냥 변수의 이름에 불과합니다. 파이썬 문법은 신기한 것이, 변수를 지정하겠다는 별도의 선언 명령어 없이, 그냥 변수 이름 치고 = 기호를 붙이면 앞부분의 단어가 변수 이름이 됩니다. 


이런 것이 파이썬 언어의 특징입니다. 진짜 약간 암호처럼 보이는 문법을 가진 외국어입니다. 모든게 친절하게 설명이 되지는 않는데, 그 암호만의 문법을 이해하고 나면 사람이 쓰는 말처럼 이해가 됩니다. 


이렇게 생략을 하는 문법 때문에 처음 배울 때 어색할 수는 있지만, 이런 생략형 문법이 파이썬에서는 장점입니다. 왜냐하면 다른 복잡한 코딩 언어는 너무 많은 선언을 해야 하고, 명령어를 너무 많이 써야 하기 때문에 코드 쓰는 사람이 귀찮습니다. 





저는 진짜 코딩 초보자의 입장에서, 이게 뭔가, 이게 무슨 뜻인가 집요하게 물어봅니다. 


저는 그렇게 해서 “아, 파이썬 문법에서는 변수 이름을 지정하겠다 하는 명령어는 따로 없구나, 저렇게 생략된 문법이 변수를 지정하는 방법이 되는구나”하는 것을 깨우칩니다.


아마 개발자 선생님을 불러다 놓고 이런 질문을 계속하면 피곤해 할겁니다. 그 분들은 자기가 그냥 익숙하게 사용하는 문법이라서 쓰는 거기 때문에 일일이 대답을 해준다는게 답답하게 느껴지기 때문입니다. 


지피티; 클로드는 이런 순진하고 집요한 질문에 계속 답변을 해주려고 노력합니다. 


사람들은 지피티 나오고 나서 이 AI가 모든 것을 대체하고 모든 것을 자동화하는 전지전능한 것으로 생각하곤 하는데요.


지피티; 클로드의 진정한 효과는 그것을 사용하는 사람이 질문하는 능력, 질문하는 태도에 달려 있습니다. 


 



그리스 시대에 소크라테스가 만든 지혜의 문답법이 이런 것이었을까요? 


내가 모르는 것을 순진하게 모른다고 인정하고 계속 물어보는 것입니다. 


학교에서, 학원에서 선생님에게 이런식으로 계속 차근차근 물어보면 난리 날 겁니다. 왜냐하면 진도가 안 나가고 계속 질문과 답, 다시 질문이 반복되기 때문입니다. 


이렇게 계속 질문하면 다른 학생들이 “눈치가 없다, 민폐를 끼친다, 재수 없다” 이런 식으로 생각하고 불쾌해 합니다. 


다른 사람 눈치를 잘 못보는 학생 중에 그 분야에 관심이 아주 많은 경우 이렇게 질문과 호기심이 강한 경우가 많은데요. 


이런 학생이 창의력이 높고 자기 분야에서 성장할 가능성이 높지만 사회성이 떨어진다는 평가를 받기도 합니다. 


그런데 눈치보는 습관 때문에 일반적인 사람들이 공부를 하는 것이 주저되고 시간이 많이 걸립니다. 대부분의 사람들은 질문하는 것을 두려워 하거든요. 


성장 과정에서 궁금한 것에 대해서 질문을 많이 하는 것은 여러모로 좋지 않다 라는 선입견이 생겨버렸기 때문이죠.


그런데 눈치 안 보고 계속 궁금한 것을 물어보는 태도가 사실 학습에 있어서는 월드베스트, 최고의 방법입니다. 지피티; 클로드는 그걸 도와줄 수 있습니다. 





이런 질문과 답을 하면서 저는 코딩에 대한 본질적인 부분을 배우게 됩니다. 프로그램이란 자료를 저장하고, 불러오고, 계산하고, 보여주는 것을 반복하는 활동이라는 거죠. 


아무리 복잡한 프로그램도 이 활동의 반복입니다. 이 활동을 어떤 순서로 할지, 어떻게 최종적으로 보여줄지 이런 것을 기획자, 개발자가 정하는 거죠. 





진짜 감사한 노릇입니다. 이렇게 질문을 통해서 접근 안 하고 책만 보거나 강의만 들을 경우, 한 달이 지나도 전체 개념을 이해 못할 수도 있습니다. 한 학기 동안 배워도 모를 수 있습니다. 몇 년 동안 배워도 모를 수가 있어요.





클로드도 이게 왜 도움되는지 잘 알고 있네요. 


제가 이 공부를 하는 동안에 클로드 무료 사용 용량을 다 써서, 지피티로 이동해서 계속 공부를 이어나갔습니다. 


지피티는 무료 버전에 용량 제한이 없고, 대신 지피티4가 아니라 3.5를 사용해야 합니다. 지금 공부하는 주제에서는 3.5를 써도 충분합니다. 


나중에 저도 필요하면 유료 버전을 사용할 생각입니다.


지피티에서는 “프롬프트 지니”라는 브라우저 확장프로그램; 애드온을 사용해서 자동 번역 기능을 이용했습니다. 


 




프롬프트 지니 확장프로그램을 이용하면, 제가 한국어로 질문을 해도 자동으로 영어로 번역해서 지피티에게 전달해 줍니다. 





이렇게 함수 내에서 나오는 코드 한줄 한줄 다 물어봅니다. 이해가 안되는 설명이 있으면 그 부분만 강조해서 다시 물어봅니다. 





함수는 다 while true로 이루어지는지 궁금해서 물어본 것입니다. 






이런 질문과 거기에 해당하는 답은 책을 읽어도 안 나오더라구요. 지피티에서는 하나 하나 다 설명해주어서 너무 개운하고 기분이 좋습니다. 


제가 이 코드 공부하는데 두 시간이 안 걸렸거든요?


그런데 만약 제가 책으로 이 정도 프로그램 실습하는 데까지 공부했다면 훨씬 더 오랫동안 공부해야 했을 거에요. 한두 시간이 아니라 며칠 걸렸겠죠. 


이런 장점은 공부를 계속 해나갈수록 더 커집니다. 





만약 이 내용을 책에서 “함수의 루프 유형” 이런식으로 배웠다면 제가 외워야 하는 공부가 되거든요. 그래서 실습을 할 때 와닿지가 않아요. 헤메게 됩니다. 





얼씨구, 지피티 맞장구 쳐주는것 좀 보세요. 배우는 입장에서 기가 살아나네요. 








저는 이 이후로 소스코드 끝까지 질문과 답을 계속해서 공부를 끝마쳤습니다. 


이번에 배운 소스코드는 텍스트로 보여지는 파이썬 게임이었는데요. 


이걸 배웠다고 해서 어느정도 성장할 수 있을까요? 이게 직업이나 사업에 어떻게 도움이 될까요?


텍스트 기반 파이썬 게임을 만들었다고 해서 그걸로 웹사이트, 앱, 게임 등 실제 현업에서, 시장에서 쓰이는 코딩을 배웠다고 할 수는 없으니까요. 


그러나 지피티에 웹사이트 소스코드를 예제로 보여달라고 할 수 있습니다. 


앱 소스코드, 게임 소스코드를 예제로 보여달라고 할 수도 있죠.


반대로 제가 깃헙 같은데서 찾아낸 코드를 지피티에 보여주고 해석을 하는 공부를 해나갈 수 있습니다.


실제 현업에서 일을 하면 어떤 식으로 일을 하게 되냐면


오픈소스로 제공된 소스코드를 해석하고 그걸 응용해서 내가 목표로 하는 프로그램으로 최종 생산을 하게 되는데요. 


아니면 기존에 회사에서 만들어 놓은 소스코드에 코드를 추가해서 개발을 완료하게 되죠. 


그래서 중요한 것은 지피티에 질문을 하고 대답을 얻는 방법론이에요. 


그리고 그걸 소스코드에 기록하면서 앎의 폭을 넓혀 나가는 거죠. 


저는 실제 현업에서 사용되는 소스를 지피티에 보여주고 해석을 해서 최종 제품으로까지 뽑아내는 경험을 해볼 생각이에요. 


지피티를 사용해서 이런식으로 공부를 할 수 있다는 것을 기록하고 공유해 보고 싶었습니다. 


앞으로 소스코드 100개 해석하기 이런 식의 챌린지를 해볼 생각이에요. 

4
4개의 답글

👉 이 게시글도 읽어보세요

모집 중인 AI 스터디