명부의 40줄은 20명이었다 — 매칭 참가자 프로필 전수 집계

칼라톤의 AI 커플매칭은 AI가 만든 가상 인물들이 서로 만나고 호감을 쌓거나 잃는 시뮬레이션이다. 시즌이 끝나면 공개 리포트가 한 장 찍히고, 그 리포트의 두 번째 섹션이 '참가자 소개'다. 이름·나이·직업·NBTI 네 칸짜리 표 두 개 — 남성 참가자와 여성 참가자.

이 시리즈는 그동안 매칭의 호감도 곡선과 매치메이커의 말투와 하이라이트의 분배를 셌다. 전부 '만남이 시작된 뒤'의 기록이다. 그런데 그 모든 기록 앞에는 한 장면이 있다 — 누가 이 시즌에 들어왔는가. 캐스팅은 사람이 하지 않는다. 시딩 스크립트가 끝난 인물 생성 시즌에서 남자 넷·여자 넷을 뽑아 오고, 그 인물의 나이와 직업과 성격 유형은 인물 생성 쪽에서 이미 정해진 채로 따라온다.

그래서 이번 집계의 질문은 짧다. 그 네 칸은 성별로 갈리는가. 공개된 매칭 리포트 여섯 편(시즌 3~8)의 명부를 전수로 꺼내 세었다. 줄 수는 40줄이다. 그런데 세기 시작한 첫 단계에서 이미 숫자가 하나 틀렸다.

질문 — 네 칸 중 셋을 성별·시즌 축에 놓는다

검증 가능한 형태로 다듬으면 질문은 넷이다. 첫째, 나이의 평균·폭·꼬리가 성별로 다른가. 둘째, 직업 칸의 길이와 어휘가 성별로 다른가. 셋째, NBTI 유형이 어떻게 분포하는가. 넷째, 그 차이가 시즌을 넘어 반복되는가 — 아니면 시즌 하나가 만든 우연인가.

넷째가 이 글의 중심이다. 명부에서 "남성이 더 나이가 많다" 같은 문장은 너무 쉽게 나온다. 여섯 시즌을 한 줄로 늘어놓고 평균을 내면 숫자는 반드시 어느 한쪽으로 기울고, 그 기울기에 설명을 붙이는 것도 어렵지 않다. 문제는 그 평균이 몇 개의 독립된 사건에서 나왔는지다.

방법 — 40줄을 20명으로 접는다

집계 대상은 2026년 10월 7일(KST) 기준 저장소에 공개된 매칭 시즌 리포트 전부다. 국문 6편(시즌 3·4·5·6·7·8)과 영문 6편, 합계 12편. 외부 API를 쓰지 않고 '참가자 소개' 섹션의 <table>을 파싱해 이름·나이·직업·NBTI 네 칸을 꺼냈고, 성별은 표 위의 소제목(👨 남성 참가자 / 👩 여성 참가자)으로 갈랐다. 나이는 "27세" 표기에서 숫자만 뽑고, 직업은 HTML 엔티티를 복원한 원문 그대로 보관했다.

그렇게 모은 줄이 40줄이다. 그리고 이름으로 묶자 20명이 됐다.

시즌명부 줄 수남 · 여명부가 같은 시즌새로 등장한 인물
시즌 384 · 4시즌 6과 동일8
시즌 484 · 4시즌 7과 동일8
시즌 542 · 2시즌 8과 동일4
시즌 684 · 4시즌 3과 동일0
시즌 784 · 4시즌 4와 동일0
시즌 842 · 2시즌 5와 동일0
합계4020 · 20—20

여섯 시즌은 세 쌍의 레인이다. 시즌 6·7·8은 각각 시즌 3·4·5와 이름 집합이 완전히 같다. 이 구조 자체는 이미 재대결 3레인 칼럼에서 다룬 설계다 — 같은 사람들을 다시 만나게 하면 같은 커플이 나오는지 보기 위한 2차 시즌이다. 이번 집계에 중요한 것은 그 결과가 아니라 산술이다. 명부 통계를 40줄로 내면 전부 정확히 두 배로 세어진다. 아래의 모든 평균은 인물 20명 기준이며, 같은 인물이 두 시즌에 걸칠 때는 먼저 등장한 시즌의 값을 썼다.

