전체 글 63

[AI 아키텍처] Jev — LLM 비용과 속도를 잡는 초고속 AI 라우터

TypeSafe AI 'Jev' 뜯어보기생성 기능 다 빼고 '결정(Decision)'에만 미친 AI 모델이 나온 이유▲ 상태(State)를 입력받아 타입화된 결정(Typed Decisions)만 초고속으로 출력하는 Jev 아키텍처 개념도 요즘 AI 에이전트나 백엔드 파이프라인 만들 때 제일 골치 아픈 게 하나 있다.유저 요청이 들어왔을 때 "이 요청이 환불 문의인가, 그냥 잡담인가?" 혹은 "다음 스텝으로 넘겨도 되는 상태인가?" 같은 단순 분류나 라우팅을 해야 하는 순간인데, 이걸 처리하자고 GPT-4o나 Claude 같은 거대한 LLM을 붙이자니 비용도 무겁고 Latency(응답 시간)도 터무니없이 느리다.그렇다고 JSON output mode로 꾸역꾸역 타입 파싱하자니 가끔 스키마 깨져서 에러 나는..

AI&Machine Learning 2026.09.24

7B 모델에게 소설을 맡겼다가, 분류기로 강등시킨 이야기

AI가 서사를 만드는 게임을 만들었다. 그런데 재미가 없었다. 원인을 찾아 들어갔더니, 문제는 게임 설계가 아니라 모델이 글을 못 쓴다는 것이었다. 이 글은 그걸 측정으로 확인하고, 모델의 역할을 바꾼 기록이다.만들던 것Aetheria 2099 — 한국어 사이버펑크 텍스트 어드벤처다. 플레이어는 기억 브로커 제인이 되어 도시의 진실이 담긴 칩 #00을 두고 세 세력 사이에서 선택한다.기술적으로 자랑하고 싶었던 건 이거였다:Claude를 교사로 삼아 데이터를 증류하고Qwen2.5-7B를 QLoRA로 파인튜닝해서로컬 Ollama로 돌린다 — API 비용 0원, 완전 오프라인그리고 그 모델이 매 턴 나레이션·대사·선택지 3개를 JSON으로 만들어냈다. 홀드아웃 40문항 평가에서 스키마 준수율 91.8%. 숫자..

[프로젝트] Aetheria 2099 — 내 모델로 돌아가는 한국어 사이버펑크 텍스트 어드벤처

한 달 동안 만든 개인 프로젝트 기록. 게임을 만들었고, 거기 들어갈 AI 모델도 직접 학습시켰고, 결국 그 모델에게 글쓰기 대신 다른 일을 맡기게 된 이야기.기간: 2026.08 ~ 2026.09스택: Vite · React · Tailwind / Qwen2.5-7B · QLoRA · MLX · Ollama플레이: itch.io에서 무료 체험판 플레이하기 — 브라우저에서 바로, 한국어·영어어떤 게임인가정화된 지구, 거대한 돔 안에 갇힌 인류. 플레이어는 기억 브로커 제인이 되어 도시의 진실이 담긴 칩 #00을 두고 세 세력 사이에서 선택한다.렌 — 칩을 팔아넘기려는 암시장 브로커카엘 — 칩을 회수하려는 보안국 수사관에코 — 칩으로 도시를 깨우려는 방송 해커플레이어는 선택지 3개 중 하나를 고르거나, 직..

KBO 마블 웹게임 플레이 해보세요 #12 (완결)

12화 (마지막) — 직접 해보세요, 그리고 회고1화부터 여기까지 왔다. 기획, 보드, 밸런스, AI, 스킬, 성장, 그래픽… 말로만 설명했는데, 백 마디보다 한 판이 낫다. 지금 이 아래에서 바로 플레이할 수 있다.■ 지금 바로 플레이닉네임 넣고 캐릭터 골라서 시작 → 주사위 굴리고, 기 모아서 스킬 쓰고, 상대를 파산시키면 승리.■ 6개월간 배운 것 (진짜배기)재미는 '기능의 개수'가 아니라 '루프'에서 나온다.기능을 20개 넣고도 재미없던 시절이 있었다(7화). 문제는 기능이 부족한 게 아니라, 한 판이 끝나도 다시 켤 이유가 없다는 것이었다. 성장 루프를 얹고서야 게임이 됐다. 이게 제일 값진 교훈. 배운 것 한 줄 요약 밸런스감으로 맞추지 마라. 수만 판 시뮬레이션이 ..

에셋 0원, 코드로만 만든 게임 그래픽 #11 — CSS로 2.5D 보드와 3D 말 만들기

11화 — 에셋 0원, 코드로만 만든 게임 그래픽혼자 만드는 게임의 진짜 벽은 코드가 아니다. 그림이다. 나는 그림을 못 그리고, 에셋 살 돈도 아까웠다. 그래서 정했다.에셋을 안 사면 된다. 전부 CSS로 그리면 되잖아?■ 2.5D 보드: 사진 아니고 CSS입니다보드를 위에서 살짝 눕히면 입체감이 확 산다. 3D 엔진? 필요 없다. CSS transform: perspective() rotateX() 한 줄이면 평평한 div가 비스듬히 누운 보드가 된다. 아래는 지금 이 글에서 실제로 렌더되는 데모다. ↑ 평범한 사각형 div 5개 + rotateX(38deg) + 아래쪽 그림자 하나. 그게 전부다.다만 함정이 있었다. 보드를 눕히면 칸 안의 글자도 같이 누워서 읽기 힘들어진다. 처음엔 보드를 ..

한 판 끝나도 남는 게 있는 게임 #10 — 수집·성장·정복 시스템 만들기[로그라이크 정복 모드]

