본문 바로가기
👀 오늘 방문자:
📊 전체 방문자:
SideProject

비전공자의 AI 개발 도전기: Flask + Ollama로 나만의 챗봇 만들기

by Lionell0901 2025. 6. 18.
반응형

안녕하세요! 7년간 청소년 프로그램 기획 일을 하다가 개발자로 커리어 전환을 꿈꾸며 코딩을 시작하게 된 새내기 개발자입니다.

최근에 제가 직접 만든 AI 챗봇 웹 서비스가 드디어 완성되어서, 그 과정에서 겪었던 시행착오와 배운 점들을 공유해보려고 합니다. 비전공자 입장에서 AI 서빙까지 도전해본 솔직한 후기라고 생각해주시면 될 것 같아요.

왜 AI 서비스를 만들게 되었을까?

사실 처음에는 단순한 게시판이나 CRUD 웹사이트를 만들어볼 생각이었어요. 그런데 요즘 ChatGPT나 Claude 같은 AI 서비스들을 써보면서 "이런 걸 내가 직접 만들어볼 수 있을까?"라는 호기심이 생겼거든요.

그러던 와중에 제가 평소에 관심있었던 강사 연결 플랫폼을 웹으로 구현해보았어요. 웹 메인에는 브랜드의 슬로건 문구와 상담 전환을 위해, 직관적인 버튼 2가지를 배치했어요. 그리고 이 웹에서 자유롭게 질문하고 답할 수 있는 AI 모델을 배치하고 싶었습니다. 그리고 그 과정을 아래에 작성해보았어요.

개발 환경은 이렇게 구성했어요

메인 작업 환경 (집 데스크톱)

  • RTX 3060 12GB, RAM 32GB
  • Windows 11 + WSL2 Ubuntu
  • 주로 AI 모델 돌리고 무거운 작업할 때 사용

협업용 (맥북 에어 M4)

  • RAM 16GB
  • 카페에서 작업하거나 협업할 때 들고 다니면서 사용
  • 주로 프론트엔드 작업이나 가벼운 코딩

솔직히 처음에는 집에 있는 데스크톱만으로도 충분할 줄 알았는데, 생각보다 밖에서 작업할 일이 많더라고요. 맥북이 있어서 정말 다행이었습니다.

기술 스택 선택 과정

프론트엔드: HTML, CSS, JavaScript

일단 React나 Vue 같은 프레임워크는 아직 어려워서, 가장 기본적인 바닐라 JavaScript로 시작했어요. Fetch API로 서버와 통신하는 것도 처음 해봤는데, 생각보다 어렵지 않더라고요.

백엔드: Python Flask

Python은 그래도 다른 언어보다는 익숙해서 Flask를 선택했습니다. Express.js도 고려해봤지만, Python 생태계가 AI 쪽에서는 훨씬 풍부하다고 해서 Flask로 결정했어요.

AI 엔진: Ollama + eev-korean-10.8b

이 부분이 가장 고민이 많았어요. OpenAI API를 쓰면 간단하겠지만, 비용도 부담되고 뭔가 제대로 만들어보고 싶어서 로컬에서 돌릴 수 있는 모델을 찾아봤거든요.

여러 모델을 조사하다가 야놀자에서 개발한 eev-korean-10.8b 모델을 발견했어요. 다른 한국어 모델들과 비교해봤을 때 경량화가 정말 잘 되어있더라고요. 108억 파라미터인데도 GGUF 포맷으로 양자화하면 제 RTX 3060에서도 충분히 돌릴 수 있어서 실습용으로는 딱이겠다 싶었어요. Ollama라는 프레임워크를 쓰면 로컬에서 쉽게 돌릴 수 있다는 것도 큰 장점이었고요.

개발 과정에서 겪은 시행착오들

1. WSL2 개발 환경 구축

처음에는 Windows에서 직접 개발할까 했는데, 여러 개발자들이 Linux 환경이 개발하기에 훨씬 좋다고 추천해주더라고요. 특히 Python이나 오픈소스 도구들이 우분투에서 더 안정적으로 돌아간다고 해서 WSL2를 설치했어요.

실제로 써보니까 패키지 설치도 편하고, 도커나 각종 개발 도구들도 원활하게 사용할 수 있어서 정말 좋더라고요. 처음 설정할 때만 조금 헤맸지 한번 익숙해지니까 개발 효율이 많이 올라갔어요.

