라벨이 회고인 게시물 표시

AI랑 4개월 일하면서 네 번 같은 자리에서 막혔다

이미지
AI랑 4개월 일하면서 네 번 같은 자리에서 막혔다 새벽 한 시쯤이었다. 아들 방의 책상 위에는 반쯤 조립된 아크릴 로봇 샤시가 올라가 있었다. 모터 두 개를 PWM으로 제어하는 코드를 Claude Code에게 받아서 올렸는데, 한쪽 바퀴가 한 방향으로만 돌고 있었다. 다른 쪽은 멈춰 있다가 가끔 떨기만 했다. 아들은 옆에서 "이거 왜 이래?" 하고 모니터를 들여다보고 있었고, 나는 시리얼 모니터에 찍히는 값을 멍하니 보고 있었다. 코드는 깔끔했다. 그건 의심하지 않았다. L298N 모터 드라이버를 쓰는 표준적인 패턴이고, 라이브러리 호출도 정상이고, PWM 값도 범위 안에 들어가 있었다. 그런데 작동을 안 했다. 핀맵을 다시 봤다. IN1은 8번, IN2는 9번, ENA는 10번. IN3는 11번, IN4는 12번, ENB는 13번. 내가 Claude에게 부르는 대로 적어준 핀이었다. 두 시간을 봤다. 두 시간 동안 코드를 뜯고, 배선을 뜯고, 멀티미터를 대보고, 다시 코드를 짜고. 그러다 어느 순간 깨달았다. ENA에 지정한 10번 핀이 Timer1을 건드리고 있었고, 내 프로젝트는 같은 보드에서 서보 라이브러리도 쓰고 있었다. 둘은 같은 타이머를 두고 다투고 있었던 거다. Claude가 짠 코드는 코드만 보면 멀쩡했다. 다만 내 프로젝트에 서보가 있다는 걸 모르고 짠 것뿐이었다. 그 순간이 묘했다. 화는 안 났는데, 머리가 조금 차가워졌다. 이게 AI가 못한 건가? 아니었다. ENA가 Timer1에 묶인다는 건 데이터시트에 있는 얘기고, Claude는 그걸 안다. AFMotor 라이브러리가 Timer1과 Timer2를 점유해서 충돌 위험이 있다는 것도 안다. 그런데 그날 새벽의 그 코드는 내 보드의 사정을 모른 채 쓰였다. 서보가 있다는 걸, ENA를 옮길 수 있다는 걸, 13번이 PWM이 안 되는 핀이라는 걸. 다 알 수 있었지만, 그 세션에는 그 정보가 없었다. 그 뒤로 같은 자리에 세 번 더 멈췄다는 걸, 한참 지나...

미연시 시나리오 20편을 AI와 설계하고 알게 된 것 — 협업 방법론 회고

미연시 시나리오 20편을 AI와 설계하고 알게 된 것 — 협업 방법론 회고 아이가 "미연시"라고 말한 순간부터 여기까지 왔다. 20편. 돌이켜보면 꽤 먼 거리를 왔다. 코드 한 줄 쓰지 않았다. Ren'Py를 설치하지도 않았다. 그런데 이 프로젝트에서 가장 중요한 작업은 끝났다. 시나리오 설계. 감정의 구조를 이해하고, 그걸 시스템으로 번역하는 작업. 이 여정에서 발견한 것들 처음에는 "미연시 만들기"가 목표였다. 끝나고 보니, 목표는 바뀌어 있었다. 미연시를 만드는 건 기술적으로 어렵지 않다. Ren'Py가 대부분의 기술적 문제를 해결해준다. 어려운 건 "플레이어의 감정을 진짜로 움직이는 미연시"를 만드는 거다. 그리고 그걸 위해서는 기술이 아니라 감정에 대한 이해가 필요하다. 사랑은 단일 변수가 아니라 조건의 결과다. 장면은 배경이 아니라 감정의 증폭기다. 선택의 결과는 즉시가 아니라 나중에 온다. 좋은 선택이 비극이 될 수 있다. 행동과 내면은 다르다. 갈등은 악역이 만드는 게 아니다. 엔딩은 점수가 아니라 상태다. 이 원칙들은 미연시 설계의 원칙이기도 하지만, 동시에 관계에 대한 관찰이기도 하다. 게임을 설계하면서 관계를 이해하게 되는 역설적인 경험. 그리고 예상치 못한 발견도 있었다. AI에게 "사랑이란 무엇인가"를 직접 물었을 때, AI는 사전적 정의를 늘어놓았다. 별로 쓸모없었다. 그런데 "신뢰 40에 친밀감 30이면 이 캐릭터가 상대를 어떻게 대하겠냐"고 물었을 때, AI는 구체적이고 설득력 있는 행동 묘사를 했다. 추상적인 질문보다 구체적인 시스템 안에서의 질문이 훨씬 유용한 답을 이끌어낸다. 이건 AI 활용법에 대한 핵심 교훈이었다. 감정을 직접 물으면 클리셰가 나오지만, 구조를 통해 간접적으로 물으면 진짜 통찰이 나온다. AI는 어떤 존재였나 이 프로젝트에서 AI는 세 가지 역할을 했다. 구조를 잡아주는 건축가. 감정...