소개
문제 상황
연구계획서를 단계별로 작성하는 파이프라인이 있었고, 통합 최종 초안(proposal_full_draft.md)까지는 완성되어 있었습니다. 문제는 그다음이었습니다.
혼자 작성한 제안서라 약점이 눈에 잘 띄지 않았습니다. 아이디어는 좋아 보였지만, 심사위원이 어느 부분을 문제 삼을지 가늠하기 어려웠습니다.
"잘 썼다"는 평가는 큰 도움이 되지 않습니다. 탈락 사유가 될 수 있는 지점을 알아야 고칠 수 있습니다.
AI에게 보강을 맡기면 존재하지 않는 참고문헌이나 정책 근거를 그럴듯하게 만들어 낼 위험이 있었습니다. 이런 내용은 제출본에 남으면 안 됩니다.
최종적으로는 공식 한글 서식(HWPX) 에 내용을 담아야 하는데, 이를 수작업으로 옮기는 일이 번거로웠습니다.
목표
다관점 비평: 심사위원·경쟁 연구자·방법론·측정 타당도·AI 윤리 등 여러 관점에서 약점을 진단
우선순위 수정: 중요도에 따라 A/B/C/D로 나누어 실제 수정으로 연결
신뢰할 수 있는 자동화: 검증되지 않은 사실은 만들어 내지 않고 "검증 필요"로 표시
공식 서식 완성: 빈서식 그대로의 HWPX 최종본 생성
진행 방법
사용한 도구
도구: 클로드 코드
핵심 활용: 다관점 Critic 역할 수행 /
python-hwpx와lxml로 HWPX XML 직접 편집 /fpdf2로 PDF 생성작업 범위: 한 세션 안에서 평가 → 수정 → 압축 → 공식 서식 빌드까지 연속 수행
🔍 Step 1: 평가 대상과 채점 기준을 함께 읽기
상황
비평을 진행하기 전에, AI가 무엇을 기준으로 평가할지부터 정해야 했습니다. 배점(창의·융합 40 / 내용·방법 30 / 우수 20 / 활용 10)과 분량 제약(본문 5쪽), 그리고 5개 섹션 초안을 함께 파악해야 했습니다.
프롬프트
최종본 초안 파일을 대상으로 Critic Agent 평가를 실행해줘.
결과
평가 대상(
proposal_full_draft.md)과 근거 파일(배점·제출 제약·섹션 초안 07~11·연구설계)을 함께 읽고 채점 기준을 먼저 구조화했습니다."배점의 70%가 창의성(40)과 방법(30)에 집중되어 있다"는 전략적 함의를 평가 전에 명확히 했습니다.
인상적이었던 점: 비평의 질은 결국 "무엇을 기준으로 평가하는가"에 달려 있습니다. 채점표를 먼저 읽도록 한 것이 이후 모든 지적의 정확도를 높였습니다.
🧑⚖️ Step 2: Critic Agent 10명의 관점으로 객관적으로 비평
상황
서로 다른 전문가 10명(심사위원·경쟁 연구자·방법론·측정 타당도·현장 이해관계자·정책 적합성·서술 구조·근거 문헌·AI 윤리·실현 가능성/예산)의 관점에서 같은 문서를 검토해야 했습니다.
프롬프트 (핵심은 "형식"과 "객관성"의 강제)
단순히 칭찬하지 말고 객관적으로 평가해줘.
각 Critic은 [핵심 평가 / 가장 큰 약점 / 심사위원이 지적할 지점 /
반드시 수정 / 보완하면 좋아질 점 / 삭제·축소할 것 / 수정 우선순위]
형식으로 작성하고, 문제는 어느 섹션의 어느 내용인지 표시해줘.
A급·B급·C급·D급으로 우선순위를 나눠줘.
결과
막연한 평가가 아니라 섹션 위치가 명시된 지적이 나왔습니다. 예
핵심 약점들이 드러났습니다: 모형 식별성 미검증, 표본/잠재계급 추정 모순(속성 6~8개면 잠재계급이 2^6~2^8인데 200명으로는 추정 곤란), "최초" 주장과 선행연구(item-cloning IRT) 미검토, 연구대상 선정에 따른 낙인·민감정보 문제.
막혔던 순간: 평가 도중 방향이 바뀌어, Critic 파일이 1개만 저장된 상태에서 다음 단계로 넘어갔습니다.
해결 방법: 이미 정리해 둔 10개 관점 분석 전체를 다음 단계에 적용하되, "파일로는 1개만 생성되었다"는 사실을 결과 보고서 에 투명하게 명시했습니다. 한계를 감추지 않고 기록하는 것이 신뢰로 이어집니다.
✏️ Step 3: 평가 기반 수정과 "검증 필요" 표시
상황
지적을 실제 수정으로 연결하되, AI가 근거를 만들어 내지 않도록 하는 점이 까다로웠습니다.
프롬프트 (반영 원칙을 명확히 제시)
A급은 반드시, B급은 가능한 한, C급은 분량·가독성 고려, D급은 핵심을 해치지 않을 때만 반영.
방법론 지적은 연구목표와 연결해서 수정하고,
AI 윤리 지적은 개인정보·편향·설명가능성·교사 개입·낙인 방지 관점으로 반영해.
검증되지 않은 참고문헌·정책자료는 본문에 단정하지 말고 "검증 필요"로 표시해줘.
결과
"진단 타당화" → "진단 파일럿 타당화"로 과제 범위를 사실에 맞게 축소했습니다(A급).
경계선지능 식별을 "연구진이 IQ 검사 신규 시행" → "학교 보유 정보·교사 의뢰를 동의 하에 활용, 낙인 최소화, 교사 검토 경유(human-in-the-loop)"로 수정했습니다(AI 윤리).
검증되지 않은 선행문헌·저널 등급·정책 효과는 본문에서 단정하지 않고 **
[검증 필요]·[사용자 확인 필요]**로 표시했습니다.
인상적이었던 점: "근거를 만들어 내지 말라"는 한 줄이, 제출 단계의 사고를 막는 가장 효율적인 안전장치였습니다.
🗜️ Step 4: 5쪽 압축본 만들기
상황
서식의 항목 번호는 유지하되, 작성 요령과 검토용 주석을 정리하고 본문을 5쪽 이내로 압축해야 했습니다.
막혔던 순간
"압축 5쪽본을 기반으로 최종본을 만들어 달라"는 요청이 있었는데, 그 압축본 파일이 아직 없었습니다. 직전 단계에서 "5쪽본은 아직 만들지 말라"고 했기 때문입니다.
해결 방법
작업을 멈추거나 되묻는 대신, 수정 통합본 v1을 기반으로 압축본을 먼저 생성한 뒤 그 사실을 알리고 진행했습니다. > 주석과 [검증 필요] 표시는 본문에서 제 거하고 별도 체크리스트로 분리했습니다.
🏗️ Step 5: 공식 빈서식 기반 HWPX 생성 (가장 까다로운 단계)
상황
공식 빈서식(03_빈_연구계획서_서식.hwpx)에 내용을 채워야 했는데, 이 서식은 단순 플레이스홀더가 아니었습니다. 「항목 제목 + '작성 요령(제출 시 삭제)' 박스 + 빈 본문」 구조여서, 텍스트만 바꾸는 방식으로는 처리할 수 없었습니다.
해결 접근 (텍스트 치환이 아닌 XML 문단 편집)
1) 서식 내부(section0.xml) 102개 문단을 전수 조사하여 지도 작성
2) 각 항목 제목은 그대로 두고, 그 아래 '작성 요령' 박스는 삭제
3) 제목 아래에 본문 문단과 표를 XML로 삽입
4) 표는 '서식 자체에 정의된 스타일'(테두리 borderFill, 셀 글자 charPr)을 재사용
5) fix_namespaces로 한글 호환 네임스페이스 후처리
막혔던 순간 ①: 표를 새로 만들면 ID가 어긋난다 새 문서에서 표를 만들면 그 표가 참조하는 테두리·글자 스타일 ID가 공식 서식에는 없어 깨질 위험이 있었습니다. → 해결: 서식의 기존 표(과제명 표)에서 유효한 셀 구조와 borderFill ID(3=본문/6=헤더)를 그대로 추출하여, 같은 ID를 참조하는 표를 생성했습니다. 문서 간 ID 충돌을 사전에 차단했습니다.
막혔던 순간 ②: 파일 잠김 (WinError 32) 빌드 시 "다른 프로세스가 사용 중"이라는 오류가 발생했습니다. 한글에서 기존 파일이 열려 있었기 때문입니다. → 해결: 다른 이름(_official_form.hwpx)으로 먼저 빌드하고, 사용자가 한글을 닫은 뒤 최종 파일명으로 교체했습니다.
막혔던 순간 ③: 콘솔 한글 깨짐과 글꼴 글리프 누락
빌드 로그의 한글이 cp949 콘솔에서 깨져 보였습니다 → 파일 자체는 정상(UTF-8) 임을, 추출 텍스트를 파일로 저장하여 확인했습니다.
PDF에서 베이지안 수렴진단 기호
R̂(결합 악센트)이 글꼴에 없어 누락 경고가 발생했습니다 → 표기를R-hat으로 교체하여 해결했습니다.
결과
공식 서식 골격을 유지한 채, 항목 1~6과 참고문헌에 본문과 표 4종(연차 매트릭스·연구비·실적표 2종)을 삽입한 HWPX를 생성했습니다.
검증 결과: XML 유효, 표 13개, 본문 영역의 '작성 요령/유의사항' 완전 삭제, 과제명 국·영문 입력을 확인했습니다.
📋 Step 6: PDF와 제출 체크리스트
한글 앱이 없어도 확인할 수 있도록
fpdf2와 맑은 고딕으로 PDF를 생성했습니다(4쪽).제출 전 체크리스트(
submission_checklist.md)에 "최종본에 남은 검증 필요 항목(V1~V7: 저널 등급·트랙 예산·데이터/IRB 실체 등)"을 표로 분리하여 명시했습니다.
결과와 배운 점
Before vs After
항목
Before
After
약점 파악
어디가 문제인지 막연함
10개 관점 × 섹션 위치가 명시된 지적
수정 방향
직관에 의존
A/B/C/D 우선순위 + 구체적 수정안
근거 신뢰
부정확한 내용 생성 위험
미검증 사실은 "검증 필요"로 분리
한글 최종본
수작업으로 서식에 옮김
공식 빈서식에 자동 입력(HWPX)
제출 리스크
머릿속에만 존재
체크리스트 V1~V7로 가시화
핵심 배운 점
1. 비평은 "역할 + 형식 + 우선순위"를 정해 줄 때 정확해진다
단순히 "검토해 달라"고 하면 칭찬으로 끝나기 쉽습니다. "칭찬 배제 + 정해진 7개 항목 + 섹션 위치 표시 + A/B/C/D 등급"을 명확히 제시하니 비로소 심사위원 수준의 지적이 나왔습니다.
2. 자동화의 핵심 가치는 신뢰성이다
AI에게 보강을 맡기면 빈칸을 근거 없는 내용으로 채우려는 경향이 있습니다. "근거를 만들어 내지 말고 검증 필요로 표시"라는 한 줄이 제출 단계의 사고를 예방합니다. 자동화일수록 안전장치가 본질입니다.
3. 공식 서식의 충실도는 '텍스트'가 아니라 '구조'에 있다
서식을 제대로 지키려면 텍스트 치환이 아니라 원본의 스타일·구조(XML 문단/표 스타일 ID)를 재사용해야 합니다. 새로 만든 스타일을 끼워 넣으면 서식이 깨집니다.
4. 환경상의 문제는 정면 해결보다 우회가 효율적이다
파일 잠김(WinError 32), 콘솔 인코딩 깨짐, 글꼴 글리프 누락은 모두 "다른 이름으로 빌드 / 파일로 검증 / 표기 교체"라는 간단한 우회로 해결했습니다.
앞으로의 계획
Critic 관점 라이브러리화: 10개 관점을 분야별(연구비/제안서/논문)로 템플릿화하여 재사용합니다.
서식 빌드 스크립트 모듈화: 이번 HWPX XML 편집 로직(
_build_official.py)을 다른 한글 서식에도 적용합니다.검증 필요 → 검증 완료 루프: 체크리스트 V1~V7을 웹 검색·CV 대조로 마무리하는 후속 작업을 진행합니다.
도움 받은 글 (옵션)
스터디장님 문서 자동화 가이드