결과 ① — 재대결에서 바뀐 값은 60개 중 한 개다

인물 20명 × 세 칸(나이·직업·NBTI) = 60개의 값을 1차 시즌과 2차 시즌 사이에서 맞댔다. 다른 값은 하나였다.

민유리 — 시즌 4에서 28세, 시즌 7에서 29세. 직업(필라테스 강사)과 NBTI(ESTP)는 동일.

나머지 59개는 글자까지 같다. 직업 칸은 20명 전부가 1차와 2차에서 동일한 문자열이고, NBTI도 20명 전부 동일하다. 생년월일 기반으로 나이를 다시 계산하는 구조라면 두 시즌 사이에 생일이 지난 인물이 여럿 나와야 하는데, 스무 명 중 한 명만 한 살 올랐다. 즉 프로필은 시즌마다 다시 계산되는 값이 아니라 인물에 붙어 고정된 값이고, 민유리의 한 살은 그 고정값이 시즌 4와 시즌 7 사이에 한 번 갱신된 흔적이다.

실무적으로 이 한 줄은 경고다. 매칭 리포트의 명부를 인물 식별자 삼아 다른 데이터와 붙이려는 집계는 "이름+나이"를 키로 쓰면 안 된다. 스무 명 중 한 명은 시즌에 따라 키가 달라진다.

결과 ② — 남성이 1.5세 많지만, 그 평균은 레인 하나가 만들었다

인물 20명 기준 나이 분포다.

구분인원평균중앙값최소최대표준편차
남성1027.3세27.0세23세33세2.69
여성1025.8세26.0세22세29세2.44
차이—+1.5세+1.0세+1세+4세+0.25

겉보기 결론은 분명하다. 남성이 1.5세 많고, 꼬리의 비대칭이 그 차이를 만든다 — 30세를 넘는 참가자는 남성 둘(남궁민 30세, 서지훈 33세)이고 여성의 최고령은 29세다(강다은·송채원 두 명). 여성 열 명은 22~29세 여덟 살 폭 안에 전부 들어가고, 남성은 23~33세 열한 살 폭에 퍼져 있다.

그런데 같은 숫자를 레인별로 쪼개면 방향이 흔들린다.

레인남성 나이남 평균여성 나이여 평균남−여
시즌 3 · 624 · 27 · 27 · 2826.5026 · 26 · 29 · 2927.50−1.00
시즌 4 · 723 · 27 · 30 · 3328.2522 · 22 · 25 · 2824.25+4.00
시즌 5 · 826 · 2827.0024 · 2725.50+1.50

세 레인 중 한 레인은 여성이 더 나이가 많다(−1.00). 그리고 전체 평균의 거의 전부를 만든 것은 가운데 레인이다 — 시즌 4·7 하나에서만 네 살이 벌어진다. 2인 레인은 ±1.5세, 즉 사실상 두 사람의 차이다.

그러니까 "AI가 남성을 더 나이 많게 캐스팅한다"는 문장은 이 데이터로는 쓸 수 없다. 독립된 캐스팅 사건이 세 번뿐이고 그중 하나는 방향이 반대다. 쓸 수 있는 문장은 이것뿐이다 — 명부 스무 명의 평균은 남성이 1.5세 많으며, 그 차이는 세 레인 중 한 레인에서 나왔다. 참고로 민유리의 한 살 때문에 시즌 7의 여성 평균은 24.50으로 시즌 4보다 0.25 높다. 같은 명부인데 평균이 다르다.

결과 ③ — 직업 칸의 길이는 같고, 들어간 말이 다르다

직업 칸이 성별로 길이가 다를 것이라고 예상했다. 아니었다.

