#0 개발 배경

    LLM 관련 기술에 흥미가 있다보니 조금씩 기술에 대해서 찾아보고 있는데, LLM을 활용한 친구나 비서 등 굉장히 많은 서비스가 이미 나오고 있었다.

    예전부터 AI를 사용한 서비스를 구현해보고 싶었기 때문에 이번 프로젝트를 기획하게 되었다.

     

    졸업 작품으로 진행했던 텍스트 게임 어드벤쳐 플랫폼을 발전시킨 형태로

    ai가 게임 마스터인 텍스트 게임을 개발 목표로 진행한다.

    #1 기능 설정

    1. 사용자

    목표: 사용자의 입장에서 개발하기 << 혼자 사용할 것이라고 생각해서 편한 길로 개발하는 것 보다는, 사용자의 편의성을 위해 내가 어떤 방식의 개발까지 해보았는지에 대한 경험이 있으면 좋겠다고 생각했다.

     

    다만 학습량을 고려하여, 백엔드는 huggingface나 데이터 분석 관련 코드와 연동하기 쉽게 Django로 구현하고자 한다.

    Django로 구현하게 되면 프레임워크에서 제공해주는 기초적인 부분으로만 빠르게 구현

    1) 회원가입

    2) 로그인

    3) 토큰 방식 인증

    4) 세션 관리

     

    2. 게임 생성 / 관리

    다음 장에서 이전에 개발했던 텍스트 어드벤처 플랫폼과 다른 웹 서비스들을 보고 상세히 결정해야겠다.

     

    3. 스토리 진행 방식 - RAG

    SSAFY 관통 때, 완벽하게 구현해보지 못했던 RAG를 사용해서 검색 기능을 구현하고자 한다.

    검색하는 대상은 게임 속 설정.

    아무래도 게임을 진행해나갈 때, 방대한 스토리 설정 중 참고해야하는 설정을 찾아 반영해야하기 때문.

     

    토크나이저 모델도 가능하다면 직접 구현. (BERT? 혹은 공개된 모델 등으로)

    1) 토크나이저 모델 학습

    2) RAG 검색 기능

     

    4. 토큰 결제

    paddle을 사용해서 인공지능 사용 관련 토큰을 구매하는 코드를 작성해보고자 한다.

     

    5. 데이터 시각화

    개인적으로 대시보드 페이지를 만들고 싶은데 유의미한 서비스 품질 상승으로 이어질지 잘 감이 오지 않는다.

    #2 기술 스택 선택

    1. 도커 사용

    이번 개발은 개인 사정과 모델 학습으로 인해 다양한 노트북 및 컴퓨터에서 진행될 것 같다.

    따라서 개발 환경 설정을 간소화해주는 도커를 사용하고자 한다.

    초기 학습 시간이 필요하며, 여러명과 협업하는 것이 아니니 효율이 뛰어나다고 할 수는 없으나,

    다음 협업 개발에서 사용하기 위한 학습이며 동시에, 혹시? 나중에 프로젝트가 잘되면 배포 후 쿠버네티스도 써볼 수 있는 기회가 되지 않을까 싶다.

     

    2. 백엔드 - Django

    hugginface를 사용한 토크나이저, pandas를 이용한 데이터 분석, langchain 활용 등을 위해서 백엔드를 python으로 구현하는 것이 가장 좋을 것으로 판단했다.

    또 혼자서 써보는게 일단 첫번째 목표이기 때문에 대규모 트래픽 처리는 나중에 생각해볼 문제이고, 처리해야할 상황이 생긴다면 Nginx등을 사용해서 트래픽 분리를 해보는 것을 목표로 한다.

     

    3. 프론트엔드 - Typescript, Vite, React, Tailwind css

    먼저 React + Tailwind css의 경우 경험상 GPT로 스켈레톤 코드를 만드는 것이 편하고, 퀄리티가 높으며, 디테일을 수정하기에 용이했다. 개인 프로젝트이기 때문에 프론트엔드는 GPT를 최대한 효율적으로 사용하는 방향으로 가고자 한다.

     

    또한 Tailwind css 는 부트스트랩 같은 것들과 비교해서 훨씬 자유도 높은 디자인을 가능하게 해준다고 생각했다.

     

    vue가 아닌 React를 사용한 이유는, 개인적으로 최근 프로젝트에서 사용한게 vue여서 그쪽이 더 편하겠으나,

    단순히 웹 서비스가 아닌, 웹으로 구현되는 게임 시스템을 만들고자 하기 때문에 프로젝트 개발시 유연성이 더 필요할 것이라고 생각했다

     

    4. DB - psql

    싸피 과정중에서 배웠던 RAG를 구현할 때, pgvector를 사용하는 방법을 복습하고자 한다.

    이는 psql과 결국 연동이 되므로 이를 사용하고자 한다.

     

    5. 그 외 - github, GCP, paddle

    GCP의 배포 경험이 있으며, 무료 할당량이 있으니 GCP에서 배포한다.

    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기