이 글은 누구를 위한 것인가
- 음성 인터페이스(VUI)를 서비스에 추가하려는 팀
- 이커머스에서 음성 검색·주문을 구현하려는 개발자
- 미래 UX 트렌드(AI 에이전트, 앰비언트 컴퓨팅)를 이해하고 싶은 팀
들어가며
2026년 AI 어시스턴트는 단순 검색을 넘어 멀티스텝 태스크를 처리한다. "다음 주 생일에 선물로 운동화 주문해줘" — 이 한 마디가 검색·비교·결제를 완료한다. 화면 없는 UI를 어떻게 설계할 것인가?
이 글은 bluefoxdev.kr의 미래 UX 트렌드 를 참고하여 작성했습니다.
1. 제로 UI 디자인 원칙
[제로 UI 핵심 원칙]
1. 입력 없이 서비스:
사용자가 특별한 행동 없이도 컨텍스트 인식
예: 출근 중 → 자동으로 교통 정보 표시
쇼핑 리스트에서 항목 체크 → 자동 재주문
2. 자연어로 소통:
명령어 암기 불필요
"저번에 시킨 거 또 주문해줘" → 이해
3. 예측과 추천:
사용자가 묻기 전에 필요한 정보 제공
예: 주문한 식료품 소진 시점 예측 → 리오더 제안
4. 적절한 시점:
정보는 필요할 때만, 방해하지 않게
"지금 운전 중이니 소리로만 알려줘"
[VUI (음성 UI) 설계 원칙]
응답 속도: 2초 이내 응답 시작
응답 길이: 30초 이내 (너무 길면 기억 못함)
확인 피드백: "찾았어요", "주문할게요" (진행 상황)
오류 처리: "죄송해요, 다시 말씀해주시겠어요?"
컨텍스트 유지: 이전 대화 기억 ("그거 말고")
[멀티모달 UX]
화면 + 음성 동시:
음성으로 검색 → 화면으로 결과 확인
화면으로 선택 → 음성으로 확인
상황별 모달리티 전환:
이어폰 착용: 음성 우선
공공장소: 화면 우선
요리 중: 음성만
2. 이커머스 음성 주문 설계
# AI 에이전트 기반 음성 쇼핑
import anthropic
client = anthropic.Anthropic()
TOOLS = [
{
"name": "search_products",
"description": "상품 검색",
"input_schema": {
"type": "object",
"properties": {
"query": {"type": "string"},
"filters": {
"type": "object",
"properties": {
"category": {"type": "string"},
"max_price": {"type": "number"},
},
},
},
"required": ["query"],
},
},
{
"name": "get_order_history",
"description": "이전 주문 내역 조회",
"input_schema": {
"type": "object",
"properties": {
"limit": {"type": "integer", "default": 5},
},
},
},
{
"name": "add_to_cart",
"description": "장바구니에 상품 추가",
"input_schema": {
"type": "object",
"properties": {
"product_id": {"type": "string"},
"quantity": {"type": "integer"},
},
"required": ["product_id"],
},
},
{
"name": "checkout",
"description": "결제 진행",
"input_schema": {
"type": "object",
"properties": {
"payment_method": {"type": "string"},
"delivery_address_id": {"type": "string"},
},
},
},
]
async def voice_shopping_agent(user_utterance: str, user_id: str) -> str:
"""음성 쇼핑 AI 에이전트"""
messages = [{"role": "user", "content": user_utterance}]
while True:
response = client.messages.create(
model="claude-opus-4-7",
max_tokens=1024,
system=f"""당신은 이커머스 음성 쇼핑 어시스턴트입니다.
사용자 ID: {user_id}
응답은 자연스럽고 간결하게 (30초 이내로 읽을 수 있는 분량).
주문 전에 반드시 확인을 받으세요.""",
tools=TOOLS,
messages=messages,
)
if response.stop_reason == "end_turn":
# 텍스트 응답 반환
return response.content[0].text
if response.stop_reason == "tool_use":
# 도구 실행
tool_results = []
for content in response.content:
if content.type == "tool_use":
result = await execute_tool(content.name, content.input, user_id)
tool_results.append({
"type": "tool_result",
"tool_use_id": content.id,
"content": str(result),
})
messages.append({"role": "assistant", "content": response.content})
messages.append({"role": "user", "content": tool_results})
# 대화 예시
# 사용자: "저번에 주문한 세제 있잖아, 그거 또 주문해줘"
# 에이전트: get_order_history() → 세제 항목 발견
# → "지난번에 주문하신 LG생활건강 피지 액체세제 3kg이요?
# 배송지는 서울시 강남구 집으로 하고,
# 카카오페이로 24,900원 결제할까요?"
# 사용자: "응"
# 에이전트: add_to_cart() → checkout()
# → "주문 완료했어요! 내일 오전 중 도착 예정이에요."
마무리
제로 UI의 핵심은 "화면을 없애는 것"이 아니라 "필요한 순간에 필요한 인터페이스를 제공"하는 것이다. AI 에이전트 기반 음성 쇼핑은 이미 기술적으로 가능하다. 지금 시작할 수 있는 것은 음성 검색 지원과 재주문 간편화다. 이 두 가지만으로도 음성 인터페이스의 80% 유즈케이스를 커버한다.