구분평균 길이중앙값표준편차쉼표로 직업 둘직업 토큰 합괄호 포함
남성 10명8.80자8.5자3.343명13개2명
여성 10명8.30자8.0자2.335명15개0명

평균 길이는 0.5자 차이로 사실상 같다. 갈리는 것은 퍼짐과 구성이다. 남성 쪽 표준편차가 1.4배 큰 이유는 양 끝에 있다 — 가장 짧은 직업 칸은 "배우"(2자, 서지훈)이고 가장 긴 칸은 "모델, 배우(전직 야구선수)"(15자, 장태산)로 둘 다 남성이다. 여성의 직업 칸은 4~13자 안에 모여 있다.

구성은 반대 방향이다. 쉼표로 직업을 둘 적은 사람은 여성 5명 대 남성 3명이고, 직업 토큰을 모두 세면 여성 15개 대 남성 13개다. 칸의 길이는 남성이 넓게 퍼지고, 칸에 담긴 직업의 개수는 여성이 많다. 괄호를 써서 부가 설명을 단 칸은 남성에만 둘 있다("배우(전직 야구선수)", "의대생 (본과 2학년)").

결과 ④ — 어휘는 '배우'와 '모델'에서 갈린다

직업 칸 20개를 낱말 단위로 보면 성별 쏠림이 두 군데 있다.

낱말남성여성해당 인물
배우30남궁민(배우 지망생) · 장태산 · 서지훈
모델13장태산 / 윤슬기 · 임지유 · 최서아(뷰티 모델)
학생 · 대학원생03윤슬기(대학생) · 권나율(대학교 학생) · 백서진(음대 대학원생)
직함형 전문직52회사원 · 에디터 · 안경사 · 퀀트 트레이더 · 건축 디자이너 / 아나운서 · 스타트업 마케터
운동 관련22핸드볼 지도자 · 전직 야구선수 / 육상선수 · 필라테스 강사

'배우'는 남성 세 명에게만 있고 여성에게는 한 명도 없다. '모델'은 그 반대로 여성 셋 대 남성 하나다. 두 낱말이 같은 연예 직군을 가리키는데 성별로 깔끔하게 갈린 것은, 20명짜리 표본에서 가장 눈에 띄는 비대칭이다.

'학생'이라는 낱말이 적힌 사람은 여성 세 명, 남성 0명이다. 다만 이 계수는 낱말 기준이라 조심해서 읽어야 한다 — 남성 중 오준혁은 "의대생 (본과 2학년)"이고 남궁민은 "배우 지망생"이어서, 수련 중인 신분이라는 뜻으로 세면 남성도 두 명이다. 낱말로는 0대 3, 의미로는 2대 3이 된다. 어휘 집계와 의미 집계가 다른 답을 주는 자리이므로 어느 쪽 숫자를 인용하는지 밝혀 두는 편이 안전하다.

직함형 전문직(소속·분야가 붙은 직업명)은 남성 5명 대 여성 2명이다. 쏠림의 방향은 일관된다 — 남성 칸에는 직업의 '지위'를 적는 말이, 여성 칸에는 '외형·학업'을 적는 말이 상대적으로 많다. 다만 각 칸의 인원이 2~5명이라 이것은 경향의 이름이지 검정의 결과가 아니다.

결과 ⑤ — NBTI는 성별 안에서 한 번도 겹치지 않는다

네 번째 칸은 가장 깔끔한 결과를 준다. 남성 10명의 NBTI는 10종 전부 다르고, 여성 10명도 10종 전부 다르다. 같은 성별 안에서 유형이 반복된 경우가 한 번도 없다.

지표남성 10명여성 10명
서로 다른 유형 수10종10종
E / IE 4 · I 6E 6 · I 4
S / NS 4 · N 6S 3 · N 7
T / FT 5 · F 5T 4 · F 6
J / PJ 5 · P 5J 5 · P 5

네 축 모두 5대 5에서 많이 벗어나지 않는다. 가장 치우친 축은 여성의 S/N(3대 7)이고, J/P는 양쪽 모두 정확히 5대 5다. 성별 비교로 볼 때 눈에 띄는 것은 E/I가 서로 반대라는 점이다 — 남성은 내향 6, 여성은 외향 6.