2. AI 모델 메모리 관리

RTX 3060 12GB가 있어서 큰 모델도 돌릴 수 있을 줄 알았는데, 다른 프로그램들과 함께 쓰다 보니 가끔 메모리 부족 에러가 나더라고요. 모델 양자화나 메모리 최적화에 대해서도 공부하게 되었어요.

완성된 결과물

지금은 웹 브라우저에서 질문을 입력하면, Flask 서버가 Ollama를 통해 AI 모델에게 전달하고, 생성된 답변을 실시간으로 화면에 보여주는 시스템이 완성되었어요.

로컬에서는 정말 빠르게 동작해서 ChatGPT 못지않은 속도로 답변이 나와요. 특히 한국어 답변 품질이 생각보다 좋아서 뿌듯했습니다.

현재 고민하고 있는 것들

1. 배포 비용 문제

가장 큰 고민은 역시 배포 비용이에요. 로컬에서는 잘 돌아가는데, 클라우드 서버에 올리려면 GPU 서버가 필요하고 그러면 월 수십만원이 나와요. 개인 프로젝트로는 너무 부담스럽죠.

2. CPU 서버 최적화 방안

그래서 요즘 고민하고 있는 건 GPU 없이 CPU만으로도 괜찮은 성능을 낼 수 있는 방법이에요. 더 작은 모델을 쓰고 RAG(검색 증강 생성) 기술을 붙여서 성능을 보완하는 방법을 연구하고 있어요.

3. 홈서버 vs 클라우드

집에 있는 데스크톱을 24시간 서버로 운영하는 것도 고려 중이에요. Cloudflare Tunnel 같은 도구를 쓰면 안전하게 외부에 노출할 수 있다고 하더라고요.

4. n8n 서버리스 구현 아이디어

최근에 n8n이라는 자동화 도구를 알게 되었는데, 이걸로 Flask 서버를 대체할 수 있을 것 같아요. 사용자가 질문할 때만 AI 서버가 잠깐 돌아가고, 평소에는 꺼져 있는 서버리스 시나리오를 구현해볼 생각이에요. 그러면 사용한 만큼만 비용을 내는 구조로 바꿀 수 있어서 훨씬 경제적일 것 같거든요.

이 프로젝트를 통해 배운 것들

기술적 성장

  • 풀스택 개발 경험: 프론트엔드부터 AI 엔진까지 전체 시스템을 혼자 구축해본 경험
  • 문제 해결 능력: 네트워크, 메모리, 호환성 등 다양한 계층의 문제를 스스로 해결
  • 최신 기술 적용: LLM이라는 최신 기술을 실제 서비스에 적용해본 경험

개발자로서의 마인드셋

가장 큰 변화는 "어떻게 하면 될까?" 대신 "어떻게 하면 더 효율적으로 할까?"를 고민하게 된 거예요.

특히 AI 도구들을 단순히 '사용'하는 게 아니라 '지휘'해서 원하는 결과를 만들어내는 경험이 정말 값졌어요. 이게 바로 미래의 개발자에게 필요한 역량이라고 생각해요.

비개발자 출신 스스로의 강점 발견

7년간 기획 일을 했던 경험이 개발에서도 큰 도움이 되더라고요. 사용자 관점에서 생각하는 습관, 프로젝트 전체를 관리하는 능력, 문제를 체계적으로 분석하는 방법 등이 모두 도움이 되었어요.

앞으로의 계획

  1. 경량 모델 최적화: CPU 환경에서도 잘 돌아가는 한국어 모델 찾기
  2. RAG 시스템 구축: 외부 지식베이스와 연동해서 답변 품질 향상
  3. 실제 서비스 배포: 비용 효율적인 배포 방법 결정 후 실제 서비스 런칭
  4. 포트폴리오 확장: 이 경험을 바탕으로 더 복잡한 AI 서비스 개발

마치며

비전공자로서 AI 서빙까지 도전해보니까, 생각보다 할 수 있는 게 많다는 걸 깨달았어요. 물론 아직 배울 게 산더미지만, 이런 프로젝트를 통해 개발자로서의 자신감도 생기고 앞으로의 방향도 더 명확해진 것 같아요.

궁금한 점이나 조언이 있으시면 언제든 댓글로 남겨주세요! 함께 배워나가요 😊


 

 

 

반응형

댓글


loading