AI에게 내 프로그램의 리모컨을 쥐여 줬다 — MCP가 뭔지, 0.45달러 실험으로
오늘 배울 것 AI에게 프로그램을 맡길 때는 버튼 대신 정해진 명령 목록을 주고, 실패하면 실패라고 말하게 해야 합니다.
이 글은 이렇게 만들었습니다AI 활용 원칙
나 "나중에 AI 작업이 용이하도록 MCP 연결은 준비 되어 있어?"라고 물었어요. "MCP 기반 먼저"로 순서를 정했고, 단계마다 결과를 확인하고 다음 단계를 열었습니다.
AI 설계안을 쓰고, 코드를 짜고, 시험을 돌렸어요. 검토 AI가 결함을 찾고, 만드는 AI가 고쳤어요. 이 글의 초안과 그림도 AI가 만들었어요.
결과부터 — AI가 말로 3D 모형을 만들었고, 부피가 손계산과 맞았다
AI가 말로 지시받아 3D 모형을 12턴 만에 만들었어요. 턴은 AI가 한 번 판단하고 움직이는 한 차례입니다. AI 사용료는 약 0.45달러였고, AI가 답한 부피 19122.743339는 손계산과 맞았어요.
제가 AI와 함께 만드는 3D 설계 프로그램 Modello에서 한 일이에요. 이런 프로그램을 CAD(Computer-Aided Design, 컴퓨터 지원 설계)라고 해요. 10월 14일, 여기에 MCP라는 규칙으로 AI가 처음 연결됐어요(아래에서 풀게요).
시험도 개발을 맡은 AI(Claude Code)가 했어요. Claude Code를 따로 실행해 Modello 도구만 연결하고, 말로 이렇게 시켰어요.
빈 문서 열기 → 40×24×20mm 블록 만들기 → 윗면 앞 모서리 찾기 → 반지름 3mm로 둥글게 깎기 → 부피 재기 → 저장
모서리를 둥글게 깎는 기능을 모깎기라고 해요. 책상 모서리를 사포로 둥글게 갈아 낸 모양을 떠올리면 됩니다.
손계산은 이렇습니다. 블록의 부피는 40×24×20 = 19,200(mm³)입니다. 모깎기를 하면 길이 40짜리 가느다란 조각이 떨어져 나가요. 조각의 단면은 가로세로 3인 정사각형에서 반지름 3인 4분의 1 원을 뺀 모양입니다. 넓이는 9 − π×3×3÷4 ≈ 9 − 7.07 = 1.93, 줄여 쓰면 9×(1−π/4)예요. 길이 40을 곱하면 약 77.26이 깎여 나갑니다. 19,200에서 빼면 19,122.74로, AI의 답과 같아요.
MCP로 만든 파일이 앱에서 열리는지는 따로 자동 시험이 확인했어요. 블록에 모깎기를 하고, 윗면에 작은 상자(부피 1,000)를 밑그림 → 밀어 올리기 두 단계로 더해 저장했어요. 앱의 "파일 › 열기"로 열자 작업 기록에 네 단계가 나왔고, 부피는 앱 20,122.289 · MCP 20,122.743으로 거의 같았어요. 화면은 모양을 작은 삼각형으로 나눠 그려 소수점 아래가 조금 다릅니다.
아직 못 하는 일도 있어요. 실행 중인 앱에는 AI가 직접 붙지 못하고, 구멍이나 패턴(같은 모양을 여러 개 늘어놓기) 같은 명령도 없습니다.
MCP가 뭔가요 — 버튼 대신 정해진 명령 목록
사람은 프로그램을 화면으로 다뤄요. 버튼을 누르고, 마우스로 모서리를 클릭하죠. AI에게는 화면 대신 쥘 손잡이를 따로 줄 수 있어요.
MCP(Model Context Protocol, 모델 컨텍스트 프로토콜)는 TV 리모컨 같은 것이에요. 리모컨에는 정해진 단추만 있고, 단추마다 하는 일이 정해져 있죠. 정확히 말하면 MCP는 프로그램이 "내가 할 수 있는 일 목록"을 내놓고, AI가 그 목록에서 골라 부르게 하는 공통 규칙입니다. 규칙이 같으니 여러 AI 도구가 같은 방식으로 붙어요.
비유가 맞지 않는 점도 있어요. TV 리모컨은 신호만 보내지만, MCP 명령에는 "길이 40" 같은 값을 실어 보낼 수 있습니다. 프로그램도 결과를 글로 돌려줘요. 또 이 리모컨은 켜 둔 앱이 아니라, 화면 없이 따로 도는 Modello를 움직여 모형을 파일로 남겨요.