스무 명이 쓴 유형은 16종 중 13종이다. 두 성별에 모두 등장한 유형이 7종(ENFJ·ENFP·ENTP·INFJ·INFP·INTJ·ISFP)이고, 스무 명 중 아무도 가지지 않은 유형은 ESFP·ISFJ·INTP 세 종이다. 흥미롭게도 세 유형 모두 S 또는 I를 포함하는데, 위 표에서 가장 적게 나온 글자가 S(남 4·여 3)였다는 것과 방향이 맞는다.

이 세계에서 NBTI 궁합 점수가 실제 결말을 예측하지 못했다는 것은 MBTI 궁합의 실측 성적표에서 이미 확인했다(궁합 점수와 최근 호감도의 상관 0.11). 이번 집계는 그 앞단을 말해 준다 — 애초에 명부는 유형을 고르게 펼쳐 놓는 쪽으로 짜여 있었다. 궁합이 결말을 못 맞힌 이유 중 하나는, 명부 자체가 특정 유형에 몰려 있지 않아서 궁합 점수의 분산이 인물 개성 이상으로 커지지 않았다는 데 있을 수 있다. 다만 이것은 가설이고, 이 집계로 검증한 것은 아니다.

결과 ⑥ — 상호선택 23쌍에서 남성이 연상인 쌍은 15쌍

명부의 나이를 '최종 매칭 결과' 섹션과 붙여 보았다. 여섯 시즌의 그 섹션에는 💞 이름 ↔ 이름 형태의 줄이 모두 23개 있다. 주의할 점이 하나 있다 — 이 23줄은 '한 사람당 한 명'인 짝이 아니다. 시즌 3에서만 9줄이 나오고 윤슬기와 신도윤은 각각 세 줄에 등장한다. 즉 이 목록은 상호선택이 성립한 모든 쌍이고, 한 인물이 여러 쌍에 들어갈 수 있다.

시즌상호선택 쌍남성이 연상여성이 연상동갑평균 나이차(남−여)
시즌 39540−0.67세
시즌 43300+3.67세
시즌 52110+1.50세
시즌 64220−0.75세
시즌 73300+3.67세
시즌 82110+1.50세
합계231580+0.83세

동갑 쌍은 23쌍 중 0쌍이다. 명부에 같은 나이가 여럿 있으므로(27세 남성 셋, 29세 여성 둘 등) 산술적으로는 가능한데도 한 번도 성립하지 않았다. 그리고 쌍의 평균 나이차 +0.83세는 명부 전체의 격차(+1.5세)보다 작다 — 상호선택이 나이 격차를 키우는 방향으로 작동하지는 않았다는 뜻이다.

다만 이 표는 시즌 3의 9줄이 전체의 39%를 차지해 사실상 한 시즌에 끌린다. 시즌 3·6 레인은 여성이 연상인 명부여서 음수가 나오고, 시즌 4·7 레인은 +3.67로 양수다. 결과 ②와 같은 구조가 그대로 반복된다 — 쌍 단위로 봐도 방향을 정하는 것은 레인이다.

결과 ⑦ — '소개문'은 없고, 영문판에는 스페인어가 있다

이 집계를 시작할 때 네 번째 축으로 '소개문 길이'를 세려 했다. 셀 수 없었다. 리포트 생성기는 참가자 한 명당 정확히 네 칸만 찍는다 — 이름, 나이, 직업, NBTI. 자기소개 문장이나 한 줄 설명이 들어가는 자리가 리포트 형식에 존재하지 않는다. 데이터베이스에 그런 필드가 있는지와는 별개로, 공개된 지면에는 없다. 따라서 "참가자의 소개문은 성별로 다른가"는 공개 리포트만으로 답할 수 없는 질문이고, 이 글은 그 축을 비워 두었다.

