도라지의 블로그
컴퓨터공학과 종합프로젝트 후기 본문
본 포스트에는 AI를 활용한 그림이 첨부되어 있습니다.
후기
기획과 개발
2025 가천대학교 종합프로젝트로 학교를 졸업하기 전에 게임 프로젝트를 하고 싶었습니다. 하지만, 학교에서 제공하는 종합프로젝트 트랙은 AI 트랙, IoT 트랙 등 게임과 연관을 쉽게 짓기 어려워 보였습니다.
하지만, 최근 게임 업계에서 AI를 적극 활용하고 있다는 점을 살려 교수님을 설득하였고, 결국 AI를 활용한 게임 개발을 허가 받을 수 있었습니다.
하지만 저희 팀에는 AI 개발자가 없었습니다. 이게 저희 프로젝트의 1차 고비였습니다.
저희 팀은 매주 회의를 통해 학기가 시작하기 전부터 활발한 소통을 이어나갔습니다.
아무튼 활발한 소통 덕분에 AI 팀원이 없었음에도 빠른 대비를 할 수 있었던 것 같습니다.
“AI 개발자가 없으면 우리가 하면 되잖아?” 라는 발상으로 우여곡절 끝에 제가 AI 개발도 맡게 되었습니다.
덕분에 제 작업량은 두 배가 되었지만, 많은 걸 경험하고 배울 수 있었습니다.
백엔드 개발 초짜인 내가 종프에선 LLM 챗봇까지 구현??!
라는 이름의 라노벨 있으면 추천좀 ㅋㅋ;
저희 팀이 팀스페이스, GitHub를 준비하면서 약속한 것은 ‘매주 최소 두 번 씩은 회의를 하자’ 였습니다.
그리고 상호 존대를 쓰는 것이죠.
팀원 중에 한 명은 같은 학번 친구, 나머지 분들은 학번이 서로 다릅니다. 작년 P-실무 프로젝트 때부터 계속 유지하던 전통(?)인데, 상호 존대를 사용함으로써 서로를 존중할 수 있고, 회의 때 잡설을 최소화 하면서도 긍정적인 분위기를 유지할 수 있었습니다.
AI를 활용한 게임을 기획할 때 저희가 집중한 것은 챗봇이었습니다.
그 당시 학과 수업에서 배운건 분류, 회귀 모델을 응용하는 것 뿐이었어서 LLM을 직접 구현하는 게 얼마나 힘든 과정인지 몰랐습니다.
세계관을 기획하고, 거기에 맞게 캐릭터들과 대화하는 게임을 만들어보자는 아이디어가 나왔고,
저는 평소에 항상 생각하던 칵테일 제작 게임과 접목 시킬 아이디어를 내봤습니다.
VA-11 HALL-A를 플레이 하면서 느낀 점은 칵테일 제작 경험이 아쉬웠다는 것입니다.
기존에 존재하는 레시피만을 활용하여 재료만 누르고 흔들기 버튼 딸깍하면 칵테일이 뚝딱 나와서 진짜 칵테일 만드는 느낌이 없었죠.
모바일 플랫폼을 적극 활용하면 칵테일 제작 경험을 조금 더 살릴 수 있을 것 같다!
핸드폰에는 다양한 UX가 있습니다. 스와이프, 쉐이크, 터치 등..
그 중 쉐이크하는 것이 칵테일 쉐이커 흔드는 거랑 잘 어울리니까..
재료를 배합해서 칵테일 쉐이커를 흔들 듯 핸드폰을 흔들어서 칵테일을 제작해보자!
이렇게 아이디어를 낸 것이죠.
팀원들도 다들 긍정적인 반응이었고, 이제 핵심적인 세계관을 정할 상황이었습니다.
제가 또 그 당시 재밌게 플레이하던 게임, 붕괴:스타레일의 ‘페나코니’라는 지역이 너무나도 인상깊었기 때문에 ‘페나코니’의 모티브를 조사한 적이 있습니다.
페나코니 OST 앨범의 이름은 ‘플래퍼 생톰 (Flapper Sinthome)’인데, 여기서 플래퍼는 1920년대 미국, 광란의 시대 때 유행하던 여성상 ‘플래퍼’에서 따온 것입니다.
라캉과 정신분석 이론 | Notion
밑에 내리면 GPT가 쉽게 풀어쓴 정신분석학 정리가 있습니다.
aeolian-antique-416.notion.site
그렇다면 생텀 (Sinthome)은 무엇일까요? 여기부터는 내용이 좀 심오해지는데요,
자크 라캉과 정신 분석 이론에 의하면 생텀 (좀 더 정확한 발음으로는 씬텀)은 실재/상징/상상을 고정시키는 주체의 고유한 매듭입니다.
실재 (The Real), 상징 (The Symbol), 상상 (The Imaginary)는 라캉의 정신 분석 이론에 빼먹을 수 없는 핵심 개념입니다.
무의식은 언어처럼 구조화되어 있다
재미있게도 붕괴:스타레일의 페나코니 OST 대부분은 이 정신 분석 이론의 개념에서 따온 내용들이 굉장히 많습니다. 현실 원칙, 쾌락 원칙, 죽음 충동, 거울 단계 등…
페나코니는 현실-꿈 세계를 배경으로 합니다. 무의식을 다루는 내용이 많기 때문에 라캉의 정신 분석 이론에서 영향을 받았다고 생각합니다.
이런 내용들을 조사하면 할 수록 ‘페나코니’라는 지역이 정말 매력적이고, 또 빠져들게 되었습니다.
호요버스의 가장 뚜렷한 특징, 철학적인 질문을 게임 속에 담는 것이 굉장히 매력적인 회사라고 생각합니다.
아무튼 이 이론과 1920년 대 광란의 20년대에 빠졌기 떄문에 저도 이런 개념을 적극적으로 활용해보고 싶었습니다.
그래서 광란의 20년대 ~ 금주법 폐지 시대를 배경으로 기획을 해보았는데요.
금주법 시대를 배경으로, 밀주 유통과 마피아와의 접점을 가진 바텐더, 문샤인을 주인공으로, 빈부 격차와 차별이 만연한 혼란의 도시 ‘뉴 랜싱턴’을 무대로 한 세계관을 구축했습니다.
플래퍼 문샤인 세계관 구축 1차 | Notion
뉴 랜싱턴 - 본작의 무대
aeolian-antique-416.notion.site
허접하지만, 세계관을 짠다는 것이 정말로 재미있더군요.
여기서 저는 라캉의 철학적 개념을 스토리에 녹여내고자 했습니다.
주인공은 과거의 마피아이자, 현재의 플래퍼 바텐더입니다.
사람들이 술에 취해 나오는 무의식과 인간의 욕망을 연관 지어 스토리를 진행하고자 했습니다.
이렇게 세계관을 제시하는 것 까지는 순조로웠지만,
학기가 시작하고 나서 교수님께서 제안서를 보고 AI를 활용하는 점이 너무 부실한 것 같다는 의견을 주셨고, 트랙을 따르기 위해서는 API를 활용해 챗봇을 사용하는 것이 아닌, 실제 모델을 구현하고 파인 튜닝까지 진행해야 인정을 해준다고 하셨습니다.
이 때 2차 고비가 왔습니다.
그 당시만 해도 기존에 존재하는 챗봇 API를 적극 활용해서 프롬프트 형식으로 캐릭터를 연기하게 하려 했지만, 이 방식이 막혔으니 처음부터 다시 시작해야 했습니다.
근데 문제는 저는 LLM을 한번도 다뤄본 적이 없었습니다.
그 때 부터 정말 밤을 자주 샌 것 같습니다. 설계서 작성할 때 수 없이 많은 API 명세 설계하고, DB 구조 설계하고, AI 학습 방식 설계하고…
설계서 하나 쓰는데도 진짜 힘들었는데, 이제 이걸 다 개발 하려니 정말 엄두도 안났습니다.
하지만, 개발 아이디어부터 세계관 기획까지 전부 내가 했는데, AI 개발도 내가 맡았는데, 여기까지 왔으면 끝까지 가야한다는 마인드로 이 악물고 백엔드 & AI 파트를 소화했습니다.
백엔드 개발하면서 AI 공부하고, ChatGPT랑 토론도 하고, 정말 많은 일이 있었습니다.
AI 챗봇 모델 구현에 대해서
먼저 학과 서버에서 돌릴 수 있는 챗봇 모델을 찾는게 문제였습니다. 학과 서버의 GPU는 RTX A5000 (24GB)였는데,
아무것도 모르고 그냥 최신 모델 받아서 학습 시켜볼까 했다가 GPU 메모리 초과로 학습을 못하더군요.
GPU 메모리 맞추고, 서버 저장공간 맞추고..
ChatGPT API 쓰면 정말 쉬울 텐데 유료 모델이라 돈 내야하고, 챗봇 구독 서비스는 학과에서 지원을 못한다고 해서 무료 모델 찾다가
최종적으로 Llama 3.2 1B를 사용하게 되었습니다. (구형 모델..)
근데 이 모델이 구형이라 한글 데이터를 아무리 학습 시켜도 대답이 잘 안 나왔습니다. 쌩뚱맞은 답변할 때가 굉장히 많았습니다.
파라미터 바꿔보고, 데이터 바꿔보고 했지만 하드웨어적 한계도 있었고 무엇보다 LLM 초짜인 저에게는 해결하기가 쉽지 않았습니다. 애초에 백엔드랑 병행하느라 시간도 없었고..
주절주절 변명을 해보았지만 결국 구현을 제대로 못한 건 사실입니다.
그래도 한글로 답변하는건 어느정도 진행되었습니다.
ChatML 형식으로 데이터를 주고 받도록 전처리를 해놨었는데, 이 데이터 양식 때문인지 답변도 ChatML 형식으로 나오더군요.
그래서 답변을 후처리하여 출력하니 그래도 좀 챗봇다운 답변이 조금씩 나오긴 했습니다.
다음 목표는 캐릭터 모델을 만들어서 성격과 말투를 적용해야 했습니다.
LoRA라는 개념을 이 때 공부하게 되었습니다.
기존 모델을 유지한 채 학습 가능한 작은 행렬을 추가하여 파인튜닝하는 기법으로, 캐릭터 별 LoRA만 있으면 베이스 모델만 가지고도 다양한 캐릭터 챗봇을 구현할 수 있었습니다.
근데 문제는 또 캐릭터 대화 데이터가 없다는 것…
이 문제는 GPT를 적극 활용하여 해결하였습니다. 노가다로 GPT한테 캐릭터 성격에 맞는 대화 데이터를 만든 거죠.
마무리
정말 수도 없이 막히고 넘어서고 도움을 받고 도움을 주며 3달을 보냈습니다.
핵심 기획을 맡았다 보니 컨텐츠와 시스템에 대해서도 클라이언트 개발 분들과 회의를 많이 했습니다.
하지만 후반에 가서는 내 할 일도 많아서 회의를 거의 참여하지 못했습니다. 클라 파트 분들과 외부 그래픽 분이 정말 고생하셨죠.
프론트 파트는 프론트 개발을 거의 안해보셨다 해서 솔직히 웹 UI/UX는 그냥 포기하고 있었는데, 열심히 해주셔서 괜찮은 디자인으로 잘 뽑아주셨습니다. 고생하셨습니다!
저는 개발하다 보니 백엔드가 굉장히 중요하다는 점도 깨달았습니다. 이 모든 서비스들을 ‘하나로 돌아갈 수 있게 구조를 설계하는 것’, 말 그대로 뼈대를 만드는 과정이니까요.
제가 개발한 내용이 실제로 돌아가는 모습을 보니 감회가 새롭더군요.
이번 학기에서도 팀원들과 정말 활발한 소통이 오갔습니다. 항상 좋은 분위기를 유지할 수는 없었지만, 모두가 서로를 존중하며 진지하게 회의에 임해주었고, 누구도 포기하지 않은 채 끝까지 나아갔습니다.
아! 그리고 GPT pro가 있었기에 제가 여기까지 올 수 있었습니다..
고마워 ChatGPT야!
그리고 고생한 나에게도 축포를 터뜨려주고 싶네요.
Flapper Moonshine | Notion
2025년 가천대학교 컴퓨터공학과 종합설계 프로젝트 PLA.I. 팀의 일원으로 참여하였습니다.
navy-porpoise-792.notion.site