연애 빌런·플러팅 유형·카톡 말투 테스트를 소개했던 글을, 결과가 만들어지는 과정을 설명하는 개발 기록으로 보강했습니다. 2026년 9월 20일 현재 JavaScript를 확인하면 세 테스트는 질문별 응답에 가중치를 곱한 뒤 총점을 결과 문구에 연결합니다. 실제 이용자의 성격이나 관계를 측정한 통계는 아닙니다.
질문 데이터와 결과 데이터 분리하기
세 구현은 각각 질문 18개를 갖고 있습니다. 질문에는 화면에 표시할 주제 axis, 질문 문장 text, 계산에 사용할 weight가 있고, 결과 목록에는 구간의 시작값 min과 결과 이름·설명이 있습니다.
예를 들어 플러팅 유형의 첫 질문은 가중치가 3입니다. 이 문항에 2점으로 답하면 총점에 6점이 더해집니다. 모든 질문에 같은 가중치를 주는 구조는 아니므로, 한 답을 바꿨을 때의 영향도 문항마다 다를 수 있습니다.
// 현재 계산 흐름을 간추린 예시
score += answer.score * question.weight;
maxScore += 3 * question.weight;
const percent = Math.round(score / maxScore * 100);
플러팅과 연애 빌런은 전체 질문으로 최대 점수를 계산하고, 카톡 말투는 답변 배열에 포함된 질문으로 최대 점수를 더합니다. 정상 흐름에서 18개 문항을 모두 답했을 때 아래 예시를 비교할 수 있습니다. 일부만 답한 내부 상태까지 같은 방식이라고 일반화하지 않습니다.
같은 입력으로 확인한 실제 계산 결과
저장소의 질문·결과 배열과 calculateResult()를 그대로 불러와 Node에서 실행했습니다. 실제 방문자의 응답을 수집한 결과나 화면 조작 시험은 아닙니다.
| 테스트 | 문항 수 | 가중치 합 | 모든 문항에 1점 | 모든 문항에 2점 |
|---|---|---|---|---|
| 플러팅 유형 | 18 | 45 | 33% / 부끄럼 신호형 | 67% / 장난꾸러기 플러팅형 |
| 연애 빌런 | 18 | 44 | 33% / 과몰입 헌신형 | 67% / 말투 냉각형 |
| 카톡 말투 | 18 | 34 | 33% / 답장 숙성형 | 67% / 다정한 답장러형 |
모든 문항을 0점으로 입력하면 세 구현 모두 0%, 3점이면 모두 100%였습니다. 예를 들어 플러팅에서 모두 2점을 입력하면 90 / 135 × 100을 반올림한 67%가 됩니다. 이는 응답의 가중 합계가 최대값의 어느 정도인지 나타내는 수치이지, 다른 이용자보다 상위 67%라는 뜻이 아닙니다.
한 개의 총점으로 유형을 나눌 때 생기는 한계
현재 결과 선택은 내림차순으로 놓인 resultMap에서 percent >= min인 첫 항목을 고릅니다. 따라서 답변의 내용이 달라도 가중 합계가 같으면 같은 결과가 나옵니다. 주제별 점수를 따로 비교해 서로 다른 성향을 판별하는 알고리즘은 아닙니다.
플러팅의 모든 답을 3점으로 고르면 100%의 ‘은근슬쩍 스며들기형’으로 연결됩니다. 높은 점수라는 이유만으로 더 적극적인 유형이 된다고 예상하면 실제 코드와 어긋납니다. 결과 이름은 점수 구간에 붙인 문구이며, 코드의 경계값만으로 이름의 타당성이 입증되는 것은 아닙니다.

위 이미지는 당시 소개 화면입니다. 현재 질문 응답·결과 계산의 근거는 이 글의 코드와 실행 결과를 기준으로 봐주세요.
결과 공유와 응답 기록 구분하기
결과 링크에는 결과의 식별자와 퍼센트가 들어갑니다. 질문마다 무엇을 답했는지 전체 응답 배열을 담는 방식이 아닙니다. 받는 사람에게 같은 결과 카드를 보여주는 기능과, 계산 과정을 검증할 수 있는 응답 기록은 구분해야 합니다.
현재 코드는 링크의 결과 키가 목록에 있는지 확인하고 퍼센트를 0~100으로 제한하지만, 두 값이 원래 답변에서 함께 계산됐다는 사실까지 확인하지 않습니다. 그래서 공유 화면을 응답의 진위나 성격 판정의 증명으로 사용할 수 없습니다.
다음 수정에서 지킬 기준
이 구현을 더 발전시킨다면 먼저 ‘총점에 이름을 붙이는 놀이’인지, 여러 주제의 차이를 보여주는 기능인지 목적을 정해야 합니다. 전자라면 수치의 의미를 명확히 쓰고, 후자라면 질문·가중치·결과 분류를 다시 설계한 뒤 경계 사례를 검증해야 합니다.
현재 확인한 것은 계산의 재현성과 구현 한계입니다. 이미지 저장, 공유 앱, 모든 모바일 브라우저의 동작까지 이 계산 시험으로 검증한 것은 아닙니다. 질문을 이전 단계로 되돌리는 상태 처리는 사회성 테스트의 답변 관리 기록에서 따로 정리했습니다.
첫 댓글을 남겨보세요.