# Show GN: ManyPerson - 통계청 MDIS 기반 한국 AI 페르소나 여론 시뮬레이터

> Clean Markdown view of GeekNews topic #28936. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=28936](https://news.hada.io/topic?id=28936)
- GeekNews Markdown: [https://news.hada.io/topic/28936.md](https://news.hada.io/topic/28936.md)
- Type: show
- Author: [calmlake79](https://news.hada.io/@calmlake79)
- Published: 2026-04-27T11:15:06+09:00
- Updated: 2026-04-27T11:15:06+09:00
- Original source: [manyperson.com](https://manyperson.com/)
- Points: 8
- Comments: 0

## Topic Body

- 통계청 MDIS 마이크로데이터를 기반으로 한국 사회의 인구통계, 가구 형태, 소득, 자산, 부채, 직업군 분포를 반영한 AI 페르소나 여론 시뮬레이션 서비스  
  
- 사용자가 궁금한 질문을 입력하면, 조건에 맞는 AI 시민들을 선택해 응답을 생성하고, 결과를 찬반/선택지/연령대/성별/소득분위/직업군 등으로 분석  
  
- 2025년 가계금융복지조사 MDIS 원시 CSV를 가구마스터 34,880건, 가구원 69,929건 단위로 파싱하고 조인하여 서비스용 한국 페르소나 약 4.1만 명을 구성  
  
- Gemini를 활용해 통계청 코드만으로는 부족한 직업명, 성격, 취미, 고향, 1인칭 자기소개를 생성하되, 연소득·자산·부채와 직업·서사가 모순되지 않도록 제약 조건을 넣어 보정  
  
- 단순히 "한국 사람 100명에게 물어본다면?"을 LLM에게 한 번 묻는 방식이 아니라, 실제 분포 기반 페르소나들이 각자 다른 배경과 말투로 답변하고, 통계 가중치를 적용해 결과를 집계  
  
#### 기존 LLM 여론 시뮬레이션의 문제점  
  
LLM에게 바로 "한국 시민 100명의 의견을 시뮬레이션해줘"라고 물으면 결과가 지나치게 평균적이거나, 모델이 익숙한 몇 가지 직업·지역·성향으로 쏠리는 문제가 있음  
  
- 한국 사회의 실제 가구 구조, 소득 분위, 직업군, 수도권/비수도권 차이, 무직/은퇴/학생/전업주부 같은 상태가 충분히 반영되지 않음  
  
- 특히 여론·정책·상품 반응처럼 집단별 차이가 중요한 질문에서는 "그럴듯한 단일 답변"보다 "누가 왜 다르게 생각하는가"가 더 중요함  
  
- 예를 들어 같은 부동산 정책 질문이라도 20대 비수도권 무주택자, 수도권 자가 보유 50대, 은퇴 후 임대소득이 있는 70대는 전혀 다른 근거로 판단할 수 있음  
  
- ManyPerson은 이런 차이를 페르소나의 배경 데이터로 먼저 만들고, 그 위에서 응답을 생성하는 방식으로 접근  
  
#### 데이터 소스 및 제작 방식  
  
- 통계청 MDIS의 2025년 가계금융복지조사 데이터를 기반으로 페르소나 생성 파이프라인 구성  
  
- 가구마스터 CSV와 가구원 CSV를 가구고유번호 기준으로 조인하여 개인 단위 페르소나 생성  
  
- 성별, 연령, 가구 내 관계, 혼인상태, 최종학력, 종사상지위, 직업대분류, 산업대분류, 수도권 여부, 주거 형태, 가구원 수, 소득 5분위 등을 코드북 기반으로 사람이 읽을 수 있는 값으로 변환  
  
- 가구 총소득, 처분가능소득, 소비지출, 식료품비, 주거비, 교육비, 의료비, 총자산, 부채, 순자산도 페르소나 속성으로 보존  
  
- 가구 단위 소득을 그대로 개인 소득으로 쓰지 않고, 가구주/배우자/자녀/무직/은퇴 여부에 따라 개인 추정 연소득을 휴리스틱으로 배분  
  
- 통계청 가중값을 `weight`로 저장하여, 단순 응답 수뿐 아니라 인구 비례 가중 통계도 계산 가능  
  
#### 페르소나 디테일 생성  
  
- MDIS 원자료만으로는 "이 사람답게 말하는 이유"를 만들기 부족하므로, Gemini를 이용해 서비스용 디테일을 추가 생성  
  
- 생성 필드에는 구체 직업명, MBTI, 성격, 취미, 고향, 짧은 자기소개가 포함  
  
- 직업명과 자기소개는 연소득, 가구 총소득, 순자산, 부채, 직업대분류, 종사상지위와 함께 생성하여 현실성을 보정  
  
- 연소득 1억 이상이면 임원, 고소득 전문직, 성공한 자영업자 등이 나오도록 하고, 연소득 0원 또는 무직/은퇴/자녀인 경우에는 억지 직장인을 만들지 않도록 제약  
  
- 가구 소득·자산은 높지만 개인 소득이 낮은 경우에는 고소득 배우자를 둔 전업주부, 자산가 부모를 둔 대학생, 임대소득으로 생활하는 은퇴자 같은 맥락을 자연스럽게 반영  
  
- 부채가 큰 경우에는 자기소개나 성격에 재정적 압박이 드러나도록 설계  
  
- 초기 생성 과정에서 "저소득층인데 로펌 과장", "고소득층인데 아르바이트생"처럼 재무 데이터와 서사가 어긋나는 문제가 있어, 별도 Phase 2 재생성 파이프라인으로 약 4.1만 명의 occupation/bio를 다시 보정  
  
- 생성 결과는 한 번에 메모리에 들고 있다가 저장하지 않고, 페르소나별 생성 직후 PostgreSQL JSONB에 개별 업데이트하는 스트리밍 구조로 처리  
  
- 중간에 Pod가 죽어도 이미 반영된 데이터는 남고, `migrationPhase2` 마커로 이어서 실행 가능  
  
#### 서비스 사용 흐름  
  
- 사용자는 자연어로 질문을 입력  
  
- Gemini + 검색 Grounding으로 질문을 정리하고, 필요한 경우 배경 상황 요약과 필터 조건을 추천  
  
- 성별, 연령대, 지역, 소득분위, 학력, 직업군, 가구원 수, 혼인상태 등으로 대상 페르소나를 필터링  
  
- 최종 선택된 AI 시민들이 각자의 페르소나 스냅샷을 기반으로 응답  
  
- 응답은 즉시 DB에 저장되어 진행 화면에서 실시간으로 일부 답변을 볼 수 있음  
  
- 완료 후에는 긍정/중립/부정 또는 객관식 선택지 분포를 계산하고, 통계청 가중값을 적용한 가중 결과도 함께 표시  
  
- 연령대, 성별, 소득분위, 학력, 직업군 등 인구통계 축별 교차분석을 제공  
  
- 최종 결과는 공유 가능한 페이지로 생성되며, 개별 페르소나의 답변 카드와 전체 통계 차트를 함께 확인 가능  
  
#### 활용 예시  
  
- 신규 서비스나 상품 아이디어에 대해 "20~30대 수도권 직장인들은 어떻게 반응할까?"를 빠르게 가늠  
  
- 정책·사회 이슈에 대해 연령대, 소득분위, 직업군별로 어떤 근거가 갈리는지 탐색  
  
- 광고 카피, 가격 정책, 앱 기능 우선순위, 채용 공고, 자기소개서 등에 대해 다양한 배경의 AI 시민 평가를 받아보기  
  
- 실제 설문을 돌리기 전, 어떤 질문이 애매한지 또는 어느 집단에서 반응이 갈릴지 사전 탐색  
  
#### Nemotron-Personas-Korea와 다른 점  
  
- Nemotron-Personas-Korea가 대규모 한국어 합성 페르소나 데이터셋이라면, ManyPerson은 그 아이디어를 "바로 질문하고 결과를 보는 웹 서비스"로 만든 쪽에 가까움  
  
- ManyPerson은 현재 공개 데이터셋 배포보다는, 통계 기반 페르소나 풀을 내부적으로 구성하고 사용자의 질문에 맞춰 샘플링·응답 생성·통계 분석까지 이어지는 제품 경험에 초점  
  
- 데이터 구성도 단순 인구 프로필을 넘어, 가계금융복지조사의 소득·자산·부채·소비지출 정보를 페르소나 생성과 결과 해석에 적극 활용  
  
#### 기술 스택  
  
- Node.js, Express, EJS 기반 웹 서버 ( 빠른 개발을 위해, 일부 모듈은 간단히 go 로 작성 )  
  
- PostgreSQL/Cloud SQL에 페르소나, 시뮬레이션, 응답, 결제/크레딧 데이터 저장  
  
- 페르소나의 확장 속성은 PostgreSQL JSONB로 저장하여 직업, 학력, 소득분위, 고향, 성격, 자기소개 등을 유연하게 관리  
  
- Valkey를 사용해 큐와 캐시 처리  
  
- GKE Autopilot 위에서 서버/워커 분리 운영  
  
- Gemini 3 계열 모델과 Vertex AI Flex API를 사용해 페르소나 디테일 생성 및 시뮬레이션 응답 생성  
  
- SSE로 시뮬레이션 진행률과 최근 응답을 실시간 스트리밍  
  
#### 한계 및 주의점  
  
- ManyPerson의 결과는 실제 여론조사가 아니라 AI 페르소나 기반 가상 시뮬레이션  
  
- 통계청 MDIS의 공개 범위와 코드 수준에 의존하므로, 세부 지역·정치성향·실시간 이슈 인지도 같은 변수는 별도 추정 또는 입력이 필요  
  
- LLM 생성 디테일은 현실성을 높이기 위한 합성 정보이며, 실존 인물과의 유사성은 의도하지 않음  
  
- 표본 수가 작거나 필터가 좁을수록 결과는 탐색적 참고 자료로 보는 것이 적절  
  
- 그래도 "LLM 하나에게 한국인의 평균 의견을 상상하게 하는 방식"보다는, 실제 인구통계와 가계 데이터에 기반한 다양한 AI 시민을 먼저 만들고 응답을 모으는 편이 더 쓸모 있는 출발점이라고 생각

## Comments



_No public comments on this page._