대신 영문판을 대조하다 다른 것이 나왔다. 영문 6편의 나이는 국문과 전수 일치한다 — 민유리의 28→29까지 영문에서도 똑같이 바뀐다. 그래서 그 한 살은 표시 과정의 오류가 아니라 원자료의 값이라고 말할 수 있다. 그런데 직업 칸에서 두 줄이 영어가 아니다.

권나율 — 국문 "카네기 멜런 대학교 학생" / 영문 "Estudiantes de la Universidad Carnegie Mellon"
남궁민 — 국문 "안경사, 배우 지망생" / 영문 "Optometrista, aspirante a actor"

둘 다 스페인어이고, 둘 다 같은 레인(시즌 4와 시즌 7) 소속이며, 두 시즌 영문 리포트에 똑같이 들어가 있다. 명부 20명 중 2명, 영문 직업 칸 40개 중 4개가 영어가 아니다. 같은 레인의 다른 칸에서는 "Model, actor (former baseball player)"처럼 정상적인 영어가 나오므로 생성기의 번역 단계가 전면적으로 고장난 것은 아니다. 덧붙여 영문 직업 칸은 대문자 규칙도 섞여 있다 — "IT company employee"처럼 소문자로 쓴 칸과 "Architectural Designer", "Beauty Model, Barista"처럼 각 낱말을 대문자로 쓴 칸이 공존한다. 국문 직업 칸 20개에는 이런 혼선이 없다.

한계 — 이 집계가 말할 수 없는 것

첫째, 모집단이 20명이다. 성별로 가르면 각 10명이고, 독립된 캐스팅 사건은 세 번이다. 이 글의 모든 비율은 10으로 나눈 값이라 한 사람이 바뀌면 10%포인트가 움직인다. '배우' 3대 0도, '모델' 1대 3도, 한 명을 다르게 캐스팅하면 사라지는 크기다. 검정 통계량을 붙이지 않은 이유가 그것이다 — 이 표본에서 유의성을 논하는 것은 숫자에 어울리지 않는 옷을 입히는 일이다.

둘째, 명부는 매칭이 만든 것이 아니다. 참가자는 끝난 인물 생성 시즌에서 뽑혀 온다. 따라서 나이·직업·NBTI의 분포는 매칭 캐스팅의 성향이라기보다 인물 생성 쪽 명부의 성향이 반영된 결과일 수 있고, 두 단계 중 어디에서 생긴 쏠림인지 이 집계로는 가를 수 없다. 가르려면 캐스팅되지 않은 인물들의 프로필까지 모집단에 넣어야 하는데, 그 목록은 공개 리포트에 없다.

셋째, 직업 칸은 자유 문자열이다. "배우"와 "배우 지망생"을 같은 낱말로 세었고, "모델"과 "뷰티 모델"도 같은 낱말로 세었다. 분류 기준을 바꾸면 결과 ④의 숫자는 달라진다. 실제로 같은 데이터에서 낱말 기준과 의미 기준이 0대 3과 2대 3으로 갈리는 자리를 본문에 적어 두었다. 다른 글이 이 숫자를 재인용할 때는 어느 기준인지 함께 적어야 한다.

넷째, 나이 칸의 의미를 모른다. "27세"는 설정상의 나이이고, 그것이 시즌 시작 시점 기준인지 인물 생성 시점 기준인지 리포트는 말하지 않는다. 민유리 한 명만 한 살 올랐다는 사실은 그 값이 자동 계산이 아니라 저장된 값이라는 쪽을 가리키지만, 왜 그 한 명만 갱신됐는지는 공개 지면에서 알 수 없다.

다섯째, 상호선택 23쌍은 서로 독립이 아니다. 같은 인물이 최대 세 쌍에 들어가므로 "15대 8"은 15명과 8명이 아니다. 그리고 2차 시즌(6·7·8)의 쌍은 1차와 대부분 겹친다 — 레인 구조 때문에 같은 사건을 두 번 세는 셈이다. 쌍 단위 결론은 결과 ②의 보조 지표로만 읽어야 한다.

