서술형 의견, 수백 건씩 쌓여도 결국 못 읽고 넘기고 계신가요? 근거 인용 강제와 속성 기반 감정분석으로 ChatGPT를 안전하게 활용해 주관식 의견을 분석하는 방법을 가상 사례(처리시간 72.4% 절감)와 함께 정리했습니다.

완성한 대시보드는 콘텐츠·강사·운영환경·현업전이 4대 영역의 점수와 28번 글의 위험점수를 실시간으로 보여준다. 그런데 화면 한쪽에는 여전히 손대지 못한 열이 남아있다. I열, 서술형 의견이다. "실습 시간이 너무 부족했다", "장소가 너무 멀어서 힘들었다" 같은 문장들은 담당자가 시간을 내어 직접 읽는 수밖에 없었고, 응답이 수백 건으로 쌓이면 이 작업은 사실상 뒤로 미뤄지다가 결국 아무도 읽지 않는 데이터로 방치된다. "ChatGPT로 요약해줘"라고 시켜보면 그럴듯한 요약이 몇 초 만에 나오지만, 정작 원문에 없던 내용이 슬쩍 섞여 들어가거나 몇 개의 인상적인 문장만으로 전체를 과잉 일반화하는 경우가 있다. 이 글에서는 서술형 의견을 안전하고 신뢰할 수 있게 분석하는 방법, 그리고 이를 29번 글의 대시보드에 연결하는 방법을 정리한다.
1. 점수 하나로는 보이지 않는 것들
4번 글에서 설계한 4개 영역 평균과 5번 글의 긍정응답비율은 "무엇이 문제인지"까지는 알려주지 않는다. 현업전이 영역 점수가 3.5점으로 낮게 나왔다는 사실은 알 수 있지만, 그 낮은 점수가 실습 시간 부족 때문인지, 사전 자료 부족 때문인지, 교육 장소가 불편했기 때문인지는 숫자만으로는 구분되지 않는다. 서술형 의견은 이 "왜"에 답할 수 있는 유일한 데이터이며, 정량 지표(29번 글)와 정성 데이터(이번 글)가 함께 있어야 대시보드가 비로소 완전해진다.
2. 단순 "요약해줘" 지시가 위험한 두 가지 이유
첫째, 생성형 AI는 15번 글에서 다룬 GIGO 원칙처럼 입력이 정돈되지 않으면 결과도 정돈되지 않지만, 여기에 한 가지가 더 추가된다. AI는 입력된 내용이 부족하거나 모호할 때 그 공백을 그럴듯한 문장으로 자연스럽게 채워 넣는 경향이 있다. 둘째, 소수의 강렬한 의견(매우 부정적이거나 매우 긍정적인 몇 개의 문장)이 전체 요약을 지배해버리는 경우가 흔하다. 300명 중 몇 명이 강하게 항의한 내용이 "많은 참가자들이 불만을 느꼈다"는 문장으로 과장되어 요약될 수 있다.
3. 해결책 1: 근거 인용 강제(Quotation Grounding)
이 시리즈가 처음부터 지켜온 원칙, "확인되지 않은 통계는 작성하지 않는다"를 AI의 출력물에도 그대로 요구해야 한다. 방법은 간단하다. AI에게 분류나 요약을 요청할 때마다, 반드시 그 판단의 근거가 된 원문 문장을 함께 제시하도록 강제하는 것이다.
```text
나쁜 지시: "부정적인 의견을 요약해줘."
좋은 지시: "각 의견을 분류할 때, 반드시 원문에서 해당 판단의 근거가 된
문장을 그대로 인용해서 함께 제시해줘. 원문에 없는 내용은
추론하지 말고, 판단이 애매하면 '검토필요'로 표시해줘."
이렇게 하면 담당자는 AI의 분류 결과("부정")만 보는 것이 아니라 그 옆에 나란히 놓인 원문을 함께 확인해, AI가 만들어낸 내용인지 실제 응답인지를 즉시 검증할 수 있다.
##4. 해결책 2: 속성 기반 감정분석 — 4대 영역을 그대로 분석 단위로
하나의 감정만으로 분류하면 5번 글에서 지적한 것과 같은 문제, 즉 영역 간 격차가 다시 감춰진다. 다음 의견을 보자.
"강사님은 정말 좋았는데 실습 시간이 너무 부족했어요."
이 문장을 하나의 감정으로 분류하면 "혼합" 또는 "중립"이라는 무의미한 라벨이 붙는다. 대신 4번 글의 4대 영역을 분석 단위로 삼아 속성별로 감정을 나누어 분류(Aspect-Based Sentiment Analysis)하면 다음과 같이 정리된다.
원문 발췌 속성(영역) 감정
"강사님은 정말 좋았는데" 강사 긍정
"실습 시간이 너무 부족했어요" 운영환경 부정
이렇게 하면 하나의 의견에서도 서로 다른 영역에 대한 평가가 각각 정확히 분리되어, 정량 점수(29번 글)와 정성 의견을 같은 4대 영역 기준으로 나란히 비교할 수 있다.
5. 분석 파이프라인: 29번 글의 3단계를 4단계로 확장하기
29번 글에서는 Raw_Data → Calc_Engine → Dashboard로 이어지는 3단계 구조를 사용했다. 정성 데이터를 다루려면 원본과 AI 입력 데이터를 분리하는 단계가 하나 더 필요하다.
[Raw_Data]
└─ 구글 설문지 원본 응답, 절대 수정하지 않음
↓
[Anonymized_Data]
└─ 이름·사번·부서·프로젝트명 등 식별정보 제거, Response_ID 부여
↓
[AI_Result]
└─ 영역·감정·근거인용을 구조화해 저장
↓
[Dashboard]
└─ 29번 글의 정량 지표와 나란히 표시
Anonymized_Data 시트는 다음과 같이 구성한다.
열 항목 설명
A Response_ID 응답 식별용 임의 번호(R001, R002…)
B 과정명 교육 과정명(29번 글 형식과 통일)
C 만족도점수 해당 응답의 종합 점수
D 원문(비식별화) 개인정보 제거 후 의견
E 분석상태 분석전·완료·검토필요
F 배치번호 ChatGPT에 넣은 그룹 번호
Response_ID와 실제 응답자를 연결하는 표는 절대 AI 분석용 파일에 포함하지 않고, 접근 권한이 제한된 별도 공간에 보관한다.
6. 표준 프롬프트: 17번 글의 4원칙 + 근거인용 반영
[역할] 너는 교육 만족도 데이터를 분석하는 HRD 데이터 분석가야.
[상황] 아래는 리더십 기초과정 서술형 의견 목록이야. 각 의견에는
익명 번호(Response_ID)가 붙어 있어.
[과업] 각 의견을 다음 기준으로 분석해줘.
- 콘텐츠/강사/운영환경/현업전이 중 어느 영역과 관련되는지 판단한다
(하나의 의견이 여러 영역에 걸치면 모두 표시) - 각 영역에 대한 감정을 긍정/중립/부정으로 분류한다
- 판단 근거가 된 원문을 그대로 인용한다
- 원문에 없는 내용은 추론하지 말고, 애매하면 '검토필요'로 표시한다
[형식] 표 형식으로만 출력해줘. 표 외의 설명은 작성하지 마.
Response_ID | 원문발췌 | 영역 | 감정 | 근거인용
출력 형식을 미리 고정하면 결과를 그대로 AI_Result 시트에 옮기기 쉽다.
7. 배치 크기와 처리 순서
응답 전체를 한 번에 입력하면 AI가 뒷부분 응답을 소홀히 처리하거나 형식을 흐트러뜨리는 경우가 있다. 30~50건 단위로 나누어 배치를 처리하고, 각 배치 결과를 AI_Result 시트에 이어 붙인 뒤 Response_ID 누락 여부를 확인하는 순서를 권장한다.
1차 배치: R001
R040
2차 배치: R041
R080
3차 배치: R081~R120
8. 결과 검증: 표본 대조와 일치율, 그리고 반어법의 함정
AI의 분류 결과를 곧바로 신뢰해서는 안 된다. 6번 글에서 다룬 "AI 산출물은 초안이고 사람이 최종 판단자"라는 원칙을 여기서도 지켜야 한다. 전체 응답의 약 10%를 무작위로 뽑아, 담당자가 직접 분류한 결과와 AI의 분류 결과를 대조한다.
일치율(%) = 사람과 AI의 분류가 일치한 응답 수 ÷ 검증한 표본 수 × 100
검증 과정에서 특히 주의해야 할 유형이 있다. 다음 의견을 보자.
"강사님의 넘치는 열정 덕분에 쉬는 시간도 없이 진도를 나가서 정말 인상 깊었습니다."
AI의 1차 판단은 '열정', '인상 깊었다'라는 단어에 반응해 긍정으로 분류하기 쉽지만, 실제로는 휴식 시간 미준수와 무리한 진도 진행에 대한 완곡한 불만일 가능성이 높다. 이런 반어법·완곡 표현은 표본 검증 과정에서 특히 눈여겨봐야 할 오분류 유형이다. 원본 Response_ID와 결과 Response_ID가 모두 일치하는지도 함께 확인한다.
=COUNTA(Anonymized_Data!A2:A)-COUNTA(AI_Result!A2:A)
결과가 0이면 행 수 기준으로는 일치한다. 다만 중복 ID가 있을 수 있으므로 아래 수식으로 중복 여부도 점검한다.
=COUNTA(AI_Result!A2:A)-COUNTA(UNIQUE(AI_Result!A2:A))
9. 우선순위 판단: 빈도만으로 결정하면 안 되는 이유
분류가 끝나면 부정 의견을 주제별로 묶어 빈도를 확인하게 된다. 반복 빈도가 높다고 항상 가장 중요한 문제인 것은 아니다. 우선순위는 빈도, 부정강도, 업무영향, 즉시성 네 가지 기준을 함께 고려한다.
개선우선순위 점수
= 반복빈도 점수(1
3) + 부정강도 점수(1
3)
- 업무영향 점수(1
3) + 즉시성 점수(13)
동시에 13·26·28번 글에서 반복해온 굿하트의 법칙을 다시 떠올려야 한다. "부정의견 감소율"이 특정 담당자를 평가하는 성과지표로 고정되는 순간, 부정적인 의견 자체를 수집하지 않으려는 유인이 생길 수 있다. 이 분석은 어디까지나 개선점을 찾기 위한 진단 도구로만 사용해야 한다.
10. 대시보드에 연결하기
이번 분석 결과는 29번 글의 Dashboard 시트에 아래처럼 추가할 수 있다.
========================================================
[ 리더십기초과정 - 3기 종합 현황 ]
========================================================
영역 평균 Top-2 Box 주요 서술형 이슈
콘텐츠 4.20 81.0% (특이사항 없음)
강사 4.55 90.5% (특이사항 없음)
운영환경 4.05 76.2% 실습시간부족, 이동부담 ★
현업전이 3.55 59.5% 사전공지부족
========================================================
11. 이 방법의 한계
첫째, 매우 짧거나 모호한 의견("좋았어요", "글쎄요")은 AI든 사람이든 정확한 속성·감정을 판별하기 어렵다. 둘째, 반어법이나 비꼬는 표현은 8절에서 확인한 것처럼 오분류될 가능성이 있다. 셋째, 근거 인용을 강제해도 완전히 오류가 없다고 보장할 수는 없으므로 표본 검증 절차를 생략해서는 안 된다. 이 도구는 담당자가 모든 의견을 읽지 않아도 되게 해주는 것이 아니라, 어디부터 우선적으로 읽어야 하는지를 알려주는 안내판으로 이해해야 한다.
12. 가상 사례: (주)선우코스메틱의 서술형 의견 분석
가상의 화장품 제조기업 (주)선우코스메틱은 연간 여러 직무교육 과정에서 수집된 서술형 의견 340건을 담당자 한 명이 매년 수작업으로 읽고 분류해왔다.
기존 방식: 340건 전체를 건당 3분씩 읽고 분류했다. 340건 × 3분 = 1,020분 = 17.0시간.
개편 방식: AI가 4대 영역별로 감정을 1차 분류하고 근거 원문을 함께 제시했다. 담당자는 전체의 10%인 34건을 표본으로 뽑아 직접 대조 검증했고, 그중 31건이 AI 분류와 일치해 일치율 91.2%를 확인했다. 불일치한 3건 중 일부는 8절에서 다룬 완곡 표현 유형이었다. 일치율이 충분히 높다고 판단해 나머지 결과를 그대로 활용했고, 부정으로 분류된 60건 전체는 담당자가 직접 원문까지 다시 읽었다.
34건(표본 검증) × 3분 + 60건(부정 의견 전체 재확인) × 3분 = 102분 + 180분 = 282분 = 4.7시간. 서술형 의견 처리 시간은 17.0시간에서 4.7시간으로 72.4% 줄었다.
발견된 인사이트: 부정 의견 60건을 4절의 방식대로 다시 묶어보니 아래와 같이 나뉘었다.
주제 건수 전체 응답(340건) 대비 비중
실습 시간 부족(운영환경) 22건 6.5%
교육장소 이동 부담(운영환경) 18건 5.3%
사전 공지 부족(운영환경) 12건 3.5%
기타 8건 2.4%
합계 60건 17.6%
특히 "교육장소 이동 부담"이라는 주제는 4번 글의 정량 설문 문항(운영환경 평균 점수)에서는 전혀 낮게 나타나지 않았던 이슈였다. 전체 평균은 만족스러운 수준으로 나왔지만, 서술형 의견을 별도로 분석하지 않았다면 발견하지 못했을 문제였다. 이 결과를 바탕으로 다음 차수부터는 교육 장소를 교통 접근성이 더 좋은 곳으로 조정했다. 위 수치는 실제 기업의 통계가 아니라 분석 방법의 효과를 보여주기 위한 가상 사례다.
13. 보안과 보관 정책
AI 분석 결과도 교육 데이터의 일부이므로 보관 정책을 정해야 한다. 원문과 비식별화 데이터의 접근권한을 분리하고, 분석 담당자와 처리 기록을 남기며, 분석이 끝난 뒤 임시 파일을 정리한다. 회사 보안정책상 외부 AI 입력이 제한된 정보는 사용하지 않는다. 무엇보다 AI 분석 결과를 인사평가나 징계 등 개인에게 불이익을 주는 판단의 단독 근거로 사용하지 않는다. 이는 26·27번 글에서 다룬 평가 데이터의 신뢰성 원칙과 정확히 같은 이유다.
14. 실무 적용 체크리스트
AI에게 요약이 아니라 근거 원문을 함께 인용하도록 요구했는가
하나의 의견에 여러 영역이 섞여 있을 때 이를 분리해서 분류했는가
이름·사번 등 식별정보를 AI에 입력하기 전에 제거했는가
응답량이 많을 경우 30~50건 단위로 나누어 처리했는가
전체 응답의 일부를 표본으로 뽑아 사람이 직접 대조 검증했는가
반어법·완곡 표현으로 인한 오분류 가능성을 점검했는가
부정 의견의 빈도를 특정 개인이나 부서를 압박하는 지표로 쓰지 않았는가
정량 점수에서는 드러나지 않았지만 서술형 의견에서만 발견된 이슈가 있는지 확인했는가
15. 정리
서술형 의견은 4대 영역 점수가 "왜" 그렇게 나왔는지를 설명해주는 유일한 데이터지만, 응답이 쌓일수록 사람이 전부 읽기는 현실적으로 어려워진다. 생성형 AI에게 이 작업을 맡길 때 핵심은 요약을 그대로 믿는 것이 아니라, 근거 인용을 강제하고 속성별로 감정을 분리해 분류한 뒤, 표본을 뽑아 사람이 검증하는 절차를 반드시 거치는 것이다. 이렇게 정량 데이터(29번 글)와 정성 데이터(이번 글)가 하나의 대시보드 안에서 만나야, 1번 글에서 던졌던 "교육을 많이 하는 것과 교육이 효과를 내는 것은 다른 문제"라는 질문에 숫자와 맥락 양쪽에서 답할 수 있는 완전한 체계가 완성된다.
'HRD와 교육' 카테고리의 다른 글
| HRD 담당자를 위한 교육 요구분석: 현업의 요청을 실제 교육과제로 바꾸는 방법 (0) | 2026.10.02 |
|---|---|
| HRD 담당자를 위한 연간 운영계획 수립법: 교육 일정표를 전략 실행계획으로 바꾸는 SHRD (0) | 2026.10.02 |
| 구글 설문지와 스프레드시트로 만족도 자동 집계 시스템 만들기 (0) | 2026.10.01 |
| 교육 이탈률 데이터로 조기경보 시스템 만들기 (0) | 2026.09.30 |
| 다면진단(360도 평가), 결과표만 던져주면 실패하는 이유 (0) | 2026.09.30 |