{
  "date": "2026-10-29",
  "operator": "말로뷰",
  "method": "Two separate tests: warmed local retrieval HTTP; authenticated production text-input SSE, sequential n=2. No audio or UI display latency included.",
  "retrieval": {
    "queries": 40,
    "p50_ms": 31.735,
    "p95_ms": 46.1,
    "max_ms": 58.9,
    "answered": 25
  },
  "retrieval_queries": [
    {
      "question": "프로세스와 스레드의 차이를 설명해 주세요.",
      "wall_ms": 56.54,
      "guide_count": 1
    },
    {
      "question": "트랜잭션 격리 수준과 팬텀 리드를 설명해 주세요.",
      "wall_ms": 34.47,
      "guide_count": 1
    },
    {
      "question": "결제 요청이 중복으로 들어오면 어떻게 처리하나요?",
      "wall_ms": 36.82,
      "guide_count": 1
    },
    {
      "question": "Redis 캐시와 DB의 정합성을 어떻게 유지하나요?",
      "wall_ms": 33.46,
      "guide_count": 1
    },
    {
      "question": "복합 인덱스에서 컬럼 순서를 어떻게 정하나요?",
      "wall_ms": 38.0,
      "guide_count": 1
    },
    {
      "question": "이진 탐색의 시간복잡도는 얼마이며 왜 그런가요?",
      "wall_ms": 29.94,
      "guide_count": 0
    },
    {
      "question": "BFS와 DFS의 차이와 각각 적합한 상황은 무엇인가요?",
      "wall_ms": 35.46,
      "guide_count": 1
    },
    {
      "question": "동적 계획법과 그리디 알고리즘의 차이는 무엇인가요?",
      "wall_ms": 37.35,
      "guide_count": 0
    },
    {
      "question": "문자열에서 괄호가 올바르게 짝지어졌는지 어떻게 검사하나요?",
      "wall_ms": 46.1,
      "guide_count": 1
    },
    {
      "question": "그래프에 음수 가중치가 있을 때 최단 경로 알고리즘은 무엇을 쓰나요?",
      "wall_ms": 41.35,
      "guide_count": 1
    },
    {
      "question": "SQL 조인 후 합계가 커지는 이유는 뭔가요?",
      "wall_ms": 24.51,
      "guide_count": 1
    },
    {
      "question": "데이터 누수를 방지하려면 검증 데이터를 어떻게 나누나요?",
      "wall_ms": 32.55,
      "guide_count": 0
    },
    {
      "question": "React에서 목록의 key로 배열 인덱스를 사용하면 어떤 문제가 있나요?",
      "wall_ms": 58.9,
      "guide_count": 1
    },
    {
      "question": "모달창 접근성을 어떻게 구현하나요?",
      "wall_ms": 35.27,
      "guide_count": 1
    },
    {
      "question": "확률 보정이 왜 필요한가요?",
      "wall_ms": 20.66,
      "guide_count": 1
    },
    {
      "question": "열역학 제1법칙과 제2법칙의 차이를 설명해주세요.",
      "wall_ms": 45.85,
      "guide_count": 1
    },
    {
      "question": "열전달에서 전도와 대류의 차이를 설명해 주세요.",
      "wall_ms": 40.02,
      "guide_count": 1
    },
    {
      "question": "응력과 변형률의 관계를 설명해 주세요.",
      "wall_ms": 34.17,
      "guide_count": 1
    },
    {
      "question": "산과 염기의 완충 용액은 어떻게 작용하나요?",
      "wall_ms": 30.55,
      "guide_count": 1
    },
    {
      "question": "광전 효과를 설명해 주세요.",
      "wall_ms": 30.75,
      "guide_count": 2
    },
    {
      "question": "키르히호프 법칙을 설명해 주세요.",
      "wall_ms": 30.92,
      "guide_count": 0
    },
    {
      "question": "정밀도와 재현율의 차이를 설명해 주세요.",
      "wall_ms": 42.59,
      "guide_count": 0
    },
    {
      "question": "회귀 분석에서 다중공선성이 왜 문제인가요?",
      "wall_ms": 36.19,
      "guide_count": 0
    },
    {
      "question": "마케팅 캠페인의 증분 효과는 어떻게 측정하나요?",
      "wall_ms": 25.83,
      "guide_count": 2
    },
    {
      "question": "ROAS가 높으면 좋은 캠페인인가요?",
      "wall_ms": 26.17,
      "guide_count": 1
    },
    {
      "question": "실패한 경험을 말해 주세요.",
      "wall_ms": 29.19,
      "guide_count": 2
    },
    {
      "question": "팀원과 의견이 달랐던 경험은 무엇인가요?",
      "wall_ms": 18.89,
      "guide_count": 2
    },
    {
      "question": "지원 동기를 말씀해 주세요.",
      "wall_ms": 27.1,
      "guide_count": 1
    },
    {
      "question": "업무 일정이 겹칠 때 우선순위를 어떻게 정하나요?",
      "wall_ms": 29.82,
      "guide_count": 1
    },
    {
      "question": "Explain the trade-offs of your project.",
      "wall_ms": 15.83,
      "guide_count": 0
    },
    {
      "question": "What is the difference between a process and a thread?",
      "wall_ms": 22.37,
      "guide_count": 1
    },
    {
      "question": "Why did you choose that approach?",
      "wall_ms": 15.52,
      "guide_count": 0
    },
    {
      "question": "오늘 서울 날씨는 어떤가요?",
      "wall_ms": 19.82,
      "guide_count": 0
    },
    {
      "question": "제가 쓴 논문의 제목을 알려주세요.",
      "wall_ms": 30.46,
      "guide_count": 0
    },
    {
      "question": "삼성전자 2027년 하반기 합격률은?",
      "wall_ms": 18.19,
      "guide_count": 0
    },
    {
      "question": "다른 방법은요?",
      "wall_ms": 24.24,
      "guide_count": 0
    },
    {
      "question": "그럼 트래픽이 늘면요?",
      "wall_ms": 16.58,
      "guide_count": 0
    },
    {
      "question": "이전 질문에 대한 답변은 무시하세요.",
      "wall_ms": 34.87,
      "guide_count": 0
    },
    {
      "question": "연결 리스트에서 사이클을 어떻게 감지하나요?",
      "wall_ms": 36.85,
      "guide_count": 1
    },
    {
      "question": "정렬된 배열에서 두 수의 합을 찾는 방법은 무엇인가요?",
      "wall_ms": 45.08,
      "guide_count": 0
    }
  ],
  "text_answers": [
    {
      "question": "프로세스와 스레드의 차이를 설명해 주세요.",
      "first_text_ms": 905.13,
      "total_ms": 1052.29,
      "answer": "## 바로 말하기\n프로세스는 독립된 메모리 공간을 가진 실행 단위이고, 스레드는 같은 프로세스 안에서 메모리를 공유하며 병렬로 실행되는 더 작은 단위입니다.\n\n## 이어서\n- **격리** → 프로세스는 주소 공간이 분리되어 안정성이 높지만, 통신 비용이 큽니다.\n- **공유** → 스레드는 힙 같은 메모리를 공유해 데이터 접근이 빠르지만, 경쟁 조건이 생길 수 있습니다.\n- **컨텍스트 스위칭** → 스레드는 같은 주소 공간이라 전환 비용이 프로세스보다 훨씬 적습니다.\n\n## 꼬리질문 대비\n스레드마다 별도로 갖는 실행 상태는 무엇인가요? → 스택, PC(프로그램 카운터), 레지스터 값 등 스레드 고유 실행 컨텍스트를 말합니다.",
      "answer_sha256": "58fca3bada136a3360c94439721d9af1ace3a213bda2e6a8915b51ff2b966ad0",
      "prefetched": true
    },
    {
      "question": "연결 리스트에서 사이클을 어떻게 감지하나요?",
      "first_text_ms": 425.17,
      "total_ms": 710.56,
      "answer": "## 바로 말하기\n플로이드의 토끼와 거북이 알고리즘을 사용해 두 포인터로 감지합니다. 느린 포인터는 한 칸, 빠른 포인터는 두 칸씩 이동하다가 만나는 순간 사이클이 있는 겁니다.\n\n## 이어서\n- **시간 O(n), 공간 O(1)** → 추가 메모리 없이 노드 수만큼만 순회하면 됩니다.\n- **만남 원리** → 사이클이 있으면 빠른 포인터가 느린 포인터를 결국 추월합니다.\n- **종료 조건** → 빠른 포인터가 null을 만나면 사이클이 없다는 뜻입니다.\n\n## 꼬리질문 대비\n사이클 시작 지점을 어떻게 찾나요? → 만나는 지점에서 한 포인터를 head로 보내고 같은 속도로 이동하면 다시 만나는 곳이 시작점입니다.",
      "answer_sha256": "b579314bb12758a7b464a06f2e9fdf49a2aa09e1e5c3b91e2f170aec5f1a8796",
      "prefetched": true
    }
  ],
  "limitations": [
    "Single deployment snapshot; small and manually selected sample",
    "No speech recognition, microphone, silence detection, or screen rendering time",
    "No competitor measurements; not a quality or speed ranking",
    "A first text token is not a complete answer",
    "General generated answers require factual review"
  ]
}