Modello의 리모컨에는 단추(도구)가 17개 있어요. 10개는 읽기만 하고, 3개는 문서를 열고 닫아요. 쓰기 단추 4개 중 명령 실행·되돌리기·다시 실행은 모형을 바꾸고, 저장은 파일을 씁니다. 블록이나 모깎기는 "명령 실행" 단추에 실어 보냅니다. 명령은 이렇게 생겼어요(설명서 예시를 줄였습니다).
// 블록 만들기 — 길이 40, 폭 24, 높이 20
{ "command": "feature.block", "input": { "length": 40, "width": 24, "height": 20 } }
// 찾아 둔 모서리를 반지름 3으로 둥글게
{ "command": "feature.fillet", "input": { "edges": ["찾은 모서리 번호"], "radius": 3 } }
모서리를 고를 때도 화면을 클릭하지 않아요. "윗면과 앞면이 만나는 모서리"처럼 조건으로 찾아 달라고 하면, 프로그램이 그 모서리의 번호를 돌려줍니다. 조건에 맞는 모서리 수가 예상과 다르면 깎지 않고 후보를 보여 줘요.
일부러 뺀 단추도 있어요. "아무 코드나 실행하기"예요. 목록 밖의 일은 고칠 수 있는 작업 기록으로 남지 않고, 안전하게 가둬 둘 장치도 없기 때문입니다. 읽기 전용으로 켜면 쓰기 단추 4개가 아예 빠집니다.
첫 단계(10월 13일)에서는 앱 안의 모양 계산 코드를 떼어 내, 앱과 리모컨이 같은 코드를 쓰게 했어요. 같은 코드와 같은 명령을 쓰니, 리모컨으로 만든 파일이 앱에서 그대로 열립니다.
실패하면 실패라고 — 가짜 성공을 막는 규칙
이 리모컨에는 "거짓 성공 금지"라는 규칙이 있어요. 실패하면 반드시 실패라고, 이유와 함께 대답해야 합니다.
첫 판에는 AI에게 화면을 보여 주는 단추가 없어서, 이번 시험에서 모형 상태를 알 길은 프로그램의 대답뿐이었어요. 실패한 일을 프로그램이 "성공"이라고 대답하면, AI는 망가진 모형 위에 다음 일을 쌓고, 저에게 "다 됐어요"라고 보고하겠죠.
Modello의 리모컨은 한 번의 요청을 한 덩어리로 처리해요. 요청 속 명령 중 하나라도 실패하면 앞의 것까지 전부 되돌리고, 어디서 왜 실패했는지 알려 줍니다. 이런 처리를 트랜잭션이라고 불러요. 은행 이체처럼 전부 되거나, 전부 안 되거나 둘 중 하나입니다.
AI가 만든 시험에는 일부러 실패하는 요청도 있어요. 40×24×20 블록의 위아래로 선 모서리를, 폭 24보다 큰 반지름 30으로 깎으라는 것입니다. 프로그램은 오류와 이유를 돌려줬고, 모형도, 문서가 바뀔 때마다 오르는 번호도 그대로였어요.
검토를 맡은 AI는 이 규칙이 깨진 곳을 여러 군데 찾아냈어요. 하나는 저장에 실패해도 "저장됨"으로 표시되던 곳입니다. 다른 하나는 명령 60개 뒤에 실패하는 명령을 붙이면, 그중 10개가 모형에 남는데도 "되돌렸습니다"라고 보고하던 곳이에요. 고친 뒤 다시 돌린 시험에서는 남는 명령이 0개였고, 저장에 실패하면 "저장 안 됨"이 그대로 남았어요.
다른 프로그램에 AI를 붙일 때 — 확인 네 가지
이번 시험을 네 가지로 추리면 이렇습니다. 다른 프로그램에 MCP로 AI를 붙일 때도 이 순서로 확인해 보세요.
읽기만 하게 먼저 켠다. 이렇게 보이면 성공: 도구 목록에 쓰기 단추가 없다.
답을 아는 작은 일부터 시킨다. 블록 부피처럼 손으로 검산할 수 있는 일이 좋아요. 이렇게 보이면 성공: AI의 답이 손계산과 같다.
일부러 안 되는 일을 시킨다. 이렇게 보이면 성공: 실패와 그 이유가 돌아오고, 결과물은 그대로다.
결과물을 원래 프로그램에서 연다. AI의 보고 말고, 사람이 쓰는 화면으로 확인해요. 이렇게 보이면 성공: 파일이 그대로 열리고, 숫자가 리모컨(MCP)이 알려 준 값과 거의 같다.
AI에게 리모컨을 줄 때는 단추를 정해 주는 것만큼, 실패하면 실패라고 말하게 하는 것이 중요합니다. AI는 프로그램의 대답만 믿고 다음 일을 하니까요.
용어 풀이
MCP(Model Context Protocol) TV 리모컨 같은 연결 규칙이에요. 프로그램이 할 수 있는 일 목록을 내놓고, AI가 그 목록에서 골라 부르게 합니다.
CAD(Computer-Aided Design) 컴퓨터에 그리는 설계 도면이에요. 3D CAD는 물건의 모양을 입체로 만들고 치수를 정합니다.
모깎기 책상 모서리를 사포로 둥글게 갈아 낸 모양이에요. 정확히는 모서리를 정해진 반지름의 둥근 면으로 바꾸는 기능입니다.
턴 탁구공이 한 번 오가는 것처럼, AI가 한 번 판단하고 움직이는 한 차례예요.
트랜잭션 은행 이체처럼 전부 되거나 전부 안 되는 처리예요. 하나라도 실패하면 처음 상태로 돌아갑니다.
거짓 성공 숙제를 안 했는데 "다 했어요"라고 말하는 것과 같아요. 프로그램이 실패를 성공이라고 대답하는 것이에요.
이 글의 프로젝트
Modello개발 중치수를 바꾸면 모양이 따라 바뀌는 무료 3D 설계(CAD) 프로그램마지막 작업 2일 전최근 30일 작업일지 142개
프로젝트 보기 →같은 주제의 다른 글
댓글
아직 댓글이 없습니다. 첫 번째 댓글을 남겨보세요.