코딩 경험 없이 나만의 챗봇을 만든 방법: 배운 교훈들
코딩 지식 제로에서 GPT API와 ChatGPT 4의 도움으로 5개월 만에 작동하는 챗봇을 만들었습니다 — 완전 초보자로서 어떻게 했고 무엇을 배웠는지 공유합니다.
업데이트 (2026): 이 챗봇은 Sydney로 진화했습니다! 여러 차례 반복 개선을 거쳐, Sydney는 현재 /ask/에서 블로그 콘텐츠와 제품에 초점을 맞추고 있습니다.
작년 chatGPT가 출시된 이후로, 저는 생성형 AI에 매료되어 사용 가능한 API를 활용해 나만의 챗봇을 만들어보고 싶었습니다. 프로그래밍 경험이 전혀 없는 완전 초보자로서, 이것은 야심 찬 목표였습니다. 하지만 실무 경험을 쌓기 위해 스스로를 밀어붙이기로 결심했습니다. 제 동기는 단순히 이러한 도구를 사용하는 것을 넘어서, 어떻게 만들어지는지에 대한 더 깊은 이해를 발전시키는 것이었습니다. 제 기존 콘텐츠를 활용해 블로그 게시물에 대한 질문에 답할 수 있는 챗봇을 만들기로 결정했습니다. 이 챗봇을 처음부터 만드는 것은 매우 귀중한 학습 경험이었지만, 아직 갈 길이 멉니다. 이 글에서는 코딩 초보자로서의 이 여정에서 배운 주요 교훈들을 공유하겠습니다.
제 도전 과제들은 무엇이었나요?
- 우선, 프로그래밍을 모릅니다. HTML(
<h1>이나<h2>사용 정도 외에)은 고사하고 Python이나 다른 프로그래밍 언어도 몰랐습니다. - 물론 클라우드에 애플리케이션을 배포하는 법도 몰랐고, Docker, Cloud Run 같은 것도 이전에 들어본 적이 없었습니다.
- MySQL, 가상 인스턴스 등을 몰라서 이 웹사이트를 Bluehost에서 GCP로 이전하지도 못했습니다.
- SSH, 공개 키, 개인 키 같은 것도 전혀 몰랐습니다 T.T
- 머신러닝이나 고급 수학에 대한 배경도 없었습니다.
- 그리고 저는 젊지도 않습니다 :| 40세이고, 풀타임 직장이 있습니다.
하지만 약 5개월 후, OpenAI GPT API와 많은 ChatGPT 4의 도움으로 만든 챗봇 버전 0.1이 여기 있습니다. 아직 제가 기대한 것과는 거리가 멀지만(매우 멀지만) 어쨌든 "작동"합니다(그런 셈이죠). 이것이 할 수 있는 것:
- 이전에 제가 쓴 주제에 대해 챗봇에게 질문하면, 여러 기사에 걸친 콘텐츠를 종합해서 답변을 제공할 수 있습니다.
- 이 점이 저에게 중요한 이유는 이전에 기성 솔루션 구현에 대해 썼는데, 일반적인 문제점은 그 챗봇들이 게시물 간 콘텐츠를 종합하지 못한다는 것이었습니다. 챗봇이라기보다 검색 기능처럼 "느껴졌습니다".
- 제 블로그 게시물에 대한 질문에만 답변하도록 설계되었으므로, 다른 주제에 대해 물어보면 거절할 가능성이 높습니다.
- 지식 범위는 지난 17년간 제가 발행한 모든 게시물, 2023년 9월 말까지를 포함합니다. 약 500개의 게시물입니다.
챗봇이 아직 할 수 없는 것도 많습니다:
- 제가 쓴 게시물의 특정 숫자를 정확하게 기억하지 못합니다.
- 발행일에 대한 질문에 정확하게 답변하지 못합니다.
- 보안 문제가 많을 것이 확실합니다 T.T (슬프고, 슬프고, 슬픈 표정)
- 그 외에도 많습니다
2024년 2월 업데이트:
챗봇 버전 2.1이 출시되었으며 "챗봇 v2.10 공개: 향상된 속도, 확장성, 단순성으로 사용자 경험 업그레이드" 게시물에서 확인하실 수 있습니다.
그럼 이 여정의 첫 단계에서 무엇을 배웠을까요?
1. ChatGPT 4는 대부분의 기본/중급 코딩 작업을 수행할 수 있습니다
무엇을 찾고 있는지 알고, 프롬프트/맥락 공유에 구체적이라면요.
핵심은 기계에게 무엇을 시킬지 알고 있는 것입니다. 과제가 충분히 구체적이면 "거의 모든" 코딩 작업을 수행할 수 있습니다. "거의 모든"이라고 의도적으로 말하는 이유는 주어진 일부 예제를 따르는 데 반복적으로 실패하기 때문입니다.
chatGPT 4가 생성하는 코드는 대체로 나중에 재사용할 수 있을 만큼 모듈화되어 있습니다. 기계는 종종 코드 전체에 구체적인 주석도 포함합니다.
2. 기초적인 코딩/IT 강의/과정을 수강하세요
제 입장이라면, 모르는 것을 무엇을 물어봐야 할지 모릅니다. 이를 극복하는 몇 가지 방법:
- 프로젝트의 전반적인 목표를 chatGPT에 설명하고 모든 단계의 개요를 달라고 요청하세요. 이렇게 하면 더 배워야 할 영역에 대한 대략적인 아이디어를 얻을 수 있습니다.
- chatGPT가 시키는 대로 무작정 따라하면 이해가 안 될 수 있습니다. (해봤습니다 :P)
- 이러한 기초 과정들이 저에게 매우 유용했습니다. 깊지는 않지만 넓은 지식을 제공해서 서로 다른 퍼즐이 어떻게 맞춰져야 하는지 알 수 있게 해주었습니다.
3. ChatGPT API로 시스템 구축에 관한 무료 단기 과정을 완료하세요
chatGPT API에 관한 두 과정이 많은 시간을 절약해줄 것입니다:
이 과정들은 초보자용이지만, 몇 달 전 처음 접했을 때는 내용을 따라갈 기초 지식도 없어서 약 10분 만에 시청을 중단했습니다. 그러다 OpenAI API와 다양한 프롬프트로 한동안 작업하다가 막히고 나서 이 과정들이 생각났습니다. 기본적으로 버전 0.1을 만드는 데 필요한 모든 답을 이 과정들이 제공했습니다.
프롬프트 엔지니어링 과정은 특히 도움이 되었는데, chatGPT에게 특정 방식으로 출력하도록 지시하는 법을 보여주었기 때문입니다. 예를 들어, 이 과정을 보지 않았다면 이런 유형의 시스템 메시지를 생각하지 못했을 것입니다:
관련 후속 질문을 사용자에게 꼭 하세요."
HTML 호환 글머리 기호 형식과 줄 바꿈은 챗봇의 답변이 길 때 사용자의 가독성을 크게 높여줍니다.
4. OpenAI 문서를 직접 읽으세요
게으르기도 해서 (:D) 처음에는 OpenAI의 문서를 읽지 않았습니다. 단순히 문서를 복사해서 chatGPT에 붙여넣고 참조 자료로 사용하며 실제 코드를 안내해 달라고 했습니다. 잘 되지 않았고 문서를 직접 읽기로 결정하기 전까지 꽤 많은 시간을 낭비했고, 그 후에야 chatGPT에 더 타겟팅된 요청을 할 수 있었습니다.
5. 대화가 너무 길어지거나 몇 시간 후에 시작/중지하면 ChatGPT가 쉽게 혼란에 빠집니다
사람과 비슷하게 chatGPT도 대화가 너무 길어지면 혼란에 빠진다는 것에 놀라지 않아야 합니다. 무슨 뜻인가요?
- 의미 없는 코드를 추천하기 시작합니다
- 또는 방금 전에 준 코드/조언을 기억하지 못합니다
또한 몇 시간(또는 하룻밤) 동안 작업을 중단했다가 돌아올 때, chatGPT에게 전체 대화 기록을 읽고 완료했음을 확인하도록 요청한 후에도, 사람과 마찬가지로 많은 최근 맥락과 코드베이스를 다시 제공해야 합니다. 그렇지 않으면 이전에 말했던 많은 세부 사항을 완전히 "잊어버린" 것처럼 보입니다.
6. GPT 4 API는 비싸므로 가능하면 GPT 3.5를 사용하세요
예를 들어, GPT 3.5로 충분히 할 수 있는 요약 작업에 GPT 4 API를 사용해서 $20를 낭비했습니다. 또한 수백 개의 파일에 "풀어놓기" 전에 먼저 몇 개의 파일로 코드를 테스트하세요. GPT API 비용이 빠르게 누적될 수 있기 때문입니다.
7. OpenAI Cookbook은 여러분의 친구입니다
역시 OpenAI 샘플 cookbook을 사전에 확인하지 않는(더 정확히는 모르는) 실수를 저질렀습니다. 거기서 다음을 찾을 수 있습니다:
- tiktoken을 사용한 토큰 계산 방법: 이것이 중요한 이유는 chatGPT에게 이것을 맡기면 최신 방법이 아닌 GPT 3용 구식 방법론을 사용하기 때문입니다.
- 임베딩 기반 질문 답변 검색: 기본적으로 같은 접근 방식을 사용해 챗봇 버전 0.1을 만들었습니다.
8. 컨텍스트 윈도우 길이는 초보자에게 다루기 까다롭습니다
GPT 모델마다 다른 최대 토큰 제한이 있고, 토큰 제한 내에 맞추도록 코드를 수정하는 것은 초보자(저 같은)에게 쉽지 않습니다. 매우 긴 블로그 게시물이 많아서 이 부분에 너무 많은 시간을 들여야 했습니다.
또한 챗봇이 답변을 제공하기 전에 여러 게시물의 콘텐츠를 종합하길 원했기 때문에 토큰 제한에 자주 부딪혔습니다.
9. 버전 관리, 버전 관리, 또 버전 관리
전문가에게는 아마 매우 당연하겠지만 코딩 초보자인 저는 어렵게 배워야 했습니다. 또한 이 프로젝트에 맞는 적절한 git 커밋 빈도도 배워야 했습니다. 유일한 기여자/코더이니까요.
결론
요약하면, 초보자로서의 이 챗봇 제작 여정은 기초 학습의 중요성, 타겟팅된 작업에 ChatGPT 활용하기, API 문서 연구하기, 버전 관리 사용하기를 가르쳐 주었습니다. 개선의 여지가 아직 많지만, 블로그 게시물 전체의 정보를 종합해 질문에 답할 수 있는 기본 프로토타입을 갖게 되었습니다. 앞으로의 우선순위는 새로운 콘텐츠를 포함하도록 챗봇의 지식 기반을 확장하고, 게시물에서 정확한 세부 정보를 검색하는 능력을 개선하며, 토큰 제한 내에서 응답을 최적화하는 것입니다. 프롬프트 엔지니어링과 클라우드 배포 같은 분야에서도 계속 역량을 키울 계획입니다.
여기까지입니다. 배운 교훈을 계속 업데이트하고 새 버전이 나오면 공유하겠습니다.
비개발자로서 OpenAI API로 무언가를 만들어 보신 적이 있으신가요? 가장 어려웠던 것이 무엇인지 듣고 싶습니다 — 저는 확실히 컨텍스트 윈도우 제한과 버전 관리였습니다 :P
1주일 후
1주일 스프린트 후, 챗봇에 추가 업데이트를 완료했습니다. 자세한 내용은 "챗봇 진화: 더 스마트한 상호작용을 위한 1주일 스프린트"에서 읽어보세요.
감사합니다,
Chandler





