리드미(README) 파일 하나만 채워두고 코파일럿 에이전트 모드에 맡겨 8분 만에 동작하는 여행 예약 앱을 만드는 시연과, 포스트그레스(Postgres) MCP를 읽기 전용으로 붙여 실제 DB 데이터를 mock.json으로 뽑아 테스트를 만드는 과정을 구체적으로 보여줌. 깃허브(GitHub) MCP로 브랜치 생성부터 PR까지 한 문장으로 시키는 법과, 코파일럿 인스트럭션 파일에 변경 로그를 남기게 하는 실전 팁도 나옴.
한줄 코멘트. 옮겨 볼 만한 것은 둘이다. 데이터베이스에 붙는 MCP를 읽기 전용으로 두어 실수로 자료가 바뀔 길을 아예 막았고, 연결이 필요할 때마다 개발자에게 물어 답을 받고서야 부른다. 8분 만에 앱이 돌았다는 대목은 발표자 스스로 스타일도 없는 기본만 도는 앱이라 말하고, 시연도 인터넷이 못 미더워 미리 녹화한 영상이다.
깃허브 코파일럿의 에이전트 모드에 *MCP를 붙여 실제 개발 작업을 시키는 시연이다. 리드미 한 장만 채워 두고 맡겨 여행 예약 앱을 만들고, 데이터베이스에서 자료를 뽑아 테스트 재료를 만들고, 브랜치를 만들어 PR까지 올린다.
시연은 전부 미리 녹화한 영상이다. 인터넷이 못 미덥다고 먼저 밝힌다.
코파일럿이 지나온 세 걸음
발표는 먼저 걸어온 길을 짚는다. 처음은 코드 완성이었고, 다음이 채팅이었고, 지금이 에이전트 모드다.
앞의 둘과 셋째의 차이가 이 발표의 출발점이다. 앞의 둘은 사람이 치는 것을 돕지만, 에이전트 모드는 일 하나를 끝까지 맡는다. 그러면서 바깥에 연결할 일이 생기고 그 자리에 MCP가 붙는다.
리드미만 채워 두고 맡긴 결과가 8분 만에 나왔다고 한다. 다만 발표자 스스로 스타일은 안 갖췄고 기본만 도는 앱이라고 말한다. 예약을 만들고 방을 고르는 정도가 된다.
MCP가 붙을 때 무엇이 오가나
셋째 칸이 요점이다. 코파일럿이 프롬프트를 읽어 MCP가 필요하다고 판단하면 바로 붙지 않고 개발자에게 연결해도 되는지 먼저 묻는다. 답을 받고서야 서버를 부르고 데이터베이스에 질의한다.
깃허브 쪽도 같다. 브랜치를 만들고 PR을 올릴 때 그 자리에서 한 번 묻는다.
시연 시나리오는 테스트 만들기다. 로컬 데이터베이스에 든 진짜 자료를 테스트용 모의 자료로 쓰고 싶다는 것이다.
그래서 포스트그레스 MCP로 가서 자료를 뽑아 `mock.json`을 만들라고 시킨다. 조회는 세 걸음으로 간다. 데이터베이스 스키마를 확인하고, 어느 테이블을 쓸지 고르고, 거기서 자료를 뽑는다. 그러고 나면 MCP와 무관한 나머지 작업이 이어져 그 파일을 재료로 테스트를 짠다.
여기 걸린 안전장치가 이 발표에서 가장 실용적이다. 이 포스트그레스 MCP는 읽기 전용으로만 동작한다. 그래서 에이전트가 실수로 데이터베이스를 바꿀 길이 없다.
발표자가 못 박는 말이 하나 있다. 첫 프롬프트는 틀릴 것이라고 장담한다.
그래서 리드미를 쓴다고 한다. 코파일럿 인스트럭션 파일도 같은 쓸모다. `.github/copilot-instructions.md`에 넣어 두면 모든 프롬프트에 미리 얹힌다. 골라 쓰고 싶은 것은 프롬프트 파일로 따로 둔다.
한 번 잘 시키려 애쓰는 대신 시키는 말을 파일로 남겨 두는 쪽으로 가라는 이야기다.
8분이 무엇을 잰 값인지 좁혀지지 않는다. 기본만 도는 앱이라고 밝히기는 하지만, 리드미를 쓰는 시간이 들어갔는지, 중간에 몇 번 고쳐 시켰는지가 없다.
견줄 기준이 없다. 사람이 같은 앱을 직접 만들면 얼마나 걸리는지, 에이전트 모드 없이 채팅만으로 하면 어떤지가 나오지 않는다. 8분이 빠른지 느린지 판단할 자리가 비어 있다.
시연이 전부 녹화 영상이다. 실패하는 장면이 나올 여지가 없는 형식이고, 발표자도 그 점을 앞에서 밝힌다.
발표자가 모르는 것을 모른다고 하는 대목은 있다. 전송 프로토콜 한 갈래에는 자신이 밝지 않다고 말하고, 이 바닥이 늘 유동적이라 정확히 어떻게 되는지는 겪어 봐야 안다고 덧붙인다.
용어