10화 — 한 판 끝나도 남는 게 있는 게임9화에서 매치 안의 깊이(스킬)를 만들었다. 근데 7화에서 깨달은 진짜 문제는 따로 있었다. 한 판 끝나면 아무것도 안 남는다는 것. 이겨도 그만, 져도 그만. 다시 켤 이유가 없다.재미있는 한 판보다 어려운 건, "내일 또 켜게 만드는 것"이다.그래서 매치 바깥에 성장 레이어를 통째로 얹었다. 이게 이번 화 주제다.■ 성장 루프: 이 사이클이 중독의 핵심매치 플레이 코인·경험치 가챠·강화캐릭터·스킬·아이템 더 강해짐 정복 모드 도전매치 → 보상 → 성장 → 더 강해짐 → 더 어려운 도전 → 다시 매치. 이 고리가 돌기 시작하면 "딱 한 판만 더"가 나온다.■ 1) 뽑고 싶게: 가챠코인 150으로 뽑는다. 캐릭터·스킬·아이템 세 갈래. 확률로 나오니까 "이번엔 ..

부루마블은 운빨 게임? '스킬'을 넣어서 실력 게임으로 만들었다 #9

9화 — 마블에 '스킬'을 넣다: 운빨 게임 탈출기8화에서 목표를 정했다. 넷마블이랑 물량으로 싸우지 않는다. "이 마블에만 있는 깊이"로 차별화한다. 그럼 그 깊이가 뭐냐. 이번 화 주제다.부루마블의 가장 큰 약점이 뭘까? 주사위 운빨. 잘 굴리면 이기고 못 굴리면 진다. 실력이 낄 틈이 좁다.그래서 넣기로 한 게 액티브 스킬이다. 매 턴 조금씩 차오르는 '기(에너지)'를 모아서, 결정적인 순간에 능력을 발동한다. 주사위는 운이지만, 언제 무슨 스킬을 쓰느냐는 실력이다. 여기서 깊이가 나온다.■ 핵심 규칙은 딱 세 줄매 턴 기(에너지)가 +2 충전된다 (최대 6).스킬은 슬롯에 3개까지 장착.쓸 타이밍은 네가 정한다. 아껴서 한 방에? 자잘하게 계속?이 단순한 자원 관리 하나가 게임을 확 바꿨다. "지..

게임 만들어서 돈 벌 수 있을까? #8 — 인디 개발자의 냉정한 현실 점검

7화 — 두 번째 벽, 그리고 정직한 진단다시 세어봤다. 정밀 주사위, 재굴림, 도착 예고, 타격감, 사운드, 랜드마크 도박, 더블 규칙, 인수, 독점 승리, AI 상대, AI 성격, 속도 조절… 이번 프로젝트에 넣은 기능이 20개 가까이 됐다.그리고 직접 몇 판 해봤다. 결론은 똑같았다....근데 왜 아직도 재미가 없지?이쯤 되니 인정할 수밖에 없었다. 기능을 하나 더 넣는다고 될 일이 아니었다. 기능이 부족한 게 아니라, 방향이 틀렸다는 신호였다.■ 나는 "매치"만 파고 있었다냉정하게 생각해봤다. 모두의마블, 쿠키런, 요즘 모바일 성장형 게임들 — 이런 게임들의 재미는 대체 어디서 올까?충격적인 사실을 인정해야 했다. 이 장르의 재미는 '게임판(매치)' 자체에서 나오지 않는다. 재미의 대부분은 그 바..

게임이 재미없는 진짜 이유 #7 — 기능 20개를 넣고 나서야 깨달은 것

7화 — 두 번째 벽, 그리고 정직한 진단다시 세어봤다. 정밀 주사위, 재굴림, 도착 예고, 타격감, 사운드, 랜드마크 도박, 더블 규칙, 인수, 독점 승리, AI 상대, AI 성격, 속도 조절… 이번 프로젝트에 넣은 기능이 20개 가까이 됐다.그리고 직접 몇 판 해봤다. 결론은 똑같았다....근데 왜 아직도 재미가 없지?이쯤 되니 인정할 수밖에 없었다. 기능을 하나 더 넣는다고 될 일이 아니었다. 기능이 부족한 게 아니라, 방향이 틀렸다는 신호였다.■ 나는 "매치"만 파고 있었다냉정하게 생각해봤다. 모두의마블, 쿠키런, 요즘 모바일 성장형 게임들 — 이런 게임들의 재미는 대체 어디서 올까?충격적인 사실을 인정해야 했다. 이 장르의 재미는 '게임판(매치)' 자체에서 나오지 않는다. 재미의 대부분은 그 바..

게임 AI 만들기 #6 — 혼자 두기 심심해서 만든 상대 봇 (성격까지)

6화 — 모두의마블 규칙 훔쳐오기, 그리고 AI 상대5화에서 게임에 '심장 박동'을 넣었다. 주사위 긴장감, 통행료 타격감, 랜드마크 공포까지. 이제 좀 게임 같아졌다. 그런데 문제가 하나 있었다. 혼자 두니까 심심하다. 양손으로 1P, 2P를 번갈아 누르고 있으면 이게 게임인지 사무 처리인지 모르겠다.그래서 이번 화의 목표 두 가지 — 알짜 규칙을 더 훔쳐오고, 진짜 상대를 만든다.■ 모두의마블에서 배운 것들부루마블/모두의마블이 왜 재밌는지 규칙을 뜯어보다가, 우리에게 없던 두 가지를 이식했다.인수(뺏기): 상대 구장에 도착하면, 통행료를 낸 뒤 "투자액의 2배"를 지불하고 그 땅을 빼앗아 올 수 있다. 단, 랜드마크는 못 뺏는다. → 견제와 역전의 핵심.독점 즉시 승리: 상대를 파산시키지 않아도, 한..