[Sk쉴더스 Rookies 개발 4기] 멘토링 3회차

이석영·2026년 1월 9일

📓 멘토링 일지

프로젝트 방향성 확립 및 기술 구조 결정

일자: (작성자 기입)


오늘 멘토링은 프로젝트의 근본적인 정체성을 다시 정의하고, 핵심 기능 구현에서 마주한 기술적 한계를 현실적인 구조로 풀어내는 데 집중한 시간이었다. 단순한 아이디어 점검이 아니라, "이 프로젝트를 왜 만드는가"에 대한 답을 다시 세우는 중요한 전환점이었다.


1. 💡 프로젝트 추구미 재정립

멘토링 초반에는 프로젝트가 추구해야 할 방향성에 대해 두 가지 선택지를 놓고 논의가 진행되었다.

선택지 1: 게임을 만드는 재미 (플랫폼)

  • 사용자가 스토리와 구조를 직접 수정·확장할 수 있는 플랫폼
  • 프로젝트의 명분이 분명하고 확장 가능성이 큼
  • 반면, 실시간 노드 수정이라는 높은 기술 난이도를 동반함

선택지 2: 플레이하는 재미 (시뮬레이션)

  • 구현 난이도가 낮고 완성도에 집중 가능
  • 하지만 플랫폼으로서의 차별성과 명분이 약해질 수 있음

🎯 최종 결정

기술적으로 어렵더라도 프로젝트의 정체성을 지키기 위해 ‘게임을 만드는 재미’, 즉 플랫폼 방향성을 최종 선택했다. 단순히 플레이하는 게임이 아니라, 게임을 설계하고 수정하는 경험 자체가 이 프로젝트의 핵심이라는 결론에 도달했다.


2. ❗ 핵심 위기: 스토리 노드 실시간 수정 문제

방향성을 확정한 직후, 가장 큰 기술적 위기가 드러났다.

문제 상황

  • 초기 기획은 다음과 같았다.

    TXT 입력 → 스토리 노드 자동 수직 생성 → 중간 노드 수정 시 하위 노드 실시간 변경

  • 하지만 사용자가 노드를 수정할 때마다 아래 모든 노드를 실시간으로 재구성하는 것은 현실적으로 구현 난이도가 너무 높았다.

  • 이는 곧 플랫폼 명분 자체가 무너질 수 있는 위기로 이어졌다.

해결 접근: Step-by-Step 생성

멘토링을 통해 문제를 정면 돌파하기보다는, 단계를 나누는 전략을 채택했다.

  • 전체 스토리를 한 번에 생성하지 않는다.
  • 1막만 먼저 생성한다.
  • 사용자가 1막을 충분히 수정한 이후에만 2막 생성을 진행한다.
  • 이후 동일한 방식으로 3막, 4막을 순차적으로 생성한다.

이 방식으로 실시간 동기화 문제를 피하면서도, 사용자가 스토리에 개입하고 수정하는 플랫폼적 경험은 유지할 수 있게 되었다.


3. ❓ 게임 실행 환경과 데이터 분리 논의

다음으로는 게임 실행 로직과 데이터 처리 위치에 대한 논의가 이어졌다.

주요 쟁점

  • 게임 로직을 백엔드에서 처리할 경우: 안정적이지만 응답 지연 발생
  • 프론트엔드에서 처리할 경우: 빠르지만 구조가 복잡해짐

결론: 역할 분리

긴 논의 끝에 데이터의 성격에 따라 책임을 분리하기로 결정했다.

  • 불변 데이터:

    • 스토리 노드 구조, 텍스트
    • → 노드 자체가 소유
  • 가변 데이터:

    • 게임 진행 상태, 게이지, 선택 결과
    • → 서버가 관리

이로써 게임의 뼈대는 고정하되, 플레이 상태는 유연하게 관리할 수 있는 구조가 완성되었다.


4. ✅ 최종 구조 정리

멘토링 마지막에는 전체 프로젝트 플로우를 명확하게 정리했다.


🛠️ 게임 노드 생성 플로우 (Step-by-Step)

  1. 프론트엔드

    • 사용자가 TXT 파일 또는 기본 텍스트 입력
  2. AI 서버

    • 텍스트 통분석 (인물, 게이지, 엔딩 구조 추출)
  3. AI 서버 → 프론트엔드

    • 1막만 생성하여 전달 (중계 서버 경유)
  4. 사용자 개입

    • 1막의 스토리 노드 직접 수정
  5. 중계 서버 → 백엔드 DB

    • 수정된 1막 데이터 저장
  6. AI 서버

    • 수정된 1막 + 초기 설정을 기반으로 2막 생성
  7. 이후 동일한 과정 반복


🎮 게임 플레이 플로우

  1. 게임 시작

    • 프론트엔드가 전체 노드 데이터를 로드하여 게임 시작
  2. 선택 발생

    • 사용자가 선택지를 고르면
    • 선택지 값 + 현재 노드 인덱스를 서버로 전송
  3. 다음 노드 탐색

    • 백엔드가 인덱스를 기준으로 다음 노드 정보 조회
    • 해당 정보를 AI 서버로 전달
  4. 콘텐츠 생성

    • AI 서버가 상황에 맞는 이미지 생성
    • 생성된 이미지를 S3에 업로드
  5. 콘텐츠 출력

    • 프론트엔드가 S3에서 이미지 및 콘텐츠 로드
    • 다음 페이지 렌더링
  6. 엔딩까지 반복


✍️ 회고

이번 멘토링은 단순히 기술 스택을 정하는 시간이 아니라, 프로젝트의 정체성과 현실 사이의 균형점을 찾는 과정이었다. 포기하지 말아야 할 가치와, 타협해야 할 구현 방식을 명확히 구분할 수 있었던 의미 있는 시간이었다.

profile
컴퓨터정보공학부 졸업생입니다. 안녕하세요

0개의 댓글