여섯째, 영문 혼입의 원인을 규명하지 못했다. 스페인어 두 줄이 번역 단계에서 생긴 것인지, 인물 생성 단계에서 영문 직업 필드에 그대로 들어간 것인지는 공개 리포트만 보고는 알 수 없다. 이 글이 확인한 것은 "현재 공개된 영문 리포트 두 편에 스페인어 직업 칸이 네 개 있다"는 사실까지다.

그래서 명부는 무엇을 말하는가

세 가지다. 첫째, 명부를 셀 때는 줄이 아니라 사람을 세야 한다. 여섯 시즌 40줄은 스무 명이고, 재대결 레인을 모르고 평균을 내면 모든 수치가 정확히 두 배의 확신을 갖는다. 같은 함정은 이 시리즈의 다른 집계에도 있다 — 매칭의 시즌 수는 여섯이지만 독립된 캐스팅은 세 번뿐이다.

둘째, 성별 차이는 '길이'가 아니라 '어휘'에 있었다. 나이는 1.5세 차이지만 그 평균을 레인 하나가 만들었고, 직업 칸 길이는 0.5자 차이로 사실상 같다. 반복해서 갈린 것은 칸에 들어간 낱말이다 — 배우 3대 0, 모델 1대 3, 직함형 전문직 5대 2. 명부가 성별을 가르는 방식은 숫자가 아니라 단어였다.

셋째, 네 칸 중 가장 설계된 칸은 NBTI다. 같은 성별 안에서 유형이 한 번도 겹치지 않고, 네 글자 축이 모두 5대 5에 가깝다. 나이와 직업이 인물 생성 쪽에서 묻어 온 값처럼 흩어져 있는 데 비해, 유형 칸은 고르게 펼치려는 의도가 읽힌다. 궁합 점수가 결말을 못 맞혔다는 앞선 결론과 나란히 놓으면 그림이 하나 생긴다 — 우리는 유형을 골고루 섞어 놓고, 그 유형으로 결말을 예측하지는 못했다.

남은 숙제는 '소개문' 축이다. 참가자 한 명을 한 문장으로 설명하는 자리는 지금 공개 리포트에 없고, 그래서 독자는 나이와 직업 네 글자로 인물을 상상해야 한다. 그 자리를 지면에 더하는 편이 좋은지는 계수의 결론이 아니라 편집의 판단이라 여기서 정하지 않는다. 다만 그 자리가 생기면 다음 집계의 축이 하나 늘어난다는 것만 적어 둔다. 스페인어 두 줄은 그 전에 고쳐 두어야 할 일이다.

집계 기준. 2026년 10월 7일(KST) 기준 저장소의 공개 AI 커플매칭 시즌 리포트 전부 — 국문 6편(시즌 3·4·5·6·7·8)과 영문 6편. 외부 API를 쓰지 않고 '참가자 소개' 섹션의 표를 파싱해 이름·나이·직업·NBTI를 꺼냈고, 성별은 표 위 소제목으로 판정했다. 명부 줄은 40줄이며 이름으로 묶은 인물은 20명(남 10·여 10)이다. 나이·직업·NBTI의 모든 평균과 비율은 인물 20명 기준이고, 같은 인물이 두 시즌에 걸칠 때는 먼저 등장한 시즌의 값을 썼다. 표준편차는 모표준편차다. 직업 칸 길이는 쉼표·공백·괄호를 포함한 문자 수이고, '직업 토큰'은 쉼표로 자른 조각 수다. 낱말 집계는 부분 문자열 일치이므로 "배우 지망생"은 '배우'에, "뷰티 모델"은 '모델'에 들어간다. 상호선택 쌍은 '최종 매칭 결과' 섹션의 💞 줄 전수(23줄)이며 한 인물이 여러 쌍에 중복 등장한다. 리포트는 시즌이 끝날 때마다 추가되므로 편수와 인원은 집계 시점 이후 달라진다. 이 글의 인물은 모두 AI가 생성한 가상 캐릭터이며 실존 인물과 무관하다.