
2024년이 '생성형 AI의 태동기'였다면, 2025년은 '리얼타임(Real-time) 상호작용의 시대'라고 볼 수 있습니다.
텍스트 채팅을 넘어, 사람과 대화하듯 끊김 없이 음성을 주고받고,
심지어 화면을 보며 이야기하는 멀티모달 경험이 필수가 되고 있습니다.
OpenAI Realtime API와 Gemini Live API을 모두 써보면서 느낀점을 적어보겠습니다.
참고로 Open AI Realtime API은 2025년 10월 기준, Gemini Live API는 2025년 12월 기준으로 사용한 경험을 토대로 합니다.
요약
| 비교 항목 | OpenAI Realtime API | Gemini Live API |
| 기반 모델 | gpt-realtime (2025.10) | gemini-2.5-flash (2025.12) |
| 음성 품질 (감성) | 매우 좋음 | 매우 좋음 |
| MCP (도구 사용) | 다소 불안정, 복잡한 로직에서 헤맴 | 첫 턴은 완벽, 멀티 턴에서 급격히 저하 |
| 맥락 유지 (Context) | 비교적 무난함 | 프롬프트가 길어지면 성능 저하 뚜렷 |
| 멀티모달 (Vision) | 이미지 전송 방식 (다소 번거로움) | Native 지원 (실시간 영상 처리 강점) |
| 주요 한계 | 기능 수행 시 맥락을 종종 놓침 | 지속적인 대화 시 집중력(성공률) 저하 |
Open AI Realtime API
: 음성 대화는 훌륭하지만, MCP 처리는 불안함
2025년 10월 gpt-realtiem 모델 기준

OpenAI의 Realtime API는 처음 써보자마자 "진짜 사람 같다"는 느낌이 들 정도로 음성 경험(Voice Experience) 자체는 좋았습니다. 하지만 개발 단계에서 MCP(Model Context Protocol, Function Calling)를 붙이는 순간 아래와 같은 문제점을 발견했습니다.
- 불안정한 도구 호출:
- 단순한 대화는 잘하지만, 특정 API를 호출해서 데이터를 가져오거나 로직을 수행해야 할 때 의도한 대로 동작하지 않는 경우가 잦았습니다.
- 유저의 질문에 답변을 할 때 이해를 돕기위한 이미지를 생성하는 MCP를 붙였으나, 3번 중 1번만 이미지를 생성해 줬습니다.
- 시스템 프롬프트를 아무리 수정해도 이 문제는 해결되지 않았습니다.
- 다만, 시스템 프롬프트가 짧을 수록 더 잘 동작하는 것 같다는 느낌을 받았습니다. - 느낌: 비유하자면 "말은 정말 청산유수인데, 심부름을 시키면 자꾸 까먹거나 딴청을 피우는 친구" 같습니다. 순수 대화용으로는 최고지만, 복잡한 기능을 수행하는 앱에 적용하기에는 신뢰도가 다소 아쉬웠습니다.
Gemini Live API
: 첫 번째 대화에는 완벽하게 MCP를 수행하지만, 갈수록 성공률이 낮아짐
2025년 12월 gemini-2.5-flash-native-audio-preview-09-2025 모델 기준

- 놀라운 첫 턴 처리 능력:
- 첫 번째 질문에 대해서는 MCP(Function Calling)를 포함한 복잡한 명령도 완벽하게 수행합니다.
- 유저의 첫 번째 질문에는 원하는 이미지 생성 MCP를 90% 이상 호출해 주었습니다. - 멀티모달 네이티브:
- 비디오나 화면을 보면서 대화하는 기능도 매우 빠르고 안정적이어서 시각 정보를 처리하는 능력은 확실히 우위에 있습니다. - 급격한 성능 저하:
- 첫 번째 대화 이후, 두 번째, 세 번째 턴으로 넘어갈수록 MCP 성공률이 현저하게 떨어집니다.
- 방금 전까지 잘하던 친구가 갑자기 멍해지는 느낌입니다. - 시스템 프롬프트 희석:
- 특히 페르소나나 복잡한 규칙을 정의하기 위해 시스템 프롬프트가 길어질수록 이 문제가 더 심해졌습니다.
- 긴 맥락(Context)을 유지하면서 도구(Tool)까지 사용하는 것을 버거워하는 듯했습니다. - 느낌: "첫 심부름은 기가 막히게 해내는데, 일을 계속 시키면 집중력이 급격히 떨어지는 직원" 같습니다. 단발성 명령에는 강하지만, 호흡이 긴 연속적인 작업에서는 신뢰하기 어려웠습니다.
실시간 음성 대화 모델의 한계
: 대화가 길어지거나, MCP가 복잡해질 수록 원하는 결과를 잘 받지 못함
두 모델 모두 훌륭하지만, 실제 서비스를 개발하면서 뼈저리게 느낀 공통적인 한계가 있었습니다.
바로 '대화의 길이'와 '복잡도'를 감당하지 못한다는 점입니다.
- 토큰 과부하와 맥락 유지 실패:
- 실시간 음성 대화는 텍스트보다 토큰 소모가 빠릅니다.
- Gemini는 프롬프트가 길어지거나 대화 턴이 쌓이면 지시 사항을 잊어버리는 경향이 강했고,
- OpenAI는 MCP 호출 자체가 불안정했습니다. - 서버 터짐 이슈:
- 대화(Streaming)를 유지하면서 이미지 생성(Heavy Function) 같은 무거운 작업을 요청하면, 응답 지연은 물론이고 웹소켓 연결이 끊어지는 등 서버가 터지는 이슈가 빈번했습니다.
현재 기술로는 "복잡한 페르소나를 유지하며 긴 대화를 나누는 것"과 "무거운 기능 수행"을 동시에 완벽히 해내기 어렵다고 느꼈습니다. 결국 대화 턴을 짧게 끊거나, 중요 기능은 첫 턴에 몰아서 처리하는 식의 편법이 필요해 보입니다.