diff --git a/01_copy_files_answer.py b/01_copy_files_answer.py index 998c1e6..aa9e8f8 100644 --- a/01_copy_files_answer.py +++ b/01_copy_files_answer.py @@ -3,11 +3,11 @@ import shutil from pathlib import Path import re -# 채점자료 정답 파일만 복사하는 스크립트 +# 회차별채점자료/회차명 폴더안 정답 파일만 복사하는 스크립트 # ===== 사용자 설정 ===== -source_dir = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2601" -exam_round = "2601" # 회차명 +source_dir = r"D:\project\HWP\HWP-Scoring\회차별채점자료\2622" +exam_round = "2622" # 회차명 exam_code = "DIW" # 코드명 # ======================= @@ -16,8 +16,9 @@ def get_exam_type(filename: str): """ 파일명에서 확장자 앞의 마지막 알파벳을 추출 (예: 국어A.hwpx → A) """ - match = re.search(r"([A-Za-z])\.hwpx$", filename) - return match.group(1).upper() if match else None + # match = re.search(r"([A-Za-z])\.hwpx$", filename) + match = re.search(r'[A-Za-z](?=[^A-Za-z]*\.[^.]*$)', filename) + return match.group().upper() if match else None def copy_exam_files(): @@ -30,14 +31,14 @@ def copy_exam_files(): copied = 0 for path in src.rglob("*"): - if path.is_file() and path.suffix.lower() == ".hwpx": + if path.is_file() and path.suffix.lower() == ".hwpx" and "정답" in path.name: exam_type = get_exam_type(path.name) if not exam_type: continue # 마지막 문자가 알파벳이 아니면 건너뜀 dest_dir = base_dest / exam_type / exam_code dest_dir.mkdir(parents=True, exist_ok=True) - dest_path = dest_dir / path.name + dest_path = dest_dir / f"DIW_{exam_round}{exam_type}.hwpx" # 같은 이름의 파일이 있을 경우 숫자 붙이기 counter = 1 diff --git a/01_copy_files_by_origin.py b/01_copy_files_by_origin.py index 6de02fd..a699af2 100644 --- a/01_copy_files_by_origin.py +++ b/01_copy_files_by_origin.py @@ -41,10 +41,10 @@ def copy_dic_subdirs(source_root, target_root_a, target_root_b, target_root_c, t print(f"Skipping {dir_name} under {parent_dir}, as it doesn't match '2교시' or '3교시'.") # 사용법 -exam_round = "2601_2" +exam_round = "2601" # exam_round = "2510_4" # source_directory = r"D:\project\data\제2510회 수시2(제주)\답안파일\제2510회 수시2 제주지부_답안파일" -source_directory = r"D:\project\data\제2601회 수시2(제주)\제2601회 수시2(제주)\답안파일\2601회 수시2 답안파일" +source_directory = r"D:\project\data\제2601회 정기\제2601회 정기\과목별답안파일" target_directory_a = f".\\input\\{exam_round}\\A" # '1교시'의 타겟 경로 diff --git a/01_copy_files_by_subject.py b/01_copy_files_by_subject.py index 1240aed..ccc8218 100644 --- a/01_copy_files_by_subject.py +++ b/01_copy_files_by_subject.py @@ -76,8 +76,8 @@ def copy_exam_files(exam_round, exam_codes, source_dir): # 사용 예시 if __name__ == "__main__": # [source_dir경로\DIW] 디렉토리 안에 A형, B형... 폴더가 존재해야 함 - exam_round = "2512" + exam_round = "2601" exam_codes = ["DIW"] - source_dir = r"D:\project\data\제2512회 정기_DIAT\답안파일" + source_dir = r"D:\project\data\제2601회 정기\과목별답안파일" copy_exam_files(exam_round, exam_codes, source_dir) diff --git a/02_conversion_hwp_to_xml.py b/02_conversion_hwp_to_xml.py index 154e77b..f0262c1 100644 --- a/02_conversion_hwp_to_xml.py +++ b/02_conversion_hwp_to_xml.py @@ -166,7 +166,7 @@ if __name__ == "__main__": setup_logging() exam_rounds = [ - "2601", + "2622", ] # 변환할 폴더 경로 설정 @@ -178,6 +178,8 @@ if __name__ == "__main__": (f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\C\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\C\\DIW"), (f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\D\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\D\\DIW"), (f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}\\E\\DIW",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}\\E\\DIW"), + + # (f"D:\\project\\HWP\\HWP-Scoring\\input\\{exam_round}",f"D:\\project\\HWP\\HWP-Scoring\\output\\{exam_round}"), ] # folders = [ diff --git a/DIW_2601A.json b/JSON/2601/DIW_2601A.json similarity index 100% rename from DIW_2601A.json rename to JSON/2601/DIW_2601A.json diff --git a/DIW_2601B.json b/JSON/2601/DIW_2601B.json similarity index 100% rename from DIW_2601B.json rename to JSON/2601/DIW_2601B.json diff --git a/DIW_2601C.json b/JSON/2601/DIW_2601C.json similarity index 100% rename from DIW_2601C.json rename to JSON/2601/DIW_2601C.json diff --git a/JSON/2622/DIW_2622A.json b/JSON/2622/DIW_2622A.json new file mode 100644 index 0000000..e0ce2e0 --- /dev/null +++ b/JSON/2622/DIW_2622A.json @@ -0,0 +1,850 @@ +{ + "0": { + "0": { + "path": "", + "path2": "", + "points": 0, + "category": "파일저장", + "item": "파일명 (수검번호.hwp/hwpx)" + }, + "1": { + "path": "//PAGEMARGIN", + "value": { + "Top": 20, + "Bottom": 20, + "Left": 20, + "Right": 20, + "Header": 10, + "Footer": 10, + "Gutter": 0 + }, + "tolerance": 1, + "points": 4, + "category": "PageSetting", + "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" + }, + "2": { + "path": "", + "value": { + "FontName": "바탕", + "FontSize": "1000", + "Alignment": "Justify", + "LineSpacing": "160" + }, + "points": 4, + "category": "BasicSetting", + "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" + }, + "3": { + "path": "", + "value": null, + "points": 40, + "category": "오타감점", + "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" + } + }, + "1": { + "1": { + "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", + "searchValue": "나라사랑고궁사랑걷기대회", + "value": "돋움체", + "points": 1, + "category": "OneAnswer", + "item": "문구 (나라사랑고궁사랑걷기대회)/① 글씨체 (돋움체)" + }, + "2": { + "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", + "searchValue": "나라사랑고궁사랑걷기대회", + "value": "241,31,18", + "points": 2, + "category": "Color", + "item": "문구 (나라사랑고궁사랑걷기대회)/② 채우기 : 색상(RGB:241,31,18)" + }, + "3": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", + "searchValue": "나라사랑고궁사랑걷기대회", + "value": "120", + "tolerance": 1, + "points": 2, + "category": "mmSize", + "item": "문구 (나라사랑고궁사랑걷기대회)/③ 크기-너비 (120 mm)" + }, + "4": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", + "searchValue": "나라사랑고궁사랑걷기대회", + "value": "20", + "tolerance": 1, + "points": 2, + "category": "mmSize", + "item": "문구 (나라사랑고궁사랑걷기대회)/④ 크기-높이 (20 mm)" + }, + "5": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", + "searchValue": "나라사랑고궁사랑걷기대회", + "value": "true", + "points": 2, + "category": "OneAnswer", + "item": "문구 (나라사랑고궁사랑걷기대회)/⑤ 위치 (글자처럼 취급)" + }, + "6": { + "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", + "searchValue": "나라사랑고궁사랑걷기대회", + "value": "Center", + "points": 2, + "category": "OneAnswer", + "item": "문구 (나라사랑고궁사랑걷기대회)/⑥ 정렬 (가운데 정렬)" + }, + "7": { + "path": "//TEXTART[@Text='{searchValue}']", + "searchValue": "나라사랑고궁사랑걷기대회", + "value": true, + "points": 2, + "category": "Boolean", + "item": "문구 (나라사랑고궁사랑걷기대회)/⑦ 글맵시모양 (육안확인)" + }, + "8": { + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", + "searchValue": "도", + "value": { + "Height": 2800, + "Width": 2800 + }, + "tolerance": 200, + "points": 1, + "category": "TwoLineSize", + "item": "어/① 모양 (2줄)" + }, + "9": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "도", + "value": "중고딕", + "points": 1, + "category": "FontName", + "item": "어/② 글씨체 (중고딕)" + }, + "10": { + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", + "searchValue": "도", + "value": "43,224,208", + "points": 2, + "category": "Color", + "item": "어/③ 면색 : 색상(RGB:43,224,208)" + }, + "11": { + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", + "searchValue": "도", + "value": "3.0", + "tolerance": 1, + "points": 2, + "category": "mmSize", + "item": "어/④ 본문과의 간격 : 3.0mm" + }, + "12": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", + "searchValue": "나라 사랑 고궁 사랑 걷기대회", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/① BOLD" + }, + "13": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", + "searchValue": "나라 사랑 고궁 사랑 걷기대회", + "value": "ITALIC", + "points": 1, + "category": "FontAttribute", + "item": "문구 (평생교육사 양성 교육과정 현황과 개선 방안 탐색)/② ITALIC" + }, + "14": { + "path": "//CHAR[contains(string(.),'{char1}')]/text()", + "path2": "//CHAR[contains(string(.),'{char2}')]/text()", + "path3": "//CHAR[contains(string(.),'{char3}')]/text()", + "char1": "◈", + "char2": "◈", + "char3": "※", + "value": 3, + "points": 3, + "category": "SpecialChar", + "item": "① ◈, ② ◈, ③ ※" + }, + "15": { + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", + "searchValue": "참가안내", + "value": "궁서", + "points": 1, + "category": "FontName", + "item": "문구 (◈ 참가안내 ◈)/① 글씨체 (궁서)" + }, + "16": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", + "match_str": "참가안내", + "value": "Center", + "points": 1, + "category": "Align", + "item": "문구 (◈ 참가안내 ◈)/② 정렬 (가운데 정렬)" + }, + "17": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "나라사랑고궁사랑걷기대회 홈페이지(http://www.ihd.or.kr)", + "value": "ITALIC", + "points": 1, + "category": "FontAttribute", + "item": "문구 (나라사랑고궁사랑걷기대회 홈페이지(http://www.ihd.or.kr))/① ITALIC" + }, + "18": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "나라사랑고궁사랑걷기대회 홈페이지(http://www.ihd.or.kr)", + "value": "UNDERLINE", + "points": 1, + "category": "FontAttribute", + "item": "문구 (나라사랑고궁사랑걷기대회 홈페이지(http://www.ihd.or.kr))/② UNDERLINE" + }, + "19": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", + "searchValue": "기타사항", + "value": { + "Left": 10, + "Indent": 12 + }, + "points": 2, + "category": "ParaShape", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (10), 내어쓰기 (12)", + "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" + }, + "20": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "searchValue": "2026. 02. 08.", + "value": "1400", + "points": 1, + "category": "OneAnswer", + "item": "문구 (2026. 02. 08.)/① 크기 (1400)", + "desc": "1pt당 100" + }, + "21": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "searchValue": "2026. 02. 08.", + "value": "Center", + "points": 1, + "category": "OneAnswer", + "item": "문구 (2026. 02. 08.)/② 정렬 (가운데 정렬)" + }, + "22": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "고궁걷기대회추진위원회", + "value": "돋움", + "points": 1, + "category": "FontName", + "item": "문구 (고궁걷기대회추진위원회)/① 글씨체 (돋움)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "고궁걷기대회추진위원회", + "value": "2200", + "points": 1, + "category": "OneAnswer", + "item": "문구 (고궁걷기대회추진위원회)/② 크기 (2200)" + }, + "24": { + "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", + "searchValue": "고궁걷기대회추진위원회", + "value": "Center", + "points": 1, + "category": "OneAnswer", + "item": "문구 (고궁걷기대회추진위원회)/③ 정렬 (가운데 정렬)" + }, + "25": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "DIAT", + "value": "굴림", + "points": 1, + "category": "Header.FontName", + "item": "문구 (DIAT)/① 글꼴 (굴림)" + }, + "26": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "DIAT", + "value": "900", + "points": 1, + "category": "Header.OneAnswer", + "item": "문구 (DIAT)/② 크기 (9pt)" + }, + "27": { + "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", + "searchValue": "DIAT", + "value": "Right", + "points": 1, + "category": "Header.OneAnswer", + "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" + }, + "28": { + "path": "//PAGENUM/@FormatType", + "value": "LatinCapital", + "points": 2, + "category": "PageNumber", + "item": "① 쪽 번호 매기기 (가,나,다 순으로)", + "desc1": { + "가,나,다": "HangulSyllable", + "1,2,3": "Digit", + "일,이,삼": "HangulPhonetic", + "갑,을,병": "DecagonCircle", + "A,B,C": "LatinCapital", + "a,b,c": "LatinSmall", + "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", + "①,②,③": "CircledDigit", + "一,二,三": "Ideograph", + "㉠,㉡,㉢": "CircledHangulJamo", + "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", + "㊀,㊁,㊂": "CircledIdeograph", + "i,ii,iii": "RomanSmall", + "I,II,III": "RomanCapital", + "甲,乙,丙": "DecagonCircleHanja", + "+,++,+++": "UserChar", + "*,**,***": "UserChar", + "정답에 맞는 값 value에 입력": "" + }, + "desc2": "1, 2페이지 모두 정답이어야 점수 부여" + }, + "29": { + "path": "//PAGENUM/@Pos", + "value": "BottomCenter", + "points": 2, + "category": "PageNumber", + "item": "가운데 아래", + "desc": "1, 2페이지 모두 정답이어야 점수 부여", + "desc2": { + "가운데 아래": "BottomCenter", + "오른쪽 아래": "BottomRight", + "왼쪽 아래": "BottomLeft" + } + }, + "30": { + "path": "//CHAR[contains(text(),'{searchValue}')]", + "searchValue": "http", + "value": true, + "points": 2, + "category": "hyperlink", + "item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성", + "desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답" + }, + "31": { + "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", + "value": "190", + "first_word": "도", + "points": 2, + "category": "LineSpacing", + "item": "문제 1 줄간격 190% 설정", + "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." + } + }, + "2": { + "1": { + "path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside", + "path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]", + "value": { + "header_inside": true, + "all_double_slim": true + }, + "points": 4, + "category": "PageBorder", + "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" + }, + "2": { + "path": "count(//SECTION)>1", + "value": true, + "points": 3, + "category": "Boolean", + "item": "① 구역나누기", + "desc": "섹션이 1개 이상이면 점수부여" + }, + "3": { + "path": "./TEXT/COLDEF/@Count", + "value": "2", + "points": 3, + "category": "TwoColumn", + "item": "② 다단 2단" + }, + "4": { + "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", + "value": "65", + "points": 2, + "category": "Rectangle.mmSize", + "item": "문구 (궁궐 건축 양식)/① 크기-너비 (65 mm)" + }, + "5": { + "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", + "value": "12", + "points": 2, + "category": "Rectangle.mmSize", + "item": "문구 (궁궐 건축 양식)/② 크기-높이 (12 mm)" + }, + "6": { + "path": "//RECTANGLE//LINESHAPE", + "value": { + "Style": "DoubleSlim", + "Width": "283" + }, + "points": 2, + "category": "Rectangle.LineShape", + "item": "문구 (궁궐 건축 양식)/③ 테두리 : 이중 실선(1.00mm)", + "desc": "1mm = 283pt value['Width']에 pt값 입력" + }, + "7": { + "path": "//RECTANGLE/@Ratio", + "value": "50", + "points": 2, + "category": "Rectangle.OneAnswer", + "item": "문구 (궁궐 건축 양식)/④ 글상자 모서리 (둥근모양)", + "desc": "모서리 비율 반원:50 / 둥근모양:20" + }, + "8": { + "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", + "value": "240,199,123", + "points": 2, + "category": "Rectangle.Color", + "item": "문구 (궁궐 건축 양식)/⑤ 채우기 : 색상(RGB:240,199,123)" + }, + "9": { + "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", + "value": "true", + "points": 1, + "category": "Rectangle.OneAnswer", + "item": "문구 (궁궐 건축 양식)/⑥ 글상자 위치 (글자처럼 취급)" + }, + "10": { + "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", + "value": "Center", + "points": 1, + "category": "Rectangle.TextBoxAlign", + "item": "문구 (궁궐 건축 양식)/⑦ 글상자 정렬 (가운데 정렬)" + }, + "11": { + "path": ".//RECTANGLE//TEXT/@CharShape", + "value": "견고딕", + "points": 1, + "category": "Rectangle.FontName", + "item": "문구 (궁궐 건축 양식)/⑧ 글씨체 (견고딕)" + }, + "12": { + "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", + "value": "2000", + "points": 1, + "category": "Rectangle.FontSize", + "item": "문구 (궁궐 건축 양식)/⑨ 글씨크기 (2000)", + "desc": "1pt당 100" + }, + "13": { + "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", + "value": "Center", + "points": 1, + "category": "Rectangle.TextBoxAlign", + "item": "문구 (궁궐 건축 양식)/⑩ 정렬 (가운데 정렬)" + }, + "14": { + "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", + "value": true, + "points": 2, + "category": "Boolean", + "item": "① 파일명 \"그림A.jpg\" 삽입", + "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" + }, + "15": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", + "value": "85", + "points": 2, + "category": "mmSize", + "item": "② 크기-너비 (85 mm)" + }, + "16": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", + "value": "40", + "points": 2, + "category": "mmSize", + "item": "③ 크기-높이 (40 mm)" + }, + "17": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", + "value": "0", + "points": 2, + "category": "mmSize", + "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" + }, + "18": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", + "value": "24", + "points": 2, + "category": "mmSize", + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)" + }, + "19": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "1. 궁궐 건축의 이해", + "value": "돋움", + "points": 1, + "category": "FontName", + "item": "문구① (1. 궁궐 건축의 이해)/① 글씨체 (돋움)" + }, + "20": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "1. 궁궐 건축의 이해", + "value": "1200", + "points": 1, + "category": "OneAnswer", + "item": "문구① (1. 궁궐 건축의 이해)/② 크기 (1200)" + }, + "21": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "1. 궁궐 건축의 이해", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "문구① (1. 궁궐 건축의 이해)/③ 진하게" + }, + "22": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "2. 경복궁", + "value": "돋움", + "points": 1, + "category": "FontName", + "item": "문구② (2. 경복궁)/① 글씨체 (돋움)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "2. 경복궁", + "value": "1200", + "points": 1, + "category": "OneAnswer", + "item": "문구② (2. 경복궁)/② 크기 (1200)" + }, + "24": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "2. 경복궁", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "문구② (2. 경복궁)/③ 진하게" + }, + "25": { + "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)", + "option": "종묘", + "value": true, + "points": 2, + "category": "Boolean", + "item": "문구 (종묘)/① 각주 설정 및 문구 입력" + }, + "26": { + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", + "searchValue": "조선 시대에 임금과 왕비의 위패를 모시던 사당", + "value": "궁서체", + "points": 1, + "category": "FontName", + "item": "문구 (종묘)/② 글씨체 (궁서체)" + }, + "27": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", + "searchValue": "조선 시대에 임금과 왕비의 위패를 모시던 사당", + "value": "900", + "points": 1, + "category": "OneAnswer", + "item": "문구 (종묘)/③ 크기 (9pt)" + }, + "28": { + "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", + "searchValue": "조선 시대에 임금과 왕비의 위패를 모시던 사당", + "value": "UserChar", + "points": 2, + "category": "OneAnswer", + "item": "문구 (전당)/④ 각주 번호모양", + "desc": { + "가,나,다": "HangulSyllable", + "1,2,3": "Digit", + "일,이,삼": "HangulPhonetic", + "갑,을,병": "DecagonCircle", + "A,B,C": "LatinCapital", + "a,b,c": "LatinSmall", + "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", + "①,②,③": "CircledDigit", + "一,二,三": "Ideograph", + "㉠,㉡,㉢": "CircledHangulJamo", + "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", + "㊀,㊁,㊂": "CircledIdeograph", + "i,ii,iii": "RomanSmall", + "I,II,III": "RomanCapital", + "甲,乙,丙": "DecagonCircleHanja", + "+,++,+++": "UserChar", + "*,**,***": "UserChar", + "정답에 맞는 값 value에 입력": "" + } + }, + "29": { + "path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])", + "ignoreWord": "Palace", + "value": true, + "points": 3, + "category": "Boolean", + "item": "Palace/영단어 미입력, 대소문자/오타 시 전체 감점", + "desc": "" + }, + "30": { + "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", + "word": [ + ["별궁", "別宮"], + ["행궁", "行宮"], + ["도읍", "都邑"], + ["남면", "南面"], + ["영추", "迎秋"] + ], + "value": 10, + "points": 10, + "category": "Hanja", + "item": "① 별궁(別宮), ② 행궁(行宮), ③ 도읍(都邑), ④ 남면(南面), ⑤ 영추(迎秋)" + }, + "31": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'르는지방')])", + "value": true, + "points": 3, + "category": "Boolean", + "item": "문구 (…일정 기간씩 머무르은 지방에…)>'은' → '는' 글자바꿈" + }, + "32": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'물로하층')])", + "value": true, + "points": 3, + "category": "Boolean", + "item": "문구 (…누각 하층은 건물로 네모진…)>'하층은' / '건물로' 순서바꿈" + }, + "33": { + "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", + "searchValue": "연령별 참가 만족도 조사(단위:%)", + "value": "굴림체", + "points": 1, + "category": "FontName", + "item": "제목 문구 (연령별 참가 만족도 조사(단위:%))/① 글씨체 (굴림체)" + }, + "34": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "연령별 참가 만족도 조사(단위:%)", + "value": "1200", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 참가 만족도 조사(단위:%))/② 크기 (1200)" + }, + "35": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "연령별 참가 만족도 조사(단위:%)", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "제목 문구 (연령별 참가 만족도 조사(단위:%))/③ 진하게" + }, + "36": { + "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", + "searchValue": "연령별 참가 만족도 조사(단위:%)", + "value": "Center", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 참가 만족도 조사(단위:%))/④ 정렬 (가운데 정렬)" + }, + "37": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "value": "205,170,213", + "points": 2, + "category": "Color", + "item": "위쪽 제목 셀/① 색상(RGB:205,170,213)" + }, + "38": { + "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "위쪽 제목 셀/② 진하게", + "desc": "글자 속성이라 CELLZONE으로 적용 되지 않음" + }, + "39": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", + "value": "DoubleSlim", + "points": 2, + "category": "TableAnswer", + "item": "제목 셀 아래선/① 이중실선" + }, + "40": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", + "value": "0.5mm", + "points": 2, + "category": "TableAnswer", + "item": "제목 셀 아래선/② 0.5mm" + }, + "41": { + "path": "//TABLE//TEXT/@CharShape", + "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "value": "맑은고딕", + "points": 1, + "category": "TableFontName", + "category_tmp": "FontName", + "item": "글자모양/① 글씨체 (맑은고딕)", + "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" + }, + "42": { + "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", + "value": "1000", + "points": 1, + "category": "TableAnswer", + "item": "글자모양/② 크기 (1000)" + }, + "43": { + "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", + "value": "Center", + "points": 1, + "category": "TableAnswer", + "item": "글자모양/③ 정렬 (가운데 정렬)" + }, + "44": { + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])", + "option": "AVG", + "value": true, + "points": 4, + "category": "Boolean", + "item": "블록 계산식/합계", + "desc": "option값에 합계는 SUM / 평균은 AVG" + }, + "45": { + "chart_xpath": "", + "chart_type": "묶은 가로 막대형", + "value": true, + "points": 2, + "category": "ChartType", + "item": "① 종류 (묶은 가로 막대형)", + "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" + }, + "46": { + "chart_xpath": "//c:valAx/c:majorTickMark/@val", + "value": "out", + "points": 2, + "category": "ChartOneAnswer", + "item": "② 값 축 주 눈금선", + "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" + }, + "47": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", + "value": "80", + "points": 2, + "category": "mmSize", + "item": "③ 크기-너비 (80 mm)" + }, + "48": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", + "value": "90", + "points": 2, + "category": "mmSize", + "item": "④ 크기-높이 (90 mm)" + }, + "49": { + "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", + "value": true, + "points": 2, + "category": "Boolean", + "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", + "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" + }, + "50": { + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", + "searchValue": "연령별 참가 만족도 조사", + "value": "궁서", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 참가 만족도 조사)/① 글씨체 (궁서)" + }, + "51": { + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", + "searchValue": "연령별 참가 만족도 조사", + "value": "1400", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 참가 만족도 조사)/② 크기 (1400)" + }, + "52": { + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", + "option": "b", + "searchValue": "연령별 참가 만족도 조사", + "value": "1", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 참가 만족도 조사)/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + }, + "53": { + "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", + "value": "굴림체", + "points": 1, + "category": "ChartOneAnswer", + "item": "X축/① 글꼴 (굴림체)" + }, + "54": { + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", + "value": "900", + "points": 1, + "category": "ChartOneAnswer", + "item": "X축/② 크기 (9pt)" + }, + "55": { + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", + "option": "i", + "value": "1", + "points": 1, + "category": "ChartOneAnswer", + "item": "X축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + }, + "56": { + "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", + "value": "굴림체", + "points": 1, + "category": "ChartOneAnswer", + "item": "Y축/① 글꼴 (굴림체)" + }, + "57": { + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", + "value": "900", + "points": 1, + "category": "ChartOneAnswer", + "item": "Y축/② 크기 (9pt)" + }, + "58": { + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", + "option": "i", + "value": "1", + "points": 1, + "category": "ChartOneAnswer", + "item": "Y축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + }, + "59": { + "chart_xpath": "//c:legend//a:ea/@typeface", + "value": "굴림체", + "points": 1, + "category": "OneAnswer", + "item": "범례/① 글꼴 (굴림체)" + }, + "60": { + "chart_xpath": "//c:legend//a:defRPr/@sz", + "value": "900", + "points": 1, + "category": "OneAnswer", + "item": "범례/② 크기 (9pt)" + }, + "61": { + "chart_xpath": "//c:legend//a:defRPr/@{option}", + "option": "i", + "value": "1", + "points": 1, + "category": "OneAnswer", + "item": "범례/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + } + } +} diff --git a/DIW_2601_2A copy 2.json b/JSON/2622/DIW_2622B.json similarity index 75% rename from DIW_2601_2A copy 2.json rename to JSON/2622/DIW_2622B.json index d018b95..e544759 100644 --- a/DIW_2601_2A copy 2.json +++ b/JSON/2622/DIW_2622B.json @@ -46,65 +46,65 @@ "1": { "1": { "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", - "searchValue": "재활용의 날 행사", - "value": "맑은고딕", + "searchValue": "광양매실축제안내", + "value": "맑은 고딕", "points": 1, "category": "OneAnswer", - "item": "문구 (재활용의 날 행사)/① 글씨체 (맑은고딕)" + "item": "문구 (광양매실축제안내)/① 글씨체 (맑은 고딕)" }, "2": { "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", - "searchValue": "재활용의 날 행사", - "value": "49,95,151", + "searchValue": "광양매실축제안내", + "value": "199,80,124", "points": 2, "category": "Color", - "item": "문구 (재활용의 날 행사)/② 채우기 : 색상(RGB:49,95,151)" + "item": "문구 (광양매실축제안내)/② 채우기 : 색상(RGB:199,80,124)" }, "3": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", - "searchValue": "재활용의 날 행사", - "value": "100", + "searchValue": "광양매실축제안내", + "value": "110", "tolerance": 1, "points": 2, "category": "mmSize", - "item": "문구 (재활용의 날 행사)/③ 크기-너비 (100 mm)" + "item": "문구 (광양매실축제안내)/③ 크기-너비 (110 mm)" }, "4": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", - "searchValue": "재활용의 날 행사", + "searchValue": "광양매실축제안내", "value": "20", "tolerance": 1, "points": 2, "category": "mmSize", - "item": "문구 (재활용의 날 행사)/④ 크기-높이 (20 mm)" + "item": "문구 (광양매실축제안내)/④ 크기-높이 (20 mm)" }, "5": { "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", - "searchValue": "재활용의 날 행사", + "searchValue": "광양매실축제안내", "value": "true", "points": 2, "category": "OneAnswer", - "item": "문구 (재활용의 날 행사)/⑤ 위치 (글자처럼 취급)" + "item": "문구 (광양매실축제안내)/⑤ 위치 (글자처럼 취급)" }, "6": { "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "재활용의 날 행사", + "searchValue": "광양매실축제안내", "value": "Center", "points": 2, "category": "OneAnswer", - "item": "문구 (재활용의 날 행사)/⑥ 정렬 (가운데 정렬)" + "item": "문구 (광양매실축제안내)/⑥ 정렬 (가운데 정렬)" }, "7": { "path": "//TEXTART[@Text='{searchValue}']", - "searchValue": "재활용의 날 행사", + "searchValue": "광양매실축제안내", "value": true, "points": 2, "category": "Boolean", - "item": "문구 (재활용의 날 행사)/⑦ 글맵시모양 (육안확인)" + "item": "문구 (광양매실축제안내)/⑦ 글맵시모양 (육안확인)" }, "8": { "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", - "searchValue": "한", + "searchValue": "올", "value": { "Height": 2800, "Width": 2800 @@ -116,23 +116,23 @@ }, "9": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "한", - "value": "돋움체", + "searchValue": "올", + "value": "궁서체", "points": 1, "category": "FontName", - "item": "어/② 글씨체 (돋움체)" + "item": "어/② 글씨체 (궁서체)" }, "10": { "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", - "searchValue": "한", - "value": "210,154,216", + "searchValue": "올", + "value": "186,255,26", "points": 2, "category": "Color", - "item": "어/③ 면색 : 색상(RGB:210,154,216)" + "item": "어/③ 면색 : 색상(RGB:186,255,26)" }, "11": { "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", - "searchValue": "한", + "searchValue": "올", "value": "3.0", "tolerance": 1, "points": 2, @@ -141,126 +141,126 @@ }, "12": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정", - "value": "BOLD", + "searchValue": "봄 매화, 여름 매실로 우리 함께 힐링합시다", + "value": "ITALIC", "points": 1, "category": "FontAttribute", - "item": "문구 (자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정)/① BOLD" + "item": "문구 (봄 매화, 여름 매실로 우리 함께 힐링합시다)/① ITALIC" }, "13": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", - "searchValue": "자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정", + "searchValue": "봄 매화, 여름 매실로 우리 함께 힐링합시다", "value": "UNDERLINE", "points": 1, "category": "FontAttribute", - "item": "문구 (자원재활용이 이루어지는 과정을 담은 영상물 관람과 시설 견학이 있을 예정)/② UNDERLINE" + "item": "문구 (봄 매화, 여름 매실로 우리 함께 힐링합시다)/② UNDERLINE" }, "14": { "path": "//CHAR[contains(string(.),'{char1}')]/text()", "path2": "//CHAR[contains(string(.),'{char2}')]/text()", "path3": "//CHAR[contains(string(.),'{char3}')]/text()", - "char1": "▣", - "char2": "▣", + "char1": "→", + "char2": "←", "char3": "※", "value": 3, "points": 3, "category": "SpecialChar", - "item": "① ▣ , ② ▣ , ③ ※" + "item": "① → , ② ← , ③ ※" }, "15": { "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "행사안내", - "value": "돋움", + "searchValue": "축제안내", + "value": "굴림체", "points": 1, "category": "FontName", - "item": "문구 (▣ 행사안내 ▣)/① 글씨체 (돋움)" + "item": "문구 (→ 축제안내 ←)/① 글씨체 (굴림체)" }, "16": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", - "match_str": "행사안내", + "match_str": "축제안내", "value": "Center", "points": 1, "category": "Align", - "item": "문구 (▣ 행사안내 ▣)/② 정렬 (가운데 정렬)" + "item": "문구 (→ 축제안내 ←)/② 정렬 (가운데 정렬)" }, "17": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "부산시청 앞 광장, 부산시 쓰레기 매립장 등", + "searchValue": "광양매실축제 홈페이지(http://www.ihd.or.kr)", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구 (부산시청 앞 광장, 부산시 쓰레기 매립장 등)/① BOLD" + "item": "문구 (광양매실축제 홈페이지(http://www.ihd.or.kr))/① BOLD" }, "18": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", - "searchValue": "부산시청 앞 광장, 부산시 쓰레기 매립장 등", + "searchValue": "광양매실축제 홈페이지(http://www.ihd.or.kr)", "value": "ITALIC", "points": 1, "category": "FontAttribute", - "item": "문구 (부산시청 앞 광장, 부산시 쓰레기 매립장 등)/② ITALIC" + "item": "문구 (광양매실축제 홈페이지(http://www.ihd.or.kr))/② ITALIC" }, "19": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", "searchValue": "기타사항", "value": { - "Left": 12, + "Left": 15, "Indent": 12 }, "points": 2, "category": "ParaShape", - "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (12), 내어쓰기 (12)", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (12)", "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" }, "20": { "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", - "searchValue": "2026. 1. 21.", - "value": "1200", + "searchValue": "2026. 02. 08.", + "value": "1400", "points": 1, "category": "OneAnswer", - "item": "문구 (2026. 1. 21.)/① 크기 (1200)", + "item": "문구 (2026. 02. 08.)/① 크기 (1400)", "desc": "1pt당 100" }, "21": { "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", - "searchValue": "2026. 1. 21.", + "searchValue": "2026. 02. 08.", "value": "Center", "points": 1, "category": "OneAnswer", - "item": "문구 (2026. 1. 21.)/② 정렬 (가운데 정렬)" + "item": "문구 (2026. 02. 08.)/② 정렬 (가운데 정렬)" }, "22": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "한국환경보전단체", - "value": "궁서", + "searchValue": "광양매실축제위원회", + "value": "견고딕", "points": 1, "category": "FontName", - "item": "문구 (한국환경보전단체)/① 글씨체 (궁서)" + "item": "문구 (광양매실축제위원회)/① 글씨체 (견고딕)" }, "23": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "한국환경보전단체", - "value": "2400", + "searchValue": "광양매실축제위원회", + "value": "2600", "points": 1, "category": "OneAnswer", - "item": "문구 (한국환경보전단체)/② 크기 (2400)" + "item": "문구 (광양매실축제위원회)/② 크기 (2600)" }, "24": { "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", - "searchValue": "한국환경보전단체", + "searchValue": "광양매실축제위원회", "value": "Center", "points": 1, "category": "OneAnswer", - "item": "문구 (한국환경보전단체)/③ 정렬 (가운데 정렬)" + "item": "문구 (광양매실축제위원회)/③ 정렬 (가운데 정렬)" }, "25": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", "searchValue": "DIAT", - "value": "돋움", + "value": "굴림", "points": 1, "category": "Header.FontName", - "item": "문구 (DIAT)/① 글꼴 (돋움)" + "item": "문구 (DIAT)/① 글꼴 (굴림)" }, "26": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", @@ -280,10 +280,10 @@ }, "28": { "path": "//PAGENUM/@FormatType", - "value": "HangulSyllable", + "value": "CircledDigit", "points": 2, "category": "PageNumber", - "item": "① 쪽 번호 매기기 (가,나,다 순으로)", + "item": "① 쪽 번호 매기기 (①,②,③ 순으로)", "desc1": { "가,나,다": "HangulSyllable", "1,2,3": "Digit", @@ -331,7 +331,7 @@ "31": { "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", "value": "190", - "first_word": "한", + "first_word": "올", "points": 2, "category": "LineSpacing", "item": "문제 1 줄간격 190% 설정", @@ -367,17 +367,17 @@ }, "4": { "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", - "value": "50", + "value": "55", "points": 2, "category": "Rectangle.mmSize", - "item": "문구 (재활용 방법)/① 크기-너비 (50 mm)" + "item": "문구 (매화와 매실)/① 크기-너비 (55 mm)" }, "5": { "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", "value": "12", "points": 2, "category": "Rectangle.mmSize", - "item": "문구 (재활용 방법)/② 크기-높이 (12 mm)" + "item": "문구 (매화와 매실)/② 크기-높이 (12 mm)" }, "6": { "path": "//RECTANGLE//LINESHAPE", @@ -387,7 +387,7 @@ }, "points": 2, "category": "Rectangle.LineShape", - "item": "문구 (재활용 방법)/③ 테두리 : 이중 실선(1.00mm)", + "item": "문구 (매화와 매실)/③ 테두리 : 이중 실선(1.00mm)", "desc": "1mm = 283pt value['Width']에 pt값 입력" }, "7": { @@ -395,43 +395,43 @@ "value": "20", "points": 2, "category": "Rectangle.OneAnswer", - "item": "문구 (재활용 방법)/④ 글상자 모서리 (둥근모양)", + "item": "문구 (매화와 매실)/④ 글상자 모서리 (둥근모양)", "desc": "모서리 비율 반원:50 / 둥근모양:20" }, "8": { "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", - "value": "227,220,193", + "value": "122,179,64", "points": 2, "category": "Rectangle.Color", - "item": "문구 (재활용 방법)/⑤ 채우기 : 색상(RGB:227,220,193)" + "item": "문구 (매화와 매실)/⑤ 채우기 : 색상(RGB:122,179,64)" }, "9": { "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", "value": "true", "points": 1, "category": "Rectangle.OneAnswer", - "item": "문구 (재활용 방법)/⑥ 글상자 위치 (글자처럼 취급)" + "item": "문구 (매화와 매실)/⑥ 글상자 위치 (글자처럼 취급)" }, "10": { "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", "value": "Center", "points": 1, "category": "Rectangle.TextBoxAlign", - "item": "문구 (재활용 방법)/⑦ 글상자 정렬 (가운데 정렬)" + "item": "문구 (매화와 매실)/⑦ 글상자 정렬 (가운데 정렬)" }, "11": { "path": ".//RECTANGLE//TEXT/@CharShape", - "value": "굴림체", + "value": "중고딕", "points": 1, "category": "Rectangle.FontName", - "item": "문구 (재활용 방법)/⑧ 글씨체 (굴림체)" + "item": "문구 (매화와 매실)/⑧ 글씨체 (중고딕)" }, "12": { "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", - "value": "1800", + "value": "2000", "points": 1, "category": "Rectangle.FontSize", - "item": "문구 (재활용 방법)/⑨ 글씨크기 (1800)", + "item": "문구 (매화와 매실)/⑨ 글씨크기 (2000)", "desc": "1pt당 100" }, "13": { @@ -439,22 +439,22 @@ "value": "Center", "points": 1, "category": "Rectangle.TextBoxAlign", - "item": "문구 (재활용 방법)/⑩ 정렬 (가운데 정렬)" + "item": "문구 (매화와 매실)/⑩ 정렬 (가운데 정렬)" }, "14": { "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", "value": true, "points": 2, "category": "Boolean", - "item": "① 파일명 \"그림A.jpg\" 삽입", + "item": "① 파일명 \"그림B.jpg\" 삽입", "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" }, "15": { "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", - "value": "80", + "value": "85", "points": 2, "category": "mmSize", - "item": "② 크기-너비 (80 mm)" + "item": "② 크기-너비 (85 mm)" }, "16": { "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", @@ -472,87 +472,87 @@ }, "18": { "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", - "value": "22", + "value": "24", "points": 2, "category": "mmSize", - "item": "⑤ 위치 (어울림 : 세로-쪽의 위 22 mm)" + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)" }, "19": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "1. 재활용이란?", - "value": "돋움체", + "searchValue": "1. 매화의 특징", + "value": "돋움", "points": 1, "category": "FontName", - "item": "문구① (1. 재활용이란?)/① 글씨체 (돋움체)" + "item": "문구① (1. 매화의 특징)/① 글씨체 (돋움)" }, "20": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "1. 재활용이란?", + "searchValue": "1. 매화의 특징", "value": "1200", "points": 1, "category": "OneAnswer", - "item": "문구① (1. 재활용이란?)/② 크기 (1200)" + "item": "문구① (1. 매화의 특징)/② 크기 (1200)" }, "21": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "1. 재활용이란?", + "searchValue": "1. 매화의 특징", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구① (1. 재활용이란?)/③ 진하게" + "item": "문구① (1. 매화의 특징)/③ 진하게" }, "22": { "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", - "searchValue": "2. 식재료 재활용 방법", - "value": "돋움체", + "searchValue": "2. 매실의 효능", + "value": "돋움", "points": 1, "category": "FontName", - "item": "문구② (2. 식재료 재활용 방법)/① 글씨체 (돋움체)" + "item": "문구② (2. 매실의 효능)/① 글씨체 (돋움)" }, "23": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "2. 식재료 재활용 방법", + "searchValue": "2. 매실의 효능", "value": "1200", "points": 1, "category": "OneAnswer", - "item": "문구② (2. 식재료 재활용 방법)/② 크기 (1200)" + "item": "문구② (2. 매실의 효능)/② 크기 (1200)" }, "24": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "2. 식재료 재활용 방법", + "searchValue": "2. 매실의 효능", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "문구② (2. 식재료 재활용 방법)/③ 진하게" + "item": "문구② (2. 매실의 효능)/③ 진하게" }, "25": { "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)", "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)", - "option": "얼룩", + "option": "문인화", "value": true, "points": 2, "category": "Boolean", - "item": "문구 (얼룩)/① 각주 설정 및 문구 입력" + "item": "문구 (문인화)/① 각주 설정 및 문구 입력" }, "26": { "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", - "searchValue": "본바탕에 다른 빛깔의 점이나 줄 따위가 뚜렷하게 섞인 자국", + "searchValue": "그림을 직업으로 하지 않는 선비나 사대부들이 여흥으로 자신들의 심중을 표현하여 그린 그림", "value": "돋움체", "points": 1, "category": "FontName", - "item": "문구 (얼룩)/② 글씨체 (돋움체)" + "item": "문구 (문인화)/② 글씨체 (돋움체)" }, "27": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", - "searchValue": "본바탕에 다른 빛깔의 점이나 줄 따위가 뚜렷하게 섞인 자국", + "searchValue": "그림을 직업으로 하지 않는 선비나 사대부들이 여흥으로 자신들의 심중을 표현하여 그린 그림", "value": "900", "points": 1, "category": "OneAnswer", - "item": "문구 (얼룩)/③ 크기 (9pt)" + "item": "문구 (문인화)/③ 크기 (9pt)" }, "28": { "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", - "searchValue": "본바탕에 다른 빛깔의 점이나 줄 따위가 뚜렷하게 섞인 자국", + "searchValue": "그림을 직업으로 하지 않는 선비나 사대부들이 여흥으로 자신들의 심중을 표현하여 그린 그림", "value": "LatinSmall", "points": 2, "category": "OneAnswer", @@ -580,80 +580,80 @@ }, "29": { "path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])", - "ignoreWord": "Refrigerator", + "ignoreWord": "Vitamin", "value": true, "points": 3, "category": "Boolean", - "item": "Refrigerator/영단어 미입력, 대소문자/오타 시 전체 감점", + "item": "Vitamin/영단어 미입력, 대소문자/오타 시 전체 감점", "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" }, "30": { "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", "word": [ - ["적자", "赤字"], - ["가치", "價値"], - ["제거", "除去"], - ["청소", "淸掃"], - ["광택", "光澤"] + ["매향", "梅香"], + ["불의", "不義"], + ["국화", "菊花"], + ["매실", "梅實"], + ["해독", "解毒"] ], "value": 10, "points": 10, "category": "Hanja", - "item": "① 적자(赤字), ② 가치(價値), ③ 제거(除去), ④ 청소(淸掃), ⑤ 광택(光澤)" + "item": "① 매향(梅香), ② 불의(不義), ③ 국화(菊花), ④ 매실(梅實), ⑤ 해독(解毒)" }, "31": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'용은주로')])", + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'흰색,분')])", "value": true, "points": 3, "category": "Boolean", - "item": "문구 (…재활용이 주로 정치적…)>'이'→'은' 글자바꿈" + "item": "문구 (…청색, 분홍색, 붉은색 등 다양한 색을…)>'청 → 흰' 글자바꿈" }, "32": { - "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'량만재활')])", + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'킨과폴리')])", "value": true, "points": 3, "category": "Boolean", - "item": "문구 (상징적으로 재활용 소량만 하는 경우도)>'재활용 / 소량만' 순서바꿈" + "item": "문구 (…항산화 성분인 폴리페놀은 카테킨과 해독(解讀)과…)>'폴리페놀은 / 카테킨과' 순서바꿈" }, "33": { "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", - "searchValue": "재활용 주민 참여율(%)", - "value": "궁서", + "searchValue": "광양매실축제 만족도(단위 : %)", + "value": "굴림체", "points": 1, "category": "FontName", - "item": "제목 문구 (재활용 주민 참여율(%))/① 글씨체 (궁서)" + "item": "제목 문구 (광양매실축제 만족도(단위 : %))/① 글씨체 (굴림체)" }, "34": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", - "searchValue": "재활용 주민 참여율(%)", + "searchValue": "광양매실축제 만족도(단위 : %)", "value": "1200", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (재활용 주민 참여율(%))/② 크기 (1200)" + "item": "제목 문구 (광양매실축제 만족도(단위 : %))/② 크기 (1200)" }, "35": { "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", - "searchValue": "재활용 주민 참여율(%)", + "searchValue": "광양매실축제 만족도(단위 : %)", "value": "BOLD", "points": 1, "category": "FontAttribute", - "item": "제목 문구 (재활용 주민 참여율(%))/③ 진하게" + "item": "제목 문구 (광양매실축제 만족도(단위 : %))/③ 진하게" }, "36": { "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", - "searchValue": "재활용 주민 참여율(%)", + "searchValue": "광양매실축제 만족도(단위 : %)", "value": "Center", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (재활용 주민 참여율(%))/④ 정렬 (가운데 정렬)" + "item": "제목 문구 (광양매실축제 만족도(단위 : %))/④ 정렬 (가운데 정렬)" }, "37": { "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", - "value": "33,174,201", + "value": "251,205,151", "points": 2, "category": "Color", - "item": "위쪽 제목 셀/① 색상(RGB:33,174,201)" + "item": "위쪽 제목 셀/① 색상(RGB:251,205,151)" }, "38": { "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", @@ -682,11 +682,11 @@ "41": { "path": "//TABLE//TEXT/@CharShape", "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", - "value": "굴림", + "value": "돋움체", "points": 1, "category": "TableFontName", "category_tmp": "FontName", - "item": "글자모양/① 글씨체 (굴림)", + "item": "글자모양/① 글씨체 (돋움체)", "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" }, "42": { @@ -714,11 +714,11 @@ }, "45": { "chart_xpath": "", - "chart_type": "표식만 있는 분산형", + "chart_type": "곡선이 있는 분산형", "value": true, "points": 2, "category": "ChartType", - "item": "① 종류 (표식만 있는 분산형)", + "item": "① 종류 (곡선이 있는 분산형)", "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" }, "46": { @@ -738,10 +738,10 @@ }, "48": { "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", - "value": "80", + "value": "90", "points": 2, "category": "mmSize", - "item": "④ 크기-높이 (80 mm)" + "item": "④ 크기-높이 (90 mm)" }, "49": { "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", @@ -753,28 +753,28 @@ }, "50": { "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", - "searchValue": "도시별 재활용 참여율", - "value": "돋움", + "searchValue": "광양매실축제 만족도", + "value": "궁서체", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (도시별 재활용 참여율)/① 글씨체 (돋움)" + "item": "제목 문구 (광양매실축제 만족도)/① 글씨체 (궁서체)" }, "51": { "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", - "searchValue": "도시별 재활용 참여율", + "searchValue": "광양매실축제 만족도", "value": "1300", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (도시별 재활용 참여율)/② 크기 (1300)" + "item": "제목 문구 (광양매실축제 만족도)/② 크기 (1300)" }, "52": { "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", "option": "b", - "searchValue": "도시별 재활용 참여율", + "searchValue": "광양매실축제 만족도", "value": "1", "points": 1, "category": "OneAnswer", - "item": "제목 문구 (도시별 재활용 참여율)/③ 기울임", + "item": "제목 문구 (광양매실축제 만족도)/③ 기울임", "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" }, "53": { diff --git a/JSON/2622/DIW_2622C.json b/JSON/2622/DIW_2622C.json new file mode 100644 index 0000000..3eea433 --- /dev/null +++ b/JSON/2622/DIW_2622C.json @@ -0,0 +1,850 @@ +{ + "0": { + "0": { + "path": "", + "path2": "", + "points": 0, + "category": "파일저장", + "item": "파일명 (수검번호.hwp/hwpx)" + }, + "1": { + "path": "//PAGEMARGIN", + "value": { + "Top": 20, + "Bottom": 20, + "Left": 20, + "Right": 20, + "Header": 10, + "Footer": 10, + "Gutter": 0 + }, + "tolerance": 1, + "points": 4, + "category": "PageSetting", + "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" + }, + "2": { + "path": "", + "value": { + "FontName": "바탕", + "FontSize": "1000", + "Alignment": "Justify", + "LineSpacing": "160" + }, + "points": 4, + "category": "BasicSetting", + "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" + }, + "3": { + "path": "", + "value": null, + "points": 40, + "category": "오타감점", + "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" + } + }, + "1": { + "1": { + "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", + "searchValue": "새콤달콤토마토축제", + "value": "돋움", + "points": 1, + "category": "OneAnswer", + "item": "문구 (새콤달콤토마토축제)/① 글씨체 (돋움)" + }, + "2": { + "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", + "searchValue": "새콤달콤토마토축제", + "value": "217,113,111", + "points": 2, + "category": "Color", + "item": "문구 (새콤달콤토마토축제)/② 채우기 : 색상(RGB:217,113,111)" + }, + "3": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", + "searchValue": "새콤달콤토마토축제", + "value": "130", + "tolerance": 1, + "points": 2, + "category": "mmSize", + "item": "문구 (새콤달콤토마토축제)/③ 크기-너비 (130 mm)" + }, + "4": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", + "searchValue": "새콤달콤토마토축제", + "value": "20", + "tolerance": 1, + "points": 2, + "category": "mmSize", + "item": "문구 (새콤달콤토마토축제)/④ 크기-높이 (20 mm)" + }, + "5": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", + "searchValue": "새콤달콤토마토축제", + "value": "true", + "points": 2, + "category": "OneAnswer", + "item": "문구 (새콤달콤토마토축제)/⑤ 위치 (글자처럼 취급)" + }, + "6": { + "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", + "searchValue": "새콤달콤토마토축제", + "value": "Center", + "points": 2, + "category": "OneAnswer", + "item": "문구 (새콤달콤토마토축제)/⑥ 정렬 (가운데 정렬)" + }, + "7": { + "path": "//TEXTART[@Text='{searchValue}']", + "searchValue": "새콤달콤토마토축제", + "value": true, + "points": 2, + "category": "Boolean", + "item": "문구 (새콤달콤토마토축제)/⑦ 글맵시모양 (육안확인)" + }, + "8": { + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", + "searchValue": "토", + "value": { + "Height": 2800, + "Width": 2800 + }, + "tolerance": 200, + "points": 1, + "category": "TwoLineSize", + "item": "어/① 모양 (2줄)" + }, + "9": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "토", + "value": "궁서체", + "points": 1, + "category": "FontName", + "item": "어/② 글씨체 (궁서체)" + }, + "10": { + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", + "searchValue": "토", + "value": "163,232,239", + "points": 2, + "category": "Color", + "item": "어/③ 면색 : 색상(RGB:163,232,239)" + }, + "11": { + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", + "searchValue": "토", + "value": "3.0", + "tolerance": 1, + "points": 2, + "category": "mmSize", + "item": "어/④ 본문과의 간격 : 3.0mm" + }, + "12": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", + "searchValue": "세계 10대 건강식품", + "value": "ITALIC", + "points": 1, + "category": "FontAttribute", + "item": "문구 (세계 10대 건강식품)/① ITALIC" + }, + "13": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", + "searchValue": "세계 10대 건강식품", + "value": "UNDERLINE", + "points": 1, + "category": "FontAttribute", + "item": "문구 (세계 10대 건강식품)/② UNDERLINE" + }, + "14": { + "path": "//CHAR[contains(string(.),'{char1}')]/text()", + "path2": "//CHAR[contains(string(.),'{char2}')]/text()", + "path3": "//CHAR[contains(string(.),'{char3}')]/text()", + "char1": "◎", + "char2": "◎", + "char3": "※", + "value": 3, + "points": 3, + "category": "SpecialChar", + "item": "① ◎, ② ◎, ③ ※" + }, + "15": { + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", + "searchValue": "축제안내", + "value": "굴림", + "points": 1, + "category": "FontName", + "item": "문구 (◎ 축제안내 ◎)/① 글씨체 (굴림)" + }, + "16": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", + "match_str": "축제안내", + "value": "Center", + "points": 1, + "category": "Align", + "item": "문구 (◎ 축제안내 ◎)/② 정렬 (가운데 정렬)" + }, + "17": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "다양한 유기농 농산물(토마토, 블루베리, 새싹 등)", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "문구 (다양한 유기농 농산물(토마토, 블루베리, 새싹 등))/① BOLD" + }, + "18": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "다양한 유기농 농산물(토마토, 블루베리, 새싹 등)", + "value": "UNDERLINE", + "points": 1, + "category": "FontAttribute", + "item": "문구 (다양한 유기농 농산물(토마토, 블루베리, 새싹 등))/② UNDERLINE" + }, + "19": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", + "searchValue": "기타사항", + "value": { + "Left": 13, + "Indent": 12 + }, + "points": 2, + "category": "ParaShape", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (13), 내어쓰기 (12)", + "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" + }, + "20": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "searchValue": "2026. 02. 08.", + "value": "1300", + "points": 1, + "category": "OneAnswer", + "item": "문구 (2026. 02. 08.)/① 크기 (1300)", + "desc": "1pt당 100" + }, + "21": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "searchValue": "2026. 02. 08.", + "value": "Center", + "points": 1, + "category": "OneAnswer", + "item": "문구 (2026. 02. 08.)/② 정렬 (가운데 정렬)" + }, + "22": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "한국유기농토마토협회", + "value": "견고딕", + "points": 1, + "category": "FontName", + "item": "문구 (한국유기농토마토협회)/① 글씨체 (견고딕)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "한국유기농토마토협회", + "value": "2400", + "points": 1, + "category": "OneAnswer", + "item": "문구 (한국유기농토마토협회)/② 크기 (2400)" + }, + "24": { + "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", + "searchValue": "한국유기농토마토협회", + "value": "Center", + "points": 1, + "category": "OneAnswer", + "item": "문구 (한국유기농토마토협회)/③ 정렬 (가운데 정렬)" + }, + "25": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "DIAT", + "value": "궁서", + "points": 1, + "category": "Header.FontName", + "item": "문구 (DIAT)/① 글꼴 (궁서)" + }, + "26": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "DIAT", + "value": "900", + "points": 1, + "category": "Header.OneAnswer", + "item": "문구 (DIAT)/② 크기 (9pt)" + }, + "27": { + "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", + "searchValue": "DIAT", + "value": "Right", + "points": 1, + "category": "Header.OneAnswer", + "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" + }, + "28": { + "path": "//PAGENUM/@FormatType", + "value": "HangulSyllable", + "points": 2, + "category": "PageNumber", + "item": "① 쪽 번호 매기기 (가,나,다 순으로)", + "desc1": { + "가,나,다": "HangulSyllable", + "1,2,3": "Digit", + "일,이,삼": "HangulPhonetic", + "갑,을,병": "DecagonCircle", + "A,B,C": "LatinCapital", + "a,b,c": "LatinSmall", + "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", + "①,②,③": "CircledDigit", + "一,二,三": "Ideograph", + "㉠,㉡,㉢": "CircledHangulJamo", + "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", + "㊀,㊁,㊂": "CircledIdeograph", + "i,ii,iii": "RomanSmall", + "I,II,III": "RomanCapital", + "甲,乙,丙": "DecagonCircleHanja", + "+,++,+++": "UserChar", + "*,**,***": "UserChar", + "정답에 맞는 값 value에 입력": "" + }, + "desc2": "1, 2페이지 모두 정답이어야 점수 부여" + }, + "29": { + "path": "//PAGENUM/@Pos", + "value": "BottomCenter", + "points": 2, + "category": "PageNumber", + "item": "가운데 아래", + "desc": "1, 2페이지 모두 정답이어야 점수 부여", + "desc2": { + "가운데 아래": "BottomCenter", + "오른쪽 아래": "BottomRight", + "왼쪽 아래": "BottomLeft" + } + }, + "30": { + "path": "//CHAR[contains(text(),'{searchValue}')]", + "searchValue": "http", + "value": true, + "points": 2, + "category": "hyperlink", + "item": "문구 (http://www.ihd.or.kr)/하이퍼링크 없이 작성", + "desc": "searchValue에 해당하는 주소 문구에 하이퍼링크가 하나라도 설정되어 있으면 오답" + }, + "31": { + "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", + "value": "200", + "first_word": "토", + "points": 2, + "category": "LineSpacing", + "item": "문제 1 줄간격 200% 설정", + "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." + } + }, + "2": { + "1": { + "path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside", + "path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]", + "value": { + "header_inside": true, + "all_double_slim": true + }, + "points": 4, + "category": "PageBorder", + "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" + }, + "2": { + "path": "count(//SECTION)>1", + "value": true, + "points": 3, + "category": "Boolean", + "item": "① 구역나누기", + "desc": "섹션이 1개 이상이면 점수부여" + }, + "3": { + "path": "./TEXT/COLDEF/@Count", + "value": "2", + "points": 3, + "category": "TwoColumn", + "item": "② 다단 2단" + }, + "4": { + "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", + "value": "60", + "points": 2, + "category": "Rectangle.mmSize", + "item": "문구 (슈퍼푸드 토마토)/① 크기-너비 (60 mm)" + }, + "5": { + "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", + "value": "12", + "points": 2, + "category": "Rectangle.mmSize", + "item": "문구 (슈퍼푸드 토마토)/② 크기-높이 (12 mm)" + }, + "6": { + "path": "//RECTANGLE//LINESHAPE", + "value": { + "Style": "DoubleSlim", + "Width": "283" + }, + "points": 2, + "category": "Rectangle.LineShape", + "item": "문구 (슈퍼푸드 토마토)/③ 테두리 : 이중 실선(1.00mm)", + "desc": "1mm = 283pt value['Width']에 pt값 입력" + }, + "7": { + "path": "//RECTANGLE/@Ratio", + "value": "50", + "points": 2, + "category": "Rectangle.OneAnswer", + "item": "문구 (슈퍼푸드 토마토)/④ 글상자 모서리 (둥근모양)", + "desc": "모서리 비율 반원:50 / 둥근모양:20" + }, + "8": { + "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", + "value": "250,171,226", + "points": 2, + "category": "Rectangle.Color", + "item": "문구 (슈퍼푸드 토마토)/⑤ 채우기 : 색상(RGB:250,171,226)" + }, + "9": { + "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", + "value": "true", + "points": 1, + "category": "Rectangle.OneAnswer", + "item": "문구 (슈퍼푸드 토마토)/⑥ 글상자 위치 (글자처럼 취급)" + }, + "10": { + "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", + "value": "Center", + "points": 1, + "category": "Rectangle.TextBoxAlign", + "item": "문구 (슈퍼푸드 토마토)/⑦ 글상자 정렬 (가운데 정렬)" + }, + "11": { + "path": ".//RECTANGLE//TEXT/@CharShape", + "value": "돋움체", + "points": 1, + "category": "Rectangle.FontName", + "item": "문구 (슈퍼푸드 토마토)/⑧ 글씨체 (돋움체)" + }, + "12": { + "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", + "value": "2000", + "points": 1, + "category": "Rectangle.FontSize", + "item": "문구 (슈퍼푸드 토마토)/⑨ 글씨크기 (2000)", + "desc": "1pt당 100" + }, + "13": { + "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", + "value": "Center", + "points": 1, + "category": "Rectangle.TextBoxAlign", + "item": "문구 (슈퍼푸드 토마토)/⑩ 정렬 (가운데 정렬)" + }, + "14": { + "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", + "value": true, + "points": 2, + "category": "Boolean", + "item": "① 파일명 \"그림C.jpg\" 삽입", + "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" + }, + "15": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", + "value": "80", + "points": 2, + "category": "mmSize", + "item": "② 크기-너비 (80 mm)" + }, + "16": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", + "value": "40", + "points": 2, + "category": "mmSize", + "item": "③ 크기-높이 (40 mm)" + }, + "17": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", + "value": "0", + "points": 2, + "category": "mmSize", + "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" + }, + "18": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", + "value": "23", + "points": 2, + "category": "mmSize", + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 23 mm)" + }, + "19": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "1. 토마토의 종류", + "value": "굴림체", + "points": 1, + "category": "FontName", + "item": "문구① (1. 토마토의 종류)/① 글씨체 (굴림체)" + }, + "20": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "1. 토마토의 종류", + "value": "1200", + "points": 1, + "category": "OneAnswer", + "item": "문구① (1. 토마토의 종류)/② 크기 (1200)" + }, + "21": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "1. 토마토의 종류", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "문구① (1. 토마토의 종류)/③ 진하게" + }, + "22": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "2. 토마토의 효능", + "value": "굴림체", + "points": 1, + "category": "FontName", + "item": "문구② (2. 토마토의 효능)/① 글씨체 (굴림체)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "2. 토마토의 효능", + "value": "1200", + "points": 1, + "category": "OneAnswer", + "item": "문구② (2. 토마토의 효능)/② 크기 (1200)" + }, + "24": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "2. 토마토의 효능", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "문구② (2. 토마토의 효능)/③ 진하게" + }, + "25": { + "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)", + "option": "혈관", + "value": true, + "points": 2, + "category": "Boolean", + "item": "문구 (혈관)/① 각주 설정 및 문구 입력" + }, + "26": { + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", + "searchValue": "혈액을 온몸으로 순환시키는 통로", + "value": "굴림", + "points": 1, + "category": "FontName", + "item": "문구 (혈관)/② 글씨체 (굴림)" + }, + "27": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", + "searchValue": "혈액을 온몸으로 순환시키는 통로", + "value": "900", + "points": 1, + "category": "OneAnswer", + "item": "문구 (혈관)/③ 크기 (9pt)" + }, + "28": { + "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", + "searchValue": "혈액을 온몸으로 순환시키는 통로", + "value": "CircledLatinSmall", + "points": 2, + "category": "OneAnswer", + "item": "문구 (전당)/④ 각주 번호모양", + "desc": { + "가,나,다": "HangulSyllable", + "1,2,3": "Digit", + "일,이,삼": "HangulPhonetic", + "갑,을,병": "DecagonCircle", + "A,B,C": "LatinCapital", + "a,b,c": "LatinSmall", + "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", + "①,②,③": "CircledDigit", + "一,二,三": "Ideograph", + "㉠,㉡,㉢": "CircledHangulJamo", + "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", + "㊀,㊁,㊂": "CircledIdeograph", + "i,ii,iii": "RomanSmall", + "I,II,III": "RomanCapital", + "甲,乙,丙": "DecagonCircleHanja", + "+,++,+++": "UserChar", + "*,**,***": "UserChar", + "정답에 맞는 값 value에 입력": "" + } + }, + "29": { + "path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])", + "ignoreWord": "Diabetes", + "value": true, + "points": 3, + "category": "Boolean", + "item": "Diabetes/영단어 미입력, 대소문자/오타 시 전체 감점", + "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" + }, + "30": { + "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", + "word": [ + ["재배", "栽培"], + ["전후", "前後"], + ["모양", "模樣"], + ["당도", "糖度"], + ["개선", "改善"] + ], + "value": 10, + "points": 10, + "category": "Hanja", + "item": "① 재배(栽培), ② 전후(前後), ③ 모양(模樣), ④ 당도(糖度), ⑤ 개선(改善)" + }, + "31": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'토와150g')])", + "value": true, + "points": 3, + "category": "Boolean", + "item": "문구 (…전후(前後)인 방울토마토가 150g 이상인…)>'가'→'와' 글자바꿈" + }, + "32": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'광의기능')])", + "value": true, + "points": 3, + "category": "Boolean", + "item": "문구 (…원활하게 해주어 기능을 방광의 촉진 시켜주기…)>'기능을 / 방광의' 순서바꿈" + }, + "33": { + "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", + "searchValue": "연령별 축제 만족도(단위:%)", + "value": "궁서체", + "points": 1, + "category": "FontName", + "item": "제목 문구 (연령별 축제 만족도(단위:%))/① 글씨체 (궁서체)" + }, + "34": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "연령별 축제 만족도(단위:%)", + "value": "1200", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 축제 만족도(단위:%))/② 크기 (1200)" + }, + "35": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "연령별 축제 만족도(단위:%)", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "제목 문구 (연령별 축제 만족도(단위:%))/③ 진하게" + }, + "36": { + "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", + "searchValue": "연령별 축제 만족도(단위:%)", + "value": "Center", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 축제 만족도(단위:%))/④ 정렬 (가운데 정렬)" + }, + "37": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "value": "152,250,148", + "points": 2, + "category": "Color", + "item": "위쪽 제목 셀/① 색상(RGB:152,250,148)" + }, + "38": { + "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "위쪽 제목 셀/② 진하게", + "desc": "글자 속성이라 CELLZONE으로 적용 되지 않음" + }, + "39": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", + "value": "DoubleSlim", + "points": 2, + "category": "TableAnswer", + "item": "제목 셀 아래선/① 이중실선" + }, + "40": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", + "value": "0.5mm", + "points": 2, + "category": "TableAnswer", + "item": "제목 셀 아래선/② 0.5mm" + }, + "41": { + "path": "//TABLE//TEXT/@CharShape", + "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "value": "중고딕", + "points": 1, + "category": "TableFontName", + "category_tmp": "FontName", + "item": "글자모양/① 글씨체 (중고딕)", + "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" + }, + "42": { + "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", + "value": "1000", + "points": 1, + "category": "TableAnswer", + "item": "글자모양/② 크기 (1000)" + }, + "43": { + "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", + "value": "Center", + "points": 1, + "category": "TableAnswer", + "item": "글자모양/③ 정렬 (가운데 정렬)" + }, + "44": { + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])", + "option": "AVG", + "value": true, + "points": 4, + "category": "Boolean", + "item": "블록 계산식/합계", + "desc": "option값에 합계는 SUM / 평균은 AVG" + }, + "45": { + "chart_xpath": "", + "chart_type": "묶은 가로 막대형", + "value": true, + "points": 2, + "category": "ChartType", + "item": "① 종류 (묶은 가로 막대형)", + "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" + }, + "46": { + "chart_xpath": "//c:valAx/c:majorTickMark/@val", + "value": "out", + "points": 2, + "category": "ChartOneAnswer", + "item": "② 값 축 주 눈금선", + "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" + }, + "47": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", + "value": "80", + "points": 2, + "category": "mmSize", + "item": "③ 크기-너비 (80 mm)" + }, + "48": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", + "value": "90", + "points": 2, + "category": "mmSize", + "item": "④ 크기-높이 (90 mm)" + }, + "49": { + "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", + "value": true, + "points": 2, + "category": "Boolean", + "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", + "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" + }, + "50": { + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", + "searchValue": "연령별 축제 만족도", + "value": "굴림체", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 축제 만족도)/① 글씨체 (굴림체)" + }, + "51": { + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", + "searchValue": "연령별 축제 만족도", + "value": "1400", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 축제 만족도)/② 크기 (1400)" + }, + "52": { + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", + "option": "b", + "searchValue": "연령별 축제 만족도", + "value": "1", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (연령별 축제 만족도)/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + }, + "53": { + "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", + "value": "바탕체", + "points": 1, + "category": "ChartOneAnswer", + "item": "X축/① 글꼴 (바탕체)" + }, + "54": { + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", + "value": "900", + "points": 1, + "category": "ChartOneAnswer", + "item": "X축/② 크기 (9pt)" + }, + "55": { + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", + "option": "i", + "value": "1", + "points": 1, + "category": "ChartOneAnswer", + "item": "X축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + }, + "56": { + "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", + "value": "바탕체", + "points": 1, + "category": "ChartOneAnswer", + "item": "Y축/① 글꼴 (바탕체)" + }, + "57": { + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", + "value": "900", + "points": 1, + "category": "ChartOneAnswer", + "item": "Y축/② 크기 (9pt)" + }, + "58": { + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", + "option": "i", + "value": "1", + "points": 1, + "category": "ChartOneAnswer", + "item": "Y축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + }, + "59": { + "chart_xpath": "//c:legend//a:ea/@typeface", + "value": "바탕체", + "points": 1, + "category": "OneAnswer", + "item": "범례/① 글꼴 (바탕체)" + }, + "60": { + "chart_xpath": "//c:legend//a:defRPr/@sz", + "value": "900", + "points": 1, + "category": "OneAnswer", + "item": "범례/② 크기 (9pt)" + }, + "61": { + "chart_xpath": "//c:legend//a:defRPr/@{option}", + "option": "i", + "value": "1", + "points": 1, + "category": "OneAnswer", + "item": "범례/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + } + } +} diff --git a/JSON/2622/DIW_2622D.json b/JSON/2622/DIW_2622D.json new file mode 100644 index 0000000..d28589c --- /dev/null +++ b/JSON/2622/DIW_2622D.json @@ -0,0 +1,841 @@ +{ + "0": { + "0": { + "path": "", + "path2": "", + "points": 0, + "category": "파일저장", + "item": "파일명 (수검번호.hwp/hwpx)" + }, + "1": { + "path": "//PAGEMARGIN", + "value": { + "Top": 20, + "Bottom": 20, + "Left": 20, + "Right": 20, + "Header": 10, + "Footer": 10, + "Gutter": 0 + }, + "tolerance": 1, + "points": 4, + "category": "PageSetting", + "item": "A4용지, 왼쪽/오른쪽/위쪽/아래쪽 (각20mm), 머리말/꼬리말 (10mm), 제본(0mm)" + }, + "2": { + "path": "", + "value": { + "FontName": "바탕", + "FontSize": "1000", + "Alignment": "Justify", + "LineSpacing": "160" + }, + "points": 4, + "category": "BasicSetting", + "item": "글꼴 (바탕, 10pt), 양쪽정렬, 줄간격 (160%)" + }, + "3": { + "path": "", + "value": null, + "points": 40, + "category": "오타감점", + "item": "오타 1개 -1점 / 2503회부터 오타 1개 -1점으로 변경" + } + }, + "1": { + "1": { + "path": "//TEXTART[@Text='{searchValue}']/TEXTARTSHAPE/@FontName", + "searchValue": "별사랑천문대캠프안내", + "value": "궁서체", + "points": 1, + "category": "OneAnswer", + "item": "문구 (별사랑천문대캠프안내)/① 글씨체 (궁서체)" + }, + "2": { + "path": "//TEXTART[@Text='{searchValue}']/descendant::WINDOWBRUSH/@FaceColor", + "searchValue": "별사랑천문대캠프안내", + "value": "53,164,78", + "points": 2, + "category": "Color", + "item": "문구 (별사랑천문대캠프안내)/② 채우기 : 색상(RGB:53,164,78)" + }, + "3": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Width", + "searchValue": "별사랑천문대캠프안내", + "value": "120", + "tolerance": 1, + "points": 2, + "category": "mmSize", + "item": "문구 (별사랑천문대캠프안내)/③ 크기-너비 (120 mm)" + }, + "4": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/SIZE/@Height", + "searchValue": "별사랑천문대캠프안내", + "value": "20", + "tolerance": 1, + "points": 2, + "category": "mmSize", + "item": "문구 (별사랑천문대캠프안내)/④ 크기-높이 (20 mm)" + }, + "5": { + "path": "//TEXTART[@Text='{searchValue}']/SHAPEOBJECT/POSITION/@TreatAsChar", + "searchValue": "별사랑천문대캠프안내", + "value": "true", + "points": 2, + "category": "OneAnswer", + "item": "문구 (별사랑천문대캠프안내)/⑤ 위치 (글자처럼 취급)" + }, + "6": { + "path": "//PARASHAPE[@Id=//P[.//TEXTART[@Text='{searchValue}']]/@ParaShape]/@Align", + "searchValue": "별사랑천문대캠프안내", + "value": "Center", + "points": 2, + "category": "OneAnswer", + "item": "문구 (별사랑천문대캠프안내)/⑥ 정렬 (가운데 정렬)" + }, + "7": { + "path": "//TEXTART[@Text='{searchValue}']", + "searchValue": "별사랑천문대캠프안내", + "value": true, + "points": 2, + "category": "Boolean", + "item": "문구 (별사랑천문대캠프안내)/⑦ 글맵시모양 (육안확인)" + }, + "8": { + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]/SHAPEOBJECT/SIZE", + "searchValue": "별", + "value": { + "Height": 2800, + "Width": 2800 + }, + "tolerance": 200, + "points": 1, + "category": "TwoLineSize", + "item": "어/① 모양 (2줄)" + }, + "9": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "별", + "value": "굴림체", + "points": 1, + "category": "FontName", + "item": "어/② 글씨체 (굴림체)" + }, + "10": { + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//WINDOWBRUSH/@FaceColor", + "searchValue": "별", + "value": "211,202,24", + "points": 2, + "category": "Color", + "item": "어/③ 면색 : 색상(RGB:211,202,24)" + }, + "11": { + "path": "//RECTANGLE[.//CHAR[text()='{searchValue}']]//OUTSIDEMARGIN/@Right", + "searchValue": "별", + "value": "3.0", + "tolerance": 1, + "points": 2, + "category": "mmSize", + "item": "어/④ 본문과의 간격 : 3.0mm" + }, + "12": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", + "searchValue": "천문우주과학 체험학습", + "value": "BOLD", + "points": 2, + "category": "FontAttribute", + "item": "문구 (천문우주과학 체험학습)/① BOLD" + }, + "13": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]", + "searchValue": "천문우주과학 체험학습", + "value": "UNDERLINE", + "points": 2, + "category": "FontAttribute", + "item": "문구 (천문우주과학 체험학습)/② UNDERLINE" + }, + "14": { + "path": "//CHAR[contains(string(.),'{char1}')]/text()", + "path2": "//CHAR[contains(string(.),'{char2}')]/text()", + "path3": "//CHAR[contains(string(.),'{char3}')]/text()", + "char1": "●", + "char2": "●", + "char3": "※", + "value": 3, + "points": 3, + "category": "SpecialChar", + "item": "① ● , ② ● , ③ ※" + }, + "15": { + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", + "searchValue": "참가안내", + "value": "굴림", + "points": 1, + "category": "FontName", + "item": "문구 (● 참가안내 ●)/① 글씨체 (굴림)" + }, + "16": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{match_str}')]/ancestor::P/@ParaShape]/@Align", + "match_str": "참가안내", + "value": "Center", + "points": 1, + "category": "Align", + "item": "문구 (● 참가안내 ●)/② 정렬 (가운데 정렬)" + }, + "17": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "그룹별 20명(선착순 마감)", + "value": "ITALIC", + "points": 1, + "category": "FontAttribute", + "item": "문구 (그룹별 20명(선착순 마감))/① ITALIC" + }, + "18": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "hyperlink_ptag": "//P[.//FIELDBEGIN[@Type='Hyperlink']]", + "searchValue": "그룹별 20명(선착순 마감)", + "value": "UNDERLINE", + "points": 1, + "category": "FontAttribute", + "item": "문구 (그룹별 20명(선착순 마감))/② UNDERLINE" + }, + "19": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/following-sibling::P[1]/@ParaShape]/PARAMARGIN", + "searchValue": "기타사항", + "value": { + "Left": 15, + "Indent": 14 + }, + "points": 2, + "category": "ParaShape", + "item": "문구 (※ 기타… 이하 문단)/왼쪽여백 (15), 내어쓰기 (14)", + "desc": "내부적으로 내어쓰기는 음수값 / JSON value값은 양수로 입력" + }, + "20": { + "path": "//CHARSHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape]/@Height", + "searchValue": "2026. 02. 08.", + "value": "1400", + "points": 1, + "category": "OneAnswer", + "item": "문구 (2026. 02. 08.)/① 크기 (1400)", + "desc": "1pt당 100" + }, + "21": { + "path": "//PARASHAPE[@Id=//CHAR[contains(text(),'{searchValue}')]/ancestor::P/@ParaShape]/@Align", + "searchValue": "2026. 02. 08.", + "value": "Center", + "points": 1, + "category": "OneAnswer", + "item": "문구 (2026. 02. 08.)/② 정렬 (가운데 정렬)" + }, + "22": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "별사랑천문대", + "value": "맑은 고딕", + "points": 1, + "category": "FontName", + "item": "문구 (별사랑천문대)/① 글씨체 (맑은 고딕)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "별사랑천문대", + "value": "2600", + "points": 1, + "category": "OneAnswer", + "item": "문구 (별사랑천문대)/② 크기 (2600)" + }, + "24": { + "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/ancestor::P/@ParaShape]/@Align", + "searchValue": "별사랑천문대", + "value": "Center", + "points": 1, + "category": "OneAnswer", + "item": "문구 (별사랑천문대)/③ 정렬 (가운데 정렬)" + }, + "25": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "DIAT", + "value": "돋움", + "points": 1, + "category": "Header.FontName", + "item": "문구 (DIAT)/① 글꼴 (돋움)" + }, + "26": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "DIAT", + "value": "900", + "points": 1, + "category": "Header.OneAnswer", + "item": "문구 (DIAT)/② 크기 (9pt)" + }, + "27": { + "path": "//PARASHAPE[@Id=//CHAR[text()='{searchValue}']/parent::TEXT/parent::P/@ParaShape]/@Align", + "searchValue": "DIAT", + "value": "Right", + "points": 1, + "category": "Header.OneAnswer", + "item": "문구 (DIAT)/③ 정렬 (오른쪽 정렬)" + }, + "28": { + "path": "//PAGENUM/@FormatType", + "value": "LatinCapital", + "points": 2, + "category": "PageNumber", + "item": "① 쪽 번호 매기기 (A,B,C 순으로)", + "desc1": { + "가,나,다": "HangulSyllable", + "1,2,3": "Digit", + "일,이,삼": "HangulPhonetic", + "갑,을,병": "DecagonCircle", + "A,B,C": "LatinCapital", + "a,b,c": "LatinSmall", + "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", + "①,②,③": "CircledDigit", + "一,二,三": "Ideograph", + "㉠,㉡,㉢": "CircledHangulJamo", + "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", + "㊀,㊁,㊂": "CircledIdeograph", + "i,ii,iii": "RomanSmall", + "I,II,III": "RomanCapital", + "甲,乙,丙": "DecagonCircleHanja", + "+,++,+++": "UserChar", + "*,**,***": "UserChar", + "정답에 맞는 값 value에 입력": "" + }, + "desc2": "1, 2페이지 모두 정답이어야 점수 부여" + }, + "29": { + "path": "//PAGENUM/@Pos", + "value": "BottomCenter", + "points": 2, + "category": "PageNumber", + "item": "가운데 아래", + "desc": "1, 2페이지 모두 정답이어야 점수 부여", + "desc2": { + "가운데 아래": "BottomCenter", + "오른쪽 아래": "BottomRight", + "왼쪽 아래": "BottomLeft" + } + }, + "30": { + "path": "//PARASHAPE[@Id='{parashape_id}']/PARAMARGIN/@LineSpacing", + "value": "180", + "first_word": "별", + "points": 2, + "category": "LineSpacing", + "item": "문제 1 줄간격 180% 설정", + "desc": "1페이지 문단의 줄간격이 정답이 아닌 문단이 있으면 False(감점), first_word 속성에 [문단 첫글자 장식]에 해당하는 글자를 입력해준다." + } + }, + "2": { + "1": { + "path": "//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@HeaderInside", + "path2": "//BORDERFILL[@Id=//PAGEBORDERFILL[@Type='Both' or @Type='Even']/@BorferFill]", + "value": { + "header_inside": true, + "all_double_slim": true + }, + "points": 4, + "category": "PageBorder", + "item": "문제2 쪽테두리(이중 실선, 머리말 포함) 설정" + }, + "2": { + "path": "count(//SECTION)>1", + "value": true, + "points": 3, + "category": "Boolean", + "item": "① 구역나누기", + "desc": "섹션이 1개 이상이면 점수부여" + }, + "3": { + "path": "./TEXT/COLDEF/@Count", + "value": "2", + "points": 3, + "category": "TwoColumn", + "item": "② 다단 2단" + }, + "4": { + "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Width", + "value": "60", + "points": 2, + "category": "Rectangle.mmSize", + "item": "문구 (하늘의 꽃, 별자리)/① 크기-너비 (60 mm)" + }, + "5": { + "path": "//RECTANGLE/SHAPEOBJECT/SIZE/@Height", + "value": "12", + "points": 2, + "category": "Rectangle.mmSize", + "item": "문구 (하늘의 꽃, 별자리)/② 크기-높이 (12 mm)" + }, + "6": { + "path": "//RECTANGLE//LINESHAPE", + "value": { + "Style": "DoubleSlim", + "Width": "283" + }, + "points": 2, + "category": "Rectangle.LineShape", + "item": "문구 (하늘의 꽃, 별자리)/③ 테두리 : 이중 실선(1.00mm)", + "desc": "1mm = 283pt value['Width']에 pt값 입력" + }, + "7": { + "path": "//RECTANGLE/@Ratio", + "value": "20", + "points": 2, + "category": "Rectangle.OneAnswer", + "item": "문구 (하늘의 꽃, 별자리)/④ 글상자 모서리 (둥근모양)", + "desc": "모서리 비율 반원:50 / 둥근모양:20" + }, + "8": { + "path": "//RECTANGLE//WINDOWBRUSH/@FaceColor", + "value": "191,179,233", + "points": 2, + "category": "Rectangle.Color", + "item": "문구 (하늘의 꽃, 별자리)/⑤ 채우기 : 색상(RGB:191,179,233)" + }, + "9": { + "path": "//RECTANGLE/SHAPEOBJECT/POSITION/@TreatAsChar", + "value": "true", + "points": 1, + "category": "Rectangle.OneAnswer", + "item": "문구 (하늘의 꽃, 별자리)/⑥ 글상자 위치 (글자처럼 취급)" + }, + "10": { + "path": "//PARASHAPE[@Id='{rect_parashape_id}']/@Align", + "value": "Center", + "points": 1, + "category": "Rectangle.TextBoxAlign", + "item": "문구 (하늘의 꽃, 별자리)/⑦ 글상자 정렬 (가운데 정렬)" + }, + "11": { + "path": ".//RECTANGLE//TEXT/@CharShape", + "value": "중고딕", + "points": 1, + "category": "Rectangle.FontName", + "item": "문구 (하늘의 꽃, 별자리)/⑧ 글씨체 (중고딕)" + }, + "12": { + "path": "//CHARSHAPE[@Id='{rect_charshape_id}']/@Height", + "value": "1600", + "points": 1, + "category": "Rectangle.FontSize", + "item": "문구 (하늘의 꽃, 별자리)/⑨ 글씨크기 (1600)", + "desc": "1pt당 100" + }, + "13": { + "path": "//PARASHAPE[@Id={rect_parashape_id}]/@Align", + "value": "Center", + "points": 1, + "category": "Rectangle.TextBoxAlign", + "item": "문구 (하늘의 꽃, 별자리)/⑩ 정렬 (가운데 정렬)" + }, + "14": { + "path": "//BINITEM[@BinData=//PICTURE/IMAGE/@BinItem][@Format='JPG' or @Format='JPEG' or @Format='PNG']", + "value": true, + "points": 2, + "category": "Boolean", + "item": "① 파일명 \"그림D.jpg\" 삽입", + "desc": "첨부 이미지 파일명 손상으로 정상적인 채점이 불가한 경우가 발견되어서 이미지 첨부 여부로 채점 방식 변경 (7/3)" + }, + "15": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Width", + "value": "80", + "points": 2, + "category": "mmSize", + "item": "② 크기-너비 (80 mm)" + }, + "16": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/SIZE/@Height", + "value": "40", + "points": 2, + "category": "mmSize", + "item": "③ 크기-높이 (40 mm)" + }, + "17": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@HorzOffset", + "value": "0", + "points": 2, + "category": "mmSize", + "item": "④ 위치 (어울림 : 가로-쪽의 왼쪽 0mm)" + }, + "18": { + "path": "//PICTURE[./IMAGE[@BinItem=//BINITEM[@Format='JPG' or @Format='JPEG' or @Format='PNG']/@BinData]]/SHAPEOBJECT/POSITION[not(@TreatAsChar='true') and @HorzRelTo='Page']/@VertOffset", + "value": "24", + "points": 2, + "category": "mmSize", + "item": "⑤ 위치 (어울림 : 세로-쪽의 위 24 mm)" + }, + "19": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "1. 별자리란?", + "value": "돋움체", + "points": 1, + "category": "FontName", + "item": "문구① (1. 별자리란?)/① 글씨체 (돋움체)" + }, + "20": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "1. 별자리란?", + "value": "1200", + "points": 1, + "category": "OneAnswer", + "item": "문구① (1. 별자리란?)/② 크기 (1200)" + }, + "21": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "1. 별자리란?", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "문구① (1. 별자리란?)/③ 진하게" + }, + "22": { + "path": "//TEXT[CHAR[text()='{searchValue}']]/@CharShape", + "searchValue": "2. 우리나라 계절별 별자리", + "value": "돋움체", + "points": 1, + "category": "FontName", + "item": "문구② (2. 우리나라 계절별 별자리)/① 글씨체 (돋움체)" + }, + "23": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "2. 우리나라 계절별 별자리", + "value": "1200", + "points": 1, + "category": "OneAnswer", + "item": "문구② (2. 우리나라 계절별 별자리)/② 크기 (1200)" + }, + "24": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "2. 우리나라 계절별 별자리", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "문구② (2. 우리나라 계절별 별자리)/③ 진하게" + }, + "25": { + "path": "boolean(//TEXT[CHAR[contains(text(),'{option}')]]/FOOTNOTE)", + "path2": "boolean(//CHAR[substring(., string-length(.) - string-length('{option}') + 1) = '{option}']/following-sibling::FOOTNOTE/descendant::CHAR)", + "option": "북두칠성", + "value": true, + "points": 2, + "category": "Boolean", + "item": "문구 (북두칠성)/① 각주 설정 및 문구 입력" + }, + "26": { + "path": "//CHAR[contains(text(),'{searchValue}')]/parent::TEXT/@CharShape", + "searchValue": "큰곰자리의 꼬리에 해당하는 7개의 별", + "value": "굴림", + "points": 1, + "category": "FontName", + "item": "문구 (북두칠성)/② 글씨체 (굴림)" + }, + "27": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape]/@Height", + "searchValue": "큰곰자리의 꼬리에 해당하는 7개의 별", + "value": "900", + "points": 1, + "category": "OneAnswer", + "item": "문구 (북두칠성)/③ 크기 (9pt)" + }, + "28": { + "path": "//P[TEXT[CHAR[contains(text(), '{searchValue}')]]]//AUTONUMFORMAT/@Type", + "searchValue": "큰곰자리의 꼬리에 해당하는 7개의 별", + "value": "CircledLatinCapital", + "points": 2, + "category": "OneAnswer", + "item": "문구 (전당)/④ 각주 번호모양", + "desc": { + "가,나,다": "HangulSyllable", + "1,2,3": "Digit", + "일,이,삼": "HangulPhonetic", + "갑,을,병": "DecagonCircle", + "A,B,C": "LatinCapital", + "a,b,c": "LatinSmall", + "Ⓐ,Ⓑ,Ⓒ": "CircledLatinCapital", + "①,②,③": "CircledDigit", + "一,二,三": "Ideograph", + "㉠,㉡,㉢": "CircledHangulJamo", + "ⓐ,ⓑ,ⓒ": "CircledLatinSmall", + "㊀,㊁,㊂": "CircledIdeograph", + "i,ii,iii": "RomanSmall", + "I,II,III": "RomanCapital", + "甲,乙,丙": "DecagonCircleHanja", + "+,++,+++": "UserChar", + "*,**,***": "UserChar", + "정답에 맞는 값 value에 입력": "" + } + }, + "29": { + "path": "boolean(//CHAR[contains(text(),'{ignoreWord}')])", + "ignoreWord": "Babylonia", + "value": true, + "points": 3, + "category": "Boolean", + "item": "Babylonia/영단어 미입력, 대소문자/오타 시 전체 감점", + "desc": "유사도 검사를 진행하지 않고 영단어가 모두 일치해야 하므로 xpath구문 내 단어도 수정필요" + }, + "30": { + "path": "//CHAR[contains(text(),'{kor}')][contains(text(),'{chn}')]", + "word": [ + ["성좌", "星座"], + ["유래", "由來"], + ["표석", "標石"], + ["천구", "天球"], + ["계절", "季節"] + ], + "value": 10, + "points": 10, + "category": "Hanja", + "item": "① 성좌(星座), ② 유래(由來), ③ 표석(標石), ④ 천구(天球), ⑤ 계절(季節)" + }, + "31": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'역에해당')])", + "value": true, + "points": 3, + "category": "Boolean", + "item": "문구 (…지역이 해당하는 티그리스강과…)>'이 → 에' 글자바꿈" + }, + "32": { + "path": "boolean(//CHAR[contains(translate(text(), ' ', ''),'나는반드')])", + "value": true, + "points": 3, + "category": "Boolean", + "item": "문구 (…둘 중 반드시 하나는…)>'반드시 / 하나는' 순서바꿈" + }, + "33": { + "path": "//TEXT[CHAR[contains(text(),'{searchValue}')]]/@CharShape", + "searchValue": "지역별 천문대 수", + "value": "돋움체", + "points": 1, + "category": "FontName", + "item": "제목 문구 (지역별 천문대 수)/① 글씨체 (돋움체)" + }, + "34": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]/@Height", + "searchValue": "지역별 천문대 수", + "value": "1200", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (지역별 천문대 수)/② 크기 (1200)" + }, + "35": { + "path": "//CHARSHAPE[@Id=//TEXT[CHAR[text()='{searchValue}']]/@CharShape]", + "searchValue": "지역별 천문대 수", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "제목 문구 (지역별 천문대 수)/③ 진하게" + }, + "36": { + "path": "//PARASHAPE[@Id=//P[.//CHAR[text()='{searchValue}']]/@ParaShape]/@Align", + "searchValue": "지역별 천문대 수", + "value": "Center", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (지역별 천문대 수)/④ 정렬 (가운데 정렬)" + }, + "37": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor", + "value": "255,164,95", + "points": 2, + "category": "Color", + "item": "위쪽 제목 셀/① 색상(RGB:255,164,95)" + }, + "38": { + "path": "//CHARSHAPE[@Id=//TABLE/ROW[1]/descendant::TEXT/@CharShape]", + "value": "BOLD", + "points": 1, + "category": "FontAttribute", + "item": "위쪽 제목 셀/② 진하게", + "desc": "글자 속성이라 CELLZONE으로 적용 되지 않음" + }, + "39": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Type", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Type", + "value": "DoubleSlim", + "points": 2, + "category": "TableAnswer", + "item": "제목 셀 아래선/① 이중실선" + }, + "40": { + "path": "//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/BOTTOMBORDER/@Width", + "path2": "//BORDERFILL[@Id=//CELLZONE[@StartRowAddr='0' and @EndRowAddr='0' and @StartColAddr='0' and @EndColAddr=(ancestor::TABLE[1]/@ColCount)-1]/@BorderFill]/BOTTOMBORDER/@Width", + "value": "0.5mm", + "points": 2, + "category": "TableAnswer", + "item": "제목 셀 아래선/② 0.5mm" + }, + "41": { + "path": "//TABLE//TEXT/@CharShape", + "path2": "//FONTFACE[@Lang='Hangul']/FONT[@Id=//CHARSHAPE[@Id=//TABLE/ROW/descendant::TEXT/@CharShape]/FONTID/@Hangul]/@Name", + "value": "궁서", + "points": 1, + "category": "TableFontName", + "category_tmp": "FontName", + "item": "글자모양/① 글씨체 (궁서)", + "desc": "테이블 폰트명 문항은 테이블의 모든 셀이 정답폰트와 일치해야 함, 하나만 일치해도 정답으로 채점할 경우 category값을 FontName으로 변경" + }, + "42": { + "path": "//CHARSHAPE[@Id=//TABLE//TEXT/@CharShape]/@Height", + "value": "1000", + "points": 1, + "category": "TableAnswer", + "item": "글자모양/② 크기 (1000)" + }, + "43": { + "path": "//PARASHAPE[@Id=//TABLE/ROW//P/@ParaShape]/@Align", + "value": "Center", + "points": 1, + "category": "TableAnswer", + "item": "글자모양/③ 정렬 (가운데 정렬)" + }, + "44": { + "path": "boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])", + "option": "SUM", + "value": true, + "points": 4, + "category": "Boolean", + "item": "블록 계산식/합계", + "desc": "option값에 합계는 SUM / 평균은 AVG" + }, + "45": { + "chart_xpath": "", + "chart_type": "묶은 가로 막대형", + "value": true, + "points": 2, + "category": "ChartType", + "item": "① 종류 (묶은 가로 막대형)", + "desc": "chart_type을 입력받아 차트타입에 맞는 xml요소가 있는지 내부적으로 검사, chart_type만 한글로 입력해주면 된다. (공백무시)" + }, + "46": { + "chart_xpath": "//c:valAx/c:majorTickMark/@val", + "value": "out", + "points": 2, + "category": "ChartOneAnswer", + "item": "② 값 축 주 눈금선", + "desc": "chart xml파일에서 답안을 가져오는 문항은 path키값 대신 chart_xpath키값을 이용해 xapth구문을 작성한다" + }, + "47": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Width", + "value": "80", + "points": 2, + "category": "mmSize", + "item": "③ 크기-너비 (80 mm)" + }, + "48": { + "path": "//OLE[@BinItem=//BINITEM[@Format='OLE']/@BinData]//SIZE/@Height", + "value": "90", + "points": 2, + "category": "mmSize", + "item": "④ 크기-높이 (90 mm)" + }, + "49": { + "chart_xpath": "boolean(//c:chart and not(//c:pt[not(ancestor::c:tx)]/c:v[text()='합계' or text()='평균']))", + "value": true, + "points": 2, + "category": "Boolean", + "item": "⑤ 차트 데이터(표에서 블록계산식을 제외한 나머지 값만 이용)", + "desc": "차트가 존재하고 블록계산식(합계, 평균) 데이터가 없는 경우 정답 처리" + }, + "50": { + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r//a:ea/@typeface", + "searchValue": "지역별 천문대 수", + "value": "맑은 고딕", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (지역별 천문대 수)/① 글씨체 (맑은 고딕)" + }, + "51": { + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@sz", + "searchValue": "지역별 천문대 수", + "value": "1400", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (지역별 천문대 수)/② 크기 (1400)" + }, + "52": { + "chart_xpath": "//a:t[text()='{searchValue}']/ancestor::a:r/a:rPr/@{option}", + "option": "b", + "searchValue": "지역별 천문대 수", + "value": "1", + "points": 1, + "category": "OneAnswer", + "item": "제목 문구 (지역별 천문대 수)/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + }, + "53": { + "chart_xpath": "//c:catAx/c:txPr//a:ea/@typeface", + "value": "바탕", + "points": 1, + "category": "ChartOneAnswer", + "item": "X축/① 글꼴 (바탕)" + }, + "54": { + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@sz", + "value": "900", + "points": 1, + "category": "ChartOneAnswer", + "item": "X축/② 크기 (9pt)" + }, + "55": { + "chart_xpath": "//c:catAx/c:txPr//a:defRPr/@{option}", + "option": "i", + "value": "1", + "points": 1, + "category": "ChartOneAnswer", + "item": "X축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + }, + "56": { + "chart_xpath": "//c:valAx/c:txPr//a:ea/@typeface", + "value": "바탕", + "points": 1, + "category": "ChartOneAnswer", + "item": "Y축/① 글꼴 (바탕)" + }, + "57": { + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@sz", + "value": "900", + "points": 1, + "category": "ChartOneAnswer", + "item": "Y축/② 크기 (9pt)" + }, + "58": { + "chart_xpath": "//c:valAx/c:txPr//a:defRPr/@{option}", + "option": "i", + "value": "1", + "points": 1, + "category": "ChartOneAnswer", + "item": "Y축/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + }, + "59": { + "chart_xpath": "//c:legend//a:ea/@typeface", + "value": "바탕", + "points": 1, + "category": "OneAnswer", + "item": "범례/① 글꼴 (바탕)" + }, + "60": { + "chart_xpath": "//c:legend//a:defRPr/@sz", + "value": "900", + "points": 1, + "category": "OneAnswer", + "item": "범례/② 크기 (9pt)" + }, + "61": { + "chart_xpath": "//c:legend//a:defRPr/@{option}", + "option": "i", + "value": "1", + "points": 1, + "category": "OneAnswer", + "item": "범례/③ 기울임", + "desc": "option값 - 기울임(Italic):i / 굵게(Bold):b" + } + } +} diff --git a/checklist.xbook b/checklist.xbook index 3f978e8..ffcdd3f 100644 --- a/checklist.xbook +++ b/checklist.xbook @@ -1 +1 @@ -[{"kind":1,"language":"markdown","value":"# XPath Notebook\nDate: 2025-01-22     Time: 16:12:58"},{"kind":1,"language":"markdown","value":"* mm > pt 변환비율 = 2.83465 \r\n* 283.465"},{"kind":1,"language":"markdown","value":"- 색상 demical 코드 [1-2] [1-10] [2-8] [2-37]"},{"kind":2,"language":"xpath","value":"//TEXTART[@Text='클라우드컴퓨팅컨퍼런스']/descendant::WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//RECTANGLE[.//CHAR[text()='전']]//WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//RECTANGLE//CHAR[text()='클라우드 컴퓨팅']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor"},{"kind":1,"language":"markdown","value":"- [1-10] ① ●, ② ●, ③ ※"},{"kind":2,"language":"xpath","value":"\"path\": \"count(//CHAR[contains(text(),'●')]) + count(//CHAR[contains(text(),'※')])\",\r\n \"path2\": \"string-length(//CHAR[contains(text(),'●')]) - string-length(translate(//CHAR[contains(text(),'●')], '●', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))\","},{"kind":1,"language":"markdown","value":"- [1-28] [2-28] @FormatType 종류\r\n - HangulSyllable : 가나다\r\n - Digit : 123\r\n - DecagonCircle : 갑을병정\r\n - LatinCapital : ABC\r\n - CircledDigit : ①,②,③\r\n - Ideograph : 一,二,三\r\n - CircledHangulJamo : ㉠,㉡,㉢\r\n - CircledLatinSmall : ⓐ,ⓑ,ⓒ\r\n - RomanSmall : i,ii,iii"},{"kind":2,"language":"xpath","value":"//SECTION[1]//PAGENUM/@FormatType"},{"kind":2,"language":"xpath","value":"//P[TEXT[CHAR[contains(text(), '눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함')]]]//AUTONUMFORMAT/@Type"},{"kind":1,"language":"markdown","value":"- [2-30] ① 저감(低減), ② 화석(化石), ③ 투자(投資), ④ 달성(達成), ⑤ 세금(稅金)"},{"kind":2,"language":"xpath","value":"(count(//CHAR[contains(text(),'저감')][contains(text(),'低減')])+count(//CHAR[contains(text(),'화석')][contains(text(),'化石')])+count(//CHAR[contains(text(),'투자')][contains(text(),'投資')])+count(//CHAR[contains(text(),'달성')][contains(text(),'達成')])+count(//CHAR[contains(text(),'세금')][contains(text(),'稅金')]))*2"},{"kind":1,"language":"markdown","value":"- [2-37] [2-39] [2-40] @EndColAddr 속성값 \r\n - 표의 열 갯수-1\r\n - 4개=3 / 3개=2 / 2개=1"},{"kind":2,"language":"xpath","value":"@EndColAddr='2'"},{"kind":1,"language":"markdown","value":"- [2-45]\r\n - 꺾은선형 //c:lineChart[c:grouping[@val='standard']]\r\n - 묶은가로막대형 //c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']]\r\n - 묶은세로막대형 //c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]\r\n - 원형 //c:pieChart\r\n - 분산형 //c:scatterChart"},{"kind":1,"language":"markdown","value":"//c:{chart_type}Chart/"},{"kind":2,"language":"xpath","value":"boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])"},{"kind":2,"language":"xpath","value":"//c:valAx/c:majorTickMark/@val"},{"kind":2,"language":"xpath","value":"boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])"},{"kind":2,"language":"xpath","value":"//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]"},{"kind":2,"language":"xpath","value":"//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG')]"}] \ No newline at end of file +[{"kind":1,"language":"markdown","value":"# XPath Notebook\nDate: 2025-01-22     Time: 16:12:58"},{"kind":2,"language":"xpath","value":""},{"kind":1,"language":"markdown","value":"* mm > pt 변환비율 = 2.83465 \r\n* 283.465"},{"kind":1,"language":"markdown","value":"- 색상 demical 코드 [1-2] [1-10] [2-8] [2-37]"},{"kind":2,"language":"xpath","value":"//TEXTART[@Text='클라우드컴퓨팅컨퍼런스']/descendant::WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//RECTANGLE[.//CHAR[text()='전']]//WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//RECTANGLE//CHAR[text()='클라우드 컴퓨팅']/ancestor::RECTANGLE/descendant::WINDOWBRUSH/@FaceColor"},{"kind":2,"language":"xpath","value":"//BORDERFILL[@Id=//TABLE/ROW[1]/CELL/@BorderFill]/FILLBRUSH/WINDOWBRUSH/@FaceColor"},{"kind":1,"language":"markdown","value":"- [1-10] ① ●, ② ●, ③ ※"},{"kind":2,"language":"xpath","value":"\"path\": \"count(//CHAR[contains(text(),'●')]) + count(//CHAR[contains(text(),'※')])\",\r\n \"path2\": \"string-length(//CHAR[contains(text(),'●')]) - string-length(translate(//CHAR[contains(text(),'●')], '●', '')) + string-length(//CHAR[contains(text(),'※')]) - string-length(translate(//CHAR[contains(text(),'※')], '※', ''))\","},{"kind":1,"language":"markdown","value":"- [1-28] [2-28] @FormatType 종류\r\n - HangulSyllable : 가나다\r\n - Digit : 123\r\n - DecagonCircle : 갑을병정\r\n - LatinCapital : ABC\r\n - CircledDigit : ①,②,③\r\n - Ideograph : 一,二,三\r\n - CircledHangulJamo : ㉠,㉡,㉢\r\n - CircledLatinSmall : ⓐ,ⓑ,ⓒ\r\n - RomanSmall : i,ii,iii"},{"kind":2,"language":"xpath","value":"//SECTION[1]//PAGENUM/@FormatType"},{"kind":2,"language":"xpath","value":"//P[TEXT[CHAR[contains(text(), '눈으로 읽는 대신 귀로 들을 수 있게 책의 내용(문자)을 음성으로 녹음하여 기록한 것을 의미함')]]]//AUTONUMFORMAT/@Type"},{"kind":1,"language":"markdown","value":"- [2-30] ① 저감(低減), ② 화석(化石), ③ 투자(投資), ④ 달성(達成), ⑤ 세금(稅金)"},{"kind":2,"language":"xpath","value":"(count(//CHAR[contains(text(),'저감')][contains(text(),'低減')])+count(//CHAR[contains(text(),'화석')][contains(text(),'化石')])+count(//CHAR[contains(text(),'투자')][contains(text(),'投資')])+count(//CHAR[contains(text(),'달성')][contains(text(),'達成')])+count(//CHAR[contains(text(),'세금')][contains(text(),'稅金')]))*2"},{"kind":1,"language":"markdown","value":"- [2-37] [2-39] [2-40] @EndColAddr 속성값 \r\n - 표의 열 갯수-1\r\n - 4개=3 / 3개=2 / 2개=1"},{"kind":2,"language":"xpath","value":"@EndColAddr='2'"},{"kind":1,"language":"markdown","value":"- [2-45]\r\n - 꺾은선형 //c:lineChart[c:grouping[@val='standard']]\r\n - 묶은가로막대형 //c:barChart[c:barDir[@val='bar'] and c:grouping[@val='clustered']]\r\n - 묶은세로막대형 //c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']]\r\n - 원형 //c:pieChart\r\n - 분산형 //c:scatterChart"},{"kind":1,"language":"markdown","value":"//c:{chart_type}Chart/"},{"kind":2,"language":"xpath","value":"boolean(//c:barChart[c:barDir[@val='col'] and c:grouping[@val='clustered']])"},{"kind":2,"language":"xpath","value":"//c:valAx/c:majorTickMark/@val"},{"kind":2,"language":"xpath","value":"boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '={option}')]) and boolean(//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '={option}')])"},{"kind":2,"language":"xpath","value":"//TABLE[1]/ROW[last()]/CELL[position()=last()]//FIELDBEGIN[starts-with(@Command, '=AVG')]"},{"kind":2,"language":"xpath","value":"//TABLE[1]/ROW[last()]/CELL[position()=last()-1]//FIELDBEGIN[starts-with(@Command, '=AVG')]"}] \ No newline at end of file diff --git a/diwScoring.py b/diwScoring.py deleted file mode 100644 index 5ee834a..0000000 --- a/diwScoring.py +++ /dev/null @@ -1,659 +0,0 @@ -import tkinter as tk -from tkinter import filedialog, messagebox -from datetime import datetime -import difflib -import json -from pathlib import Path -import os -from lxml import etree as ET -import re -from difflib import SequenceMatcher -import pandas as pd -import base64 -# from xpathSearch import XMLPathHandler - -class XMLScorer: - # 채점 기준 경로 초기화 - def __init__(self, scoring_criteria_path): - # 채점 기준 로드 - self.scoring_criteria = self._load_scoring_criteria(scoring_criteria_path) - - def set_typo_score(self, score): - self.typo_score = score - - def get_typo_score(self): - return self.typo_score - - # 채점 기준파일 로드(JSON 파일) - def _load_scoring_criteria(self, file_path): - with open(file_path, 'r', encoding='utf-8') as f: - return json.load(f) - - # XML 파일에서 element의 값을 찾아 반환 - def query_xml(self, root, *args): - first_xpath = args[0] - second_xpath = args[1] - points = args[2] - category = args[3] - right_answer = args[4] - - if "Hyperlink" in category: - is_hyperlink = self.scoring_criteria["1"]["17"]["hyperlink"] - hyperlink_xpath = self.scoring_criteria["1"]["17"]["hyperlink_xpath"] - right_text = self.scoring_criteria["1"]["17"]["searchValue"].replace(" ","") - try: - # 하이퍼링크가 포함된 p태그 인지 확인 - p_elements = root.xpath(is_hyperlink) - - for p in p_elements: - text_list = p.xpath(".//CHAR/text()") - full_text = ''.join(text_list).replace(" ", "") - # right_text의 첫 문자 - first_char = right_text[0] - # full_text에서 첫 문자 위치 찾기 - index = full_text.find(first_char) - - if index != -1: - trimmed_full_text = full_text[index:] - else: - trimmed_full_text = full_text # 일치 문자 없으면 원본 그대로 - - similarity = difflib.SequenceMatcher(None, trimmed_full_text, right_text).ratio() - # 두 문자열이 같을 경우만 하이퍼링크 확인 - if similarity >= 0.7: - inside_field = False - charshape_values = [] - - for elem in p.iter(): - # 시작 지점 확인 - if elem.tag == "FIELDBEGIN": - inside_field = True - elif elem.tag == "FIELDEND": - inside_field = False - elif inside_field and elem.tag == "TEXT": - charshape = elem.get("CharShape") - if charshape: - charshape_values.append(charshape) - - # 하이퍼링크에 해당하는 P태그 내 존재하는 charshape ID값 모두를 비교해 해당 속성(ITALIC, BOLD, UNDERLINE) 확인 - if charshape_values: - for charshape in charshape_values: - result = root.xpath(hyperlink_xpath.replace('{charshape_id}', charshape)) - # 해당 속성이 하나라도 적용되어있지 않으면 False 반환 - if not result: - return result - return True - else: - return False - - except ET.XPathEvalError as e: - return None - - if ("특수문자" in category) and (second_xpath is not None): - try: - result = root.xpath(first_xpath) - # 결과값이 리스트형인데 내부에 정보가 없는경우 - # 결과값이 없음 - if type(result) is list and len(result) == 0: - return None - elif result < points: - result2 = root.xpath(second_xpath) - return max(result, result2) - else: - return result - - except ET.XPathEvalError as e: - return None - - # xpath2가 있는 경우 - elif second_xpath is not None: - try: - result1 = root.xpath(first_xpath) - result2 = root.xpath(second_xpath) - if (type(result1) is list and len(result1) == 0) and (type(result2) is list and len(result2) == 0): - return None - - # xpath1과 xpath2의 결과값이 모두 리스트인 경우 - # 두 결과값 중 정답이 포함된 리스트를 반환 - if type(result1) is list and type(result2) is list: - if right_answer in result1: - return result1 - elif right_answer in result2: - return result2 - - return result1 if result1 else result2 - - except ET.XPathEvalError as e: - return None - - else: - try: - result = root.xpath(first_xpath) - if type(result) is list and len(result) == 0: - return None - return result - except ET.XPathEvalError as e: - return None - - def chart_query_xml(self, tree, xpath, namespaces): - - result = tree.xpath(xpath, namespaces=namespaces) - if type(result) is list and len(result) == 0: - return None - - return result - - - # 유사한 텍스트 찾기 - def find_similar_text(self, root, target_text, threshold=0.7): - """ - 전체 문서에서 유사한 텍스트를 찾아 반환 - - Args: - root (_type_): xml root element 객체 - target_text (_type_): 찾을 텍스트 - threshold (float, optional): 유사도 설정 Defaults to 0.3. - - Returns: - str: 유사도 기준을 만족하는 텍스트 - """ - # 전체 텍스트 추출 - # all_text = root.xpath(f"//CHAR/text()") - # all_text.append(root.xpath(f"//TEXTART/@text")) - - namespaces = { - - 'a': 'http://schemas.openxmlformats.org/drawingml/2006/main', - 'c': 'http://schemas.openxmlformats.org/drawingml/2006/chart' - } - - if type(root) is str: - all_text = root - else: - all_text = root.xpath(f"//BODY//text() | //TEXTART/@Text | //c:chart//text()", namespaces=namespaces) - - # 유사도 비교 - max_score = 0 - similar_text = '' - - for text in all_text: - score = SequenceMatcher(None, target_text, text).ratio() - - if score > max_score: - max_score = score - similar_text = text - - if max_score >= threshold: - return similar_text - else: - return None - - # 하나의 XML 파일 채점 - def _score_xml_file(self, xml_file, chart_xml): - try: - tree = ET.parse(xml_file) - root = tree.getroot() - - # 네임스페이스 정의 - namespaces = { - 'a': 'http://schemas.openxmlformats.org/drawingml/2006/main', - 'c': 'http://schemas.openxmlformats.org/drawingml/2006/chart' - } - - # 차트 XML 파일이 없는 경우 0점 채점을 위헤 빈 XML 생성 - if chart_xml is None: - chart_tree = ET.fromstring('') - else: - chart_tree = ET.fromstring(chart_xml) - - # 결과값을 Dictionary로 저장 - results = { - 'filename': os.path.basename(xml_file), - 'score_results': [], - 'total_score': 0, - 'partial_scores': [] - } - - print(f"File name: {results['filename']}") - - total_score = 0 - for section_id, section in self.scoring_criteria.items(): - partial_score = 0 - - for criterion_id, criterion in section.items(): - id = criterion_id - xpath = criterion['path'] if 'path' in criterion else None - xpath2 = criterion['path2'] if 'path2' in criterion else None - search_value = criterion['searchValue'] if 'searchValue' in criterion else None - right_answer = criterion['value'] if 'value' in criterion else None - points = criterion['points'] if 'points' in criterion else None - category = criterion['category'] if 'category' in criterion else None - item = criterion['item'] - similar_text = None - - # chart xml 파일에서 채점하는 경우 - if "chart_xml" in category: - if search_value is not None: - similar_text = self.find_similar_text(chart_tree, search_value) - if similar_text is None: - xpath = xpath.replace('{searchValue}', search_value) - else: - xpath = xpath.replace('{searchValue}', similar_text) - - result = self.chart_query_xml(chart_tree, xpath, namespaces) - - # 그 외의 hml 파일에서 채점하는 경우 - else: - if search_value is not None: - similar_text = self.find_similar_text(root, search_value) - if similar_text is None: - xpath = xpath.replace('{searchValue}', search_value) - else: - xpath = xpath.replace('{searchValue}', similar_text) - - result = self.query_xml(root, xpath, xpath2, points, category, right_answer) - - # [ boolean 타입 ] - # 1. 이텔릭체, 굵게, 밑줄 등 효과가 적용 여부에 따라 - # [ITALIC] [BOLD] [UNDERLINE] 태그가 있거나 없을 수 있으므로 - # 존재 유무에 따라 True, False로 판단 - # 2. 두 가지 이상의 조건을 모두 만족해야 하는 경우 and 연산자로 연결되어 - # 반환값 True/False로 판단 - # [ float 타입 ] - # 1. 부분점수의 합산으로 반환되는 경우 float 타입으로 반환 - if type(result) is not list: - if type(result) is float and (result > points): - actual_answer = float(points) - else: - actual_answer = result - else: - if type(right_answer) is int: - actual_answer = int(result[0]) - else: - actual_answer = result[0] - - if "오타감점" in category: - points = self.get_typo_score() - - scoring = { - 'section': section_id, - 'id': id, - 'category': category, # 채점 분류 - 'item': item, # 채점 항목 - 'right_answer': right_answer, # 정답 - 'actual_answer': actual_answer, # 실제 작성 답안 - 'points': points, - 'deductions': [] # 각 기준별 감점 내역 - } - - # 점수 차감 조건 - # 1. 정답이 실수형으로 반환받은 경우는 채점항목의 부분점수 합산 결과이므로 - # 반환받은 값 그대로를 점수로 사용 - # 2. 정답이 정수형(사이즈 비교)의 경우 오차범위를 넘는다면 감점 - # 3. 그 외의 경우 정답과 실제 작성 답안이 다른 경우 점수 차감 - if type(actual_answer) is float: - scoring['points'] = actual_answer - - elif type(actual_answer) is int: - # 오차범위 3 이상이면 감점 - if abs(actual_answer - right_answer) > 3: - scoring['points'] -= points - else: - # right_answer(JSON파일 내 valuer값) null일 경우 점수감점 없이 진행 - if right_answer != actual_answer: - scoring['points'] -= points - - results['score_results'].append(scoring) - total_score += scoring['points'] - partial_score += scoring['points'] - - print(f'scoring: {scoring}') - - results['partial_scores'].append({ - 'section': section_id, - 'score': partial_score - }) - results['total_score'] = total_score - return results - - except ET.ParseError as e: - return { - 'filename': os.path.basename(xml_file), - 'error': f"XML 파싱 오류: {str(e)}", - 'total_score': 0 - } - - def binary_to_chartxml(self, xml_path): - tree = ET.parse(xml_path) - root = tree.getroot() - - binary_data = root.xpath('//BINDATA[@Id=//BINITEM[@Format="OLE"]/@BinData]/text()') - if not binary_data: - return None - binary_data = binary_data[0].encode('utf-8') - - # 태그와 그 내부 내용을 삭제합니다. - encoded_data = re.sub(b'', b'', binary_data) - encoded_data = encoded_data.replace(b'', b'') - encoded_data = encoded_data.replace(b'\r\n', b'') - - # base64 디코딩을 수행합니다. - decoded_data = base64.b64decode(encoded_data+b'==') - - # 디코딩된 데이터 내용 중 xml 형식만 추출할 때 , 사이의 데이터만 추출. - start = decoded_data.find(b'') - print(end) - xml_data = decoded_data[start:end+len(b'')] - - # xml 데이터가 없는 경우 None을 반환합니다. - if -1 in [start, end]: - return None - - # 디코딩된 데이터를 파일로 저장합니다. - base_filename = os.path.splitext(xml_path)[0] - new_filename = f'{base_filename}.xml' - with open(new_filename, 'wb') as file: - file.write(xml_data) - - return xml_data - - def typo_check(self, correct_answer_file, user_answer_file, chart_xml): - user_answer_tree = ET.parse(user_answer_file) - user_answer_root = user_answer_tree.getroot() - correct_answer_tree = ET.parse(correct_answer_file) - correct_answer_root = correct_answer_tree.getroot() - - # xpath로 바이너리 부분추출 - user_input_text = user_answer_root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]') - user_table_text = user_answer_root.xpath('//TABLE//CHAR//text()') - user_input_text += user_table_text - - correct_input_text = correct_answer_root.xpath('//CHAR//text()[not(ancestor::HEADER) and not(ancestor::TABLE)]') - correct_table_text = correct_answer_root.xpath('//TABLE//CHAR//text()') - correct_input_text += correct_table_text - - # 차트 XML에서 제목 추출 - if chart_xml is not None: - chart_xml_tree = ET.fromstring(chart_xml) - - # 차트 제목 추출 - user_chart_title = chart_xml_tree.xpath('/c:chartSpace/c:chart/c:title/c:tx/c:rich/a:p/a:r/a:t', namespaces={'c': 'http://schemas.openxmlformats.org/drawingml/2006/chart', 'a': 'http://schemas.openxmlformats.org/drawingml/2006/main'}) - - # 차트 제목이 존재하는 경우 - if user_chart_title: - user_input_text.append(user_chart_title[0].text) - - # 차트 제목 정답 텍스트 추출 - correct_chart_title = self.scoring_criteria["2"]["50"]["searchValue"] - correct_input_text.append(correct_chart_title) - - # 각 요소에서 공백 제거 - user_input_text = [text.replace(' ', '') for text in user_input_text] - correct_input_text = [text.replace(' ', '') for text in correct_input_text] - - - # 숫자와 특정 형식 제거 (예: 1., 2., 3., -) - user_input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in user_input_text] - correct_input_text = [re.sub(r'\d+\.\s*|-', '', text) for text in correct_input_text] - - try : - # xpath = self.scoring_criteria["2"]["29"]['path'].split("'")[1] - # ignore_word = xpath.split("'")[1] - ignore_word = self.scoring_criteria["2"]["29"]["ignoreWord"] - # 특정 단어 제거 - # 오타와 누락의 경우만 판단하면 정상작동하지만 - # 추가 된 단어의 경우를 채점기준에 추가하면 정확하게 채점 되지 않을 수 있음 - # [정답] Hybrid [실제작성] - user_input_text = [text.replace(ignore_word, '') for text in user_input_text] - correct_input_text = [text.replace(ignore_word, '') for text in correct_input_text] - except (KeyError, IndexError, AttributeError): - ignore_word = None - - print(f"ignore_word: {ignore_word}") - - # 리스트를 하나의 문자열로 변경 - user_input_text_str = ''.join(user_input_text) - currect_input_text_str = ''.join(correct_input_text) - - print("user_input_text as string:") - print(user_input_text_str) - print("\ncurrect_input_text_answer as string:") - print(currect_input_text_str) - - - # 문자열의 차이를 비교 - diff = difflib.ndiff(currect_input_text_str, user_input_text_str) - diff_list = list(diff) - - # 차이점을 정리하여 result_diff에 저장 - result_diff = [] - - # 누락 된 단어만 따로 리스트로 저장 - missing_list = [] - - # 오타와 누락된 단어 리스트 저장 - error_missing_list = [] - - skip_next = False - - for i, line in enumerate(diff_list): - if skip_next: - skip_next = False - continue - # diff_list의 line 시작이 '-'이면서 다음 line이 '+'이면 두 line을 붙여서 맞춤법이 틀린 단어로 판단 - if line.startswith('- '): - # 오타 - if i + 1 < len(diff_list) and diff_list[i + 1].startswith('+ '): - line = line.replace('- ', '-') - next = diff_list[i + 1].replace('+ ', '') - result_diff.append(line+'=>'+next) - error_missing_list.append(line+'=>'+next) - skip_next = True - # 누락 - else: - line = line.replace('- ', '-') - result_diff.append(line) - missing_list.append(line) - error_missing_list.append(line) - # 없어도 되는 글자가 있는 경우 (추가) - elif line.startswith('+ '): - line = line.replace('+ ', '+') - result_diff.append(line) - - # result_diff 출력 - # print("\nResult Differences:") - # for diff in result_diff: - # print(diff) - - # result_diff 배열의 길이를 맨 앞에 저장 - - # 모든 차이를 계산해 점수 차감 - # temp = 40 - min(len(result_diff)*2, 40) - - # 누락된 텍스트만 계산해 점수 차감 - # temp = 40 - min(len(missing_list)*2, 40) - - # 2503회 기준 오타 1개당 [2점]->[1점] 차감 - temp = 40 - min(len(error_missing_list)*1, 40) - - self.set_typo_score(temp) - - result_diff.insert(0, temp) - return result_diff - - # XML 파일 채점 - def score_directory(self, xml_directory, correct_answer_file): - # xml 파일 불러오기 - xml_files = Path(xml_directory).glob('*.hml') - - # 결과 저장할 리스트 - results = [] - - for user_answer_file in xml_files: - result = {} - chart_xml = self.binary_to_chartxml(user_answer_file) - result['typo'] = self.typo_check(correct_answer_file, user_answer_file, chart_xml) - result['score'] = self._score_xml_file(user_answer_file, chart_xml) - # result['score']['score_results'][2]['points'] = result['typo'][0] - results.append(result) - return results - - def parse_filename(self, filename): - if isinstance(filename, dict): - filename = filename.get('파일명', '') - match = re.match(r'.*-(\d+)-(.+)\.hml', filename) - if match: - number = match.group(1) - name = match.group(2) - return number, name - - return None, None - - def export_to_excel(self, results, output_path=None): - if output_path is None: - timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") #연월일_시분초 - # timestamp = datetime.now().strftime("%Y%m%d") #연월일 - output_path = f"scoring_results_{timestamp}.xlsx" - - summary_data = [] - detail_data = [] - typo_data = [] - - for temp in results: - # 요약 정보 - result = temp['score'] - summary_row = { - '파일명': result['filename'], - '총점': result.get('total_score', 0) - } - if 'error' in result: - summary_row['오류'] = result['error'] - - summary_data.append(summary_row) - - # 상세 정보 - if 'score_results' in result: - filename = {'파일명': result['filename']} - number, name = self.parse_filename(filename) - if (number or name) is None: - detail_row = {'채점항목': result['filename'] } - else: - detail_row = {'채점항목':f"{number}-{name}"} - - section_num = None - row_index = [] - for i, score_result in enumerate(result['score_results']): - current_section = score_result['section'] - - if section_num is None: - section_num = current_section - - # 다음 섹션(문제0 => 문제1)로 넘어갔을 경우 or 마지막 문제일 경우 - if current_section != section_num: - # 이전 섹션의 부분합을 출력 - detail_row[f'문제{section_num}'] = result['partial_scores'][int(section_num)]['score'] - row_index.append(f'문제{section_num}') - section_num = current_section - - detail_row[f'{i+1}'] = score_result['points'] - row_index.append(score_result['id']) - - # 마지막 섹션(문제2)부분합 점수를 출력 - if i == len(result['score_results']) - 1: - detail_row[f'문제{current_section}'] = result['partial_scores'][int(current_section)]['score'] - row_index.append(f'문제{current_section}') - - detail_row['총점'] = result.get('total_score', 0) - row_index.append('총점') - detail_data.append(detail_row) - - summary_df = pd.DataFrame(summary_data) - detail_df = pd.DataFrame(detail_data).transpose() - detail_df.columns = detail_df.iloc[0] - detail_df = detail_df[1:] - - detail_df.index = row_index - # detail_df = pd.DataFrame(detail_data) - - for temp in results: - result = temp['typo'] - typo_data.append(result) - - typo_df = pd.DataFrame(typo_data).transpose() - # detail_df = pd.DataFrame(detail_data) - - # ExcelWriter 객체 생성 - with pd.ExcelWriter(output_path, engine='openpyxl') as writer: - summary_df.to_excel(writer, sheet_name='채점결과요약', index=False) - detail_df.to_excel(writer, sheet_name='채점상세내역', index=True) - typo_df.to_excel(writer, sheet_name='오타내역', index=False) - - # 열 너비 자동 조정 - # for sheet_name in writer.sheets: - # worksheet = writer.sheets[sheet_name] - # for column_cells in worksheet.columns: - # max_length = 0 - # column = column_cells[0].column_letter # 열의 문자 - # for cell in column_cells: - # try: - # if cell.value: - # max_length = max(max_length, len(str(cell.value))) - # except: - # pass - # adjusted_width = (max_length + 2) - # worksheet.column_dimensions[column].width = adjusted_width - - return output_path - - -def main(): - - # 시험회차 및 유형 - exam_round = '2504' - - # 250429기준 없는 시험 형식(A,B,C..)은 주석처리 하지 않으면 오류 발생 - exam_types = [ - 'A', - # 'B', - # 'C', - ] - # test_mode = False - test_mode = True - - output_excel_paths = [] - for exam_type in exam_types: - - # JSON 채점기준표 파일 (예시:DIW_2503A.json) - # scoring_criteria_path = f'./DIW_{exam_round}.json' - scoring_criteria_path = f'./DIW_{exam_round}{exam_type}.json' - - # xml(hml)파일 디렉토리 경로 (예시:./output/A/DIW) - # xml_directory = f'./output/{exam_type}/{"TEST" if test_mode else "DIW"}' - - # 회차가 여러개인 경우 - xml_directory = f'./output/{exam_round}/{exam_type}/{"TEST" if test_mode else "DIW"}' - - - # 오탈자 체크를 위한 정답 파일 경로 (예시:./output/A/DIW/DIW_2503A.hml) - # correct_answer_file = f'./output/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml' - correct_answer_file = f'./output/{exam_round}/{exam_type}/DIW/DIW_{exam_round}{exam_type}.hml' - - # 엑셀 파일명 (비어있으면 자동생성) (예시:241001_DIW_2503A_채점결과.xlsx) - timestamp = datetime.now().strftime("%y%m%d") - output_path = f'{timestamp}_DIW_{exam_round}회_{exam_type}형_{"TEST" if test_mode else "채점결과"}.xlsx' - - # 채점 클래스 초기화 - scorer = XMLScorer(scoring_criteria_path) - - # 폴더 내 모든 xml 파일 채점 - results = scorer.score_directory(xml_directory, correct_answer_file) - - # 채점 결과 엑셀로 저장 - output_excel_paths.append(scorer.export_to_excel(results, output_path)) - - print(f"채점 결과 엑셀 파일: {output_excel_paths}") - -if __name__ == '__main__': - main() diff --git a/diwScoring2.py b/diwScoring2.py index b8ba4aa..54b2034 100644 --- a/diwScoring2.py +++ b/diwScoring2.py @@ -1074,6 +1074,7 @@ class XMLScorer: '원형': "//c:pieChart", '분산형': "//c:scatterChart", '표식만있는분산형': "//c:scatterChart[c:scatterStyle[@val='marker']]", + '곡선이있는분산형': "//c:scatterChart[c:scatterStyle[@val='smooth']]" } chart_type = criterion.get('chart_type').replace(" ","") @@ -1474,15 +1475,15 @@ class XMLScorer: def main(): # 시험회차 및 유형 - exam_round = '2601' + exam_round = '2622' # exam_round = '2522' # 채점하고자 하는 유형은 주석 해제 exam_types = [ - # 'A', - # 'B', + 'A', + 'B', 'C', - # 'D', + 'D', ] test_mode = False @@ -1491,7 +1492,7 @@ def main(): output_excel_paths = [] for exam_type in exam_types: # JSON 채점기준표 파일 (예시:DIW_2503A.json) - scoring_criteria_path = f'./DIW_{exam_round}{exam_type}.json' + scoring_criteria_path = f'./JSON/{exam_round}/DIW_{exam_round}{exam_type}.json' # xml(hml)파일 디렉토리 경로 (예시:./output/2503/A/DIW) xml_directory = f'./output/{exam_round}/{exam_type}/{"TEST" if test_mode else "DIW"}' @@ -1501,7 +1502,7 @@ def main(): # 엑셀 파일명 (비어있으면 자동생성) (예시:241001_DIW_2503A_채점결과.xlsx) timestamp = datetime.now().strftime("%y%m%d") - output_path = f'{timestamp}_DIW_{exam_round}{exam_type}_{"TEST" if test_mode else "채점결과"}.xlsx' + output_path = f'./score_result/{timestamp}_DIW_{exam_round}{exam_type}_{"TEST" if test_mode else "채점결과"}.xlsx' # 채점 클래스 초기화 scorer = XMLScorer(scoring_criteria_path) diff --git a/hwp_conversion.log b/hwp_conversion.log index 373d67d..7a49f84 100644 --- a/hwp_conversion.log +++ b/hwp_conversion.log @@ -27783,3 +27783,1703 @@ 2026-01-27 15:46:25,042 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601\D\DIW 2026-01-27 15:46:25,543 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601\E\DIW 2026-01-27 15:46:26,851 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601\E\DIW +2026-01-28 17:41:25,127 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601\A\DIW +2026-01-28 17:41:30,427 - INFO - 변환 성공: DIW-000007-이예경.hwp -> DIW-000007-이예경.hml +2026-01-28 17:41:31,058 - INFO - 변환 성공: DIW-000008-김민지.hwp -> DIW-000008-김민지.hml +2026-01-28 17:41:31,583 - INFO - 변환 성공: DIW-000011-전하영.hwp -> DIW-000011-전하영.hml +2026-01-28 17:41:32,207 - INFO - 변환 성공: DIW-000013-한수빈.hwp -> DIW-000013-한수빈.hml +2026-01-28 17:41:32,807 - INFO - 변환 성공: DIW-000034-김유빈.hwp -> DIW-000034-김유빈.hml +2026-01-28 17:41:33,416 - INFO - 변환 성공: DIW-000072-이창훈.hwp -> DIW-000072-이창훈.hml +2026-01-28 17:41:34,028 - INFO - 변환 성공: DIW-000073-이준우.hwp -> DIW-000073-이준우.hml +2026-01-28 17:41:34,666 - INFO - 변환 성공: DIW-000163-김준서.hwp -> DIW-000163-김준서.hml +2026-01-28 17:41:35,332 - INFO - 변환 성공: DIW-000222-남시완.hwp -> DIW-000222-남시완.hml +2026-01-28 17:41:35,898 - INFO - 변환 성공: DIW-000228-오태양.hwp -> DIW-000228-오태양.hml +2026-01-28 17:41:36,395 - INFO - 변환 성공: DIW-000256-황재윤.hwp -> DIW-000256-황재윤.hml +2026-01-28 17:41:36,818 - INFO - 변환 성공: DIW-000257-박건우.hwp -> DIW-000257-박건우.hml +2026-01-28 17:41:37,397 - INFO - 변환 성공: DIW-000266-강윤서.hwp -> DIW-000266-강윤서.hml +2026-01-28 17:41:37,937 - INFO - 변환 성공: DIW-000328-김민제.hwp -> DIW-000328-김민제.hml +2026-01-28 17:41:38,640 - INFO - 변환 성공: DIW-000340-송현준.hwp -> DIW-000340-송현준.hml +2026-01-28 17:41:39,373 - INFO - 변환 성공: DIW-000341-이지율.hwp -> DIW-000341-이지율.hml +2026-01-28 17:41:40,011 - INFO - 변환 성공: DIW-000343-곽현서.hwp -> DIW-000343-곽현서.hml +2026-01-28 17:41:40,536 - INFO - 변환 성공: DIW-000345-지민규.hwp -> DIW-000345-지민규.hml +2026-01-28 17:41:41,177 - INFO - 변환 성공: DIW-000346-이준서.hwp -> DIW-000346-이준서.hml +2026-01-28 17:41:41,812 - INFO - 변환 성공: DIW-000366-이유나.hwp -> DIW-000366-이유나.hml +2026-01-28 17:41:42,384 - INFO - 변환 성공: DIW-000418-김강민.hwp -> DIW-000418-김강민.hml +2026-01-28 17:41:43,302 - INFO - 변환 성공: DIW-000419-이은호.hwp -> DIW-000419-이은호.hml +2026-01-28 17:41:43,883 - INFO - 변환 성공: DIW-000420-신우진.hwp -> DIW-000420-신우진.hml +2026-01-28 17:41:44,554 - INFO - 변환 성공: DIW-000421-김경민.hwp -> DIW-000421-김경민.hml +2026-01-28 17:41:45,195 - INFO - 변환 성공: DIW-000422-신민주.hwp -> DIW-000422-신민주.hml +2026-01-28 17:41:45,855 - INFO - 변환 성공: DIW-000455-박시율.hwp -> DIW-000455-박시율.hml +2026-01-28 17:41:46,448 - INFO - 변환 성공: DIW-000456-김건.hwp -> DIW-000456-김건.hml +2026-01-28 17:41:47,012 - INFO - 변환 성공: DIW-000459-진예성.hwp -> DIW-000459-진예성.hml +2026-01-28 17:41:47,625 - INFO - 변환 성공: DIW-000462-황상록.hwp -> DIW-000462-황상록.hml +2026-01-28 17:41:48,239 - INFO - 변환 성공: DIW-000471-이지우.hwp -> DIW-000471-이지우.hml +2026-01-28 17:41:48,721 - INFO - 변환 성공: DIW-000472-장정윤.hwp -> DIW-000472-장정윤.hml +2026-01-28 17:41:49,072 - INFO - 변환 성공: DIW-000493-김근영.hwp -> DIW-000493-김근영.hml +2026-01-28 17:41:49,531 - INFO - 변환 성공: DIW-000580-박민규.hwp -> DIW-000580-박민규.hml +2026-01-28 17:41:49,986 - INFO - 변환 성공: DIW-000581-박민우.hwp -> DIW-000581-박민우.hml +2026-01-28 17:41:50,419 - INFO - 변환 성공: DIW-000621-이금숙.hwp -> DIW-000621-이금숙.hml +2026-01-28 17:41:51,044 - INFO - 변환 성공: DIW-000639-염희주.hwp -> DIW-000639-염희주.hml +2026-01-28 17:41:51,681 - INFO - 변환 성공: DIW-000645-김채원.hwp -> DIW-000645-김채원.hml +2026-01-28 17:41:52,251 - INFO - 변환 성공: DIW-000650-박서준.hwp -> DIW-000650-박서준.hml +2026-01-28 17:41:52,788 - INFO - 변환 성공: DIW-000656-이서준.hwp -> DIW-000656-이서준.hml +2026-01-28 17:41:53,309 - INFO - 변환 성공: DIW-000657-김도은.hwp -> DIW-000657-김도은.hml +2026-01-28 17:41:53,947 - INFO - 변환 성공: DIW-000658-김지예.hwp -> DIW-000658-김지예.hml +2026-01-28 17:41:54,777 - INFO - 변환 성공: DIW-000659-공예준.hwp -> DIW-000659-공예준.hml +2026-01-28 17:41:55,426 - INFO - 변환 성공: DIW-000660-김다은.hwp -> DIW-000660-김다은.hml +2026-01-28 17:41:56,026 - INFO - 변환 성공: DIW-000661-이동욱.hwp -> DIW-000661-이동욱.hml +2026-01-28 17:41:56,775 - INFO - 변환 성공: DIW-000666-권민주.hwp -> DIW-000666-권민주.hml +2026-01-28 17:41:57,388 - INFO - 변환 성공: DIW-000667-권예서.hwp -> DIW-000667-권예서.hml +2026-01-28 17:41:58,052 - INFO - 변환 성공: DIW-000669-김라온.hwp -> DIW-000669-김라온.hml +2026-01-28 17:41:58,648 - INFO - 변환 성공: DIW-000672-김주환.hwp -> DIW-000672-김주환.hml +2026-01-28 17:41:59,251 - INFO - 변환 성공: DIW-000675-김지헌.hwp -> DIW-000675-김지헌.hml +2026-01-28 17:41:59,894 - INFO - 변환 성공: DIW-000676-김지환.hwp -> DIW-000676-김지환.hml +2026-01-28 17:42:00,613 - INFO - 변환 성공: DIW-000684-박현빈.hwp -> DIW-000684-박현빈.hml +2026-01-28 17:42:01,329 - INFO - 변환 성공: DIW-000687-백승빈.hwp -> DIW-000687-백승빈.hml +2026-01-28 17:42:01,941 - INFO - 변환 성공: DIW-000714-편세경.hwp -> DIW-000714-편세경.hml +2026-01-28 17:42:02,498 - INFO - 변환 성공: DIW-000717-정민서.hwp -> DIW-000717-정민서.hml +2026-01-28 17:42:03,014 - INFO - 변환 성공: DIW-000733-김가람.hwp -> DIW-000733-김가람.hml +2026-01-28 17:42:03,619 - INFO - 변환 성공: DIW-000787-최유빈.hwp -> DIW-000787-최유빈.hml +2026-01-28 17:42:04,168 - INFO - 변환 성공: DIW-000790-변선율.hwp -> DIW-000790-변선율.hml +2026-01-28 17:42:04,603 - INFO - 변환 성공: DIW-000792-구하준.hwp -> DIW-000792-구하준.hml +2026-01-28 17:42:05,253 - INFO - 변환 성공: DIW-000823-김지완.hwp -> DIW-000823-김지완.hml +2026-01-28 17:42:05,888 - INFO - 변환 성공: DIW-000824-권이안.hwp -> DIW-000824-권이안.hml +2026-01-28 17:42:06,762 - INFO - 변환 성공: DIW-000825-배성진.hwp -> DIW-000825-배성진.hml +2026-01-28 17:42:07,299 - INFO - 변환 성공: DIW-000826-허윤.hwp -> DIW-000826-허윤.hml +2026-01-28 17:42:07,881 - INFO - 변환 성공: DIW-000827-손민우.hwp -> DIW-000827-손민우.hml +2026-01-28 17:42:08,439 - INFO - 변환 성공: DIW-000828-김태윤.hwp -> DIW-000828-김태윤.hml +2026-01-28 17:42:08,982 - INFO - 변환 성공: DIW-000829-윤채원.hwp -> DIW-000829-윤채원.hml +2026-01-28 17:42:09,526 - INFO - 변환 성공: DIW-000830-조은유.hwp -> DIW-000830-조은유.hml +2026-01-28 17:42:10,046 - INFO - 변환 성공: DIW-000831-임다윤.hwp -> DIW-000831-임다윤.hml +2026-01-28 17:42:11,122 - INFO - 변환 성공: DIW-000832-이유진.hwp -> DIW-000832-이유진.hml +2026-01-28 17:42:12,288 - INFO - 변환 성공: DIW-000833-양예권.hwp -> DIW-000833-양예권.hml +2026-01-28 17:42:13,008 - INFO - 변환 성공: DIW-000834-최레아.hwp -> DIW-000834-최레아.hml +2026-01-28 17:42:13,522 - INFO - 변환 성공: DIW-000835-유승필.hwp -> DIW-000835-유승필.hml +2026-01-28 17:42:14,153 - INFO - 변환 성공: DIW-000836-이나경.hwp -> DIW-000836-이나경.hml +2026-01-28 17:42:14,768 - INFO - 변환 성공: DIW-000837-박준희.hwp -> DIW-000837-박준희.hml +2026-01-28 17:42:15,305 - INFO - 변환 성공: DIW-000838-김시환.hwp -> DIW-000838-김시환.hml +2026-01-28 17:42:15,823 - INFO - 변환 성공: DIW-000839-김지민.hwp -> DIW-000839-김지민.hml +2026-01-28 17:42:16,342 - INFO - 변환 성공: DIW-000840-정해우.hwp -> DIW-000840-정해우.hml +2026-01-28 17:42:16,876 - INFO - 변환 성공: DIW-000842-김지율.hwp -> DIW-000842-김지율.hml +2026-01-28 17:42:17,458 - INFO - 변환 성공: DIW-000843-마하민.hwp -> DIW-000843-마하민.hml +2026-01-28 17:42:18,027 - INFO - 변환 성공: DIW-000910-황진성.hwp -> DIW-000910-황진성.hml +2026-01-28 17:42:18,723 - INFO - 변환 성공: DIW-000915-윤시현.hwp -> DIW-000915-윤시현.hml +2026-01-28 17:42:19,308 - INFO - 변환 성공: DIW-000922-임소현.hwp -> DIW-000922-임소현.hml +2026-01-28 17:42:20,043 - INFO - 변환 성공: DIW-000923-이승하.hwp -> DIW-000923-이승하.hml +2026-01-28 17:42:20,544 - INFO - 변환 성공: DIW-000924-김지율.hwp -> DIW-000924-김지율.hml +2026-01-28 17:42:20,958 - INFO - 변환 성공: DIW-000925-이서율.hwp -> DIW-000925-이서율.hml +2026-01-28 17:42:21,514 - INFO - 변환 성공: DIW-000926-노태경.hwp -> DIW-000926-노태경.hml +2026-01-28 17:42:22,207 - INFO - 변환 성공: DIW-000927-이성원.hwp -> DIW-000927-이성원.hml +2026-01-28 17:42:22,615 - INFO - 변환 성공: DIW-000933-고현우.hwp -> DIW-000933-고현우.hml +2026-01-28 17:42:23,186 - INFO - 변환 성공: DIW-000939-윤하은.hwp -> DIW-000939-윤하은.hml +2026-01-28 17:42:23,737 - INFO - 변환 성공: DIW-000944-박도하.hwp -> DIW-000944-박도하.hml +2026-01-28 17:42:24,275 - INFO - 변환 성공: DIW-000972-이온유.hwp -> DIW-000972-이온유.hml +2026-01-28 17:42:24,894 - INFO - 변환 성공: DIW-001022-강하랑.hwp -> DIW-001022-강하랑.hml +2026-01-28 17:42:25,523 - INFO - 변환 성공: DIW-001042-평지성.hwp -> DIW-001042-평지성.hml +2026-01-28 17:42:26,120 - INFO - 변환 성공: DIW-001043-박신주.hwp -> DIW-001043-박신주.hml +2026-01-28 17:42:26,727 - INFO - 변환 성공: DIW-001044-이강후.hwp -> DIW-001044-이강후.hml +2026-01-28 17:42:27,316 - INFO - 변환 성공: DIW-001045-김아린.hwp -> DIW-001045-김아린.hml +2026-01-28 17:42:28,054 - INFO - 변환 성공: DIW-001046-오유준.hwp -> DIW-001046-오유준.hml +2026-01-28 17:42:28,733 - INFO - 변환 성공: DIW-001061-안은서.hwp -> DIW-001061-안은서.hml +2026-01-28 17:42:29,304 - INFO - 변환 성공: DIW-001064-형동건.hwp -> DIW-001064-형동건.hml +2026-01-28 17:42:29,867 - INFO - 변환 성공: DIW-001065-김가람.hwp -> DIW-001065-김가람.hml +2026-01-28 17:42:30,332 - INFO - 변환 성공: DIW-001066-이제율.hwp -> DIW-001066-이제율.hml +2026-01-28 17:42:30,742 - INFO - 변환 성공: DIW-001067-이지윤.hwp -> DIW-001067-이지윤.hml +2026-01-28 17:42:31,174 - INFO - 변환 성공: DIW-001068-김능우.hwp -> DIW-001068-김능우.hml +2026-01-28 17:42:31,601 - INFO - 변환 성공: DIW-001069-남도현.hwp -> DIW-001069-남도현.hml +2026-01-28 17:42:32,151 - INFO - 변환 성공: DIW-001071-김재윤.hwp -> DIW-001071-김재윤.hml +2026-01-28 17:42:32,592 - INFO - 변환 성공: DIW-001072-이서빈.hwp -> DIW-001072-이서빈.hml +2026-01-28 17:42:33,042 - INFO - 변환 성공: DIW-001074-문성율.hwp -> DIW-001074-문성율.hml +2026-01-28 17:42:33,509 - INFO - 변환 성공: DIW-001075-박수연.hwp -> DIW-001075-박수연.hml +2026-01-28 17:42:33,868 - INFO - 변환 성공: DIW-001111-이예나.hwp -> DIW-001111-이예나.hml +2026-01-28 17:42:34,195 - INFO - 변환 성공: DIW-001112-조은서.hwp -> DIW-001112-조은서.hml +2026-01-28 17:42:34,519 - INFO - 변환 성공: DIW-001114-엄시연.hwp -> DIW-001114-엄시연.hml +2026-01-28 17:42:34,941 - INFO - 변환 성공: DIW-001115-이윤서.hwp -> DIW-001115-이윤서.hml +2026-01-28 17:42:35,541 - INFO - 변환 성공: DIW-001116-이라경.hwp -> DIW-001116-이라경.hml +2026-01-28 17:42:36,164 - INFO - 변환 성공: DIW-001117-권예린.hwp -> DIW-001117-권예린.hml +2026-01-28 17:42:37,019 - INFO - 변환 성공: DIW-001118-이수연.hwp -> DIW-001118-이수연.hml +2026-01-28 17:42:37,867 - INFO - 변환 성공: DIW-001124-곽혜인.hwp -> DIW-001124-곽혜인.hml +2026-01-28 17:42:38,707 - INFO - 변환 성공: DIW-001125-손예지.hwp -> DIW-001125-손예지.hml +2026-01-28 17:42:39,505 - INFO - 변환 성공: DIW-001127-노화영.hwp -> DIW-001127-노화영.hml +2026-01-28 17:42:40,349 - INFO - 변환 성공: DIW-001128-김건우.hwp -> DIW-001128-김건우.hml +2026-01-28 17:42:41,102 - INFO - 변환 성공: DIW-001129-김지범.hwp -> DIW-001129-김지범.hml +2026-01-28 17:42:42,044 - INFO - 변환 성공: DIW-001130-오권율.hwp -> DIW-001130-오권율.hml +2026-01-28 17:42:42,878 - INFO - 변환 성공: DIW-001131-권주원.hwp -> DIW-001131-권주원.hml +2026-01-28 17:42:43,532 - INFO - 변환 성공: DIW-001132-김도현.hwp -> DIW-001132-김도현.hml +2026-01-28 17:42:44,139 - INFO - 변환 성공: DIW-001133-백채완.hwp -> DIW-001133-백채완.hml +2026-01-28 17:42:44,820 - INFO - 변환 성공: DIW-001134-백재웅.hwp -> DIW-001134-백재웅.hml +2026-01-28 17:42:45,528 - INFO - 변환 성공: DIW-001145-박정수.hwp -> DIW-001145-박정수.hml +2026-01-28 17:42:46,146 - INFO - 변환 성공: DIW-001151-김민준.hwp -> DIW-001151-김민준.hml +2026-01-28 17:42:46,820 - INFO - 변환 성공: DIW-001194-박선우.hwp -> DIW-001194-박선우.hml +2026-01-28 17:42:47,387 - INFO - 변환 성공: DIW-001198-이용준.hwp -> DIW-001198-이용준.hml +2026-01-28 17:42:47,957 - INFO - 변환 성공: DIW-001223-장예은.hwp -> DIW-001223-장예은.hml +2026-01-28 17:42:48,501 - INFO - 변환 성공: DIW-001226-김인서.hwp -> DIW-001226-김인서.hml +2026-01-28 17:42:49,049 - INFO - 변환 성공: DIW-001232-백준우.hwp -> DIW-001232-백준우.hml +2026-01-28 17:42:49,624 - INFO - 변환 성공: DIW-001233-윤승후.hwp -> DIW-001233-윤승후.hml +2026-01-28 17:42:50,183 - INFO - 변환 성공: DIW-001234-백진서.hwp -> DIW-001234-백진서.hml +2026-01-28 17:42:50,744 - INFO - 변환 성공: DIW-001238-김진운.hwp -> DIW-001238-김진운.hml +2026-01-28 17:42:51,273 - INFO - 변환 성공: DIW-001243-조문규.hwp -> DIW-001243-조문규.hml +2026-01-28 17:42:51,798 - INFO - 변환 성공: DIW-001255-이가온.hwp -> DIW-001255-이가온.hml +2026-01-28 17:42:52,338 - INFO - 변환 성공: DIW-001257-최규하.hwp -> DIW-001257-최규하.hml +2026-01-28 17:42:52,897 - INFO - 변환 성공: DIW-001299-김재우.hwp -> DIW-001299-김재우.hml +2026-01-28 17:42:53,427 - INFO - 변환 성공: DIW-001333-정다현.hwp -> DIW-001333-정다현.hml +2026-01-28 17:42:53,943 - INFO - 변환 성공: DIW-001335-성시후.hwp -> DIW-001335-성시후.hml +2026-01-28 17:42:54,379 - INFO - 변환 성공: DIW-001371-한유주.hwp -> DIW-001371-한유주.hml +2026-01-28 17:42:54,926 - INFO - 변환 성공: DIW-001398-박수진.hwp -> DIW-001398-박수진.hml +2026-01-28 17:42:55,494 - INFO - 변환 성공: DIW-001401-권공자.hwp -> DIW-001401-권공자.hml +2026-01-28 17:42:56,056 - INFO - 변환 성공: DIW-001435-김도윤.hwp -> DIW-001435-김도윤.hml +2026-01-28 17:42:56,615 - INFO - 변환 성공: DIW-001436-박서진.hwp -> DIW-001436-박서진.hml +2026-01-28 17:42:57,265 - INFO - 변환 성공: DIW-001438-이지안.hwp -> DIW-001438-이지안.hml +2026-01-28 17:42:57,726 - INFO - 변환 성공: DIW-001448-김연주.hwp -> DIW-001448-김연주.hml +2026-01-28 17:42:58,223 - INFO - 변환 성공: DIW-001472-신지환.hwp -> DIW-001472-신지환.hml +2026-01-28 17:42:58,768 - INFO - 변환 성공: DIW-001487-변연나.hwp -> DIW-001487-변연나.hml +2026-01-28 17:42:59,395 - INFO - 변환 성공: DIW-001488-박시현.hwp -> DIW-001488-박시현.hml +2026-01-28 17:42:59,986 - INFO - 변환 성공: DIW-001500-윤덕우.hwp -> DIW-001500-윤덕우.hml +2026-01-28 17:43:00,534 - INFO - 변환 성공: DIW-001501-박수빈.hwp -> DIW-001501-박수빈.hml +2026-01-28 17:43:01,121 - INFO - 변환 성공: DIW-001550-김윤재.hwp -> DIW-001550-김윤재.hml +2026-01-28 17:43:01,601 - INFO - 변환 성공: DIW-001551-장예진.hwp -> DIW-001551-장예진.hml +2026-01-28 17:43:01,960 - INFO - 변환 성공: DIW-001552-윤유진.hwp -> DIW-001552-윤유진.hml +2026-01-28 17:43:02,283 - INFO - 변환 성공: DIW-001553-기은유.hwp -> DIW-001553-기은유.hml +2026-01-28 17:43:02,592 - INFO - 변환 성공: DIW-001561-송다원.hwp -> DIW-001561-송다원.hml +2026-01-28 17:43:02,988 - INFO - 변환 성공: DIW-001562-박민건.hwp -> DIW-001562-박민건.hml +2026-01-28 17:43:03,526 - INFO - 변환 성공: DIW-001596-박세민.hwp -> DIW-001596-박세민.hml +2026-01-28 17:43:04,109 - INFO - 변환 성공: DIW-001624-이하윤.hwp -> DIW-001624-이하윤.hml +2026-01-28 17:43:04,728 - INFO - 변환 성공: DIW-001625-신유현.hwp -> DIW-001625-신유현.hml +2026-01-28 17:43:05,282 - INFO - 변환 성공: DIW-001636-최민하.hwp -> DIW-001636-최민하.hml +2026-01-28 17:43:05,851 - INFO - 변환 성공: DIW-001637-김태일.hwp -> DIW-001637-김태일.hml +2026-01-28 17:43:06,397 - INFO - 변환 성공: DIW-001638-김세준.hwp -> DIW-001638-김세준.hml +2026-01-28 17:43:07,000 - INFO - 변환 성공: DIW-001640-페드라노아정.hwp -> DIW-001640-페드라노아정.hml +2026-01-28 17:43:07,558 - INFO - 변환 성공: DIW-001654-우혜령.hwp -> DIW-001654-우혜령.hml +2026-01-28 17:43:08,105 - INFO - 변환 성공: DIW-001690-박주성.hwp -> DIW-001690-박주성.hml +2026-01-28 17:43:08,680 - INFO - 변환 성공: DIW-001738-허성빈.hwp -> DIW-001738-허성빈.hml +2026-01-28 17:43:09,158 - INFO - 변환 성공: DIW-001807-박주원.hwp -> DIW-001807-박주원.hml +2026-01-28 17:43:09,491 - INFO - 변환 성공: DIW-001808-이재욱.hwp -> DIW-001808-이재욱.hml +2026-01-28 17:43:09,914 - INFO - 변환 성공: DIW-001810-황서연.hwp -> DIW-001810-황서연.hml +2026-01-28 17:43:10,386 - INFO - 변환 성공: DIW-001832-김서영.hwp -> DIW-001832-김서영.hml +2026-01-28 17:43:10,891 - INFO - 변환 성공: DIW-001851-심효주.hwp -> DIW-001851-심효주.hml +2026-01-28 17:43:11,575 - INFO - 변환 성공: DIW-001872-김민성.hwp -> DIW-001872-김민성.hml +2026-01-28 17:43:12,222 - INFO - 변환 성공: DIW-001874-윤시현.hwp -> DIW-001874-윤시현.hml +2026-01-28 17:43:12,855 - INFO - 변환 성공: DIW-001888-김가연.hwp -> DIW-001888-김가연.hml +2026-01-28 17:43:13,486 - INFO - 변환 성공: DIW-001892-김성영.hwp -> DIW-001892-김성영.hml +2026-01-28 17:43:14,100 - INFO - 변환 성공: DIW-001895-김재훈.hwp -> DIW-001895-김재훈.hml +2026-01-28 17:43:14,760 - INFO - 변환 성공: DIW-001921-고태양.hwp -> DIW-001921-고태양.hml +2026-01-28 17:43:15,373 - INFO - 변환 성공: DIW-001922-박다현.hwp -> DIW-001922-박다현.hml +2026-01-28 17:43:15,973 - INFO - 변환 성공: DIW-001932-이지수.hwp -> DIW-001932-이지수.hml +2026-01-28 17:43:16,534 - INFO - 변환 성공: DIW-001933-임시윤.hwp -> DIW-001933-임시윤.hml +2026-01-28 17:43:17,103 - INFO - 변환 성공: DIW-001934-장은율.hwp -> DIW-001934-장은율.hml +2026-01-28 17:43:17,671 - INFO - 변환 성공: DIW-001935-지은성.hwp -> DIW-001935-지은성.hml +2026-01-28 17:43:18,234 - INFO - 변환 성공: DIW-001937-주윤담.hwp -> DIW-001937-주윤담.hml +2026-01-28 17:43:18,744 - INFO - 변환 성공: DIW-001938-김도우.hwp -> DIW-001938-김도우.hml +2026-01-28 17:43:19,278 - INFO - 변환 성공: DIW-001939-김보윤.hwp -> DIW-001939-김보윤.hml +2026-01-28 17:43:19,811 - INFO - 변환 성공: DIW-001940-한준희.hwp -> DIW-001940-한준희.hml +2026-01-28 17:43:20,328 - INFO - 변환 성공: DIW-001941-이린하.hwp -> DIW-001941-이린하.hml +2026-01-28 17:43:20,891 - INFO - 변환 성공: DIW-001942-박근우.hwp -> DIW-001942-박근우.hml +2026-01-28 17:43:21,412 - INFO - 변환 성공: DIW-001943-정예성.hwp -> DIW-001943-정예성.hml +2026-01-28 17:43:21,933 - INFO - 변환 성공: DIW-001944-강주하.hwp -> DIW-001944-강주하.hml +2026-01-28 17:43:22,472 - INFO - 변환 성공: DIW-001945-권두성.hwp -> DIW-001945-권두성.hml +2026-01-28 17:43:23,035 - INFO - 변환 성공: DIW-001946-최지유.hwp -> DIW-001946-최지유.hml +2026-01-28 17:43:23,594 - INFO - 변환 성공: DIW-001954-강승훈.hwp -> DIW-001954-강승훈.hml +2026-01-28 17:43:24,104 - INFO - 변환 성공: DIW-001955-류지우.hwp -> DIW-001955-류지우.hml +2026-01-28 17:43:24,455 - INFO - 변환 성공: DIW-001982-이다복.hwp -> DIW-001982-이다복.hml +2026-01-28 17:43:24,962 - INFO - 변환 성공: DIW-002061-임주희.hwp -> DIW-002061-임주희.hml +2026-01-28 17:43:25,502 - INFO - 변환 성공: DIW-002066-태현욱.hwp -> DIW-002066-태현욱.hml +2026-01-28 17:43:25,967 - INFO - 변환 성공: DIW-002119-김민호.hwp -> DIW-002119-김민호.hml +2026-01-28 17:43:26,438 - INFO - 변환 성공: DIW-002154-백주은.hwp -> DIW-002154-백주은.hml +2026-01-28 17:43:27,611 - INFO - 변환 성공: DIW-002155-김지효.hwp -> DIW-002155-김지효.hml +2026-01-28 17:43:28,224 - INFO - 변환 성공: DIW-002156-조은지.hwp -> DIW-002156-조은지.hml +2026-01-28 17:43:28,758 - INFO - 변환 성공: DIW-002194-구윤지.hwp -> DIW-002194-구윤지.hml +2026-01-28 17:43:29,327 - INFO - 변환 성공: DIW-002196-김도현.hwp -> DIW-002196-김도현.hml +2026-01-28 17:43:29,942 - INFO - 변환 성공: DIW-002197-김라희.hwp -> DIW-002197-김라희.hml +2026-01-28 17:43:30,500 - INFO - 변환 성공: DIW-002198-김수현.hwp -> DIW-002198-김수현.hml +2026-01-28 17:43:31,232 - INFO - 변환 성공: DIW-002233-신유나.hwp -> DIW-002233-신유나.hml +2026-01-28 17:43:31,823 - INFO - 변환 성공: DIW-002246-최민찬.hwp -> DIW-002246-최민찬.hml +2026-01-28 17:43:32,638 - INFO - 변환 성공: DIW-002388-임도아.hwp -> DIW-002388-임도아.hml +2026-01-28 17:43:33,340 - INFO - 변환 성공: DIW-002413-김상윤.hwp -> DIW-002413-김상윤.hml +2026-01-28 17:43:33,993 - INFO - 변환 성공: DIW-002506-강주원.hwp -> DIW-002506-강주원.hml +2026-01-28 17:43:34,566 - INFO - 변환 성공: DIW-002507-전여준.hwp -> DIW-002507-전여준.hml +2026-01-28 17:43:35,164 - INFO - 변환 성공: DIW-002508-박연우.hwp -> DIW-002508-박연우.hml +2026-01-28 17:43:35,798 - INFO - 변환 성공: DIW-002521-김병민.hwp -> DIW-002521-김병민.hml +2026-01-28 17:43:36,473 - INFO - 변환 성공: DIW-002524-김범준.hwp -> DIW-002524-김범준.hml +2026-01-28 17:43:37,048 - INFO - 변환 성공: DIW-002527-공동혁.hwp -> DIW-002527-공동혁.hml +2026-01-28 17:43:37,656 - INFO - 변환 성공: DIW-002528-정재환.hwp -> DIW-002528-정재환.hml +2026-01-28 17:43:38,457 - INFO - 변환 성공: DIW-002529-강단우.hwp -> DIW-002529-강단우.hml +2026-01-28 17:43:39,245 - INFO - 변환 성공: DIW-002532-마준영.hwp -> DIW-002532-마준영.hml +2026-01-28 17:43:40,067 - INFO - 변환 성공: DIW-002533-최재훈.hwp -> DIW-002533-최재훈.hml +2026-01-28 17:43:41,030 - INFO - 변환 성공: DIW-002534-김석원.hwp -> DIW-002534-김석원.hml +2026-01-28 17:43:41,929 - INFO - 변환 성공: DIW-002535-조윤찬.hwp -> DIW-002535-조윤찬.hml +2026-01-28 17:43:42,962 - INFO - 변환 성공: DIW-002554-한서진.hwp -> DIW-002554-한서진.hml +2026-01-28 17:43:43,961 - INFO - 변환 성공: DIW-002633-박채준.hwp -> DIW-002633-박채준.hml +2026-01-28 17:43:44,863 - INFO - 변환 성공: DIW-002635-김록원.hwp -> DIW-002635-김록원.hml +2026-01-28 17:43:45,681 - INFO - 변환 성공: DIW-002637-명지호.hwp -> DIW-002637-명지호.hml +2026-01-28 17:43:46,404 - INFO - 변환 성공: DIW-002673-노현제.hwp -> DIW-002673-노현제.hml +2026-01-28 17:43:47,254 - INFO - 변환 성공: DIW-002674-김지원.hwp -> DIW-002674-김지원.hml +2026-01-28 17:43:48,145 - INFO - 변환 성공: DIW-002675-도지민.hwp -> DIW-002675-도지민.hml +2026-01-28 17:43:48,964 - INFO - 변환 성공: DIW-002676-박은찬.hwp -> DIW-002676-박은찬.hml +2026-01-28 17:43:49,828 - INFO - 변환 성공: DIW-002677-송지아.hwp -> DIW-002677-송지아.hml +2026-01-28 17:43:50,952 - INFO - 변환 성공: DIW-002678-서형욱.hwp -> DIW-002678-서형욱.hml +2026-01-28 17:43:51,740 - INFO - 변환 성공: DIW-002679-박은우.hwp -> DIW-002679-박은우.hml +2026-01-28 17:43:52,639 - INFO - 변환 성공: DIW-002680-백성도.hwp -> DIW-002680-백성도.hml +2026-01-28 17:43:53,421 - INFO - 변환 성공: DIW-002681-서초아.hwp -> DIW-002681-서초아.hml +2026-01-28 17:43:54,148 - INFO - 변환 성공: DIW-002682-김도현.hwp -> DIW-002682-김도현.hml +2026-01-28 17:43:54,889 - INFO - 변환 성공: DIW-002683-서유준.hwp -> DIW-002683-서유준.hml +2026-01-28 17:43:55,662 - INFO - 변환 성공: DIW-002684-백인성.hwp -> DIW-002684-백인성.hml +2026-01-28 17:43:56,454 - INFO - 변환 성공: DIW-002685-나원준.hwp -> DIW-002685-나원준.hml +2026-01-28 17:43:57,219 - INFO - 변환 성공: DIW-002686-최예준.hwp -> DIW-002686-최예준.hml +2026-01-28 17:43:58,024 - INFO - 변환 성공: DIW-002687-길도경.hwp -> DIW-002687-길도경.hml +2026-01-28 17:43:58,793 - INFO - 변환 성공: DIW-002688-임하준.hwp -> DIW-002688-임하준.hml +2026-01-28 17:43:59,488 - INFO - 변환 성공: DIW-002689-구윤재.hwp -> DIW-002689-구윤재.hml +2026-01-28 17:44:00,272 - INFO - 변환 성공: DIW-002690-박하린.hwp -> DIW-002690-박하린.hml +2026-01-28 17:44:00,996 - INFO - 변환 성공: DIW-002691-이윤철.hwp -> DIW-002691-이윤철.hml +2026-01-28 17:44:01,751 - INFO - 변환 성공: DIW-002692-박도원.hwp -> DIW-002692-박도원.hml +2026-01-28 17:44:02,566 - INFO - 변환 성공: DIW-002693-정유나.hwp -> DIW-002693-정유나.hml +2026-01-28 17:44:03,429 - INFO - 변환 성공: DIW-002694-김준서.hwp -> DIW-002694-김준서.hml +2026-01-28 17:44:04,047 - INFO - 변환 성공: DIW-002695-박지인.hwp -> DIW-002695-박지인.hml +2026-01-28 17:44:04,787 - INFO - 변환 성공: DIW-002696-박재완.hwp -> DIW-002696-박재완.hml +2026-01-28 17:44:05,549 - INFO - 변환 성공: DIW-002697-오예서.hwp -> DIW-002697-오예서.hml +2026-01-28 17:44:06,254 - INFO - 변환 성공: DIW-002718-임채영.hwp -> DIW-002718-임채영.hml +2026-01-28 17:44:06,901 - INFO - 변환 성공: DIW-002720-최소윤.hwp -> DIW-002720-최소윤.hml +2026-01-28 17:44:07,709 - INFO - 변환 성공: DIW-002722-김찬휘.hwp -> DIW-002722-김찬휘.hml +2026-01-28 17:44:08,633 - INFO - 변환 성공: DIW-002843-김태겸.hwp -> DIW-002843-김태겸.hml +2026-01-28 17:44:09,543 - INFO - 변환 성공: DIW-002917-양준석.hwp -> DIW-002917-양준석.hml +2026-01-28 17:44:10,374 - INFO - 변환 성공: DIW-002918-이유천.hwp -> DIW-002918-이유천.hml +2026-01-28 17:44:11,295 - INFO - 변환 성공: DIW-002919-박민서.hwp -> DIW-002919-박민서.hml +2026-01-28 17:44:12,377 - INFO - 변환 성공: DIW-002920-김준영.hwp -> DIW-002920-김준영.hml +2026-01-28 17:44:13,129 - INFO - 변환 성공: DIW-002921-박주아.hwp -> DIW-002921-박주아.hml +2026-01-28 17:44:13,972 - INFO - 변환 성공: DIW-002922-권도현.hwp -> DIW-002922-권도현.hml +2026-01-28 17:44:15,046 - INFO - 변환 성공: DIW-002923-김우영.hwp -> DIW-002923-김우영.hml +2026-01-28 17:44:16,170 - INFO - 변환 성공: DIW-002924-임하준.hwp -> DIW-002924-임하준.hml +2026-01-28 17:44:16,962 - INFO - 변환 성공: DIW-002925-장라희.hwp -> DIW-002925-장라희.hml +2026-01-28 17:44:17,777 - INFO - 변환 성공: DIW-002926-강민서.hwp -> DIW-002926-강민서.hml +2026-01-28 17:44:18,647 - INFO - 변환 성공: DIW-002927-강인영.hwp -> DIW-002927-강인영.hml +2026-01-28 17:44:19,575 - INFO - 변환 성공: DIW-002931-김성우.hwp -> DIW-002931-김성우.hml +2026-01-28 17:44:20,312 - INFO - 변환 성공: DIW-002956-황시현.hwp -> DIW-002956-황시현.hml +2026-01-28 17:44:21,060 - INFO - 변환 성공: DIW-002961-손서연.hwp -> DIW-002961-손서연.hml +2026-01-28 17:44:21,831 - INFO - 변환 성공: DIW-002962-전시은.hwp -> DIW-002962-전시은.hml +2026-01-28 17:44:22,671 - INFO - 변환 성공: DIW-002963-온소율.hwp -> DIW-002963-온소율.hml +2026-01-28 17:44:23,436 - INFO - 변환 성공: DIW-002970-김서연.hwp -> DIW-002970-김서연.hml +2026-01-28 17:44:24,169 - INFO - 변환 성공: DIW-003067-박시후.hwp -> DIW-003067-박시후.hml +2026-01-28 17:44:24,890 - INFO - 변환 성공: DIW-003068-박서율.hwp -> DIW-003068-박서율.hml +2026-01-28 17:44:25,624 - INFO - 변환 성공: DIW-003069-최진우.hwp -> DIW-003069-최진우.hml +2026-01-28 17:44:26,386 - INFO - 변환 성공: DIW-003073-전지현.hwp -> DIW-003073-전지현.hml +2026-01-28 17:44:27,110 - INFO - 변환 성공: DIW-003147-정시연.hwp -> DIW-003147-정시연.hml +2026-01-28 17:44:27,897 - INFO - 변환 성공: DIW-003233-임찬우.hwp -> DIW-003233-임찬우.hml +2026-01-28 17:44:28,626 - INFO - 변환 성공: DIW-003234-도현율.hwp -> DIW-003234-도현율.hml +2026-01-28 17:44:29,488 - INFO - 변환 성공: DIW-003236-신준섭.hwp -> DIW-003236-신준섭.hml +2026-01-28 17:44:30,248 - INFO - 변환 성공: DIW-003240-한아름.hwp -> DIW-003240-한아름.hml +2026-01-28 17:44:31,164 - INFO - 변환 성공: DIW-003242-진윤서.hwp -> DIW-003242-진윤서.hml +2026-01-28 17:44:32,138 - INFO - 변환 성공: DIW-003243-유은우.hwp -> DIW-003243-유은우.hml +2026-01-28 17:44:32,876 - INFO - 변환 성공: DIW-003244-김리아.hwp -> DIW-003244-김리아.hml +2026-01-28 17:44:33,525 - INFO - 변환 성공: DIW-003245-한예린.hwp -> DIW-003245-한예린.hml +2026-01-28 17:44:34,106 - INFO - 변환 성공: DIW-003281-김나현.hwp -> DIW-003281-김나현.hml +2026-01-28 17:44:34,930 - INFO - 변환 성공: DIW-003284-조하윤.hwp -> DIW-003284-조하윤.hml +2026-01-28 17:44:35,889 - INFO - 변환 성공: DIW-003285-박세일.hwp -> DIW-003285-박세일.hml +2026-01-28 17:44:36,695 - INFO - 변환 성공: DIW-003374-이서연.hwp -> DIW-003374-이서연.hml +2026-01-28 17:44:37,543 - INFO - 변환 성공: DIW-003580-전지윤.hwp -> DIW-003580-전지윤.hml +2026-01-28 17:44:38,362 - INFO - 변환 성공: DIW-003597-김수현.hwp -> DIW-003597-김수현.hml +2026-01-28 17:44:39,371 - INFO - 변환 성공: DIW-003601-신주아.hwp -> DIW-003601-신주아.hml +2026-01-28 17:44:40,243 - INFO - 변환 성공: DIW-003615-김지완.hwp -> DIW-003615-김지완.hml +2026-01-28 17:44:41,040 - INFO - 변환 성공: DIW-003616-김사랑.hwp -> DIW-003616-김사랑.hml +2026-01-28 17:44:41,516 - INFO - 변환 성공: DIW-003618-박하준.hwp -> DIW-003618-박하준.hml +2026-01-28 17:44:42,107 - INFO - 변환 성공: DIW-003620-이규연.hwp -> DIW-003620-이규연.hml +2026-01-28 17:44:43,006 - INFO - 변환 성공: DIW-003645-문채은.hwp -> DIW-003645-문채은.hml +2026-01-28 17:44:43,783 - INFO - 변환 성공: DIW-003782-송아현.hwp -> DIW-003782-송아현.hml +2026-01-28 17:44:44,540 - INFO - 변환 성공: DIW-003833-오재홍.hwp -> DIW-003833-오재홍.hml +2026-01-28 17:44:45,190 - INFO - 변환 성공: DIW-003882-박지훈.hwp -> DIW-003882-박지훈.hml +2026-01-28 17:44:45,877 - INFO - 변환 성공: DIW-003913-최유빈.hwp -> DIW-003913-최유빈.hml +2026-01-28 17:44:46,695 - INFO - 변환 성공: DIW-003920-윤서하.hwp -> DIW-003920-윤서하.hml +2026-01-28 17:44:47,521 - INFO - 변환 성공: DIW-003922-정지훈.hwp -> DIW-003922-정지훈.hml +2026-01-28 17:44:48,373 - INFO - 변환 성공: DIW-003923-박경리.hwp -> DIW-003923-박경리.hml +2026-01-28 17:44:49,160 - INFO - 변환 성공: DIW-003927-구윤찬.hwp -> DIW-003927-구윤찬.hml +2026-01-28 17:44:49,938 - INFO - 변환 성공: DIW-003971-이수인.hwp -> DIW-003971-이수인.hml +2026-01-28 17:44:50,797 - INFO - 변환 성공: DIW-003972-고민준.hwp -> DIW-003972-고민준.hml +2026-01-28 17:44:51,640 - INFO - 변환 성공: DIW-003978-김채원.hwp -> DIW-003978-김채원.hml +2026-01-28 17:44:52,443 - INFO - 변환 성공: DIW-003980-조다나.hwp -> DIW-003980-조다나.hml +2026-01-28 17:44:53,325 - INFO - 변환 성공: DIW-003981-남우현.hwp -> DIW-003981-남우현.hml +2026-01-28 17:44:54,235 - INFO - 변환 성공: DIW-003982-최연수.hwp -> DIW-003982-최연수.hml +2026-01-28 17:44:55,045 - INFO - 변환 성공: DIW-003983-박예준.hwp -> DIW-003983-박예준.hml +2026-01-28 17:44:55,722 - INFO - 변환 성공: DIW-003984-문하은.hwp -> DIW-003984-문하은.hml +2026-01-28 17:44:56,514 - INFO - 변환 성공: DIW-003985-김선우.hwp -> DIW-003985-김선우.hml +2026-01-28 17:44:57,303 - INFO - 변환 성공: DIW-003986-심은우.hwp -> DIW-003986-심은우.hml +2026-01-28 17:44:58,208 - INFO - 변환 성공: DIW-003994-김현서.hwp -> DIW-003994-김현서.hml +2026-01-28 17:44:59,079 - INFO - 변환 성공: DIW-004002-고우리.hwp -> DIW-004002-고우리.hml +2026-01-28 17:44:59,785 - INFO - 변환 성공: DIW-004012-오도겸.hwp -> DIW-004012-오도겸.hml +2026-01-28 17:45:00,388 - INFO - 변환 성공: DIW-004051-박승아.hwp -> DIW-004051-박승아.hml +2026-01-28 17:45:01,218 - INFO - 변환 성공: DIW-004052-박종수.hwp -> DIW-004052-박종수.hml +2026-01-28 17:45:02,041 - INFO - 변환 성공: DIW-004104-주윤우.hwp -> DIW-004104-주윤우.hml +2026-01-28 17:45:02,804 - INFO - 변환 성공: DIW-004105-김하늘.hwp -> DIW-004105-김하늘.hml +2026-01-28 17:45:03,662 - INFO - 변환 성공: DIW-004119-이서윤.hwp -> DIW-004119-이서윤.hml +2026-01-28 17:45:04,538 - INFO - 변환 성공: DIW-004121-한지우.hwp -> DIW-004121-한지우.hml +2026-01-28 17:45:05,211 - INFO - 변환 성공: DIW-004124-박한결.hwp -> DIW-004124-박한결.hml +2026-01-28 17:45:05,700 - INFO - 변환 성공: DIW-004125-박한빛.hwp -> DIW-004125-박한빛.hml +2026-01-28 17:45:06,203 - INFO - 변환 성공: DIW-004127-이지원.hwp -> DIW-004127-이지원.hml +2026-01-28 17:45:06,774 - INFO - 변환 성공: DIW-004128-강호연.hwp -> DIW-004128-강호연.hml +2026-01-28 17:45:07,363 - INFO - 변환 성공: DIW-004141-정진경.hwp -> DIW-004141-정진경.hml +2026-01-28 17:45:08,333 - INFO - 변환 성공: DIW-004142-안하윤.hwp -> DIW-004142-안하윤.hml +2026-01-28 17:45:09,166 - INFO - 변환 성공: DIW-004143-최수현.hwp -> DIW-004143-최수현.hml +2026-01-28 17:45:09,914 - INFO - 변환 성공: DIW-004193-강유준.hwp -> DIW-004193-강유준.hml +2026-01-28 17:45:10,638 - INFO - 변환 성공: DIW-004194-최승유.hwp -> DIW-004194-최승유.hml +2026-01-28 17:45:11,474 - INFO - 변환 성공: DIW-004231-김윤서.hwp -> DIW-004231-김윤서.hml +2026-01-28 17:45:12,398 - INFO - 변환 성공: DIW-004280-이한비.hwp -> DIW-004280-이한비.hml +2026-01-28 17:45:13,097 - INFO - 변환 성공: DIW-004312-이현석.hwp -> DIW-004312-이현석.hml +2026-01-28 17:45:13,721 - INFO - 변환 성공: DIW-004332-홍란.hwp -> DIW-004332-홍란.hml +2026-01-28 17:45:14,476 - INFO - 변환 성공: DIW-004335-김예슬.hwp -> DIW-004335-김예슬.hml +2026-01-28 17:45:15,265 - INFO - 변환 성공: DIW-004497-조성준.hwp -> DIW-004497-조성준.hml +2026-01-28 17:45:16,075 - INFO - 변환 성공: DIW-004505-이도현.hwp -> DIW-004505-이도현.hml +2026-01-28 17:45:16,901 - INFO - 변환 성공: DIW-004506-최건우.hwp -> DIW-004506-최건우.hml +2026-01-28 17:45:17,641 - INFO - 변환 성공: DIW-004520-안하준.hwp -> DIW-004520-안하준.hml +2026-01-28 17:45:18,463 - INFO - 변환 성공: DIW-004543-우하민.hwp -> DIW-004543-우하민.hml +2026-01-28 17:45:19,241 - INFO - 변환 성공: DIW-004580-김지호.hwp -> DIW-004580-김지호.hml +2026-01-28 17:45:20,030 - INFO - 변환 성공: DIW-004587-박수민.hwp -> DIW-004587-박수민.hml +2026-01-28 17:45:20,872 - INFO - 변환 성공: DIW-004588-김하진.hwp -> DIW-004588-김하진.hml +2026-01-28 17:45:21,672 - INFO - 변환 성공: DIW-004614-손윤우.hwp -> DIW-004614-손윤우.hml +2026-01-28 17:45:22,523 - INFO - 변환 성공: DIW-004615-양지후.hwp -> DIW-004615-양지후.hml +2026-01-28 17:45:23,297 - INFO - 변환 성공: DIW-004616-양서윤.hwp -> DIW-004616-양서윤.hml +2026-01-28 17:45:24,065 - INFO - 변환 성공: DIW-004617-이재원.hwp -> DIW-004617-이재원.hml +2026-01-28 17:45:24,851 - INFO - 변환 성공: DIW-004625-심송연.hwp -> DIW-004625-심송연.hml +2026-01-28 17:45:25,754 - INFO - 변환 성공: DIW-004656-양지윤.hwp -> DIW-004656-양지윤.hml +2026-01-28 17:45:26,523 - INFO - 변환 성공: DIW-004667-박늘.hwp -> DIW-004667-박늘.hml +2026-01-28 17:45:27,374 - INFO - 변환 성공: DIW-004686-박제하.hwp -> DIW-004686-박제하.hml +2026-01-28 17:45:28,177 - INFO - 변환 성공: DIW-004691-박동균.hwp -> DIW-004691-박동균.hml +2026-01-28 17:45:28,945 - INFO - 변환 성공: DIW-004692-이서준.hwp -> DIW-004692-이서준.hml +2026-01-28 17:45:29,841 - INFO - 변환 성공: DIW-004693-고윤호.hwp -> DIW-004693-고윤호.hml +2026-01-28 17:45:30,565 - INFO - 변환 성공: DIW-004694-김서윤.hwp -> DIW-004694-김서윤.hml +2026-01-28 17:45:31,200 - INFO - 변환 성공: DIW-004743-박민준.hwp -> DIW-004743-박민준.hml +2026-01-28 17:45:31,727 - INFO - 변환 성공: DIW-004783-이윤아.hwp -> DIW-004783-이윤아.hml +2026-01-28 17:45:32,182 - INFO - 변환 성공: DIW-004785-허은우.hwp -> DIW-004785-허은우.hml +2026-01-28 17:45:32,758 - INFO - 변환 성공: DIW-004788-안세아.hwp -> DIW-004788-안세아.hml +2026-01-28 17:45:33,364 - INFO - 변환 성공: DIW-004796-서예나.hwp -> DIW-004796-서예나.hml +2026-01-28 17:45:33,978 - INFO - 변환 성공: DIW-004797-이주은.hwp -> DIW-004797-이주은.hml +2026-01-28 17:45:34,439 - INFO - 변환 성공: DIW-004810-신아윤.hwp -> DIW-004810-신아윤.hml +2026-01-28 17:45:34,973 - INFO - 변환 성공: DIW-004811-강지유.hwp -> DIW-004811-강지유.hml +2026-01-28 17:45:35,458 - INFO - 변환 성공: DIW-004824-한빈.hwp -> DIW-004824-한빈.hml +2026-01-28 17:45:35,963 - INFO - 변환 성공: DIW-004834-김차율.hwp -> DIW-004834-김차율.hml +2026-01-28 17:45:36,407 - INFO - 변환 성공: DIW-004879-박진환.hwp -> DIW-004879-박진환.hml +2026-01-28 17:45:36,972 - INFO - 변환 성공: DIW-004880-양소윤.hwp -> DIW-004880-양소윤.hml +2026-01-28 17:45:37,554 - INFO - 변환 성공: DIW-004881-김동은.hwp -> DIW-004881-김동은.hml +2026-01-28 17:45:38,124 - INFO - 변환 성공: DIW-004882-황리원.hwp -> DIW-004882-황리원.hml +2026-01-28 17:45:38,689 - INFO - 변환 성공: DIW-004883-이지환.hwp -> DIW-004883-이지환.hml +2026-01-28 17:45:39,251 - INFO - 변환 성공: DIW-004884-권도이.hwp -> DIW-004884-권도이.hml +2026-01-28 17:45:39,811 - INFO - 변환 성공: DIW-004885-정현우.hwp -> DIW-004885-정현우.hml +2026-01-28 17:45:40,360 - INFO - 변환 성공: DIW-004886-정세훈.hwp -> DIW-004886-정세훈.hml +2026-01-28 17:45:40,956 - INFO - 변환 성공: DIW-004892-최도윤.hwp -> DIW-004892-최도윤.hml +2026-01-28 17:45:41,543 - INFO - 변환 성공: DIW-004893-이한율.hwp -> DIW-004893-이한율.hml +2026-01-28 17:45:42,339 - INFO - 변환 성공: DIW-004894-이승아.hwp -> DIW-004894-이승아.hml +2026-01-28 17:45:42,864 - INFO - 변환 성공: DIW-004895-김기현.hwp -> DIW-004895-김기현.hml +2026-01-28 17:45:43,351 - INFO - 변환 성공: DIW-004911-이소윤.hwp -> DIW-004911-이소윤.hml +2026-01-28 17:45:43,720 - INFO - 변환 성공: DIW-004916-김가인.hwp -> DIW-004916-김가인.hml +2026-01-28 17:45:44,068 - INFO - 변환 성공: DIW-004917-나주훈.hwp -> DIW-004917-나주훈.hml +2026-01-28 17:45:44,417 - INFO - 변환 성공: DIW-004922-하동균.hwp -> DIW-004922-하동균.hml +2026-01-28 17:45:44,920 - INFO - 변환 성공: DIW-004923-하동현.hwp -> DIW-004923-하동현.hml +2026-01-28 17:45:45,468 - INFO - 변환 성공: DIW-004927-성시아.hwp -> DIW-004927-성시아.hml +2026-01-28 17:45:46,060 - INFO - 변환 성공: DIW-004928-XU CAN.hwp -> DIW-004928-XU CAN.hml +2026-01-28 17:45:46,519 - INFO - 변환 성공: DIW-004929-유지환.hwp -> DIW-004929-유지환.hml +2026-01-28 17:45:47,123 - INFO - 변환 성공: DIW-004930-류서현.hwp -> DIW-004930-류서현.hml +2026-01-28 17:45:47,807 - INFO - 변환 성공: DIW-004932-차민재.hwp -> DIW-004932-차민재.hml +2026-01-28 17:45:48,509 - INFO - 변환 성공: DIW-004940-김지호.hwp -> DIW-004940-김지호.hml +2026-01-28 17:45:49,326 - INFO - 변환 성공: DIW-004945-전지훈.hwp -> DIW-004945-전지훈.hml +2026-01-28 17:45:49,942 - INFO - 변환 성공: DIW-004948-윤슬.hwp -> DIW-004948-윤슬.hml +2026-01-28 17:45:50,541 - INFO - 변환 성공: DIW-005000-송재민.hwp -> DIW-005000-송재민.hml +2026-01-28 17:45:51,135 - INFO - 변환 성공: DIW-005001-박시원.hwp -> DIW-005001-박시원.hml +2026-01-28 17:45:51,828 - INFO - 변환 성공: DIW-005002-손현준.hwp -> DIW-005002-손현준.hml +2026-01-28 17:45:52,468 - INFO - 변환 성공: DIW-005003-류연준.hwp -> DIW-005003-류연준.hml +2026-01-28 17:45:53,083 - INFO - 변환 성공: DIW-005004-박성진.hwp -> DIW-005004-박성진.hml +2026-01-28 17:45:53,707 - INFO - 변환 성공: DIW-005005-이연준.hwp -> DIW-005005-이연준.hml +2026-01-28 17:45:54,285 - INFO - 변환 성공: DIW-005006-한도윤.hwp -> DIW-005006-한도윤.hml +2026-01-28 17:45:54,899 - INFO - 변환 성공: DIW-005067-백시율.hwp -> DIW-005067-백시율.hml +2026-01-28 17:45:55,421 - INFO - 변환 성공: DIW-005107-주한나.hwp -> DIW-005107-주한나.hml +2026-01-28 17:45:55,966 - INFO - 변환 성공: DIW-005110-오유진.hwp -> DIW-005110-오유진.hml +2026-01-28 17:45:56,520 - INFO - 변환 성공: DIW-005157-안윤.hwp -> DIW-005157-안윤.hml +2026-01-28 17:45:57,012 - INFO - 변환 성공: DIW-005158-김영환.hwp -> DIW-005158-김영환.hml +2026-01-28 17:45:57,881 - INFO - 변환 성공: DIW-005159-김시환.hwp -> DIW-005159-김시환.hml +2026-01-28 17:45:58,669 - INFO - 변환 성공: DIW-005189-정태규.hwp -> DIW-005189-정태규.hml +2026-01-28 17:45:59,226 - INFO - 변환 성공: DIW-005219-김선.hwp -> DIW-005219-김선.hml +2026-01-28 17:45:59,787 - INFO - 변환 성공: DIW-005222-박수빈.hwp -> DIW-005222-박수빈.hml +2026-01-28 17:46:00,539 - INFO - 변환 성공: DIW-005224-최서은.hwp -> DIW-005224-최서은.hml +2026-01-28 17:46:01,224 - INFO - 변환 성공: DIW-005225-장다영.hwp -> DIW-005225-장다영.hml +2026-01-28 17:46:01,859 - INFO - 변환 성공: DIW-005226-오윤호.hwp -> DIW-005226-오윤호.hml +2026-01-28 17:46:02,497 - INFO - 변환 성공: DIW-005227-박예진.hwp -> DIW-005227-박예진.hml +2026-01-28 17:46:03,121 - INFO - 변환 성공: DIW-005228-박규린.hwp -> DIW-005228-박규린.hml +2026-01-28 17:46:03,783 - INFO - 변환 성공: DIW-005229-이은빈.hwp -> DIW-005229-이은빈.hml +2026-01-28 17:46:04,417 - INFO - 변환 성공: DIW-005230-이지윤.hwp -> DIW-005230-이지윤.hml +2026-01-28 17:46:05,103 - INFO - 변환 성공: DIW-005231-강태호.hwp -> DIW-005231-강태호.hml +2026-01-28 17:46:05,830 - INFO - 변환 성공: DIW-005281-김승현.hwp -> DIW-005281-김승현.hml +2026-01-28 17:46:06,541 - INFO - 변환 성공: DIW-005308-염주원.hwp -> DIW-005308-염주원.hml +2026-01-28 17:46:07,120 - INFO - 변환 성공: DIW-005311-남가은.hwp -> DIW-005311-남가은.hml +2026-01-28 17:46:07,761 - INFO - 변환 성공: DIW-005316-이서영.hwp -> DIW-005316-이서영.hml +2026-01-28 17:46:08,463 - INFO - 변환 성공: DIW-005317-조언주.hwp -> DIW-005317-조언주.hml +2026-01-28 17:46:08,988 - INFO - 변환 성공: DIW-005319-이지오.hwp -> DIW-005319-이지오.hml +2026-01-28 17:46:09,527 - INFO - 변환 성공: DIW-005385-유가연.hwp -> DIW-005385-유가연.hml +2026-01-28 17:46:10,045 - INFO - 변환 성공: DIW-005386-조유열.hwp -> DIW-005386-조유열.hml +2026-01-28 17:46:10,616 - INFO - 변환 성공: DIW-005399-박이안.hwp -> DIW-005399-박이안.hml +2026-01-28 17:46:11,346 - INFO - 변환 성공: DIW-005400-이준희.hwp -> DIW-005400-이준희.hml +2026-01-28 17:46:12,071 - INFO - 변환 성공: DIW-005401-조하준.hwp -> DIW-005401-조하준.hml +2026-01-28 17:46:12,582 - INFO - 변환 성공: DIW-005507-최유빈.hwp -> DIW-005507-최유빈.hml +2026-01-28 17:46:12,908 - INFO - 변환 성공: DIW-005531-조수림.hwp -> DIW-005531-조수림.hml +2026-01-28 17:46:13,255 - INFO - 변환 성공: DIW-005532-윤준혁.hwp -> DIW-005532-윤준혁.hml +2026-01-28 17:46:13,830 - INFO - 변환 성공: DIW-005533-최우영.hwp -> DIW-005533-최우영.hml +2026-01-28 17:46:14,294 - INFO - 변환 성공: DIW-005536-최수아.hwp -> DIW-005536-최수아.hml +2026-01-28 17:46:14,884 - INFO - 변환 성공: DIW-005540-나혜원.hwp -> DIW-005540-나혜원.hml +2026-01-28 17:46:15,458 - INFO - 변환 성공: DIW-005610-박정현.hwp -> DIW-005610-박정현.hml +2026-01-28 17:46:15,921 - INFO - 변환 성공: DIW-005624-정희진.hwp -> DIW-005624-정희진.hml +2026-01-28 17:46:16,318 - INFO - 변환 성공: DIW-005636-박하늘.hwp -> DIW-005636-박하늘.hml +2026-01-28 17:46:17,437 - INFO - 변환 성공: DIW-005637-서권형.hwp -> DIW-005637-서권형.hml +2026-01-28 17:46:18,006 - INFO - 변환 성공: DIW-005648-윤시우.hwp -> DIW-005648-윤시우.hml +2026-01-28 17:46:18,567 - INFO - 변환 성공: DIW-005651-김민지.hwp -> DIW-005651-김민지.hml +2026-01-28 17:46:19,013 - INFO - 변환 성공: DIW-005738-송나원.hwp -> DIW-005738-송나원.hml +2026-01-28 17:46:19,370 - INFO - 변환 성공: DIW-005739-이정범.hwp -> DIW-005739-이정범.hml +2026-01-28 17:46:19,677 - INFO - 변환 성공: DIW-005768-문태성.hwp -> DIW-005768-문태성.hml +2026-01-28 17:46:20,116 - INFO - 변환 성공: DIW-005769-김대현.hwp -> DIW-005769-김대현.hml +2026-01-28 17:46:20,640 - INFO - 변환 성공: DIW-005770-정우빈.hwp -> DIW-005770-정우빈.hml +2026-01-28 17:46:21,225 - INFO - 변환 성공: DIW-005838-한승지.hwp -> DIW-005838-한승지.hml +2026-01-28 17:46:21,805 - INFO - 변환 성공: DIW-005840-명현승.hwp -> DIW-005840-명현승.hml +2026-01-28 17:46:22,251 - INFO - 변환 성공: DIW-005841-임태서.hwp -> DIW-005841-임태서.hml +2026-01-28 17:46:22,684 - INFO - 변환 성공: DIW-005843-김주원.hwp -> DIW-005843-김주원.hml +2026-01-28 17:46:23,239 - INFO - 변환 성공: DIW-005845-이채원.hwp -> DIW-005845-이채원.hml +2026-01-28 17:46:23,749 - INFO - 변환 성공: DIW-005846-이채영.hwp -> DIW-005846-이채영.hml +2026-01-28 17:46:24,280 - INFO - 변환 성공: DIW-005847-최예지.hwp -> DIW-005847-최예지.hml +2026-01-28 17:46:25,111 - INFO - 변환 성공: DIW-005848-김우영.hwp -> DIW-005848-김우영.hml +2026-01-28 17:46:25,512 - INFO - 변환 성공: DIW-005851-최민기.hwp -> DIW-005851-최민기.hml +2026-01-28 17:46:25,914 - INFO - 변환 성공: DIW-005854-이서준.hwp -> DIW-005854-이서준.hml +2026-01-28 17:46:26,472 - INFO - 변환 성공: DIW-005859-서지민.hwp -> DIW-005859-서지민.hml +2026-01-28 17:46:26,921 - INFO - 변환 성공: DIW-005861-박태희.hwp -> DIW-005861-박태희.hml +2026-01-28 17:46:27,346 - INFO - 변환 성공: DIW-005864-안서준.hwp -> DIW-005864-안서준.hml +2026-01-28 17:46:27,886 - INFO - 변환 성공: DIW-005865-김도현.hwp -> DIW-005865-김도현.hml +2026-01-28 17:46:28,450 - INFO - 변환 성공: DIW-005874-홍승준.hwp -> DIW-005874-홍승준.hml +2026-01-28 17:46:28,952 - INFO - 변환 성공: DIW-005901-고승현.hwp -> DIW-005901-고승현.hml +2026-01-28 17:46:29,499 - INFO - 변환 성공: DIW-005902-조은우.hwp -> DIW-005902-조은우.hml +2026-01-28 17:46:29,942 - INFO - 변환 성공: DIW-005967-양정훈.hwp -> DIW-005967-양정훈.hml +2026-01-28 17:46:30,378 - INFO - 변환 성공: DIW-005971-임하준.hwp -> DIW-005971-임하준.hml +2026-01-28 17:46:30,827 - INFO - 변환 성공: DIW-005973-양희우.hwp -> DIW-005973-양희우.hml +2026-01-28 17:46:31,390 - INFO - 변환 성공: DIW-005975-이도경.hwp -> DIW-005975-이도경.hml +2026-01-28 17:46:31,993 - INFO - 변환 성공: DIW-005977-김하은.hwp -> DIW-005977-김하은.hml +2026-01-28 17:46:32,549 - INFO - 변환 성공: DIW-005994-김주은.hwp -> DIW-005994-김주은.hml +2026-01-28 17:46:33,008 - INFO - 변환 성공: DIW-006030-석우준.hwp -> DIW-006030-석우준.hml +2026-01-28 17:46:33,432 - INFO - 변환 성공: DIW-006075-유연서.hwp -> DIW-006075-유연서.hml +2026-01-28 17:46:33,970 - INFO - 변환 성공: DIW-006077-유연진.hwp -> DIW-006077-유연진.hml +2026-01-28 17:46:34,407 - INFO - 변환 성공: DIW-006089-최민혁.hwp -> DIW-006089-최민혁.hml +2026-01-28 17:46:34,848 - INFO - 변환 성공: DIW-006092-배유나.hwp -> DIW-006092-배유나.hml +2026-01-28 17:46:35,394 - INFO - 변환 성공: DIW-006122-이서진.hwp -> DIW-006122-이서진.hml +2026-01-28 17:46:36,241 - INFO - 변환 성공: DIW-006232-김시윤.hwp -> DIW-006232-김시윤.hml +2026-01-28 17:46:36,797 - INFO - 변환 성공: DIW-006233-이다은.hwp -> DIW-006233-이다은.hml +2026-01-28 17:46:37,308 - INFO - 변환 성공: DIW-006237-이서윤.hwp -> DIW-006237-이서윤.hml +2026-01-28 17:46:37,740 - INFO - 변환 성공: DIW-006242-황현우.hwp -> DIW-006242-황현우.hml +2026-01-28 17:46:38,062 - INFO - 변환 성공: DIW-006248-주윤서.hwp -> DIW-006248-주윤서.hml +2026-01-28 17:46:38,472 - INFO - 변환 성공: DIW-006262-국신율.hwp -> DIW-006262-국신율.hml +2026-01-28 17:46:39,027 - INFO - 변환 성공: DIW-006267-신동주.hwp -> DIW-006267-신동주.hml +2026-01-28 17:46:39,563 - INFO - 변환 성공: DIW-006283-박채희.hwp -> DIW-006283-박채희.hml +2026-01-28 17:46:52,732 - INFO - 변환 성공: DIW-006287-이아인.hwp -> DIW-006287-이아인.hml +2026-01-28 17:46:53,136 - INFO - 변환 성공: DIW-006329-유시영.hwp -> DIW-006329-유시영.hml +2026-01-28 17:46:53,633 - INFO - 변환 성공: DIW-006352-황다겸.hwp -> DIW-006352-황다겸.hml +2026-01-28 17:46:54,162 - INFO - 변환 성공: DIW-006365-최우주.hwp -> DIW-006365-최우주.hml +2026-01-28 17:46:54,563 - INFO - 변환 성공: DIW-006446-이승연.hwp -> DIW-006446-이승연.hml +2026-01-28 17:46:54,994 - INFO - 변환 성공: DIW-006463-정진원.hwp -> DIW-006463-정진원.hml +2026-01-28 17:46:55,507 - INFO - 변환 성공: DIW-006464-유한결.hwp -> DIW-006464-유한결.hml +2026-01-28 17:46:56,020 - INFO - 변환 성공: DIW-006530-김서현.hwp -> DIW-006530-김서현.hml +2026-01-28 17:46:56,597 - INFO - 변환 성공: DIW-006540-오혜성.hwp -> DIW-006540-오혜성.hml +2026-01-28 17:46:57,226 - INFO - 변환 성공: DIW-006578-신지유.hwp -> DIW-006578-신지유.hml +2026-01-28 17:46:57,755 - INFO - 변환 성공: DIW-006583-전도훈.hwp -> DIW-006583-전도훈.hml +2026-01-28 17:46:58,294 - INFO - 변환 성공: DIW-006589-오서진.hwp -> DIW-006589-오서진.hml +2026-01-28 17:46:58,827 - INFO - 변환 성공: DIW-006590-나서하.hwp -> DIW-006590-나서하.hml +2026-01-28 17:46:59,337 - INFO - 변환 성공: DIW-006610-조수아.hwp -> DIW-006610-조수아.hml +2026-01-28 17:46:59,904 - INFO - 변환 성공: DIW-006658-정소연.hwp -> DIW-006658-정소연.hml +2026-01-28 17:47:00,528 - INFO - 변환 성공: DIW-006659-조연서.hwp -> DIW-006659-조연서.hml +2026-01-28 17:47:01,062 - INFO - 변환 성공: DIW-006666-이준우.hwp -> DIW-006666-이준우.hml +2026-01-28 17:47:01,596 - INFO - 변환 성공: DIW-006668-임주원.hwp -> DIW-006668-임주원.hml +2026-01-28 17:47:02,190 - INFO - 변환 성공: DIW-006698-박서우.hwp -> DIW-006698-박서우.hml +2026-01-28 17:47:02,734 - INFO - 변환 성공: DIW-006732-박온.hwp -> DIW-006732-박온.hml +2026-01-28 17:47:03,267 - INFO - 변환 성공: DIW-006743-강민주.hwp -> DIW-006743-강민주.hml +2026-01-28 17:47:03,871 - INFO - 변환 성공: DIW-006744-정지윤.hwp -> DIW-006744-정지윤.hml +2026-01-28 17:47:04,437 - INFO - 변환 성공: DIW-006749-박소연.hwp -> DIW-006749-박소연.hml +2026-01-28 17:47:04,971 - INFO - 변환 성공: DIW-006751-황수용.hwp -> DIW-006751-황수용.hml +2026-01-28 17:47:05,533 - INFO - 변환 성공: DIW-006752-강범준.hwp -> DIW-006752-강범준.hml +2026-01-28 17:47:06,077 - INFO - 변환 성공: DIW-006753-최수훈.hwp -> DIW-006753-최수훈.hml +2026-01-28 17:47:06,685 - INFO - 변환 성공: DIW-006756-손민재.hwp -> DIW-006756-손민재.hml +2026-01-28 17:47:07,231 - INFO - 변환 성공: DIW-006757-손민서.hwp -> DIW-006757-손민서.hml +2026-01-28 17:47:07,751 - INFO - 변환 성공: DIW-006797-김주성.hwp -> DIW-006797-김주성.hml +2026-01-28 17:47:08,386 - INFO - 변환 성공: DIW-006799-박시우.hwp -> DIW-006799-박시우.hml +2026-01-28 17:47:08,989 - INFO - 변환 성공: DIW-006802-이재건.hwp -> DIW-006802-이재건.hml +2026-01-28 17:47:09,578 - INFO - 변환 성공: DIW-006804-이정민.hwp -> DIW-006804-이정민.hml +2026-01-28 17:47:10,125 - INFO - 변환 성공: DIW-007434-신은솔.hwp -> DIW-007434-신은솔.hml +2026-01-28 17:47:10,672 - INFO - 변환 성공: DIW-007556-장은서.hwp -> DIW-007556-장은서.hml +2026-01-28 17:47:11,174 - INFO - 변환 성공: DIW-007571-노아인.hwp -> DIW-007571-노아인.hml +2026-01-28 17:47:11,717 - INFO - 변환 성공: DIW-007608-안하임.hwp -> DIW-007608-안하임.hml +2026-01-28 17:47:12,255 - INFO - 변환 성공: DIW-007624-김명리.hwp -> DIW-007624-김명리.hml +2026-01-28 17:47:12,804 - INFO - 변환 성공: DIW-007645-배영재.hwp -> DIW-007645-배영재.hml +2026-01-28 17:47:13,327 - INFO - 변환 성공: DIW-007646-배시현.hwp -> DIW-007646-배시현.hml +2026-01-28 17:47:13,895 - INFO - 변환 성공: DIW-007647-채우혁.hwp -> DIW-007647-채우혁.hml +2026-01-28 17:47:14,424 - INFO - 변환 성공: DIW-007649-고도윤.hwp -> DIW-007649-고도윤.hml +2026-01-28 17:47:14,957 - INFO - 변환 성공: DIW-007650-최수지.hwp -> DIW-007650-최수지.hml +2026-01-28 17:47:15,435 - INFO - 변환 성공: DIW-007679-양승현.hwp -> DIW-007679-양승현.hml +2026-01-28 17:47:15,863 - INFO - 변환 성공: DIW-007707-손지호.hwp -> DIW-007707-손지호.hml +2026-01-28 17:47:16,418 - INFO - 변환 성공: DIW-007774-이원표.hwp -> DIW-007774-이원표.hml +2026-01-28 17:47:16,991 - INFO - 변환 성공: DIW-007784-박지석.hwp -> DIW-007784-박지석.hml +2026-01-28 17:47:17,611 - INFO - 변환 성공: DIW-007814-김태원.hwp -> DIW-007814-김태원.hml +2026-01-28 17:47:18,264 - INFO - 변환 성공: DIW-007831-홍은기.hwp -> DIW-007831-홍은기.hml +2026-01-28 17:47:18,935 - INFO - 변환 성공: DIW-007832-조승우.hwp -> DIW-007832-조승우.hml +2026-01-28 17:47:19,510 - INFO - 변환 성공: DIW-007860-김리원.hwp -> DIW-007860-김리원.hml +2026-01-28 17:47:20,145 - INFO - 변환 성공: DIW_2601A.hwpx -> DIW_2601A.hml +2026-01-28 17:47:20,614 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601\A\DIW -> D:\project\HWP\HWP-Scoring\output\2601\A\DIW +2026-01-28 17:47:21,115 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601\B\DIW +2026-01-28 17:47:28,062 - INFO - 변환 성공: DIW-000010-노민준.hwp -> DIW-000010-노민준.hml +2026-01-28 17:47:28,712 - INFO - 변환 성공: DIW-000014-노서준.hwp -> DIW-000014-노서준.hml +2026-01-28 17:47:29,550 - INFO - 변환 성공: DIW-000112-설우진.hwp -> DIW-000112-설우진.hml +2026-01-28 17:47:30,161 - INFO - 변환 성공: DIW-000113-오상은.hwp -> DIW-000113-오상은.hml +2026-01-28 17:47:30,741 - INFO - 변환 성공: DIW-000128-황기민.hwp -> DIW-000128-황기민.hml +2026-01-28 17:47:31,365 - INFO - 변환 성공: DIW-000137-고은기.hwp -> DIW-000137-고은기.hml +2026-01-28 17:47:31,953 - INFO - 변환 성공: DIW-000164-이준우.hwp -> DIW-000164-이준우.hml +2026-01-28 17:47:32,555 - INFO - 변환 성공: DIW-000171-변재민.hwp -> DIW-000171-변재민.hml +2026-01-28 17:47:33,206 - INFO - 변환 성공: DIW-000236-박상정.hwp -> DIW-000236-박상정.hml +2026-01-28 17:47:34,085 - INFO - 변환 성공: DIW-000237-김미선.hwp -> DIW-000237-김미선.hml +2026-01-28 17:47:34,710 - INFO - 변환 성공: DIW-000289-홍시완.hwp -> DIW-000289-홍시완.hml +2026-01-28 17:47:35,442 - INFO - 변환 성공: DIW-000329-정정연.hwp -> DIW-000329-정정연.hml +2026-01-28 17:47:35,990 - INFO - 변환 성공: DIW-000347-이서은.hwp -> DIW-000347-이서은.hml +2026-01-28 17:47:36,603 - INFO - 변환 성공: DIW-000348-김세준.hwp -> DIW-000348-김세준.hml +2026-01-28 17:47:37,184 - INFO - 변환 성공: DIW-000351-이서진.hwp -> DIW-000351-이서진.hml +2026-01-28 17:47:37,751 - INFO - 변환 성공: DIW-000352-남유재.hwp -> DIW-000352-남유재.hml +2026-01-28 17:47:38,452 - INFO - 변환 성공: DIW-000353-홍윤.hwp -> DIW-000353-홍윤.hml +2026-01-28 17:47:39,074 - INFO - 변환 성공: DIW-000354-도현우.hwp -> DIW-000354-도현우.hml +2026-01-28 17:47:39,620 - INFO - 변환 성공: DIW-000355-여준겸.hwp -> DIW-000355-여준겸.hml +2026-01-28 17:47:40,545 - INFO - 변환 성공: DIW-000356-최은혜.hwp -> DIW-000356-최은혜.hml +2026-01-28 17:47:41,269 - INFO - 변환 성공: DIW-000359-김민경.hwp -> DIW-000359-김민경.hml +2026-01-28 17:47:41,807 - INFO - 변환 성공: DIW-000369-김유찬.hwp -> DIW-000369-김유찬.hml +2026-01-28 17:47:42,372 - INFO - 변환 성공: DIW-000370-김태연.hwp -> DIW-000370-김태연.hml +2026-01-28 17:47:43,069 - INFO - 변환 성공: DIW-000445-천경호.hwp -> DIW-000445-천경호.hml +2026-01-28 17:47:43,715 - INFO - 변환 성공: DIW-000446-장현준.hwp -> DIW-000446-장현준.hml +2026-01-28 17:47:44,326 - INFO - 변환 성공: DIW-000448-안수현.hwp -> DIW-000448-안수현.hml +2026-01-28 17:47:44,925 - INFO - 변환 성공: DIW-000449-김지완.hwp -> DIW-000449-김지완.hml +2026-01-28 17:47:45,389 - INFO - 변환 성공: DIW-000508-권하랑.hwp -> DIW-000508-권하랑.hml +2026-01-28 17:47:45,812 - INFO - 변환 성공: DIW-000619-김종헌.hwp -> DIW-000619-김종헌.hml +2026-01-28 17:47:46,357 - INFO - 변환 성공: DIW-000651-김서현.hwp -> DIW-000651-김서현.hml +2026-01-28 17:47:47,017 - INFO - 변환 성공: DIW-000652-허예솔.hwp -> DIW-000652-허예솔.hml +2026-01-28 17:47:47,637 - INFO - 변환 성공: DIW-000653-이채원.hwp -> DIW-000653-이채원.hml +2026-01-28 17:47:48,235 - INFO - 변환 성공: DIW-000654-장하율.hwp -> DIW-000654-장하율.hml +2026-01-28 17:47:48,972 - INFO - 변환 성공: DIW-000655-우세영.hwp -> DIW-000655-우세영.hml +2026-01-28 17:47:49,579 - INFO - 변환 성공: DIW-000662-구나연.hwp -> DIW-000662-구나연.hml +2026-01-28 17:47:50,192 - INFO - 변환 성공: DIW-000663-박예은.hwp -> DIW-000663-박예은.hml +2026-01-28 17:47:50,784 - INFO - 변환 성공: DIW-000689-서지율.hwp -> DIW-000689-서지율.hml +2026-01-28 17:47:51,490 - INFO - 변환 성공: DIW-000698-이서준.hwp -> DIW-000698-이서준.hml +2026-01-28 17:47:52,071 - INFO - 변환 성공: DIW-000699-이수아.hwp -> DIW-000699-이수아.hml +2026-01-28 17:47:52,673 - INFO - 변환 성공: DIW-000702-이유건.hwp -> DIW-000702-이유건.hml +2026-01-28 17:47:53,372 - INFO - 변환 성공: DIW-000703-이윤솔.hwp -> DIW-000703-이윤솔.hml +2026-01-28 17:47:53,911 - INFO - 변환 성공: DIW-000709-전보민.hwp -> DIW-000709-전보민.hml +2026-01-28 17:47:54,483 - INFO - 변환 성공: DIW-000712-정서현.hwp -> DIW-000712-정서현.hml +2026-01-28 17:47:55,050 - INFO - 변환 성공: DIW-000713-정성준.hwp -> DIW-000713-정성준.hml +2026-01-28 17:47:55,639 - INFO - 변환 성공: DIW-000736-조정우.hwp -> DIW-000736-조정우.hml +2026-01-28 17:47:56,225 - INFO - 변환 성공: DIW-000737-전준영.hwp -> DIW-000737-전준영.hml +2026-01-28 17:47:56,889 - INFO - 변환 성공: DIW-000738-조예나.hwp -> DIW-000738-조예나.hml +2026-01-28 17:47:57,484 - INFO - 변환 성공: DIW-000739-조우민.hwp -> DIW-000739-조우민.hml +2026-01-28 17:47:58,019 - INFO - 변환 성공: DIW-000782-진현우.hwp -> DIW-000782-진현우.hml +2026-01-28 17:47:58,733 - INFO - 변환 성공: DIW-000783-곽민제.hwp -> DIW-000783-곽민제.hml +2026-01-28 17:47:59,357 - INFO - 변환 성공: DIW-000785-곽민승.hwp -> DIW-000785-곽민승.hml +2026-01-28 17:47:59,937 - INFO - 변환 성공: DIW-000799-이민상.hwp -> DIW-000799-이민상.hml +2026-01-28 17:48:00,511 - INFO - 변환 성공: DIW-000802-박라희.hwp -> DIW-000802-박라희.hml +2026-01-28 17:48:01,101 - INFO - 변환 성공: DIW-000871-김서율.hwp -> DIW-000871-김서율.hml +2026-01-28 17:48:01,823 - INFO - 변환 성공: DIW-000872-정다은.hwp -> DIW-000872-정다은.hml +2026-01-28 17:48:02,442 - INFO - 변환 성공: DIW-000874-우현우.hwp -> DIW-000874-우현우.hml +2026-01-28 17:48:03,011 - INFO - 변환 성공: DIW-000875-주연재.hwp -> DIW-000875-주연재.hml +2026-01-28 17:48:03,571 - INFO - 변환 성공: DIW-000876-정예림.hwp -> DIW-000876-정예림.hml +2026-01-28 17:48:04,224 - INFO - 변환 성공: DIW-000877-권다진.hwp -> DIW-000877-권다진.hml +2026-01-28 17:48:04,796 - INFO - 변환 성공: DIW-000879-임소윤.hwp -> DIW-000879-임소윤.hml +2026-01-28 17:48:05,323 - INFO - 변환 성공: DIW-000880-김아윤.hwp -> DIW-000880-김아윤.hml +2026-01-28 17:48:05,890 - INFO - 변환 성공: DIW-000881-박서영.hwp -> DIW-000881-박서영.hml +2026-01-28 17:48:06,460 - INFO - 변환 성공: DIW-000882-박지희.hwp -> DIW-000882-박지희.hml +2026-01-28 17:48:07,004 - INFO - 변환 성공: DIW-000883-손예설.hwp -> DIW-000883-손예설.hml +2026-01-28 17:48:07,583 - INFO - 변환 성공: DIW-000884-주연서.hwp -> DIW-000884-주연서.hml +2026-01-28 17:48:08,117 - INFO - 변환 성공: DIW-000888-김유민.hwp -> DIW-000888-김유민.hml +2026-01-28 17:48:08,651 - INFO - 변환 성공: DIW-000969-장민하.hwp -> DIW-000969-장민하.hml +2026-01-28 17:48:09,201 - INFO - 변환 성공: DIW-001027-이윤우.hwp -> DIW-001027-이윤우.hml +2026-01-28 17:48:09,760 - INFO - 변환 성공: DIW-001149-류재윤.hwp -> DIW-001149-류재윤.hml +2026-01-28 17:48:10,313 - INFO - 변환 성공: DIW-001150-박종명.hwp -> DIW-001150-박종명.hml +2026-01-28 17:48:10,845 - INFO - 변환 성공: DIW-001152-최시윤.hwp -> DIW-001152-최시윤.hml +2026-01-28 17:48:11,188 - INFO - 변환 성공: DIW-001153-김도윤.hwp -> DIW-001153-김도윤.hml +2026-01-28 17:48:11,682 - INFO - 변환 성공: DIW-001154-최현규.hwp -> DIW-001154-최현규.hml +2026-01-28 17:48:12,439 - INFO - 변환 성공: DIW-001155-김재슬.hwp -> DIW-001155-김재슬.hml +2026-01-28 17:48:12,767 - INFO - 변환 성공: DIW-001156-이상민.hwp -> DIW-001156-이상민.hml +2026-01-28 17:48:13,106 - INFO - 변환 성공: DIW-001158-조한결.hwp -> DIW-001158-조한결.hml +2026-01-28 17:48:13,545 - INFO - 변환 성공: DIW-001159-한채민.hwp -> DIW-001159-한채민.hml +2026-01-28 17:48:14,041 - INFO - 변환 성공: DIW-001168-이혜정.hwp -> DIW-001168-이혜정.hml +2026-01-28 17:48:14,621 - INFO - 변환 성공: DIW-001200-김지수.hwp -> DIW-001200-김지수.hml +2026-01-28 17:48:15,107 - INFO - 변환 성공: DIW-001201-장문성.hwp -> DIW-001201-장문성.hml +2026-01-28 17:48:15,540 - INFO - 변환 성공: DIW-001202-엄재준.hwp -> DIW-001202-엄재준.hml +2026-01-28 17:48:16,142 - INFO - 변환 성공: DIW-001203-김연후.hwp -> DIW-001203-김연후.hml +2026-01-28 17:48:16,724 - INFO - 변환 성공: DIW-001204-손준서.hwp -> DIW-001204-손준서.hml +2026-01-28 17:48:17,159 - INFO - 변환 성공: DIW-001205-김민천.hwp -> DIW-001205-김민천.hml +2026-01-28 17:48:17,501 - INFO - 변환 성공: DIW-001206-김현서.hwp -> DIW-001206-김현서.hml +2026-01-28 17:48:17,971 - INFO - 변환 성공: DIW-001207-이소율.hwp -> DIW-001207-이소율.hml +2026-01-28 17:48:18,289 - INFO - 변환 성공: DIW-001208-이조현.hwp -> DIW-001208-이조현.hml +2026-01-28 17:48:18,739 - INFO - 변환 성공: DIW-001209-권태운.hwp -> DIW-001209-권태운.hml +2026-01-28 17:48:19,282 - INFO - 변환 성공: DIW-001210-홍윤지.hwp -> DIW-001210-홍윤지.hml +2026-01-28 17:48:19,870 - INFO - 변환 성공: DIW-001211-홍윤아.hwp -> DIW-001211-홍윤아.hml +2026-01-28 17:48:20,477 - INFO - 변환 성공: DIW-001212-배현서.hwp -> DIW-001212-배현서.hml +2026-01-28 17:48:21,054 - INFO - 변환 성공: DIW-001214-허정원.hwp -> DIW-001214-허정원.hml +2026-01-28 17:48:21,556 - INFO - 변환 성공: DIW-001215-김나연.hwp -> DIW-001215-김나연.hml +2026-01-28 17:48:21,991 - INFO - 변환 성공: DIW-001217-정호민.hwp -> DIW-001217-정호민.hml +2026-01-28 17:48:22,553 - INFO - 변환 성공: DIW-001245-김효은.hwp -> DIW-001245-김효은.hml +2026-01-28 17:48:23,161 - INFO - 변환 성공: DIW-001276-최대로.hwp -> DIW-001276-최대로.hml +2026-01-28 17:48:23,701 - INFO - 변환 성공: DIW-001281-홍다성.hwp -> DIW-001281-홍다성.hml +2026-01-28 17:48:24,251 - INFO - 변환 성공: DIW-001282-김준서.hwp -> DIW-001282-김준서.hml +2026-01-28 17:48:24,742 - INFO - 변환 성공: DIW-001308-허하람.hwp -> DIW-001308-허하람.hml +2026-01-28 17:48:25,122 - INFO - 변환 성공: DIW-001309-구서연.hwp -> DIW-001309-구서연.hml +2026-01-28 17:48:25,661 - INFO - 변환 성공: DIW-001317-서재우.hwp -> DIW-001317-서재우.hml +2026-01-28 17:48:26,171 - INFO - 변환 성공: DIW-001321-조아라.hwp -> DIW-001321-조아라.hml +2026-01-28 17:48:26,895 - INFO - 변환 성공: DIW-001352-안루비.hwp -> DIW-001352-안루비.hml +2026-01-28 17:48:27,609 - INFO - 변환 성공: DIW-001356-김연우.hwp -> DIW-001356-김연우.hml +2026-01-28 17:48:28,310 - INFO - 변환 성공: DIW-001429-민아영.hwp -> DIW-001429-민아영.hml +2026-01-28 17:48:28,860 - INFO - 변환 성공: DIW-001430-예지현.hwp -> DIW-001430-예지현.hml +2026-01-28 17:48:29,396 - INFO - 변환 성공: DIW-001449-박수현.hwp -> DIW-001449-박수현.hml +2026-01-28 17:48:29,927 - INFO - 변환 성공: DIW-001458-원태현.hwp -> DIW-001458-원태현.hml +2026-01-28 17:48:30,510 - INFO - 변환 성공: DIW-001506-안현후.hwp -> DIW-001506-안현후.hml +2026-01-28 17:48:31,114 - INFO - 변환 성공: DIW-001513-전진영.hwp -> DIW-001513-전진영.hml +2026-01-28 17:48:31,640 - INFO - 변환 성공: DIW-001514-박금빈.hwp -> DIW-001514-박금빈.hml +2026-01-28 17:48:32,077 - INFO - 변환 성공: DIW-001523-최예원.hwp -> DIW-001523-최예원.hml +2026-01-28 17:48:32,650 - INFO - 변환 성공: DIW-001608-이서준.hwp -> DIW-001608-이서준.hml +2026-01-28 17:48:33,202 - INFO - 변환 성공: DIW-001613-홍예나.hwp -> DIW-001613-홍예나.hml +2026-01-28 17:48:33,751 - INFO - 변환 성공: DIW-001616-이지훈.hwp -> DIW-001616-이지훈.hml +2026-01-28 17:48:34,289 - INFO - 변환 성공: DIW-001618-오시은.hwp -> DIW-001618-오시은.hml +2026-01-28 17:48:34,810 - INFO - 변환 성공: DIW-001620-최주미.hwp -> DIW-001620-최주미.hml +2026-01-28 17:48:35,342 - INFO - 변환 성공: DIW-001627-한동엽.hwp -> DIW-001627-한동엽.hml +2026-01-28 17:48:35,891 - INFO - 변환 성공: DIW-001662-손지수.hwp -> DIW-001662-손지수.hml +2026-01-28 17:48:36,412 - INFO - 변환 성공: DIW-001666-서지아.hwp -> DIW-001666-서지아.hml +2026-01-28 17:48:36,957 - INFO - 변환 성공: DIW-001668-전예린.hwp -> DIW-001668-전예린.hml +2026-01-28 17:48:37,610 - INFO - 변환 성공: DIW-001669-서주아.hwp -> DIW-001669-서주아.hml +2026-01-28 17:48:38,150 - INFO - 변환 성공: DIW-001673-라우성.hwp -> DIW-001673-라우성.hml +2026-01-28 17:48:38,592 - INFO - 변환 성공: DIW-001678-박지나.hwp -> DIW-001678-박지나.hml +2026-01-28 17:48:39,035 - INFO - 변환 성공: DIW-001683-송시아.hwp -> DIW-001683-송시아.hml +2026-01-28 17:48:39,590 - INFO - 변환 성공: DIW-001822-안도겸.hwp -> DIW-001822-안도겸.hml +2026-01-28 17:48:40,145 - INFO - 변환 성공: DIW-001823-강래나.hwp -> DIW-001823-강래나.hml +2026-01-28 17:48:40,716 - INFO - 변환 성공: DIW-001824-김유민.hwp -> DIW-001824-김유민.hml +2026-01-28 17:48:41,313 - INFO - 변환 성공: DIW-001842-이은별.hwp -> DIW-001842-이은별.hml +2026-01-28 17:48:41,917 - INFO - 변환 성공: DIW-001844-홍건민.hwp -> DIW-001844-홍건민.hml +2026-01-28 17:48:42,473 - INFO - 변환 성공: DIW-001845-안재인.hwp -> DIW-001845-안재인.hml +2026-01-28 17:48:43,200 - INFO - 변환 성공: DIW-001859-노하준.hwp -> DIW-001859-노하준.hml +2026-01-28 17:48:43,674 - INFO - 변환 성공: DIW-001880-박채아.hwp -> DIW-001880-박채아.hml +2026-01-28 17:48:44,112 - INFO - 변환 성공: DIW-001905-김연희.hwp -> DIW-001905-김연희.hml +2026-01-28 17:48:44,638 - INFO - 변환 성공: DIW-001967-장민성.hwp -> DIW-001967-장민성.hml +2026-01-28 17:48:45,155 - INFO - 변환 성공: DIW-001968-홍주원.hwp -> DIW-001968-홍주원.hml +2026-01-28 17:48:45,680 - INFO - 변환 성공: DIW-001997-양승원.hwp -> DIW-001997-양승원.hml +2026-01-28 17:48:46,196 - INFO - 변환 성공: DIW-001998-최서혜.hwp -> DIW-001998-최서혜.hml +2026-01-28 17:48:46,708 - INFO - 변환 성공: DIW-001999-강예서.hwp -> DIW-001999-강예서.hml +2026-01-28 17:48:47,229 - INFO - 변환 성공: DIW-002014-김한솔.hwp -> DIW-002014-김한솔.hml +2026-01-28 17:48:47,922 - INFO - 변환 성공: DIW-002021-하지수.hwp -> DIW-002021-하지수.hml +2026-01-28 17:48:48,355 - INFO - 변환 성공: DIW-002049-박건웅.hwp -> DIW-002049-박건웅.hml +2026-01-28 17:48:48,764 - INFO - 변환 성공: DIW-002053-이율.hwp -> DIW-002053-이율.hml +2026-01-28 17:48:49,398 - INFO - 변환 성공: DIW-002055-김현민.hwp -> DIW-002055-김현민.hml +2026-01-28 17:48:49,994 - INFO - 변환 성공: DIW-002056-안지민.hwp -> DIW-002056-안지민.hml +2026-01-28 17:48:50,625 - INFO - 변환 성공: DIW-002057-박효정.hwp -> DIW-002057-박효정.hml +2026-01-28 17:48:51,197 - INFO - 변환 성공: DIW-002058-이태주.hwp -> DIW-002058-이태주.hml +2026-01-28 17:48:51,751 - INFO - 변환 성공: DIW-002064-유승진.hwp -> DIW-002064-유승진.hml +2026-01-28 17:48:52,173 - INFO - 변환 성공: DIW-002088-송정우.hwp -> DIW-002088-송정우.hml +2026-01-28 17:48:52,564 - INFO - 변환 성공: DIW-002110-김아성.hwp -> DIW-002110-김아성.hml +2026-01-28 17:48:53,078 - INFO - 변환 성공: DIW-002115-이승훈.hwp -> DIW-002115-이승훈.hml +2026-01-28 17:48:53,600 - INFO - 변환 성공: DIW-002116-이건우.hwp -> DIW-002116-이건우.hml +2026-01-28 17:48:54,370 - INFO - 변환 성공: DIW-002117-길민지.hwp -> DIW-002117-길민지.hml +2026-01-28 17:48:54,874 - INFO - 변환 성공: DIW-002127-양예은.hwp -> DIW-002127-양예은.hml +2026-01-28 17:48:55,407 - INFO - 변환 성공: DIW-002160-김미주.hwp -> DIW-002160-김미주.hml +2026-01-28 17:48:55,907 - INFO - 변환 성공: DIW-002168-송예진.hwp -> DIW-002168-송예진.hml +2026-01-28 17:48:56,349 - INFO - 변환 성공: DIW-002169-윤준우.hwp -> DIW-002169-윤준우.hml +2026-01-28 17:48:56,875 - INFO - 변환 성공: DIW-002195-김나율.hwp -> DIW-002195-김나율.hml +2026-01-28 17:48:57,413 - INFO - 변환 성공: DIW-002200-배주하.hwp -> DIW-002200-배주하.hml +2026-01-28 17:49:01,039 - INFO - 변환 성공: DIW-002202-설시훈.hwp -> DIW-002202-설시훈.hml +2026-01-28 17:49:01,604 - INFO - 변환 성공: DIW-002203-손지태.hwp -> DIW-002203-손지태.hml +2026-01-28 17:49:02,101 - INFO - 변환 성공: DIW-002204-신지효.hwp -> DIW-002204-신지효.hml +2026-01-28 17:49:02,627 - INFO - 변환 성공: DIW-002205-신채린.hwp -> DIW-002205-신채린.hml +2026-01-28 17:49:03,047 - INFO - 변환 성공: DIW-002206-양서희.hwp -> DIW-002206-양서희.hml +2026-01-28 17:49:03,431 - INFO - 변환 성공: DIW-002207-오연준.hwp -> DIW-002207-오연준.hml +2026-01-28 17:49:03,929 - INFO - 변환 성공: DIW-002208-유지오.hwp -> DIW-002208-유지오.hml +2026-01-28 17:49:04,452 - INFO - 변환 성공: DIW-002209-윤수민.hwp -> DIW-002209-윤수민.hml +2026-01-28 17:49:04,981 - INFO - 변환 성공: DIW-002210-이강우.hwp -> DIW-002210-이강우.hml +2026-01-28 17:49:05,480 - INFO - 변환 성공: DIW-002211-이수빈.hwp -> DIW-002211-이수빈.hml +2026-01-28 17:49:06,003 - INFO - 변환 성공: DIW-002212-이효민.hwp -> DIW-002212-이효민.hml +2026-01-28 17:49:06,507 - INFO - 변환 성공: DIW-002213-정태하.hwp -> DIW-002213-정태하.hml +2026-01-28 17:49:06,995 - INFO - 변환 성공: DIW-002215-추소연.hwp -> DIW-002215-추소연.hml +2026-01-28 17:49:07,495 - INFO - 변환 성공: DIW-002220-최시영.hwp -> DIW-002220-최시영.hml +2026-01-28 17:49:08,011 - INFO - 변환 성공: DIW-002238-황현아.hwp -> DIW-002238-황현아.hml +2026-01-28 17:49:08,530 - INFO - 변환 성공: DIW-002240-정서하.hwp -> DIW-002240-정서하.hml +2026-01-28 17:49:09,026 - INFO - 변환 성공: DIW-002241-박채연.hwp -> DIW-002241-박채연.hml +2026-01-28 17:49:09,551 - INFO - 변환 성공: DIW-002248-정민찬.hwp -> DIW-002248-정민찬.hml +2026-01-28 17:49:10,084 - INFO - 변환 성공: DIW-002249-배경선.hwp -> DIW-002249-배경선.hml +2026-01-28 17:49:10,598 - INFO - 변환 성공: DIW-002250-서지훈.hwp -> DIW-002250-서지훈.hml +2026-01-28 17:49:11,035 - INFO - 변환 성공: DIW-002251-고예준.hwp -> DIW-002251-고예준.hml +2026-01-28 17:49:11,481 - INFO - 변환 성공: DIW-002252-손수아.hwp -> DIW-002252-손수아.hml +2026-01-28 17:49:12,024 - INFO - 변환 성공: DIW-002253-이서은.hwp -> DIW-002253-이서은.hml +2026-01-28 17:49:12,589 - INFO - 변환 성공: DIW-002254-김재경.hwp -> DIW-002254-김재경.hml +2026-01-28 17:49:13,126 - INFO - 변환 성공: DIW-002255-김보현.hwp -> DIW-002255-김보현.hml +2026-01-28 17:49:13,642 - INFO - 변환 성공: DIW-002256-조수민.hwp -> DIW-002256-조수민.hml +2026-01-28 17:49:14,157 - INFO - 변환 성공: DIW-002257-신예진.hwp -> DIW-002257-신예진.hml +2026-01-28 17:49:14,716 - INFO - 변환 성공: DIW-002258-김예환.hwp -> DIW-002258-김예환.hml +2026-01-28 17:49:15,241 - INFO - 변환 성공: DIW-002259-이소희.hwp -> DIW-002259-이소희.hml +2026-01-28 17:49:15,658 - INFO - 변환 성공: DIW-002260-이수빈.hwp -> DIW-002260-이수빈.hml +2026-01-28 17:49:15,970 - INFO - 변환 성공: DIW-002261-이수정.hwp -> DIW-002261-이수정.hml +2026-01-28 17:49:16,363 - INFO - 변환 성공: DIW-002262-박정민.hwp -> DIW-002262-박정민.hml +2026-01-28 17:49:16,799 - INFO - 변환 성공: DIW-002263-노민우.hwp -> DIW-002263-노민우.hml +2026-01-28 17:49:17,213 - INFO - 변환 성공: DIW-002264-배경서.hwp -> DIW-002264-배경서.hml +2026-01-28 17:49:17,743 - INFO - 변환 성공: DIW-002265-임민.hwp -> DIW-002265-임민.hml +2026-01-28 17:49:18,271 - INFO - 변환 성공: DIW-002266-복승하.hwp -> DIW-002266-복승하.hml +2026-01-28 17:49:18,805 - INFO - 변환 성공: DIW-002267-안수민.hwp -> DIW-002267-안수민.hml +2026-01-28 17:49:19,329 - INFO - 변환 성공: DIW-002268-정강민.hwp -> DIW-002268-정강민.hml +2026-01-28 17:49:19,880 - INFO - 변환 성공: DIW-002287-김어진.hwp -> DIW-002287-김어진.hml +2026-01-28 17:49:20,354 - INFO - 변환 성공: DIW-002344-이윤준.hwp -> DIW-002344-이윤준.hml +2026-01-28 17:49:20,749 - INFO - 변환 성공: DIW-002345-장은호.hwp -> DIW-002345-장은호.hml +2026-01-28 17:49:21,263 - INFO - 변환 성공: DIW-002346-오세환.hwp -> DIW-002346-오세환.hml +2026-01-28 17:49:21,779 - INFO - 변환 성공: DIW-002347-석진원.hwp -> DIW-002347-석진원.hml +2026-01-28 17:49:22,293 - INFO - 변환 성공: DIW-002355-박재현.hwp -> DIW-002355-박재현.hml +2026-01-28 17:49:22,837 - INFO - 변환 성공: DIW-002361-지하은.hwp -> DIW-002361-지하은.hml +2026-01-28 17:49:23,275 - INFO - 변환 성공: DIW-002384-홍예슬.hwp -> DIW-002384-홍예슬.hml +2026-01-28 17:49:23,698 - INFO - 변환 성공: DIW-002385-이가현.hwp -> DIW-002385-이가현.hml +2026-01-28 17:49:24,208 - INFO - 변환 성공: DIW-002386-홍슬아.hwp -> DIW-002386-홍슬아.hml +2026-01-28 17:49:24,663 - INFO - 변환 성공: DIW-002387-최보명.hwp -> DIW-002387-최보명.hml +2026-01-28 17:49:24,996 - INFO - 변환 성공: DIW-002389-백채윤.hwp -> DIW-002389-백채윤.hml +2026-01-28 17:49:25,686 - INFO - 변환 성공: DIW-002401-황도현.hwp -> DIW-002401-황도현.hml +2026-01-28 17:49:26,231 - INFO - 변환 성공: DIW-002402-이재희.hwp -> DIW-002402-이재희.hml +2026-01-28 17:49:26,801 - INFO - 변환 성공: DIW-002403-최우정.hwp -> DIW-002403-최우정.hml +2026-01-28 17:49:27,236 - INFO - 변환 성공: DIW-002411-조채원.hwp -> DIW-002411-조채원.hml +2026-01-28 17:49:27,646 - INFO - 변환 성공: DIW-002422-김태성.hwp -> DIW-002422-김태성.hml +2026-01-28 17:49:28,176 - INFO - 변환 성공: DIW-002426-강여은.hwp -> DIW-002426-강여은.hml +2026-01-28 17:49:28,695 - INFO - 변환 성공: DIW-002427-손채민.hwp -> DIW-002427-손채민.hml +2026-01-28 17:49:29,233 - INFO - 변환 성공: DIW-002428-김수빈.hwp -> DIW-002428-김수빈.hml +2026-01-28 17:49:29,769 - INFO - 변환 성공: DIW-002429-공민지.hwp -> DIW-002429-공민지.hml +2026-01-28 17:49:30,556 - INFO - 변환 성공: DIW-002434-이시유.hwp -> DIW-002434-이시유.hml +2026-01-28 17:49:31,067 - INFO - 변환 성공: DIW-002435-김아인.hwp -> DIW-002435-김아인.hml +2026-01-28 17:49:31,567 - INFO - 변환 성공: DIW-002436-김시윤.hwp -> DIW-002436-김시윤.hml +2026-01-28 17:49:32,079 - INFO - 변환 성공: DIW-002437-김나현.hwp -> DIW-002437-김나현.hml +2026-01-28 17:49:32,597 - INFO - 변환 성공: DIW-002438-김서진.hwp -> DIW-002438-김서진.hml +2026-01-28 17:49:33,120 - INFO - 변환 성공: DIW-002442-김민준.hwp -> DIW-002442-김민준.hml +2026-01-28 17:49:33,630 - INFO - 변환 성공: DIW-002464-함예나.hwp -> DIW-002464-함예나.hml +2026-01-28 17:49:34,149 - INFO - 변환 성공: DIW-002471-강서윤.hwp -> DIW-002471-강서윤.hml +2026-01-28 17:49:34,671 - INFO - 변환 성공: DIW-002473-최수인.hwp -> DIW-002473-최수인.hml +2026-01-28 17:49:35,254 - INFO - 변환 성공: DIW-002474-유희원.hwp -> DIW-002474-유희원.hml +2026-01-28 17:49:35,777 - INFO - 변환 성공: DIW-002475-박예인.hwp -> DIW-002475-박예인.hml +2026-01-28 17:49:36,301 - INFO - 변환 성공: DIW-002491-박효주.hwp -> DIW-002491-박효주.hml +2026-01-28 17:49:36,806 - INFO - 변환 성공: DIW-002492-김솔민.hwp -> DIW-002492-김솔민.hml +2026-01-28 17:49:37,337 - INFO - 변환 성공: DIW-002493-정규영.hwp -> DIW-002493-정규영.hml +2026-01-28 17:49:37,844 - INFO - 변환 성공: DIW-002494-손정규.hwp -> DIW-002494-손정규.hml +2026-01-28 17:49:38,348 - INFO - 변환 성공: DIW-002495-손가민.hwp -> DIW-002495-손가민.hml +2026-01-28 17:49:38,840 - INFO - 변환 성공: DIW-002496-정현수.hwp -> DIW-002496-정현수.hml +2026-01-28 17:49:39,367 - INFO - 변환 성공: DIW-002497-신민채.hwp -> DIW-002497-신민채.hml +2026-01-28 17:49:39,899 - INFO - 변환 성공: DIW-002501-배선진.hwp -> DIW-002501-배선진.hml +2026-01-28 17:49:40,428 - INFO - 변환 성공: DIW-002509-조승효.hwp -> DIW-002509-조승효.hml +2026-01-28 17:49:41,236 - INFO - 변환 성공: DIW-002510-정수연.hwp -> DIW-002510-정수연.hml +2026-01-28 17:49:41,723 - INFO - 변환 성공: DIW-002511-김소원.hwp -> DIW-002511-김소원.hml +2026-01-28 17:49:42,214 - INFO - 변환 성공: DIW-002512-김수현.hwp -> DIW-002512-김수현.hml +2026-01-28 17:49:42,707 - INFO - 변환 성공: DIW-002514-문예랑.hwp -> DIW-002514-문예랑.hml +2026-01-28 17:49:43,231 - INFO - 변환 성공: DIW-002515-강지형.hwp -> DIW-002515-강지형.hml +2026-01-28 17:49:43,725 - INFO - 변환 성공: DIW-002516-이승아.hwp -> DIW-002516-이승아.hml +2026-01-28 17:49:44,220 - INFO - 변환 성공: DIW-002517-장화이.hwp -> DIW-002517-장화이.hml +2026-01-28 17:49:44,729 - INFO - 변환 성공: DIW-002518-방준서.hwp -> DIW-002518-방준서.hml +2026-01-28 17:49:45,231 - INFO - 변환 성공: DIW-002519-지은성.hwp -> DIW-002519-지은성.hml +2026-01-28 17:49:45,739 - INFO - 변환 성공: DIW-002520-배은재.hwp -> DIW-002520-배은재.hml +2026-01-28 17:49:46,247 - INFO - 변환 성공: DIW-002522-오연우.hwp -> DIW-002522-오연우.hml +2026-01-28 17:49:46,760 - INFO - 변환 성공: DIW-002523-송수현.hwp -> DIW-002523-송수현.hml +2026-01-28 17:49:47,269 - INFO - 변환 성공: DIW-002525-김지유.hwp -> DIW-002525-김지유.hml +2026-01-28 17:49:47,846 - INFO - 변환 성공: DIW-002526-이지민.hwp -> DIW-002526-이지민.hml +2026-01-28 17:49:48,361 - INFO - 변환 성공: DIW-002530-서효준.hwp -> DIW-002530-서효준.hml +2026-01-28 17:49:48,867 - INFO - 변환 성공: DIW-002531-김채은.hwp -> DIW-002531-김채은.hml +2026-01-28 17:49:49,278 - INFO - 변환 성공: DIW-002537-박서진.hwp -> DIW-002537-박서진.hml +2026-01-28 17:49:49,681 - INFO - 변환 성공: DIW-002556-김주연.hwp -> DIW-002556-김주연.hml +2026-01-28 17:49:50,203 - INFO - 변환 성공: DIW-002558-김연준.hwp -> DIW-002558-김연준.hml +2026-01-28 17:49:50,736 - INFO - 변환 성공: DIW-002559-김가은.hwp -> DIW-002559-김가은.hml +2026-01-28 17:49:51,250 - INFO - 변환 성공: DIW-002571-진은성.hwp -> DIW-002571-진은성.hml +2026-01-28 17:49:51,759 - INFO - 변환 성공: DIW-002599-신서율.hwp -> DIW-002599-신서율.hml +2026-01-28 17:49:52,274 - INFO - 변환 성공: DIW-002652-강우현.hwp -> DIW-002652-강우현.hml +2026-01-28 17:49:52,772 - INFO - 변환 성공: DIW-002703-배지훈.hwp -> DIW-002703-배지훈.hml +2026-01-28 17:49:53,276 - INFO - 변환 성공: DIW-002705-오유빈.hwp -> DIW-002705-오유빈.hml +2026-01-28 17:49:53,786 - INFO - 변환 성공: DIW-002734-장민서.hwp -> DIW-002734-장민서.hml +2026-01-28 17:49:54,305 - INFO - 변환 성공: DIW-002815-박채리.hwp -> DIW-002815-박채리.hml +2026-01-28 17:49:54,846 - INFO - 변환 성공: DIW-002830-하재희.hwp -> DIW-002830-하재희.hml +2026-01-28 17:49:55,437 - INFO - 변환 성공: DIW-002839-신민준.hwp -> DIW-002839-신민준.hml +2026-01-28 17:49:56,190 - INFO - 변환 성공: DIW-002840-장하담.hwp -> DIW-002840-장하담.hml +2026-01-28 17:49:56,719 - INFO - 변환 성공: DIW-002842-김보은.hwp -> DIW-002842-김보은.hml +2026-01-28 17:49:57,151 - INFO - 변환 성공: DIW-002847-김리안.hwp -> DIW-002847-김리안.hml +2026-01-28 17:49:57,587 - INFO - 변환 성공: DIW-002949-이예승.hwp -> DIW-002949-이예승.hml +2026-01-28 17:49:58,095 - INFO - 변환 성공: DIW-002950-박지후.hwp -> DIW-002950-박지후.hml +2026-01-28 17:49:58,519 - INFO - 변환 성공: DIW-003008-신사랑.hwp -> DIW-003008-신사랑.hml +2026-01-28 17:49:58,937 - INFO - 변환 성공: DIW-003009-김소은.hwp -> DIW-003009-김소은.hml +2026-01-28 17:49:59,430 - INFO - 변환 성공: DIW-003010-김효원.hwp -> DIW-003010-김효원.hml +2026-01-28 17:49:59,829 - INFO - 변환 성공: DIW-003011-이해원.hwp -> DIW-003011-이해원.hml +2026-01-28 17:50:00,357 - INFO - 변환 성공: DIW-003043-이윤우.hwp -> DIW-003043-이윤우.hml +2026-01-28 17:50:00,904 - INFO - 변환 성공: DIW-003044-이서윤.hwp -> DIW-003044-이서윤.hml +2026-01-28 17:50:01,445 - INFO - 변환 성공: DIW-003049-황제하.hwp -> DIW-003049-황제하.hml +2026-01-28 17:50:01,968 - INFO - 변환 성공: DIW-003050-김가빈.hwp -> DIW-003050-김가빈.hml +2026-01-28 17:50:02,479 - INFO - 변환 성공: DIW-003102-유이든.hwp -> DIW-003102-유이든.hml +2026-01-28 17:50:02,903 - INFO - 변환 성공: DIW-003127-박효주.hwp -> DIW-003127-박효주.hml +2026-01-28 17:50:03,333 - INFO - 변환 성공: DIW-003180-고영은.hwp -> DIW-003180-고영은.hml +2026-01-28 17:50:03,825 - INFO - 변환 성공: DIW-003207-박지윤.hwp -> DIW-003207-박지윤.hml +2026-01-28 17:50:04,335 - INFO - 변환 성공: DIW-003208-김민성.hwp -> DIW-003208-김민성.hml +2026-01-28 17:50:04,841 - INFO - 변환 성공: DIW-003209-김지율.hwp -> DIW-003209-김지율.hml +2026-01-28 17:50:05,358 - INFO - 변환 성공: DIW-003210-이하윤.hwp -> DIW-003210-이하윤.hml +2026-01-28 17:50:05,901 - INFO - 변환 성공: DIW-003211-조서범.hwp -> DIW-003211-조서범.hml +2026-01-28 17:50:06,414 - INFO - 변환 성공: DIW-003212-김은서.hwp -> DIW-003212-김은서.hml +2026-01-28 17:50:06,939 - INFO - 변환 성공: DIW-003213-서효범.hwp -> DIW-003213-서효범.hml +2026-01-28 17:50:07,461 - INFO - 변환 성공: DIW-003264-오나결.hwp -> DIW-003264-오나결.hml +2026-01-28 17:50:07,995 - INFO - 변환 성공: DIW-003268-이서준.hwp -> DIW-003268-이서준.hml +2026-01-28 17:50:08,511 - INFO - 변환 성공: DIW-003298-장지은.hwp -> DIW-003298-장지은.hml +2026-01-28 17:50:09,017 - INFO - 변환 성공: DIW-003299-강태호.hwp -> DIW-003299-강태호.hml +2026-01-28 17:50:09,524 - INFO - 변환 성공: DIW-003300-김민수.hwp -> DIW-003300-김민수.hml +2026-01-28 17:50:10,030 - INFO - 변환 성공: DIW-003301-장하린.hwp -> DIW-003301-장하린.hml +2026-01-28 17:50:10,537 - INFO - 변환 성공: DIW-003302-김서진.hwp -> DIW-003302-김서진.hml +2026-01-28 17:50:11,041 - INFO - 변환 성공: DIW-003304-김유진.hwp -> DIW-003304-김유진.hml +2026-01-28 17:50:11,552 - INFO - 변환 성공: DIW-003305-김민준.hwp -> DIW-003305-김민준.hml +2026-01-28 17:50:12,345 - INFO - 변환 성공: DIW-003306-여현수.hwp -> DIW-003306-여현수.hml +2026-01-28 17:50:12,821 - INFO - 변환 성공: DIW-003307-임지훈.hwp -> DIW-003307-임지훈.hml +2026-01-28 17:50:13,340 - INFO - 변환 성공: DIW-003308-권구하.hwp -> DIW-003308-권구하.hml +2026-01-28 17:50:13,862 - INFO - 변환 성공: DIW-003316-정혜선.hwp -> DIW-003316-정혜선.hml +2026-01-28 17:50:14,411 - INFO - 변환 성공: DIW-003317-김하윤.hwp -> DIW-003317-김하윤.hml +2026-01-28 17:50:14,937 - INFO - 변환 성공: DIW-003319-유효경.hwp -> DIW-003319-유효경.hml +2026-01-28 17:50:15,470 - INFO - 변환 성공: DIW-003326-박라온.hwp -> DIW-003326-박라온.hml +2026-01-28 17:50:15,909 - INFO - 변환 성공: DIW-003333-이시호.hwp -> DIW-003333-이시호.hml +2026-01-28 17:50:16,313 - INFO - 변환 성공: DIW-003336-신민정.hwp -> DIW-003336-신민정.hml +2026-01-28 17:50:16,854 - INFO - 변환 성공: DIW-003338-박민영.hwp -> DIW-003338-박민영.hml +2026-01-28 17:50:17,359 - INFO - 변환 성공: DIW-003377-김다은.hwp -> DIW-003377-김다은.hml +2026-01-28 17:50:17,987 - INFO - 변환 성공: DIW-003397-김민솔.hwp -> DIW-003397-김민솔.hml +2026-01-28 17:50:18,402 - INFO - 변환 성공: DIW-003537-강서윤.hwp -> DIW-003537-강서윤.hml +2026-01-28 17:50:18,799 - INFO - 변환 성공: DIW-003627-김채원.hwp -> DIW-003627-김채원.hml +2026-01-28 17:50:19,309 - INFO - 변환 성공: DIW-003629-김윤주.hwp -> DIW-003629-김윤주.hml +2026-01-28 17:50:19,822 - INFO - 변환 성공: DIW-003665-황시윤.hwp -> DIW-003665-황시윤.hml +2026-01-28 17:50:20,332 - INFO - 변환 성공: DIW-003677-나예나.hwp -> DIW-003677-나예나.hml +2026-01-28 17:50:20,726 - INFO - 변환 성공: DIW-003764-김윤성.hwp -> DIW-003764-김윤성.hml +2026-01-28 17:50:21,021 - INFO - 변환 성공: DIW-003765-박준서.hwp -> DIW-003765-박준서.hml +2026-01-28 17:50:21,406 - INFO - 변환 성공: DIW-003766-송시현.hwp -> DIW-003766-송시현.hml +2026-01-28 17:50:21,821 - INFO - 변환 성공: DIW-003767-최지훈.hwp -> DIW-003767-최지훈.hml +2026-01-28 17:50:22,220 - INFO - 변환 성공: DIW-003768-김솔임.hwp -> DIW-003768-김솔임.hml +2026-01-28 17:50:22,976 - INFO - 변환 성공: DIW-003801-김나윤.hwp -> DIW-003801-김나윤.hml +2026-01-28 17:50:23,389 - INFO - 변환 성공: DIW-003802-전소민.hwp -> DIW-003802-전소민.hml +2026-01-28 17:50:23,785 - INFO - 변환 성공: DIW-003832-서호빈.hwp -> DIW-003832-서호빈.hml +2026-01-28 17:50:24,324 - INFO - 변환 성공: DIW-003837-전성현.hwp -> DIW-003837-전성현.hml +2026-01-28 17:50:24,834 - INFO - 변환 성공: DIW-003838-이수혁.hwp -> DIW-003838-이수혁.hml +2026-01-28 17:50:25,357 - INFO - 변환 성공: DIW-003864-박선재.hwp -> DIW-003864-박선재.hml +2026-01-28 17:50:25,886 - INFO - 변환 성공: DIW-003865-장지호.hwp -> DIW-003865-장지호.hml +2026-01-28 17:50:26,390 - INFO - 변환 성공: DIW-003866-김주원.hwp -> DIW-003866-김주원.hml +2026-01-28 17:50:26,895 - INFO - 변환 성공: DIW-003867-신준우.hwp -> DIW-003867-신준우.hml +2026-01-28 17:50:27,418 - INFO - 변환 성공: DIW-003868-유승은.hwp -> DIW-003868-유승은.hml +2026-01-28 17:50:27,931 - INFO - 변환 성공: DIW-003869-이가윤.hwp -> DIW-003869-이가윤.hml +2026-01-28 17:50:28,651 - INFO - 변환 성공: DIW-003870-이예인.hwp -> DIW-003870-이예인.hml +2026-01-28 17:50:29,143 - INFO - 변환 성공: DIW-003871-김채영.hwp -> DIW-003871-김채영.hml +2026-01-28 17:50:29,684 - INFO - 변환 성공: DIW-003872-김지원.hwp -> DIW-003872-김지원.hml +2026-01-28 17:50:30,188 - INFO - 변환 성공: DIW-003873-김수현.hwp -> DIW-003873-김수현.hml +2026-01-28 17:50:30,703 - INFO - 변환 성공: DIW-003936-허이룸.hwp -> DIW-003936-허이룸.hml +2026-01-28 17:50:31,220 - INFO - 변환 성공: DIW-003949-조민채.hwp -> DIW-003949-조민채.hml +2026-01-28 17:50:31,757 - INFO - 변환 성공: DIW-003953-정유진.hwp -> DIW-003953-정유진.hml +2026-01-28 17:50:32,254 - INFO - 변환 성공: DIW-003954-정유주.hwp -> DIW-003954-정유주.hml +2026-01-28 17:50:32,772 - INFO - 변환 성공: DIW-003955-양승우.hwp -> DIW-003955-양승우.hml +2026-01-28 17:50:33,293 - INFO - 변환 성공: DIW-003970-전소윤.hwp -> DIW-003970-전소윤.hml +2026-01-28 17:50:33,643 - INFO - 변환 성공: DIW-003987-김민채.hwp -> DIW-003987-김민채.hml +2026-01-28 17:50:33,932 - INFO - 변환 성공: DIW-003988-김준엽.hwp -> DIW-003988-김준엽.hml +2026-01-28 17:50:34,246 - INFO - 변환 성공: DIW-004001-유시훈.hwp -> DIW-004001-유시훈.hml +2026-01-28 17:50:34,536 - INFO - 변환 성공: DIW-004003-전유나.hwp -> DIW-004003-전유나.hml +2026-01-28 17:50:34,938 - INFO - 변환 성공: DIW-004021-최사랑.hwp -> DIW-004021-최사랑.hml +2026-01-28 17:50:35,352 - INFO - 변환 성공: DIW-004030-최우석.hwp -> DIW-004030-최우석.hml +2026-01-28 17:50:35,660 - INFO - 변환 성공: DIW-004031-강준우.hwp -> DIW-004031-강준우.hml +2026-01-28 17:50:35,978 - INFO - 변환 성공: DIW-004038-이서율.hwp -> DIW-004038-이서율.hml +2026-01-28 17:50:36,360 - INFO - 변환 성공: DIW-004238-김하윤.hwp -> DIW-004238-김하윤.hml +2026-01-28 17:50:36,869 - INFO - 변환 성공: DIW-004239-박주아.hwp -> DIW-004239-박주아.hml +2026-01-28 17:50:37,396 - INFO - 변환 성공: DIW-004240-임소율.hwp -> DIW-004240-임소율.hml +2026-01-28 17:50:37,921 - INFO - 변환 성공: DIW-004265-최예림.hwp -> DIW-004265-최예림.hml +2026-01-28 17:50:38,569 - INFO - 변환 성공: DIW-004274-장현서.hwp -> DIW-004274-장현서.hml +2026-01-28 17:50:39,078 - INFO - 변환 성공: DIW-004285-김수아.hwp -> DIW-004285-김수아.hml +2026-01-28 17:50:39,586 - INFO - 변환 성공: DIW-004291-이해슬.hwp -> DIW-004291-이해슬.hml +2026-01-28 17:50:40,090 - INFO - 변환 성공: DIW-004292-이우진.hwp -> DIW-004292-이우진.hml +2026-01-28 17:50:40,605 - INFO - 변환 성공: DIW-004302-신우진.hwp -> DIW-004302-신우진.hml +2026-01-28 17:50:41,120 - INFO - 변환 성공: DIW-004311-연승이.hwp -> DIW-004311-연승이.hml +2026-01-28 17:50:41,548 - INFO - 변환 성공: DIW-004346-최연서.hwp -> DIW-004346-최연서.hml +2026-01-28 17:50:41,851 - INFO - 변환 성공: DIW-004348-이승민.hwp -> DIW-004348-이승민.hml +2026-01-28 17:50:42,136 - INFO - 변환 성공: DIW-004356-김건희.hwp -> DIW-004356-김건희.hml +2026-01-28 17:50:42,564 - INFO - 변환 성공: DIW-004357-정예찬.hwp -> DIW-004357-정예찬.hml +2026-01-28 17:50:43,089 - INFO - 변환 성공: DIW-004360-정예성.hwp -> DIW-004360-정예성.hml +2026-01-28 17:50:43,861 - INFO - 변환 성공: DIW-004389-류아민.hwp -> DIW-004389-류아민.hml +2026-01-28 17:50:44,344 - INFO - 변환 성공: DIW-004400-이사율.hwp -> DIW-004400-이사율.hml +2026-01-28 17:50:44,861 - INFO - 변환 성공: DIW-004408-이재성.hwp -> DIW-004408-이재성.hml +2026-01-28 17:50:45,365 - INFO - 변환 성공: DIW-004413-심은서.hwp -> DIW-004413-심은서.hml +2026-01-28 17:50:45,876 - INFO - 변환 성공: DIW-004415-조진완.hwp -> DIW-004415-조진완.hml +2026-01-28 17:50:46,397 - INFO - 변환 성공: DIW-004418-김도훈.hwp -> DIW-004418-김도훈.hml +2026-01-28 17:50:46,910 - INFO - 변환 성공: DIW-004438-백아윤.hwp -> DIW-004438-백아윤.hml +2026-01-28 17:50:47,420 - INFO - 변환 성공: DIW-004439-이나린.hwp -> DIW-004439-이나린.hml +2026-01-28 17:50:47,930 - INFO - 변환 성공: DIW-004440-정승빈.hwp -> DIW-004440-정승빈.hml +2026-01-28 17:50:48,473 - INFO - 변환 성공: DIW-004441-류은빈.hwp -> DIW-004441-류은빈.hml +2026-01-28 17:50:49,239 - INFO - 변환 성공: DIW-004443-홍세연.hwp -> DIW-004443-홍세연.hml +2026-01-28 17:50:49,752 - INFO - 변환 성공: DIW-004477-최이연.hwp -> DIW-004477-최이연.hml +2026-01-28 17:50:50,251 - INFO - 변환 성공: DIW-004478-최윤석.hwp -> DIW-004478-최윤석.hml +2026-01-28 17:50:50,762 - INFO - 변환 성공: DIW-004480-이서형.hwp -> DIW-004480-이서형.hml +2026-01-28 17:50:51,260 - INFO - 변환 성공: DIW-004562-임주아.hwp -> DIW-004562-임주아.hml +2026-01-28 17:50:51,771 - INFO - 변환 성공: DIW-004565-진유성.hwp -> DIW-004565-진유성.hml +2026-01-28 17:50:52,217 - INFO - 변환 성공: DIW-004581-김소영.hwp -> DIW-004581-김소영.hml +2026-01-28 17:50:52,619 - INFO - 변환 성공: DIW-004607-박슬아.hwp -> DIW-004607-박슬아.hml +2026-01-28 17:50:53,125 - INFO - 변환 성공: DIW-004608-양지효.hwp -> DIW-004608-양지효.hml +2026-01-28 17:50:53,557 - INFO - 변환 성공: DIW-004632-이현우.hwp -> DIW-004632-이현우.hml +2026-01-28 17:50:53,849 - INFO - 변환 성공: DIW-004633-이나윤.hwp -> DIW-004633-이나윤.hml +2026-01-28 17:50:54,223 - INFO - 변환 성공: DIW-004634-박병율.hwp -> DIW-004634-박병율.hml +2026-01-28 17:50:54,846 - INFO - 변환 성공: DIW-004666-윤서준.hwp -> DIW-004666-윤서준.hml +2026-01-28 17:50:55,346 - INFO - 변환 성공: DIW-004714-조연재.hwp -> DIW-004714-조연재.hml +2026-01-28 17:50:55,847 - INFO - 변환 성공: DIW-004716-정아린.hwp -> DIW-004716-정아린.hml +2026-01-28 17:50:56,380 - INFO - 변환 성공: DIW-004792-주민준.hwp -> DIW-004792-주민준.hml +2026-01-28 17:50:56,902 - INFO - 변환 성공: DIW-004793-정윤.hwp -> DIW-004793-정윤.hml +2026-01-28 17:50:57,419 - INFO - 변환 성공: DIW-004852-김우성.hwp -> DIW-004852-김우성.hml +2026-01-28 17:50:57,922 - INFO - 변환 성공: DIW-004853-차태웅.hwp -> DIW-004853-차태웅.hml +2026-01-28 17:50:58,330 - INFO - 변환 성공: DIW-004854-이지아.hwp -> DIW-004854-이지아.hml +2026-01-28 17:50:58,867 - INFO - 변환 성공: DIW-004855-김가윤.hwp -> DIW-004855-김가윤.hml +2026-01-28 17:50:59,390 - INFO - 변환 성공: DIW-004897-이채율.hwp -> DIW-004897-이채율.hml +2026-01-28 17:50:59,840 - INFO - 변환 성공: DIW-004898-강하준.hwp -> DIW-004898-강하준.hml +2026-01-28 17:51:00,365 - INFO - 변환 성공: DIW-004899-김지우.hwp -> DIW-004899-김지우.hml +2026-01-28 17:51:00,795 - INFO - 변환 성공: DIW-004910-김서윤.hwp -> DIW-004910-김서윤.hml +2026-01-28 17:51:01,185 - INFO - 변환 성공: DIW-004937-서우진.hwp -> DIW-004937-서우진.hml +2026-01-28 17:51:01,716 - INFO - 변환 성공: DIW-004938-권시환.hwp -> DIW-004938-권시환.hml +2026-01-28 17:51:02,244 - INFO - 변환 성공: DIW-004939-나경민.hwp -> DIW-004939-나경민.hml +2026-01-28 17:51:02,751 - INFO - 변환 성공: DIW-004965-박소율.hwp -> DIW-004965-박소율.hml +2026-01-28 17:51:03,260 - INFO - 변환 성공: DIW-004968-이서준.hwp -> DIW-004968-이서준.hml +2026-01-28 17:51:03,762 - INFO - 변환 성공: DIW-004973-배성빈.hwp -> DIW-004973-배성빈.hml +2026-01-28 17:51:04,364 - INFO - 변환 성공: DIW-004974-박성하.hwp -> DIW-004974-박성하.hml +2026-01-28 17:51:04,896 - INFO - 변환 성공: DIW-005015-이서율.hwp -> DIW-005015-이서율.hml +2026-01-28 17:51:05,454 - INFO - 변환 성공: DIW-005052-국민우.hwp -> DIW-005052-국민우.hml +2026-01-28 17:51:05,977 - INFO - 변환 성공: DIW-005060-이준우.hwp -> DIW-005060-이준우.hml +2026-01-28 17:51:06,495 - INFO - 변환 성공: DIW-005069-문지유.hwp -> DIW-005069-문지유.hml +2026-01-28 17:51:06,920 - INFO - 변환 성공: DIW-005091-김주원.hwp -> DIW-005091-김주원.hml +2026-01-28 17:51:07,414 - INFO - 변환 성공: DIW-005108-사공다경.hwp -> DIW-005108-사공다경.hml +2026-01-28 17:51:07,986 - INFO - 변환 성공: DIW-005112-김민정.hwp -> DIW-005112-김민정.hml +2026-01-28 17:51:08,495 - INFO - 변환 성공: DIW-005138-이수호.hwp -> DIW-005138-이수호.hml +2026-01-28 17:51:08,920 - INFO - 변환 성공: DIW-005162-김주원.hwp -> DIW-005162-김주원.hml +2026-01-28 17:51:09,322 - INFO - 변환 성공: DIW-005166-김나현.hwp -> DIW-005166-김나현.hml +2026-01-28 17:51:09,847 - INFO - 변환 성공: DIW-005167-양하윤.hwp -> DIW-005167-양하윤.hml +2026-01-28 17:51:10,369 - INFO - 변환 성공: DIW-005168-계하은.hwp -> DIW-005168-계하은.hml +2026-01-28 17:51:10,880 - INFO - 변환 성공: DIW-005181-이준우.hwp -> DIW-005181-이준우.hml +2026-01-28 17:51:11,408 - INFO - 변환 성공: DIW-005197-박찬서.hwp -> DIW-005197-박찬서.hml +2026-01-28 17:51:11,946 - INFO - 변환 성공: DIW-005198-배믿음.hwp -> DIW-005198-배믿음.hml +2026-01-28 17:51:12,556 - INFO - 변환 성공: DIW-005199-차수빈.hwp -> DIW-005199-차수빈.hml +2026-01-28 17:51:13,123 - INFO - 변환 성공: DIW-005200-노수민.hwp -> DIW-005200-노수민.hml +2026-01-28 17:51:13,652 - INFO - 변환 성공: DIW-005259-박소윤.hwp -> DIW-005259-박소윤.hml +2026-01-28 17:51:14,192 - INFO - 변환 성공: DIW-005261-방재민.hwp -> DIW-005261-방재민.hml +2026-01-28 17:51:14,709 - INFO - 변환 성공: DIW-005285-김진성.hwp -> DIW-005285-김진성.hml +2026-01-28 17:51:15,236 - INFO - 변환 성공: DIW-005292-김희주.hwp -> DIW-005292-김희주.hml +2026-01-28 17:51:16,002 - INFO - 변환 성공: DIW-005295-문유나.hwp -> DIW-005295-문유나.hml +2026-01-28 17:51:16,502 - INFO - 변환 성공: DIW-005302-제소민.hwp -> DIW-005302-제소민.hml +2026-01-28 17:51:17,025 - INFO - 변환 성공: DIW-005379-Kolya Ankana.hwp -> DIW-005379-Kolya Ankana.hml +2026-01-28 17:51:17,545 - INFO - 변환 성공: DIW-005391-박준혁.hwp -> DIW-005391-박준혁.hml +2026-01-28 17:51:18,070 - INFO - 변환 성공: DIW-005392-장대한.hwp -> DIW-005392-장대한.hml +2026-01-28 17:51:18,601 - INFO - 변환 성공: DIW-005393-김문주.hwp -> DIW-005393-김문주.hml +2026-01-28 17:51:19,113 - INFO - 변환 성공: DIW-005394-양새론.hwp -> DIW-005394-양새론.hml +2026-01-28 17:51:19,663 - INFO - 변환 성공: DIW-005395-강태원.hwp -> DIW-005395-강태원.hml +2026-01-28 17:51:20,189 - INFO - 변환 성공: DIW-005429-신다하.hwp -> DIW-005429-신다하.hml +2026-01-28 17:51:20,694 - INFO - 변환 성공: DIW-005430-정민채.hwp -> DIW-005430-정민채.hml +2026-01-28 17:51:21,197 - INFO - 변환 성공: DIW-005432-윤채민.hwp -> DIW-005432-윤채민.hml +2026-01-28 17:51:21,711 - INFO - 변환 성공: DIW-005441-김아린.hwp -> DIW-005441-김아린.hml +2026-01-28 17:51:22,215 - INFO - 변환 성공: DIW-005443-정성채.hwp -> DIW-005443-정성채.hml +2026-01-28 17:51:22,729 - INFO - 변환 성공: DIW-005444-박예찬.hwp -> DIW-005444-박예찬.hml +2026-01-28 17:51:23,240 - INFO - 변환 성공: DIW-005445-공채원.hwp -> DIW-005445-공채원.hml +2026-01-28 17:51:23,753 - INFO - 변환 성공: DIW-005448-이우람.hwp -> DIW-005448-이우람.hml +2026-01-28 17:51:24,254 - INFO - 변환 성공: DIW-005449-오주윤.hwp -> DIW-005449-오주윤.hml +2026-01-28 17:51:24,760 - INFO - 변환 성공: DIW-005450-정하연.hwp -> DIW-005450-정하연.hml +2026-01-28 17:51:25,261 - INFO - 변환 성공: DIW-005451-배세연.hwp -> DIW-005451-배세연.hml +2026-01-28 17:51:25,784 - INFO - 변환 성공: DIW-005514-최수빈.hwp -> DIW-005514-최수빈.hml +2026-01-28 17:51:26,326 - INFO - 변환 성공: DIW-005530-성하은.hwp -> DIW-005530-성하은.hml +2026-01-28 17:51:26,838 - INFO - 변환 성공: DIW-005546-탁지민.hwp -> DIW-005546-탁지민.hml +2026-01-28 17:51:27,353 - INFO - 변환 성공: DIW-005547-현은수.hwp -> DIW-005547-현은수.hml +2026-01-28 17:51:27,872 - INFO - 변환 성공: DIW-005548-현수하.hwp -> DIW-005548-현수하.hml +2026-01-28 17:51:28,321 - INFO - 변환 성공: DIW-005562-조예나.hwp -> DIW-005562-조예나.hml +2026-01-28 17:51:28,861 - INFO - 변환 성공: DIW-005591-유시우.hwp -> DIW-005591-유시우.hml +2026-01-28 17:51:29,295 - INFO - 변환 성공: DIW-005592-김태훈.hwp -> DIW-005592-김태훈.hml +2026-01-28 17:51:29,626 - INFO - 변환 성공: DIW-005696-김영민.hwp -> DIW-005696-김영민.hml +2026-01-28 17:51:30,044 - INFO - 변환 성공: DIW-005735-이현우.hwp -> DIW-005735-이현우.hml +2026-01-28 17:51:30,508 - INFO - 변환 성공: DIW-005762-김민준.hwp -> DIW-005762-김민준.hml +2026-01-28 17:51:30,919 - INFO - 변환 성공: DIW-005763-김수한.hwp -> DIW-005763-김수한.hml +2026-01-28 17:51:31,241 - INFO - 변환 성공: DIW-005764-박지홍.hwp -> DIW-005764-박지홍.hml +2026-01-28 17:51:31,535 - INFO - 변환 성공: DIW-005765-이예나.hwp -> DIW-005765-이예나.hml +2026-01-28 17:51:32,189 - INFO - 변환 성공: DIW-005798-유채현.hwp -> DIW-005798-유채현.hml +2026-01-28 17:51:32,686 - INFO - 변환 성공: DIW-005799-김서윤.hwp -> DIW-005799-김서윤.hml +2026-01-28 17:51:33,212 - INFO - 변환 성공: DIW-005800-신아영.hwp -> DIW-005800-신아영.hml +2026-01-28 17:51:33,803 - INFO - 변환 성공: DIW-005809-김국현.hwp -> DIW-005809-김국현.hml +2026-01-28 17:51:34,385 - INFO - 변환 성공: DIW-005853-이서윤.hwp -> DIW-005853-이서윤.hml +2026-01-28 17:51:34,914 - INFO - 변환 성공: DIW-005924-이예진.hwp -> DIW-005924-이예진.hml +2026-01-28 17:51:35,421 - INFO - 변환 성공: DIW-005960-진우림.hwp -> DIW-005960-진우림.hml +2026-01-28 17:51:35,869 - INFO - 변환 성공: DIW-005962-이도헌.hwp -> DIW-005962-이도헌.hml +2026-01-28 17:51:36,296 - INFO - 변환 성공: DIW-005963-임다온.hwp -> DIW-005963-임다온.hml +2026-01-28 17:51:36,954 - INFO - 변환 성공: DIW-005964-이유진.hwp -> DIW-005964-이유진.hml +2026-01-28 17:51:37,563 - INFO - 변환 성공: DIW-005965-임준현.hwp -> DIW-005965-임준현.hml +2026-01-28 17:51:38,061 - INFO - 변환 성공: DIW-005966-이도윤.hwp -> DIW-005966-이도윤.hml +2026-01-28 17:51:38,598 - INFO - 변환 성공: DIW-005968-이유찬.hwp -> DIW-005968-이유찬.hml +2026-01-28 17:51:39,104 - INFO - 변환 성공: DIW-005974-양승유.hwp -> DIW-005974-양승유.hml +2026-01-28 17:51:39,643 - INFO - 변환 성공: DIW-005979-이다인.hwp -> DIW-005979-이다인.hml +2026-01-28 17:51:40,143 - INFO - 변환 성공: DIW-006014-전하은.hwp -> DIW-006014-전하은.hml +2026-01-28 17:51:40,649 - INFO - 변환 성공: DIW-006071-전연후.hwp -> DIW-006071-전연후.hml +2026-01-28 17:51:41,154 - INFO - 변환 성공: DIW-006072-이은서.hwp -> DIW-006072-이은서.hml +2026-01-28 17:51:41,678 - INFO - 변환 성공: DIW-006088-박닻별.hwp -> DIW-006088-박닻별.hml +2026-01-28 17:51:42,175 - INFO - 변환 성공: DIW-006093-장서윤.hwp -> DIW-006093-장서윤.hml +2026-01-28 17:51:42,754 - INFO - 변환 성공: DIW-006099-김승혁.hwp -> DIW-006099-김승혁.hml +2026-01-28 17:51:43,172 - INFO - 변환 성공: DIW-006131-이지명.hwp -> DIW-006131-이지명.hml +2026-01-28 17:51:43,583 - INFO - 변환 성공: DIW-006146-조윤호.hwp -> DIW-006146-조윤호.hml +2026-01-28 17:51:44,108 - INFO - 변환 성공: DIW-006147-하도훈.hwp -> DIW-006147-하도훈.hml +2026-01-28 17:51:44,636 - INFO - 변환 성공: DIW-006148-윤지유.hwp -> DIW-006148-윤지유.hml +2026-01-28 17:51:45,151 - INFO - 변환 성공: DIW-006149-박소율.hwp -> DIW-006149-박소율.hml +2026-01-28 17:51:45,673 - INFO - 변환 성공: DIW-006150-박민제.hwp -> DIW-006150-박민제.hml +2026-01-28 17:51:46,200 - INFO - 변환 성공: DIW-006253-고다윤.hwp -> DIW-006253-고다윤.hml +2026-01-28 17:51:46,647 - INFO - 변환 성공: DIW-006322-김주아.hwp -> DIW-006322-김주아.hml +2026-01-28 17:51:47,086 - INFO - 변환 성공: DIW-006323-윤하영.hwp -> DIW-006323-윤하영.hml +2026-01-28 17:51:47,611 - INFO - 변환 성공: DIW-006324-김서현.hwp -> DIW-006324-김서현.hml +2026-01-28 17:51:48,138 - INFO - 변환 성공: DIW-006325-진정한.hwp -> DIW-006325-진정한.hml +2026-01-28 17:51:48,638 - INFO - 변환 성공: DIW-006359-이윤호.hwp -> DIW-006359-이윤호.hml +2026-01-28 17:51:49,135 - INFO - 변환 성공: DIW-006360-김소연.hwp -> DIW-006360-김소연.hml +2026-01-28 17:51:49,643 - INFO - 변환 성공: DIW-006362-한다희.hwp -> DIW-006362-한다희.hml +2026-01-28 17:51:50,082 - INFO - 변환 성공: DIW-006366-고유환.hwp -> DIW-006366-고유환.hml +2026-01-28 17:51:50,497 - INFO - 변환 성공: DIW-006372-박다인.hwp -> DIW-006372-박다인.hml +2026-01-28 17:51:51,021 - INFO - 변환 성공: DIW-006511-김민준.hwp -> DIW-006511-김민준.hml +2026-01-28 17:51:51,540 - INFO - 변환 성공: DIW-006515-김서율.hwp -> DIW-006515-김서율.hml +2026-01-28 17:51:52,064 - INFO - 변환 성공: DIW-006516-이재준.hwp -> DIW-006516-이재준.hml +2026-01-28 17:51:52,821 - INFO - 변환 성공: DIW-006517-이주희.hwp -> DIW-006517-이주희.hml +2026-01-28 17:51:53,256 - INFO - 변환 성공: DIW-006537-김도근.hwp -> DIW-006537-김도근.hml +2026-01-28 17:51:53,676 - INFO - 변환 성공: DIW-006538-정윤서.hwp -> DIW-006538-정윤서.hml +2026-01-28 17:51:54,209 - INFO - 변환 성공: DIW-006548-박세빈.hwp -> DIW-006548-박세빈.hml +2026-01-28 17:51:54,563 - INFO - 변환 성공: DIW-006570-문서준.hwp -> DIW-006570-문서준.hml +2026-01-28 17:51:54,846 - INFO - 변환 성공: DIW-006571-최현수.hwp -> DIW-006571-최현수.hml +2026-01-28 17:51:55,239 - INFO - 변환 성공: DIW-006635-서라엘.hwp -> DIW-006635-서라엘.hml +2026-01-28 17:51:55,764 - INFO - 변환 성공: DIW-006653-문예성.hwp -> DIW-006653-문예성.hml +2026-01-28 17:51:56,301 - INFO - 변환 성공: DIW-006654-전민수.hwp -> DIW-006654-전민수.hml +2026-01-28 17:51:56,813 - INFO - 변환 성공: DIW-006655-하나윤.hwp -> DIW-006655-하나윤.hml +2026-01-28 17:51:57,373 - INFO - 변환 성공: DIW-006656-김서윤.hwp -> DIW-006656-김서윤.hml +2026-01-28 17:51:57,899 - INFO - 변환 성공: DIW-006657-김설호.hwp -> DIW-006657-김설호.hml +2026-01-28 17:51:58,593 - INFO - 변환 성공: DIW-006683-윤준혁.hwp -> DIW-006683-윤준혁.hml +2026-01-28 17:51:59,020 - INFO - 변환 성공: DIW-006684-임찬.hwp -> DIW-006684-임찬.hml +2026-01-28 17:51:59,314 - INFO - 변환 성공: DIW-006718-박시헌.hwp -> DIW-006718-박시헌.hml +2026-01-28 17:51:59,721 - INFO - 변환 성공: DIW-006719-최지한.hwp -> DIW-006719-최지한.hml +2026-01-28 17:52:00,251 - INFO - 변환 성공: DIW-006735-최강우.hwp -> DIW-006735-최강우.hml +2026-01-28 17:52:00,787 - INFO - 변환 성공: DIW-006736-지윤솔.hwp -> DIW-006736-지윤솔.hml +2026-01-28 17:52:01,290 - INFO - 변환 성공: DIW-006737-박지훈.hwp -> DIW-006737-박지훈.hml +2026-01-28 17:52:01,717 - INFO - 변환 성공: DIW-006738-김민유.hwp -> DIW-006738-김민유.hml +2026-01-28 17:52:02,099 - INFO - 변환 성공: DIW-006785-김유민.hwp -> DIW-006785-김유민.hml +2026-01-28 17:52:02,611 - INFO - 변환 성공: DIW-006795-임정윤.hwp -> DIW-006795-임정윤.hml +2026-01-28 17:52:03,032 - INFO - 변환 성공: DIW-006807-소하람.hwp -> DIW-006807-소하람.hml +2026-01-28 17:52:03,340 - INFO - 변환 성공: DIW-006840-차지호.hwp -> DIW-006840-차지호.hml +2026-01-28 17:52:03,640 - INFO - 변환 성공: DIW-006842-최현수.hwp -> DIW-006842-최현수.hml +2026-01-28 17:52:04,032 - INFO - 변환 성공: DIW-007461-김지안.hwp -> DIW-007461-김지안.hml +2026-01-28 17:52:04,554 - INFO - 변환 성공: DIW-007462-박준우.hwp -> DIW-007462-박준우.hml +2026-01-28 17:52:05,075 - INFO - 변환 성공: DIW-007463-김지유.hwp -> DIW-007463-김지유.hml +2026-01-28 17:52:05,579 - INFO - 변환 성공: DIW-007464-최현.hwp -> DIW-007464-최현.hml +2026-01-28 17:52:06,117 - INFO - 변환 성공: DIW-007465-김수진.hwp -> DIW-007465-김수진.hml +2026-01-28 17:52:06,665 - INFO - 변환 성공: DIW-007466-윤동건.hwp -> DIW-007466-윤동건.hml +2026-01-28 17:52:07,178 - INFO - 변환 성공: DIW-007483-콜린스그레이스리.hwp -> DIW-007483-콜린스그레이스리.hml +2026-01-28 17:52:07,697 - INFO - 변환 성공: DIW-007485-김민재.hwp -> DIW-007485-김민재.hml +2026-01-28 17:52:08,433 - INFO - 변환 성공: DIW-007486-최지우.hwp -> DIW-007486-최지우.hml +2026-01-28 17:52:08,949 - INFO - 변환 성공: DIW-007494-이예린.hwp -> DIW-007494-이예린.hml +2026-01-28 17:52:09,474 - INFO - 변환 성공: DIW-007509-신주율.hwp -> DIW-007509-신주율.hml +2026-01-28 17:52:09,995 - INFO - 변환 성공: DIW-007510-박윤서.hwp -> DIW-007510-박윤서.hml +2026-01-28 17:52:10,590 - INFO - 변환 성공: DIW-007511-송서유.hwp -> DIW-007511-송서유.hml +2026-01-28 17:52:11,023 - INFO - 변환 성공: DIW-007550-박서연.hwp -> DIW-007550-박서연.hml +2026-01-28 17:52:11,445 - INFO - 변환 성공: DIW-007552-설지후.hwp -> DIW-007552-설지후.hml +2026-01-28 17:52:11,979 - INFO - 변환 성공: DIW-007557-이태준.hwp -> DIW-007557-이태준.hml +2026-01-28 17:52:12,491 - INFO - 변환 성공: DIW-007558-김정빈.hwp -> DIW-007558-김정빈.hml +2026-01-28 17:52:12,913 - INFO - 변환 성공: DIW-007562-박서이.hwp -> DIW-007562-박서이.hml +2026-01-28 17:52:13,471 - INFO - 변환 성공: DIW-007564-김수호.hwp -> DIW-007564-김수호.hml +2026-01-28 17:52:13,987 - INFO - 변환 성공: DIW-007583-차아영.hwp -> DIW-007583-차아영.hml +2026-01-28 17:52:14,405 - INFO - 변환 성공: DIW-007605-김시우.hwp -> DIW-007605-김시우.hml +2026-01-28 17:52:14,915 - INFO - 변환 성공: DIW-007609-정지아.hwp -> DIW-007609-정지아.hml +2026-01-28 17:52:15,319 - INFO - 변환 성공: DIW-007611-김동규.hwp -> DIW-007611-김동규.hml +2026-01-28 17:52:15,704 - INFO - 변환 성공: DIW-007621-권민석.hwp -> DIW-007621-권민석.hml +2026-01-28 17:52:16,253 - INFO - 변환 성공: DIW-007628-이은구.hwp -> DIW-007628-이은구.hml +2026-01-28 17:52:16,829 - INFO - 변환 성공: DIW-007629-추선우.hwp -> DIW-007629-추선우.hml +2026-01-28 17:52:17,343 - INFO - 변환 성공: DIW-007630-송동준.hwp -> DIW-007630-송동준.hml +2026-01-28 17:52:17,852 - INFO - 변환 성공: DIW-007632-홍준영.hwp -> DIW-007632-홍준영.hml +2026-01-28 17:52:18,389 - INFO - 변환 성공: DIW-007643-이선우.hwp -> DIW-007643-이선우.hml +2026-01-28 17:52:18,893 - INFO - 변환 성공: DIW-007644-김성규.hwp -> DIW-007644-김성규.hml +2026-01-28 17:52:19,397 - INFO - 변환 성공: DIW-007677-김지안.hwp -> DIW-007677-김지안.hml +2026-01-28 17:52:19,923 - INFO - 변환 성공: DIW-007696-채예린.hwp -> DIW-007696-채예린.hml +2026-01-28 17:52:20,443 - INFO - 변환 성공: DIW-007697-박시현.hwp -> DIW-007697-박시현.hml +2026-01-28 17:52:20,945 - INFO - 변환 성공: DIW-007698-장윤우.hwp -> DIW-007698-장윤우.hml +2026-01-28 17:52:21,458 - INFO - 변환 성공: DIW-007765-구성민.hwp -> DIW-007765-구성민.hml +2026-01-28 17:52:21,990 - INFO - 변환 성공: DIW-007766-구준민.hwp -> DIW-007766-구준민.hml +2026-01-28 17:52:22,515 - INFO - 변환 성공: DIW-007783-박은찬.hwp -> DIW-007783-박은찬.hml +2026-01-28 17:52:23,021 - INFO - 변환 성공: DIW-007791-고유림.hwp -> DIW-007791-고유림.hml +2026-01-28 17:52:23,535 - INFO - 변환 성공: DIW-007798-한시원.hwp -> DIW-007798-한시원.hml +2026-01-28 17:52:24,052 - INFO - 변환 성공: DIW-007801-김라임.hwp -> DIW-007801-김라임.hml +2026-01-28 17:52:24,573 - INFO - 변환 성공: DIW-007805-김시율.hwp -> DIW-007805-김시율.hml +2026-01-28 17:52:25,101 - INFO - 변환 성공: DIW-007820-지요셉.hwp -> DIW-007820-지요셉.hml +2026-01-28 17:52:25,622 - INFO - 변환 성공: DIW-007862-선예린.hwp -> DIW-007862-선예린.hml +2026-01-28 17:52:26,151 - INFO - 변환 성공: DIW-007863-이지민.hwp -> DIW-007863-이지민.hml +2026-01-28 17:52:26,724 - INFO - 변환 성공: DIW_2601B.hwpx -> DIW_2601B.hml +2026-01-28 17:52:27,094 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601\B\DIW -> D:\project\HWP\HWP-Scoring\output\2601\B\DIW +2026-01-28 17:52:27,595 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601\C\DIW +2026-01-28 18:00:58,220 - INFO - 변환 성공: DIW-000029-김예서.hwp -> DIW-000029-김예서.hml +2026-01-28 18:00:58,851 - INFO - 변환 성공: DIW-000036-계정우.hwp -> DIW-000036-계정우.hml +2026-01-28 18:00:59,388 - INFO - 변환 성공: DIW-000042-이지유.hwp -> DIW-000042-이지유.hml +2026-01-28 18:00:59,936 - INFO - 변환 성공: DIW-000046-곽태연.hwp -> DIW-000046-곽태연.hml +2026-01-28 18:01:00,485 - INFO - 변환 성공: DIW-000048-이다원.hwp -> DIW-000048-이다원.hml +2026-01-28 18:01:01,020 - INFO - 변환 성공: DIW-000049-이서율.hwp -> DIW-000049-이서율.hml +2026-01-28 18:01:01,563 - INFO - 변환 성공: DIW-000050-권상희.hwp -> DIW-000050-권상희.hml +2026-01-28 18:01:02,105 - INFO - 변환 성공: DIW-000051-박채아.hwp -> DIW-000051-박채아.hml +2026-01-28 18:01:02,646 - INFO - 변환 성공: DIW-000052-손은채.hwp -> DIW-000052-손은채.hml +2026-01-28 18:01:03,201 - INFO - 변환 성공: DIW-000053-김준형.hwp -> DIW-000053-김준형.hml +2026-01-28 18:01:03,730 - INFO - 변환 성공: DIW-000056-김금재.hwp -> DIW-000056-김금재.hml +2026-01-28 18:01:04,290 - INFO - 변환 성공: DIW-000057-윤지호.hwp -> DIW-000057-윤지호.hml +2026-01-28 18:01:04,897 - INFO - 변환 성공: DIW-000058-조서영.hwp -> DIW-000058-조서영.hml +2026-01-28 18:01:05,551 - INFO - 변환 성공: DIW-000059-장지민.hwp -> DIW-000059-장지민.hml +2026-01-28 18:01:06,133 - INFO - 변환 성공: DIW-000062-박보미.hwp -> DIW-000062-박보미.hml +2026-01-28 18:01:06,758 - INFO - 변환 성공: DIW-000065-김민지.hwp -> DIW-000065-김민지.hml +2026-01-28 18:01:07,480 - INFO - 변환 성공: DIW-000066-조윤솔.hwp -> DIW-000066-조윤솔.hml +2026-01-28 18:01:08,106 - INFO - 변환 성공: DIW-000238-정시헌.hwp -> DIW-000238-정시헌.hml +2026-01-28 18:01:08,870 - INFO - 변환 성공: DIW-000239-이상진.hwp -> DIW-000239-이상진.hml +2026-01-28 18:01:09,207 - INFO - 변환 성공: DIW-000240-이은유.hwp -> DIW-000240-이은유.hml +2026-01-28 18:01:09,573 - INFO - 변환 성공: DIW-000244-채동현.hwp -> DIW-000244-채동현.hml +2026-01-28 18:01:09,967 - INFO - 변환 성공: DIW-000245-장선우.hwp -> DIW-000245-장선우.hml +2026-01-28 18:01:10,608 - INFO - 변환 성공: DIW-000246-백범서.hwp -> DIW-000246-백범서.hml +2026-01-28 18:01:11,213 - INFO - 변환 성공: DIW-000247-이정빈.hwp -> DIW-000247-이정빈.hml +2026-01-28 18:01:11,707 - INFO - 변환 성공: DIW-000248-황준서.hwp -> DIW-000248-황준서.hml +2026-01-28 18:01:12,108 - INFO - 변환 성공: DIW-000249-최다율.hwp -> DIW-000249-최다율.hml +2026-01-28 18:01:12,668 - INFO - 변환 성공: DIW-000250-박나은.hwp -> DIW-000250-박나은.hml +2026-01-28 18:01:13,225 - INFO - 변환 성공: DIW-000253-안소민.hwp -> DIW-000253-안소민.hml +2026-01-28 18:01:13,896 - INFO - 변환 성공: DIW-000306-오승민.hwp -> DIW-000306-오승민.hml +2026-01-28 18:01:14,350 - INFO - 변환 성공: DIW-000317-전서현.hwp -> DIW-000317-전서현.hml +2026-01-28 18:01:14,788 - INFO - 변환 성공: DIW-000325-정시온.hwp -> DIW-000325-정시온.hml +2026-01-28 18:01:15,255 - INFO - 변환 성공: DIW-000379-최여울.hwp -> DIW-000379-최여울.hml +2026-01-28 18:01:15,661 - INFO - 변환 성공: DIW-000380-이아윤.hwp -> DIW-000380-이아윤.hml +2026-01-28 18:01:16,218 - INFO - 변환 성공: DIW-000452-노다윤.hwp -> DIW-000452-노다윤.hml +2026-01-28 18:01:16,667 - INFO - 변환 성공: DIW-000460-김도윤.hwp -> DIW-000460-김도윤.hml +2026-01-28 18:01:17,268 - INFO - 변환 성공: DIW-000473-조윤서.hwp -> DIW-000473-조윤서.hml +2026-01-28 18:01:17,830 - INFO - 변환 성공: DIW-000475-하윤아.hwp -> DIW-000475-하윤아.hml +2026-01-28 18:01:18,384 - INFO - 변환 성공: DIW-000476-박서준.hwp -> DIW-000476-박서준.hml +2026-01-28 18:01:18,946 - INFO - 변환 성공: DIW-000481-강민준.hwp -> DIW-000481-강민준.hml +2026-01-28 18:01:19,488 - INFO - 변환 성공: DIW-000492-김수인.hwp -> DIW-000492-김수인.hml +2026-01-28 18:01:19,940 - INFO - 변환 성공: DIW-000587-김은별.hwp -> DIW-000587-김은별.hml +2026-01-28 18:01:20,246 - INFO - 변환 성공: DIW-000589-황현서.hwp -> DIW-000589-황현서.hml +2026-01-28 18:01:20,627 - INFO - 변환 성공: DIW-000592-최지우.hwp -> DIW-000592-최지우.hml +2026-01-28 18:01:21,196 - INFO - 변환 성공: DIW-000594-임현우.hwp -> DIW-000594-임현우.hml +2026-01-28 18:01:21,765 - INFO - 변환 성공: DIW-000607-윤지율.hwp -> DIW-000607-윤지율.hml +2026-01-28 18:01:22,323 - INFO - 변환 성공: DIW-000613-양진한.hwp -> DIW-000613-양진한.hml +2026-01-28 18:01:22,806 - INFO - 변환 성공: DIW-000614-주다혜.hwp -> DIW-000614-주다혜.hml +2026-01-28 18:01:23,229 - INFO - 변환 성공: DIW-000624-유선환.hwp -> DIW-000624-유선환.hml +2026-01-28 18:01:23,808 - INFO - 변환 성공: DIW-000718-도이든.hwp -> DIW-000718-도이든.hml +2026-01-28 18:01:24,588 - INFO - 변환 성공: DIW-000719-김효림.hwp -> DIW-000719-김효림.hml +2026-01-28 18:01:25,128 - INFO - 변환 성공: DIW-000720-서예준.hwp -> DIW-000720-서예준.hml +2026-01-28 18:01:25,586 - INFO - 변환 성공: DIW-000721-서주아.hwp -> DIW-000721-서주아.hml +2026-01-28 18:01:25,995 - INFO - 변환 성공: DIW-000722-변가은.hwp -> DIW-000722-변가은.hml +2026-01-28 18:01:26,554 - INFO - 변환 성공: DIW-000723-김소은.hwp -> DIW-000723-김소은.hml +2026-01-28 18:01:27,108 - INFO - 변환 성공: DIW-000724-김가람.hwp -> DIW-000724-김가람.hml +2026-01-28 18:01:27,666 - INFO - 변환 성공: DIW-000725-김진헌.hwp -> DIW-000725-김진헌.hml +2026-01-28 18:01:28,288 - INFO - 변환 성공: DIW-000726-김가현.hwp -> DIW-000726-김가현.hml +2026-01-28 18:01:28,845 - INFO - 변환 성공: DIW-000727-김태훈.hwp -> DIW-000727-김태훈.hml +2026-01-28 18:01:29,392 - INFO - 변환 성공: DIW-000728-김하빈.hwp -> DIW-000728-김하빈.hml +2026-01-28 18:01:30,124 - INFO - 변환 성공: DIW-000771-류아인.hwp -> DIW-000771-류아인.hml +2026-01-28 18:01:30,663 - INFO - 변환 성공: DIW-000794-허서윤.hwp -> DIW-000794-허서윤.hml +2026-01-28 18:01:31,213 - INFO - 변환 성공: DIW-000797-허서연.hwp -> DIW-000797-허서연.hml +2026-01-28 18:01:31,761 - INFO - 변환 성공: DIW-000820-강민서.hwp -> DIW-000820-강민서.hml +2026-01-28 18:01:32,289 - INFO - 변환 성공: DIW-000844-도은서.hwp -> DIW-000844-도은서.hml +2026-01-28 18:01:32,833 - INFO - 변환 성공: DIW-000845-편윤아.hwp -> DIW-000845-편윤아.hml +2026-01-28 18:01:33,380 - INFO - 변환 성공: DIW-000846-이세영.hwp -> DIW-000846-이세영.hml +2026-01-28 18:01:33,928 - INFO - 변환 성공: DIW-000847-오승지.hwp -> DIW-000847-오승지.hml +2026-01-28 18:01:34,495 - INFO - 변환 성공: DIW-000848-지소연.hwp -> DIW-000848-지소연.hml +2026-01-28 18:01:35,033 - INFO - 변환 성공: DIW-000849-김원준.hwp -> DIW-000849-김원준.hml +2026-01-28 18:01:35,598 - INFO - 변환 성공: DIW-000850-손지호.hwp -> DIW-000850-손지호.hml +2026-01-28 18:01:36,186 - INFO - 변환 성공: DIW-000854-김리원.hwp -> DIW-000854-김리원.hml +2026-01-28 18:01:36,804 - INFO - 변환 성공: DIW-000856-황정아.hwp -> DIW-000856-황정아.hml +2026-01-28 18:01:37,405 - INFO - 변환 성공: DIW-000858-조정연.hwp -> DIW-000858-조정연.hml +2026-01-28 18:01:37,973 - INFO - 변환 성공: DIW-000860-김예나.hwp -> DIW-000860-김예나.hml +2026-01-28 18:01:38,533 - INFO - 변환 성공: DIW-000867-이세윤.hwp -> DIW-000867-이세윤.hml +2026-01-28 18:01:39,123 - INFO - 변환 성공: DIW-000900-박정현.hwp -> DIW-000900-박정현.hml +2026-01-28 18:01:39,685 - INFO - 변환 성공: DIW-000919-백서아.hwp -> DIW-000919-백서아.hml +2026-01-28 18:01:40,174 - INFO - 변환 성공: DIW-001013-강민서.hwp -> DIW-001013-강민서.hml +2026-01-28 18:01:40,651 - INFO - 변환 성공: DIW-001020-채희성.hwp -> DIW-001020-채희성.hml +2026-01-28 18:01:41,213 - INFO - 변환 성공: DIW-001021-서주애.hwp -> DIW-001021-서주애.hml +2026-01-28 18:01:41,745 - INFO - 변환 성공: DIW-001025-박유민.hwp -> DIW-001025-박유민.hml +2026-01-28 18:01:42,281 - INFO - 변환 성공: DIW-001034-권봄.hwp -> DIW-001034-권봄.hml +2026-01-28 18:01:42,833 - INFO - 변환 성공: DIW-001085-피진우.hwp -> DIW-001085-피진우.hml +2026-01-28 18:01:43,340 - INFO - 변환 성공: DIW-001103-김도린.hwp -> DIW-001103-김도린.hml +2026-01-28 18:01:43,657 - INFO - 변환 성공: DIW-001105-이하린.hwp -> DIW-001105-이하린.hml +2026-01-28 18:01:43,952 - INFO - 변환 성공: DIW-001106-강초원.hwp -> DIW-001106-강초원.hml +2026-01-28 18:01:44,249 - INFO - 변환 성공: DIW-001107-추은총.hwp -> DIW-001107-추은총.hml +2026-01-28 18:01:44,634 - INFO - 변환 성공: DIW-001108-김유림.hwp -> DIW-001108-김유림.hml +2026-01-28 18:01:45,217 - INFO - 변환 성공: DIW-001138-강하영.hwp -> DIW-001138-강하영.hml +2026-01-28 18:01:45,795 - INFO - 변환 성공: DIW-001139-임가람.hwp -> DIW-001139-임가람.hml +2026-01-28 18:01:46,383 - INFO - 변환 성공: DIW-001140-임가민.hwp -> DIW-001140-임가민.hml +2026-01-28 18:01:46,857 - INFO - 변환 성공: DIW-001148-김찬혁.hwp -> DIW-001148-김찬혁.hml +2026-01-28 18:01:47,257 - INFO - 변환 성공: DIW-001163-박시우.hwp -> DIW-001163-박시우.hml +2026-01-28 18:01:47,808 - INFO - 변환 성공: DIW-001167-임재린.hwp -> DIW-001167-임재린.hml +2026-01-28 18:01:48,364 - INFO - 변환 성공: DIW-001196-김하린.hwp -> DIW-001196-김하린.hml +2026-01-28 18:01:48,911 - INFO - 변환 성공: DIW-001240-김주원.hwp -> DIW-001240-김주원.hml +2026-01-28 18:01:49,473 - INFO - 변환 성공: DIW-001241-고하린.hwp -> DIW-001241-고하린.hml +2026-01-28 18:01:50,049 - INFO - 변환 성공: DIW-001268-박범솔.hwp -> DIW-001268-박범솔.hml +2026-01-28 18:01:50,744 - INFO - 변환 성공: DIW-001272-박지훈.hwp -> DIW-001272-박지훈.hml +2026-01-28 18:01:51,296 - INFO - 변환 성공: DIW-001283-최재준.hwp -> DIW-001283-최재준.hml +2026-01-28 18:01:51,920 - INFO - 변환 성공: DIW-001285-강태호.hwp -> DIW-001285-강태호.hml +2026-01-28 18:01:52,482 - INFO - 변환 성공: DIW-001286-최다온.hwp -> DIW-001286-최다온.hml +2026-01-28 18:01:53,080 - INFO - 변환 성공: DIW-001287-최혜빈.hwp -> DIW-001287-최혜빈.hml +2026-01-28 18:01:53,650 - INFO - 변환 성공: DIW-001288-양진혁.hwp -> DIW-001288-양진혁.hml +2026-01-28 18:01:54,127 - INFO - 변환 성공: DIW-001293-황혜림.hwp -> DIW-001293-황혜림.hml +2026-01-28 18:01:54,538 - INFO - 변환 성공: DIW-001302-Battogtokh Ariunzul.hwp -> DIW-001302-Battogtokh Ariunzul.hml +2026-01-28 18:01:55,103 - INFO - 변환 성공: DIW-001316-이유정.hwp -> DIW-001316-이유정.hml +2026-01-28 18:01:55,668 - INFO - 변환 성공: DIW-001339-이우빈.hwp -> DIW-001339-이우빈.hml +2026-01-28 18:01:56,320 - INFO - 변환 성공: DIW-001363-이서준.hwp -> DIW-001363-이서준.hml +2026-01-28 18:01:56,850 - INFO - 변환 성공: DIW-001364-허예담.hwp -> DIW-001364-허예담.hml +2026-01-28 18:01:57,411 - INFO - 변환 성공: DIW-001365-박설.hwp -> DIW-001365-박설.hml +2026-01-28 18:01:57,967 - INFO - 변환 성공: DIW-001368-이환준.hwp -> DIW-001368-이환준.hml +2026-01-28 18:01:58,510 - INFO - 변환 성공: DIW-001369-김소영.hwp -> DIW-001369-김소영.hml +2026-01-28 18:01:59,074 - INFO - 변환 성공: DIW-001370-김근애.hwp -> DIW-001370-김근애.hml +2026-01-28 18:01:59,625 - INFO - 변환 성공: DIW-001431-박지윤.hwp -> DIW-001431-박지윤.hml +2026-01-28 18:02:00,172 - INFO - 변환 성공: DIW-001432-김아인.hwp -> DIW-001432-김아인.hml +2026-01-28 18:02:00,732 - INFO - 변환 성공: DIW-001433-박보은.hwp -> DIW-001433-박보은.hml +2026-01-28 18:02:01,312 - INFO - 변환 성공: DIW-001455-이가윤.hwp -> DIW-001455-이가윤.hml +2026-01-28 18:02:01,867 - INFO - 변환 성공: DIW-001549-이솔인.hwp -> DIW-001549-이솔인.hml +2026-01-28 18:02:02,408 - INFO - 변환 성공: DIW-001558-정예림.hwp -> DIW-001558-정예림.hml +2026-01-28 18:02:02,951 - INFO - 변환 성공: DIW-001644-은지우.hwp -> DIW-001644-은지우.hml +2026-01-28 18:02:03,502 - INFO - 변환 성공: DIW-001645-김하율.hwp -> DIW-001645-김하율.hml +2026-01-28 18:02:03,959 - INFO - 변환 성공: DIW-001647-전유리.hwp -> DIW-001647-전유리.hml +2026-01-28 18:02:04,350 - INFO - 변환 성공: DIW-001657-김재윤.hwp -> DIW-001657-김재윤.hml +2026-01-28 18:02:04,803 - INFO - 변환 성공: DIW-001658-장선우.hwp -> DIW-001658-장선우.hml +2026-01-28 18:02:05,209 - INFO - 변환 성공: DIW-001659-송시훈.hwp -> DIW-001659-송시훈.hml +2026-01-28 18:02:05,665 - INFO - 변환 성공: DIW-001660-박설아.hwp -> DIW-001660-박설아.hml +2026-01-28 18:02:06,078 - INFO - 변환 성공: DIW-001715-백호.hwp -> DIW-001715-백호.hml +2026-01-28 18:02:06,373 - INFO - 변환 성공: DIW-001716-박현우.hwp -> DIW-001716-박현우.hml +2026-01-28 18:02:06,824 - INFO - 변환 성공: DIW-001718-조승현.hwp -> DIW-001718-조승현.hml +2026-01-28 18:02:07,133 - INFO - 변환 성공: DIW-001719-이솔하연.hwp -> DIW-001719-이솔하연.hml +2026-01-28 18:02:07,465 - INFO - 변환 성공: DIW-001727-지소율.hwp -> DIW-001727-지소율.hml +2026-01-28 18:02:07,760 - INFO - 변환 성공: DIW-001747-안다윤.hwp -> DIW-001747-안다윤.hml +2026-01-28 18:02:08,208 - INFO - 변환 성공: DIW-001766-박정원.hwp -> DIW-001766-박정원.hml +2026-01-28 18:02:08,778 - INFO - 변환 성공: DIW-001767-이윤후.hwp -> DIW-001767-이윤후.hml +2026-01-28 18:02:09,326 - INFO - 변환 성공: DIW-001768-손민준.hwp -> DIW-001768-손민준.hml +2026-01-28 18:02:09,811 - INFO - 변환 성공: DIW-001775-정재은.hwp -> DIW-001775-정재은.hml +2026-01-28 18:02:10,218 - INFO - 변환 성공: DIW-001790-이예원.hwp -> DIW-001790-이예원.hml +2026-01-28 18:02:10,793 - INFO - 변환 성공: DIW-001794-김다온.hwp -> DIW-001794-김다온.hml +2026-01-28 18:02:11,362 - INFO - 변환 성공: DIW-001852-이승연.hwp -> DIW-001852-이승연.hml +2026-01-28 18:02:12,082 - INFO - 변환 성공: DIW-001875-박지후.hwp -> DIW-001875-박지후.hml +2026-01-28 18:02:12,626 - INFO - 변환 성공: DIW-001901-최하랑.hwp -> DIW-001901-최하랑.hml +2026-01-28 18:02:13,184 - INFO - 변환 성공: DIW-001902-최현우.hwp -> DIW-001902-최현우.hml +2026-01-28 18:02:13,738 - INFO - 변환 성공: DIW-001908-이하율.hwp -> DIW-001908-이하율.hml +2026-01-28 18:02:14,301 - INFO - 변환 성공: DIW-001914-최은율.hwp -> DIW-001914-최은율.hml +2026-01-28 18:02:14,857 - INFO - 변환 성공: DIW-001916-정서우.hwp -> DIW-001916-정서우.hml +2026-01-28 18:02:15,418 - INFO - 변환 성공: DIW-001917-정서영.hwp -> DIW-001917-정서영.hml +2026-01-28 18:02:15,867 - INFO - 변환 성공: DIW-001976-배진주.hwp -> DIW-001976-배진주.hml +2026-01-28 18:02:16,317 - INFO - 변환 성공: DIW-001978-강서연.hwp -> DIW-001978-강서연.hml +2026-01-28 18:02:16,920 - INFO - 변환 성공: DIW-001980-김온유.hwp -> DIW-001980-김온유.hml +2026-01-28 18:02:17,476 - INFO - 변환 성공: DIW-001981-송온유.hwp -> DIW-001981-송온유.hml +2026-01-28 18:02:18,030 - INFO - 변환 성공: DIW-002008-김도형.hwp -> DIW-002008-김도형.hml +2026-01-28 18:02:18,499 - INFO - 변환 성공: DIW-002017-공주아.hwp -> DIW-002017-공주아.hml +2026-01-28 18:02:19,079 - INFO - 변환 성공: DIW-002018-최윤.hwp -> DIW-002018-최윤.hml +2026-01-28 18:02:19,584 - INFO - 변환 성공: DIW-002037-방세연.hwp -> DIW-002037-방세연.hml +2026-01-28 18:02:20,026 - INFO - 변환 성공: DIW-002051-최아인.hwp -> DIW-002051-최아인.hml +2026-01-28 18:02:20,611 - INFO - 변환 성공: DIW-002052-양지유.hwp -> DIW-002052-양지유.hml +2026-01-28 18:02:21,206 - INFO - 변환 성공: DIW-002091-전정민.hwp -> DIW-002091-전정민.hml +2026-01-28 18:02:22,021 - INFO - 변환 성공: DIW-002102-김동현.hwp -> DIW-002102-김동현.hml +2026-01-28 18:02:22,625 - INFO - 변환 성공: DIW-002120-장유주.hwp -> DIW-002120-장유주.hml +2026-01-28 18:02:23,204 - INFO - 변환 성공: DIW-002138-김주언.hwp -> DIW-002138-김주언.hml +2026-01-28 18:02:23,944 - INFO - 변환 성공: DIW-002148-김승연.hwp -> DIW-002148-김승연.hml +2026-01-28 18:02:24,613 - INFO - 변환 성공: DIW-002153-송유리.hwp -> DIW-002153-송유리.hml +2026-01-28 18:02:25,206 - INFO - 변환 성공: DIW-002178-장연서.hwp -> DIW-002178-장연서.hml +2026-01-28 18:02:25,846 - INFO - 변환 성공: DIW-002232-박민주.hwp -> DIW-002232-박민주.hml +2026-01-28 18:02:26,461 - INFO - 변환 성공: DIW-002270-이유빈.hwp -> DIW-002270-이유빈.hml +2026-01-28 18:02:27,014 - INFO - 변환 성공: DIW-002271-진가영.hwp -> DIW-002271-진가영.hml +2026-01-28 18:02:27,557 - INFO - 변환 성공: DIW-002281-이재희.hwp -> DIW-002281-이재희.hml +2026-01-28 18:02:28,098 - INFO - 변환 성공: DIW-002282-김규리.hwp -> DIW-002282-김규리.hml +2026-01-28 18:02:28,657 - INFO - 변환 성공: DIW-002314-구나현.hwp -> DIW-002314-구나현.hml +2026-01-28 18:02:29,233 - INFO - 변환 성공: DIW-002315-박지인.hwp -> DIW-002315-박지인.hml +2026-01-28 18:02:29,789 - INFO - 변환 성공: DIW-002316-이지민.hwp -> DIW-002316-이지민.hml +2026-01-28 18:02:30,335 - INFO - 변환 성공: DIW-002320-배은서.hwp -> DIW-002320-배은서.hml +2026-01-28 18:02:30,906 - INFO - 변환 성공: DIW-002324-송은유.hwp -> DIW-002324-송은유.hml +2026-01-28 18:02:31,462 - INFO - 변환 성공: DIW-002325-홍가민.hwp -> DIW-002325-홍가민.hml +2026-01-28 18:02:32,017 - INFO - 변환 성공: DIW-002326-김라니.hwp -> DIW-002326-김라니.hml +2026-01-28 18:02:32,566 - INFO - 변환 성공: DIW-002328-김준우.hwp -> DIW-002328-김준우.hml +2026-01-28 18:02:33,115 - INFO - 변환 성공: DIW-002329-이서인.hwp -> DIW-002329-이서인.hml +2026-01-28 18:02:33,661 - INFO - 변환 성공: DIW-002330-박주원.hwp -> DIW-002330-박주원.hml +2026-01-28 18:02:34,240 - INFO - 변환 성공: DIW-002331-차수영.hwp -> DIW-002331-차수영.hml +2026-01-28 18:02:34,700 - INFO - 변환 성공: DIW-002365-박주혁.hwp -> DIW-002365-박주혁.hml +2026-01-28 18:02:35,155 - INFO - 변환 성공: DIW-002370-심연서.hwp -> DIW-002370-심연서.hml +2026-01-28 18:02:35,696 - INFO - 변환 성공: DIW-002372-한서윤.hwp -> DIW-002372-한서윤.hml +2026-01-28 18:02:36,239 - INFO - 변환 성공: DIW-002383-이예서.hwp -> DIW-002383-이예서.hml +2026-01-28 18:02:36,724 - INFO - 변환 성공: DIW-002409-진수아.hwp -> DIW-002409-진수아.hml +2026-01-28 18:02:37,130 - INFO - 변환 성공: DIW-002417-권하율.hwp -> DIW-002417-권하율.hml +2026-01-28 18:02:37,705 - INFO - 변환 성공: DIW-002443-김예령.hwp -> DIW-002443-김예령.hml +2026-01-28 18:02:38,258 - INFO - 변환 성공: DIW-002487-차세연.hwp -> DIW-002487-차세연.hml +2026-01-28 18:02:38,828 - INFO - 변환 성공: DIW-002651-김지원.hwp -> DIW-002651-김지원.hml +2026-01-28 18:02:39,290 - INFO - 변환 성공: DIW-002660-한재민.hwp -> DIW-002660-한재민.hml +2026-01-28 18:02:39,745 - INFO - 변환 성공: DIW-002742-소민성.hwp -> DIW-002742-소민성.hml +2026-01-28 18:02:40,305 - INFO - 변환 성공: DIW-002743-김나혜.hwp -> DIW-002743-김나혜.hml +2026-01-28 18:02:40,857 - INFO - 변환 성공: DIW-002745-고나은.hwp -> DIW-002745-고나은.hml +2026-01-28 18:02:41,415 - INFO - 변환 성공: DIW-002746-권가인.hwp -> DIW-002746-권가인.hml +2026-01-28 18:02:42,002 - INFO - 변환 성공: DIW-002751-추아린.hwp -> DIW-002751-추아린.hml +2026-01-28 18:02:42,645 - INFO - 변환 성공: DIW-002752-김주하.hwp -> DIW-002752-김주하.hml +2026-01-28 18:02:43,221 - INFO - 변환 성공: DIW-002753-김민서.hwp -> DIW-002753-김민서.hml +2026-01-28 18:02:43,765 - INFO - 변환 성공: DIW-002761-정소희.hwp -> DIW-002761-정소희.hml +2026-01-28 18:02:44,329 - INFO - 변환 성공: DIW-002762-김도영.hwp -> DIW-002762-김도영.hml +2026-01-28 18:02:44,898 - INFO - 변환 성공: DIW-002763-김경록.hwp -> DIW-002763-김경록.hml +2026-01-28 18:02:45,445 - INFO - 변환 성공: DIW-002880-김동규.hwp -> DIW-002880-김동규.hml +2026-01-28 18:02:45,994 - INFO - 변환 성공: DIW-002890-최우영.hwp -> DIW-002890-최우영.hml +2026-01-28 18:02:46,554 - INFO - 변환 성공: DIW-002892-김민결.hwp -> DIW-002892-김민결.hml +2026-01-28 18:02:47,020 - INFO - 변환 성공: DIW-002894-이승건.hwp -> DIW-002894-이승건.hml +2026-01-28 18:02:47,557 - INFO - 변환 성공: DIW-002911-박소연.hwp -> DIW-002911-박소연.hml +2026-01-28 18:02:48,118 - INFO - 변환 성공: DIW-002912-이찬미.hwp -> DIW-002912-이찬미.hml +2026-01-28 18:02:48,658 - INFO - 변환 성공: DIW-002916-남경빈.hwp -> DIW-002916-남경빈.hml +2026-01-28 18:02:49,203 - INFO - 변환 성공: DIW-002986-이현우.hwp -> DIW-002986-이현우.hml +2026-01-28 18:02:49,755 - INFO - 변환 성공: DIW-002987-황서한.hwp -> DIW-002987-황서한.hml +2026-01-28 18:02:50,308 - INFO - 변환 성공: DIW-002988-석상현.hwp -> DIW-002988-석상현.hml +2026-01-28 18:02:50,855 - INFO - 변환 성공: DIW-003021-손현결.hwp -> DIW-003021-손현결.hml +2026-01-28 18:02:51,411 - INFO - 변환 성공: DIW-003103-박동호.hwp -> DIW-003103-박동호.hml +2026-01-28 18:02:51,938 - INFO - 변환 성공: DIW-003106-진윤성.hwp -> DIW-003106-진윤성.hml +2026-01-28 18:02:52,642 - INFO - 변환 성공: DIW-003107-이도겸.hwp -> DIW-003107-이도겸.hml +2026-01-28 18:02:53,080 - INFO - 변환 성공: DIW-003109-한형준.hwp -> DIW-003109-한형준.hml +2026-01-28 18:02:53,488 - INFO - 변환 성공: DIW-003112-신결.hwp -> DIW-003112-신결.hml +2026-01-28 18:02:53,943 - INFO - 변환 성공: DIW-003115-유민혁.hwp -> DIW-003115-유민혁.hml +2026-01-28 18:02:54,365 - INFO - 변환 성공: DIW-003123-서금비.hwp -> DIW-003123-서금비.hml +2026-01-28 18:02:54,950 - INFO - 변환 성공: DIW-003124-박서연.hwp -> DIW-003124-박서연.hml +2026-01-28 18:02:55,511 - INFO - 변환 성공: DIW-003146-김영찬.hwp -> DIW-003146-김영찬.hml +2026-01-28 18:02:55,980 - INFO - 변환 성공: DIW-003148-서아연.hwp -> DIW-003148-서아연.hml +2026-01-28 18:02:56,378 - INFO - 변환 성공: DIW-003149-노현종.hwp -> DIW-003149-노현종.hml +2026-01-28 18:02:56,864 - INFO - 변환 성공: DIW-003173-이민재.hwp -> DIW-003173-이민재.hml +2026-01-28 18:02:57,259 - INFO - 변환 성공: DIW-003174-김윤아.hwp -> DIW-003174-김윤아.hml +2026-01-28 18:02:57,815 - INFO - 변환 성공: DIW-003187-이보영.hwp -> DIW-003187-이보영.hml +2026-01-28 18:02:58,360 - INFO - 변환 성공: DIW-003195-채희건.hwp -> DIW-003195-채희건.hml +2026-01-28 18:02:58,908 - INFO - 변환 성공: DIW-003196-김태영.hwp -> DIW-003196-김태영.hml +2026-01-28 18:02:59,374 - INFO - 변환 성공: DIW-003197-오석.hwp -> DIW-003197-오석.hml +2026-01-28 18:02:59,674 - INFO - 변환 성공: DIW-003198-유수아.hwp -> DIW-003198-유수아.hml +2026-01-28 18:03:00,056 - INFO - 변환 성공: DIW-003199-백열호.hwp -> DIW-003199-백열호.hml +2026-01-28 18:03:00,529 - INFO - 변환 성공: DIW-003200-박재현.hwp -> DIW-003200-박재현.hml +2026-01-28 18:03:00,937 - INFO - 변환 성공: DIW-003201-도하준.hwp -> DIW-003201-도하준.hml +2026-01-28 18:03:01,401 - INFO - 변환 성공: DIW-003202-차은솔.hwp -> DIW-003202-차은솔.hml +2026-01-28 18:03:01,808 - INFO - 변환 성공: DIW-003204-도민준.hwp -> DIW-003204-도민준.hml +2026-01-28 18:03:09,614 - INFO - 변환 성공: DIW-003205-이태강.hwp -> DIW-003205-이태강.hml +2026-01-28 18:03:10,200 - INFO - 변환 성공: DIW-003230-김문겸.hwp -> DIW-003230-김문겸.hml +2026-01-28 18:03:10,757 - INFO - 변환 성공: DIW-003291-김주윤.hwp -> DIW-003291-김주윤.hml +2026-01-28 18:03:11,318 - INFO - 변환 성공: DIW-003292-김준호.hwp -> DIW-003292-김준호.hml +2026-01-28 18:03:11,894 - INFO - 변환 성공: DIW-003293-유시아.hwp -> DIW-003293-유시아.hml +2026-01-28 18:03:12,441 - INFO - 변환 성공: DIW-003294-이파도.hwp -> DIW-003294-이파도.hml +2026-01-28 18:03:12,955 - INFO - 변환 성공: DIW-003295-전세영.hwp -> DIW-003295-전세영.hml +2026-01-28 18:03:13,477 - INFO - 변환 성공: DIW-003297-박형민.hwp -> DIW-003297-박형민.hml +2026-01-28 18:03:14,046 - INFO - 변환 성공: DIW-003322-김주영.hwp -> DIW-003322-김주영.hml +2026-01-28 18:03:14,641 - INFO - 변환 성공: DIW-003329-강준우.hwp -> DIW-003329-강준우.hml +2026-01-28 18:03:15,208 - INFO - 변환 성공: DIW-003330-남민유.hwp -> DIW-003330-남민유.hml +2026-01-28 18:03:15,778 - INFO - 변환 성공: DIW-003347-김도연.hwp -> DIW-003347-김도연.hml +2026-01-28 18:03:16,340 - INFO - 변환 성공: DIW-003351-용주영.hwp -> DIW-003351-용주영.hml +2026-01-28 18:03:16,919 - INFO - 변환 성공: DIW-003352-서주원.hwp -> DIW-003352-서주원.hml +2026-01-28 18:03:17,491 - INFO - 변환 성공: DIW-003363-이효인.hwp -> DIW-003363-이효인.hml +2026-01-28 18:03:18,152 - INFO - 변환 성공: DIW-003365-박서준.hwp -> DIW-003365-박서준.hml +2026-01-28 18:03:18,697 - INFO - 변환 성공: DIW-003369-신민규.hwp -> DIW-003369-신민규.hml +2026-01-28 18:03:19,258 - INFO - 변환 성공: DIW-003370-정유찬.hwp -> DIW-003370-정유찬.hml +2026-01-28 18:03:19,832 - INFO - 변환 성공: DIW-003424-박소윤.hwp -> DIW-003424-박소윤.hml +2026-01-28 18:03:20,374 - INFO - 변환 성공: DIW-003425-서은채.hwp -> DIW-003425-서은채.hml +2026-01-28 18:03:20,847 - INFO - 변환 성공: DIW-003426-황지훈.hwp -> DIW-003426-황지훈.hml +2026-01-28 18:03:21,403 - INFO - 변환 성공: DIW-003434-김이든.hwp -> DIW-003434-김이든.hml +2026-01-28 18:03:21,956 - INFO - 변환 성공: DIW-003504-한채아.hwp -> DIW-003504-한채아.hml +2026-01-28 18:03:22,507 - INFO - 변환 성공: DIW-003517-김동민.hwp -> DIW-003517-김동민.hml +2026-01-28 18:03:23,224 - INFO - 변환 성공: DIW-003549-정혜빈.hwp -> DIW-003549-정혜빈.hml +2026-01-28 18:03:23,773 - INFO - 변환 성공: DIW-003550-김준엽.hwp -> DIW-003550-김준엽.hml +2026-01-28 18:03:24,309 - INFO - 변환 성공: DIW-003551-이윤찬.hwp -> DIW-003551-이윤찬.hml +2026-01-28 18:03:24,772 - INFO - 변환 성공: DIW-003556-김준.hwp -> DIW-003556-김준.hml +2026-01-28 18:03:25,108 - INFO - 변환 성공: DIW-003559-차슬아.hwp -> DIW-003559-차슬아.hml +2026-01-28 18:03:25,513 - INFO - 변환 성공: DIW-003575-권송인.hwp -> DIW-003575-권송인.hml +2026-01-28 18:03:26,063 - INFO - 변환 성공: DIW-003628-고도윤.hwp -> DIW-003628-고도윤.hml +2026-01-28 18:03:26,619 - INFO - 변환 성공: DIW-003630-김서은.hwp -> DIW-003630-김서은.hml +2026-01-28 18:03:27,156 - INFO - 변환 성공: DIW-003691-박성경.hwp -> DIW-003691-박성경.hml +2026-01-28 18:03:27,626 - INFO - 변환 성공: DIW-003700-유채인.hwp -> DIW-003700-유채인.hml +2026-01-28 18:03:28,034 - INFO - 변환 성공: DIW-003773-정시온.hwp -> DIW-003773-정시온.hml +2026-01-28 18:03:28,576 - INFO - 변환 성공: DIW-003799-윤승주.hwp -> DIW-003799-윤승주.hml +2026-01-28 18:03:29,123 - INFO - 변환 성공: DIW-003800-최서원.hwp -> DIW-003800-최서원.hml +2026-01-28 18:03:29,584 - INFO - 변환 성공: DIW-003816-김예성.hwp -> DIW-003816-김예성.hml +2026-01-28 18:03:29,906 - INFO - 변환 성공: DIW-003817-박동주.hwp -> DIW-003817-박동주.hml +2026-01-28 18:03:30,108 - INFO - 변환 성공: DIW-003819-장범비.hwp -> DIW-003819-장범비.hml +2026-01-28 18:03:30,732 - INFO - 변환 성공: DIW-003830-이민호.hwp -> DIW-003830-이민호.hml +2026-01-28 18:03:31,287 - INFO - 변환 성공: DIW-003911-허유민.hwp -> DIW-003911-허유민.hml +2026-01-28 18:03:31,842 - INFO - 변환 성공: DIW-003912-김세인.hwp -> DIW-003912-김세인.hml +2026-01-28 18:03:32,379 - INFO - 변환 성공: DIW-003996-양현준.hwp -> DIW-003996-양현준.hml +2026-01-28 18:03:32,824 - INFO - 변환 성공: DIW-003998-이시언.hwp -> DIW-003998-이시언.hml +2026-01-28 18:03:33,266 - INFO - 변환 성공: DIW-003999-정지윤.hwp -> DIW-003999-정지윤.hml +2026-01-28 18:03:33,568 - INFO - 변환 성공: DIW-004000-조예담.hwp -> DIW-004000-조예담.hml +2026-01-28 18:03:33,936 - INFO - 변환 성공: DIW-004016-설현.hwp -> DIW-004016-설현.hml +2026-01-28 18:03:34,488 - INFO - 변환 성공: DIW-004017-임수지.hwp -> DIW-004017-임수지.hml +2026-01-28 18:03:35,065 - INFO - 변환 성공: DIW-004068-김지유.hwp -> DIW-004068-김지유.hml +2026-01-28 18:03:35,618 - INFO - 변환 성공: DIW-004069-김태건.hwp -> DIW-004069-김태건.hml +2026-01-28 18:03:36,184 - INFO - 변환 성공: DIW-004070-김시현.hwp -> DIW-004070-김시현.hml +2026-01-28 18:03:36,724 - INFO - 변환 성공: DIW-004071-권소이.hwp -> DIW-004071-권소이.hml +2026-01-28 18:03:37,265 - INFO - 변환 성공: DIW-004072-양유준.hwp -> DIW-004072-양유준.hml +2026-01-28 18:03:37,806 - INFO - 변환 성공: DIW-004073-김유림.hwp -> DIW-004073-김유림.hml +2026-01-28 18:03:38,366 - INFO - 변환 성공: DIW-004074-전하율.hwp -> DIW-004074-전하율.hml +2026-01-28 18:03:38,923 - INFO - 변환 성공: DIW-004078-조상우.hwp -> DIW-004078-조상우.hml +2026-01-28 18:03:39,468 - INFO - 변환 성공: DIW-004087-유예주.hwp -> DIW-004087-유예주.hml +2026-01-28 18:03:39,932 - INFO - 변환 성공: DIW-004088-이다솜.hwp -> DIW-004088-이다솜.hml +2026-01-28 18:03:40,243 - INFO - 변환 성공: DIW-004089-최주안.hwp -> DIW-004089-최주안.hml +2026-01-28 18:03:40,535 - INFO - 변환 성공: DIW-004090-한채윤.hwp -> DIW-004090-한채윤.hml +2026-01-28 18:03:40,926 - INFO - 변환 성공: DIW-004091-최지원.hwp -> DIW-004091-최지원.hml +2026-01-28 18:03:41,522 - INFO - 변환 성공: DIW-004118-신채원.hwp -> DIW-004118-신채원.hml +2026-01-28 18:03:41,907 - INFO - 변환 성공: DIW-004200-임서윤.hwp -> DIW-004200-임서윤.hml +2026-01-28 18:03:42,445 - INFO - 변환 성공: DIW-004201-은지윤.hwp -> DIW-004201-은지윤.hml +2026-01-28 18:03:43,000 - INFO - 변환 성공: DIW-004213-김라은.hwp -> DIW-004213-김라은.hml +2026-01-28 18:03:43,556 - INFO - 변환 성공: DIW-004227-원서윤.hwp -> DIW-004227-원서윤.hml +2026-01-28 18:03:44,121 - INFO - 변환 성공: DIW-004228-홍서준.hwp -> DIW-004228-홍서준.hml +2026-01-28 18:03:44,662 - INFO - 변환 성공: DIW-004287-이도영.hwp -> DIW-004287-이도영.hml +2026-01-28 18:03:45,132 - INFO - 변환 성공: DIW-004289-백성욱.hwp -> DIW-004289-백성욱.hml +2026-01-28 18:03:45,549 - INFO - 변환 성공: DIW-004306-정민수.hwp -> DIW-004306-정민수.hml +2026-01-28 18:03:46,103 - INFO - 변환 성공: DIW-004307-신지훈.hwp -> DIW-004307-신지훈.hml +2026-01-28 18:03:46,726 - INFO - 변환 성공: DIW-004365-김도연.hwp -> DIW-004365-김도연.hml +2026-01-28 18:03:47,335 - INFO - 변환 성공: DIW-004382-김민석.hwp -> DIW-004382-김민석.hml +2026-01-28 18:03:47,906 - INFO - 변환 성공: DIW-004383-박준희.hwp -> DIW-004383-박준희.hml +2026-01-28 18:03:48,364 - INFO - 변환 성공: DIW-004422-유재희.hwp -> DIW-004422-유재희.hml +2026-01-28 18:03:48,785 - INFO - 변환 성공: DIW-004459-박상현.hwp -> DIW-004459-박상현.hml +2026-01-28 18:03:49,343 - INFO - 변환 성공: DIW-004462-한지연.hwp -> DIW-004462-한지연.hml +2026-01-28 18:03:49,806 - INFO - 변환 성공: DIW-004471-임예나.hwp -> DIW-004471-임예나.hml +2026-01-28 18:03:50,192 - INFO - 변환 성공: DIW-004481-송라윤.hwp -> DIW-004481-송라윤.hml +2026-01-28 18:03:50,722 - INFO - 변환 성공: DIW-004495-김서연.hwp -> DIW-004495-김서연.hml +2026-01-28 18:03:51,288 - INFO - 변환 성공: DIW-004515-전사랑.hwp -> DIW-004515-전사랑.hml +2026-01-28 18:03:51,763 - INFO - 변환 성공: DIW-004550-김아인.hwp -> DIW-004550-김아인.hml +2026-01-28 18:03:52,188 - INFO - 변환 성공: DIW-004679-조수빈.hwp -> DIW-004679-조수빈.hml +2026-01-28 18:03:52,736 - INFO - 변환 성공: DIW-004680-박신우.hwp -> DIW-004680-박신우.hml +2026-01-28 18:03:53,240 - INFO - 변환 성공: DIW-004682-유동현.hwp -> DIW-004682-유동현.hml +2026-01-28 18:03:53,661 - INFO - 변환 성공: DIW-004695-나윤성.hwp -> DIW-004695-나윤성.hml +2026-01-28 18:03:54,213 - INFO - 변환 성공: DIW-004794-손훤.hwp -> DIW-004794-손훤.hml +2026-01-28 18:03:54,770 - INFO - 변환 성공: DIW-004815-이현민.hwp -> DIW-004815-이현민.hml +2026-01-28 18:03:55,328 - INFO - 변환 성공: DIW-004817-장예린.hwp -> DIW-004817-장예린.hml +2026-01-28 18:03:55,868 - INFO - 변환 성공: DIW-004838-임주은.hwp -> DIW-004838-임주은.hml +2026-01-28 18:03:56,504 - INFO - 변환 성공: DIW-004840-정하연.hwp -> DIW-004840-정하연.hml +2026-01-28 18:03:57,036 - INFO - 변환 성공: DIW-004946-마정우.hwp -> DIW-004946-마정우.hml +2026-01-28 18:03:57,581 - INFO - 변환 성공: DIW-005007-오진우.hwp -> DIW-005007-오진우.hml +2026-01-28 18:03:58,130 - INFO - 변환 성공: DIW-005039-김지유.hwp -> DIW-005039-김지유.hml +2026-01-28 18:03:58,677 - INFO - 변환 성공: DIW-005040-김서연.hwp -> DIW-005040-김서연.hml +2026-01-28 18:03:59,230 - INFO - 변환 성공: DIW-005041-박예빈.hwp -> DIW-005041-박예빈.hml +2026-01-28 18:03:59,770 - INFO - 변환 성공: DIW-005042-김우빈.hwp -> DIW-005042-김우빈.hml +2026-01-28 18:04:00,313 - INFO - 변환 성공: DIW-005043-송채이.hwp -> DIW-005043-송채이.hml +2026-01-28 18:04:00,730 - INFO - 변환 성공: DIW-005047-신승훈.hwp -> DIW-005047-신승훈.hml +2026-01-28 18:04:01,282 - INFO - 변환 성공: DIW-005073-김민준.hwp -> DIW-005073-김민준.hml +2026-01-28 18:04:01,840 - INFO - 변환 성공: DIW-005077-송담영.hwp -> DIW-005077-송담영.hml +2026-01-28 18:04:02,384 - INFO - 변환 성공: DIW-005085-김주아.hwp -> DIW-005085-김주아.hml +2026-01-28 18:04:02,932 - INFO - 변환 성공: DIW-005087-마지혜.hwp -> DIW-005087-마지혜.hml +2026-01-28 18:04:03,376 - INFO - 변환 성공: DIW-005092-김승후.hwp -> DIW-005092-김승후.hml +2026-01-28 18:04:03,754 - INFO - 변환 성공: DIW-005093-정현우.hwp -> DIW-005093-정현우.hml +2026-01-28 18:04:04,403 - INFO - 변환 성공: DIW-005095-송은서.hwp -> DIW-005095-송은서.hml +2026-01-28 18:04:04,797 - INFO - 변환 성공: DIW-005098-김주아.hwp -> DIW-005098-김주아.hml +2026-01-28 18:04:05,240 - INFO - 변환 성공: DIW-005099-문태모.hwp -> DIW-005099-문태모.hml +2026-01-28 18:04:05,626 - INFO - 변환 성공: DIW-005124-정온유.hwp -> DIW-005124-정온유.hml +2026-01-28 18:04:06,202 - INFO - 변환 성공: DIW-005142-임예나.hwp -> DIW-005142-임예나.hml +2026-01-28 18:04:06,747 - INFO - 변환 성공: DIW-005143-권서진.hwp -> DIW-005143-권서진.hml +2026-01-28 18:04:07,301 - INFO - 변환 성공: DIW-005144-조형근.hwp -> DIW-005144-조형근.hml +2026-01-28 18:04:07,862 - INFO - 변환 성공: DIW-005145-서재영.hwp -> DIW-005145-서재영.hml +2026-01-28 18:04:08,430 - INFO - 변환 성공: DIW-005147-임예은.hwp -> DIW-005147-임예은.hml +2026-01-28 18:04:08,997 - INFO - 변환 성공: DIW-005235-한정민.hwp -> DIW-005235-한정민.hml +2026-01-28 18:04:09,552 - INFO - 변환 성공: DIW-005326-윤유찬.hwp -> DIW-005326-윤유찬.hml +2026-01-28 18:04:10,150 - INFO - 변환 성공: DIW-005327-박태경.hwp -> DIW-005327-박태경.hml +2026-01-28 18:04:10,680 - INFO - 변환 성공: DIW-005328-박수진.hwp -> DIW-005328-박수진.hml +2026-01-28 18:04:11,237 - INFO - 변환 성공: DIW-005329-하도훈.hwp -> DIW-005329-하도훈.hml +2026-01-28 18:04:11,795 - INFO - 변환 성공: DIW-005330-신민준.hwp -> DIW-005330-신민준.hml +2026-01-28 18:04:12,347 - INFO - 변환 성공: DIW-005337-한재현.hwp -> DIW-005337-한재현.hml +2026-01-28 18:04:12,928 - INFO - 변환 성공: DIW-005338-김찬율.hwp -> DIW-005338-김찬율.hml +2026-01-28 18:04:13,474 - INFO - 변환 성공: DIW-005339-구민성.hwp -> DIW-005339-구민성.hml +2026-01-28 18:04:14,006 - INFO - 변환 성공: DIW-005340-김은솔.hwp -> DIW-005340-김은솔.hml +2026-01-28 18:04:14,565 - INFO - 변환 성공: DIW-005341-김성훈.hwp -> DIW-005341-김성훈.hml +2026-01-28 18:04:15,166 - INFO - 변환 성공: DIW-005342-서주호.hwp -> DIW-005342-서주호.hml +2026-01-28 18:04:15,757 - INFO - 변환 성공: DIW-005343-김은찬.hwp -> DIW-005343-김은찬.hml +2026-01-28 18:04:16,320 - INFO - 변환 성공: DIW-005348-강민기.hwp -> DIW-005348-강민기.hml +2026-01-28 18:04:16,877 - INFO - 변환 성공: DIW-005349-김유나.hwp -> DIW-005349-김유나.hml +2026-01-28 18:04:17,347 - INFO - 변환 성공: DIW-005353-이은주.hwp -> DIW-005353-이은주.hml +2026-01-28 18:04:17,762 - INFO - 변환 성공: DIW-005354-김태윤.hwp -> DIW-005354-김태윤.hml +2026-01-28 18:04:18,380 - INFO - 변환 성공: DIW-005355-김예나.hwp -> DIW-005355-김예나.hml +2026-01-28 18:04:18,959 - INFO - 변환 성공: DIW-005356-김유희.hwp -> DIW-005356-김유희.hml +2026-01-28 18:04:19,504 - INFO - 변환 성공: DIW-005374-이소민.hwp -> DIW-005374-이소민.hml +2026-01-28 18:04:20,032 - INFO - 변환 성공: DIW-005375-이효빈.hwp -> DIW-005375-이효빈.hml +2026-01-28 18:04:20,737 - INFO - 변환 성공: DIW-005453-서소이.hwp -> DIW-005453-서소이.hml +2026-01-28 18:04:21,190 - INFO - 변환 성공: DIW-005454-조하은.hwp -> DIW-005454-조하은.hml +2026-01-28 18:04:21,599 - INFO - 변환 성공: DIW-005455-고서현.hwp -> DIW-005455-고서현.hml +2026-01-28 18:04:21,984 - INFO - 변환 성공: DIW-005456-황가람.hwp -> DIW-005456-황가람.hml +2026-01-28 18:04:22,353 - INFO - 변환 성공: DIW-005481-김다경.hwp -> DIW-005481-김다경.hml +2026-01-28 18:04:22,909 - INFO - 변환 성공: DIW-005482-김하라.hwp -> DIW-005482-김하라.hml +2026-01-28 18:04:23,458 - INFO - 변환 성공: DIW-005483-임지은.hwp -> DIW-005483-임지은.hml +2026-01-28 18:04:24,011 - INFO - 변환 성공: DIW-005499-김세연.hwp -> DIW-005499-김세연.hml +2026-01-28 18:04:24,569 - INFO - 변환 성공: DIW-005518-최연서.hwp -> DIW-005518-최연서.hml +2026-01-28 18:04:25,211 - INFO - 변환 성공: DIW-005554-남슬아.hwp -> DIW-005554-남슬아.hml +2026-01-28 18:04:25,674 - INFO - 변환 성공: DIW-005555-이유준.hwp -> DIW-005555-이유준.hml +2026-01-28 18:04:26,111 - INFO - 변환 성공: DIW-005579-박시연.hwp -> DIW-005579-박시연.hml +2026-01-28 18:04:26,663 - INFO - 변환 성공: DIW-005581-신유경.hwp -> DIW-005581-신유경.hml +2026-01-28 18:04:27,210 - INFO - 변환 성공: DIW-005582-윤시우.hwp -> DIW-005582-윤시우.hml +2026-01-28 18:04:27,751 - INFO - 변환 성공: DIW-005583-김시은.hwp -> DIW-005583-김시은.hml +2026-01-28 18:04:28,301 - INFO - 변환 성공: DIW-005584-허재인.hwp -> DIW-005584-허재인.hml +2026-01-28 18:04:28,866 - INFO - 변환 성공: DIW-005585-박서진.hwp -> DIW-005585-박서진.hml +2026-01-28 18:04:29,424 - INFO - 변환 성공: DIW-005588-김영훈.hwp -> DIW-005588-김영훈.hml +2026-01-28 18:04:29,997 - INFO - 변환 성공: DIW-005619-이한주.hwp -> DIW-005619-이한주.hml +2026-01-28 18:04:30,538 - INFO - 변환 성공: DIW-005639-양유은.hwp -> DIW-005639-양유은.hml +2026-01-28 18:04:31,088 - INFO - 변환 성공: DIW-005641-이나원.hwp -> DIW-005641-이나원.hml +2026-01-28 18:04:31,777 - INFO - 변환 성공: DIW-005675-조원솔.hwp -> DIW-005675-조원솔.hml +2026-01-28 18:04:32,308 - INFO - 변환 성공: DIW-005680-김서윤.hwp -> DIW-005680-김서윤.hml +2026-01-28 18:04:32,865 - INFO - 변환 성공: DIW-005687-정선효.hwp -> DIW-005687-정선효.hml +2026-01-28 18:04:33,142 - INFO - 변환 성공: DIW-005698-김규호.hwp -> DIW-005698-김규호.hml +2026-01-28 18:04:33,443 - INFO - 변환 성공: DIW-005699-이하진.hwp -> DIW-005699-이하진.hml +2026-01-28 18:04:33,730 - INFO - 변환 성공: DIW-005700-박지율.hwp -> DIW-005700-박지율.hml +2026-01-28 18:04:34,101 - INFO - 변환 성공: DIW-005773-전시윤.hwp -> DIW-005773-전시윤.hml +2026-01-28 18:04:34,495 - INFO - 변환 성공: DIW-005775-황선아.hwp -> DIW-005775-황선아.hml +2026-01-28 18:04:35,036 - INFO - 변환 성공: DIW-005818-김자호.hwp -> DIW-005818-김자호.hml +2026-01-28 18:04:35,593 - INFO - 변환 성공: DIW-005819-강서연.hwp -> DIW-005819-강서연.hml +2026-01-28 18:04:36,050 - INFO - 변환 성공: DIW-005831-정다율.hwp -> DIW-005831-정다율.hml +2026-01-28 18:04:36,462 - INFO - 변환 성공: DIW-005832-김나연.hwp -> DIW-005832-김나연.hml +2026-01-28 18:04:37,027 - INFO - 변환 성공: DIW-005833-이준이.hwp -> DIW-005833-이준이.hml +2026-01-28 18:04:37,590 - INFO - 변환 성공: DIW-005834-장지아.hwp -> DIW-005834-장지아.hml +2026-01-28 18:04:38,143 - INFO - 변환 성공: DIW-005835-이시유.hwp -> DIW-005835-이시유.hml +2026-01-28 18:04:38,705 - INFO - 변환 성공: DIW-005837-성환.hwp -> DIW-005837-성환.hml +2026-01-28 18:04:39,249 - INFO - 변환 성공: DIW-005889-이도현.hwp -> DIW-005889-이도현.hml +2026-01-28 18:04:39,810 - INFO - 변환 성공: DIW-005909-박서연.hwp -> DIW-005909-박서연.hml +2026-01-28 18:04:40,300 - INFO - 변환 성공: DIW-005933-민효주.hwp -> DIW-005933-민효주.hml +2026-01-28 18:04:40,506 - INFO - 변환 성공: DIW-005934-박라온.hwp -> DIW-005934-박라온.hml +2026-01-28 18:04:40,892 - INFO - 변환 성공: DIW-005935-손민서.hwp -> DIW-005935-손민서.hml +2026-01-28 18:04:41,380 - INFO - 변환 성공: DIW-005936-김기영.hwp -> DIW-005936-김기영.hml +2026-01-28 18:04:41,801 - INFO - 변환 성공: DIW-005937-김시연.hwp -> DIW-005937-김시연.hml +2026-01-28 18:04:42,297 - INFO - 변환 성공: DIW-005938-성시후.hwp -> DIW-005938-성시후.hml +2026-01-28 18:04:42,724 - INFO - 변환 성공: DIW-005939-이주안.hwp -> DIW-005939-이주안.hml +2026-01-28 18:04:43,286 - INFO - 변환 성공: DIW-005940-전진우.hwp -> DIW-005940-전진우.hml +2026-01-28 18:04:43,819 - INFO - 변환 성공: DIW-005941-한주아.hwp -> DIW-005941-한주아.hml +2026-01-28 18:04:44,235 - INFO - 변환 성공: DIW-005942-정재완.hwp -> DIW-005942-정재완.hml +2026-01-28 18:04:44,744 - INFO - 변환 성공: DIW-005943-박민찬.hwp -> DIW-005943-박민찬.hml +2026-01-28 18:04:45,163 - INFO - 변환 성공: DIW-005944-신영재.hwp -> DIW-005944-신영재.hml +2026-01-28 18:04:45,633 - INFO - 변환 성공: DIW-005945-이지유.hwp -> DIW-005945-이지유.hml +2026-01-28 18:04:45,950 - INFO - 변환 성공: DIW-005946-김지한.hwp -> DIW-005946-김지한.hml +2026-01-28 18:04:46,238 - INFO - 변환 성공: DIW-005947-김도균.hwp -> DIW-005947-김도균.hml +2026-01-28 18:04:46,637 - INFO - 변환 성공: DIW-005948-임예윤.hwp -> DIW-005948-임예윤.hml +2026-01-28 18:04:47,205 - INFO - 변환 성공: DIW-005949-신주환.hwp -> DIW-005949-신주환.hml +2026-01-28 18:04:47,681 - INFO - 변환 성공: DIW-005950-이은설.hwp -> DIW-005950-이은설.hml +2026-01-28 18:04:48,117 - INFO - 변환 성공: DIW-005951-전가은.hwp -> DIW-005951-전가은.hml +2026-01-28 18:04:48,425 - INFO - 변환 성공: DIW-005952-양서준.hwp -> DIW-005952-양서준.hml +2026-01-28 18:04:48,723 - INFO - 변환 성공: DIW-005953-김지후.hwp -> DIW-005953-김지후.hml +2026-01-28 18:04:49,127 - INFO - 변환 성공: DIW-005954-임시현.hwp -> DIW-005954-임시현.hml +2026-01-28 18:04:49,691 - INFO - 변환 성공: DIW-005955-유라겸.hwp -> DIW-005955-유라겸.hml +2026-01-28 18:04:50,275 - INFO - 변환 성공: DIW-005956-김세아.hwp -> DIW-005956-김세아.hml +2026-01-28 18:04:50,904 - INFO - 변환 성공: DIW-006026-여현진.hwp -> DIW-006026-여현진.hml +2026-01-28 18:04:51,447 - INFO - 변환 성공: DIW-006029-노은율.hwp -> DIW-006029-노은율.hml +2026-01-28 18:04:52,008 - INFO - 변환 성공: DIW-006031-조혜민.hwp -> DIW-006031-조혜민.hml +2026-01-28 18:04:52,558 - INFO - 변환 성공: DIW-006037-주우빈.hwp -> DIW-006037-주우빈.hml +2026-01-28 18:04:53,203 - INFO - 변환 성공: DIW-006038-강가현.hwp -> DIW-006038-강가현.hml +2026-01-28 18:04:53,745 - INFO - 변환 성공: DIW-006039-이승언.hwp -> DIW-006039-이승언.hml +2026-01-28 18:04:54,307 - INFO - 변환 성공: DIW-006041-김아인.hwp -> DIW-006041-김아인.hml +2026-01-28 18:04:54,859 - INFO - 변환 성공: DIW-006042-김도윤.hwp -> DIW-006042-김도윤.hml +2026-01-28 18:04:55,443 - INFO - 변환 성공: DIW-006043-정시목.hwp -> DIW-006043-정시목.hml +2026-01-28 18:04:56,005 - INFO - 변환 성공: DIW-006044-정건웅.hwp -> DIW-006044-정건웅.hml +2026-01-28 18:04:56,547 - INFO - 변환 성공: DIW-006049-김려송.hwp -> DIW-006049-김려송.hml +2026-01-28 18:04:57,097 - INFO - 변환 성공: DIW-006052-김안나.hwp -> DIW-006052-김안나.hml +2026-01-28 18:04:57,679 - INFO - 변환 성공: DIW-006060-김나연.hwp -> DIW-006060-김나연.hml +2026-01-28 18:04:58,225 - INFO - 변환 성공: DIW-006127-권율.hwp -> DIW-006127-권율.hml +2026-01-28 18:04:58,996 - INFO - 변환 성공: DIW-006128-허유라.hwp -> DIW-006128-허유라.hml +2026-01-28 18:04:59,527 - INFO - 변환 성공: DIW-006129-정성연.hwp -> DIW-006129-정성연.hml +2026-01-28 18:04:59,998 - INFO - 변환 성공: DIW-006130-신윤우.hwp -> DIW-006130-신윤우.hml +2026-01-28 18:05:00,329 - INFO - 변환 성공: DIW-006132-정서율.hwp -> DIW-006132-정서율.hml +2026-01-28 18:05:00,718 - INFO - 변환 성공: DIW-006133-임지유.hwp -> DIW-006133-임지유.hml +2026-01-28 18:05:01,255 - INFO - 변환 성공: DIW-006145-백준서.hwp -> DIW-006145-백준서.hml +2026-01-28 18:05:01,734 - INFO - 변환 성공: DIW-006165-이용욱.hwp -> DIW-006165-이용욱.hml +2026-01-28 18:05:02,148 - INFO - 변환 성공: DIW-006166-김민성.hwp -> DIW-006166-김민성.hml +2026-01-28 18:05:02,705 - INFO - 변환 성공: DIW-006169-유시영.hwp -> DIW-006169-유시영.hml +2026-01-28 18:05:03,248 - INFO - 변환 성공: DIW-006170-정민형.hwp -> DIW-006170-정민형.hml +2026-01-28 18:05:03,816 - INFO - 변환 성공: DIW-006171-손수빈.hwp -> DIW-006171-손수빈.hml +2026-01-28 18:05:04,355 - INFO - 변환 성공: DIW-006172-김시우.hwp -> DIW-006172-김시우.hml +2026-01-28 18:05:04,896 - INFO - 변환 성공: DIW-006176-김서준.hwp -> DIW-006176-김서준.hml +2026-01-28 18:05:05,455 - INFO - 변환 성공: DIW-006177-조엘.hwp -> DIW-006177-조엘.hml +2026-01-28 18:05:06,011 - INFO - 변환 성공: DIW-006178-김태엽.hwp -> DIW-006178-김태엽.hml +2026-01-28 18:05:06,559 - INFO - 변환 성공: DIW-006196-오연서.hwp -> DIW-006196-오연서.hml +2026-01-28 18:05:07,150 - INFO - 변환 성공: DIW-006198-이주한.hwp -> DIW-006198-이주한.hml +2026-01-28 18:05:07,677 - INFO - 변환 성공: DIW-006218-황예영.hwp -> DIW-006218-황예영.hml +2026-01-28 18:05:08,217 - INFO - 변환 성공: DIW-006219-황수민.hwp -> DIW-006219-황수민.hml +2026-01-28 18:05:08,750 - INFO - 변환 성공: DIW-006240-지서영.hwp -> DIW-006240-지서영.hml +2026-01-28 18:05:09,317 - INFO - 변환 성공: DIW-006243-이이안.hwp -> DIW-006243-이이안.hml +2026-01-28 18:05:09,916 - INFO - 변환 성공: DIW-006244-유은솔.hwp -> DIW-006244-유은솔.hml +2026-01-28 18:05:10,371 - INFO - 변환 성공: DIW-006249-김민정.hwp -> DIW-006249-김민정.hml +2026-01-28 18:05:10,768 - INFO - 변환 성공: DIW-006270-진우영.hwp -> DIW-006270-진우영.hml +2026-01-28 18:05:11,345 - INFO - 변환 성공: DIW-006281-권재훈.hwp -> DIW-006281-권재훈.hml +2026-01-28 18:05:11,834 - INFO - 변환 성공: DIW-006282-한준휘.hwp -> DIW-006282-한준휘.hml +2026-01-28 18:05:12,249 - INFO - 변환 성공: DIW-006303-박유수.hwp -> DIW-006303-박유수.hml +2026-01-28 18:05:12,794 - INFO - 변환 성공: DIW-006313-강세영.hwp -> DIW-006313-강세영.hml +2026-01-28 18:05:13,358 - INFO - 변환 성공: DIW-006333-이시훈.hwp -> DIW-006333-이시훈.hml +2026-01-28 18:05:13,907 - INFO - 변환 성공: DIW-006346-김지우.hwp -> DIW-006346-김지우.hml +2026-01-28 18:05:14,439 - INFO - 변환 성공: DIW-006347-차해나.hwp -> DIW-006347-차해나.hml +2026-01-28 18:05:14,984 - INFO - 변환 성공: DIW-006397-김우현.hwp -> DIW-006397-김우현.hml +2026-01-28 18:05:15,463 - INFO - 변환 성공: DIW-006407-주윤우.hwp -> DIW-006407-주윤우.hml +2026-01-28 18:05:15,878 - INFO - 변환 성공: DIW-006408-정승빈.hwp -> DIW-006408-정승빈.hml +2026-01-28 18:05:16,435 - INFO - 변환 성공: DIW-006409-박시연.hwp -> DIW-006409-박시연.hml +2026-01-28 18:05:16,982 - INFO - 변환 성공: DIW-006435-서유건.hwp -> DIW-006435-서유건.hml +2026-01-28 18:05:17,605 - INFO - 변환 성공: DIW-006455-제후.hwp -> DIW-006455-제후.hml +2026-01-28 18:05:18,148 - INFO - 변환 성공: DIW-006456-홍정빈.hwp -> DIW-006456-홍정빈.hml +2026-01-28 18:05:18,705 - INFO - 변환 성공: DIW-006457-정하담.hwp -> DIW-006457-정하담.hml +2026-01-28 18:05:19,388 - INFO - 변환 성공: DIW-006458-박서현.hwp -> DIW-006458-박서현.hml +2026-01-28 18:05:19,778 - INFO - 변환 성공: DIW-006468-김예희.hwp -> DIW-006468-김예희.hml +2026-01-28 18:05:20,336 - INFO - 변환 성공: DIW-006508-김지호.hwp -> DIW-006508-김지호.hml +2026-01-28 18:05:20,894 - INFO - 변환 성공: DIW-006509-박수빈.hwp -> DIW-006509-박수빈.hml +2026-01-28 18:05:21,446 - INFO - 변환 성공: DIW-006510-진시안.hwp -> DIW-006510-진시안.hml +2026-01-28 18:05:22,046 - INFO - 변환 성공: DIW-006528-김유준.hwp -> DIW-006528-김유준.hml +2026-01-28 18:05:22,638 - INFO - 변환 성공: DIW-006562-김채아.hwp -> DIW-006562-김채아.hml +2026-01-28 18:05:23,174 - INFO - 변환 성공: DIW-006612-임시희.hwp -> DIW-006612-임시희.hml +2026-01-28 18:05:23,543 - INFO - 변환 성공: DIW-006622-서수연.hwp -> DIW-006622-서수연.hml +2026-01-28 18:05:23,943 - INFO - 변환 성공: DIW-006623-김시온.hwp -> DIW-006623-김시온.hml +2026-01-28 18:05:24,454 - INFO - 변환 성공: DIW-006624-김주영.hwp -> DIW-006624-김주영.hml +2026-01-28 18:05:24,916 - INFO - 변환 성공: DIW-006625-김선우.hwp -> DIW-006625-김선우.hml +2026-01-28 18:05:25,447 - INFO - 변환 성공: DIW-006626-김윤희.hwp -> DIW-006626-김윤희.hml +2026-01-28 18:05:25,996 - INFO - 변환 성공: DIW-006628-이가은.hwp -> DIW-006628-이가은.hml +2026-01-28 18:05:26,448 - INFO - 변환 성공: DIW-006629-박유진.hwp -> DIW-006629-박유진.hml +2026-01-28 18:05:26,826 - INFO - 변환 성공: DIW-006630-임예슬.hwp -> DIW-006630-임예슬.hml +2026-01-28 18:05:27,398 - INFO - 변환 성공: DIW-006631-김지환.hwp -> DIW-006631-김지환.hml +2026-01-28 18:05:27,955 - INFO - 변환 성공: DIW-006699-구도윤.hwp -> DIW-006699-구도윤.hml +2026-01-28 18:05:28,524 - INFO - 변환 성공: DIW-006701-양다혜.hwp -> DIW-006701-양다혜.hml +2026-01-28 18:05:29,086 - INFO - 변환 성공: DIW-006702-황은재.hwp -> DIW-006702-황은재.hml +2026-01-28 18:05:29,659 - INFO - 변환 성공: DIW-006705-최윤.hwp -> DIW-006705-최윤.hml +2026-01-28 18:05:30,260 - INFO - 변환 성공: DIW-006707-유재윤.hwp -> DIW-006707-유재윤.hml +2026-01-28 18:05:30,811 - INFO - 변환 성공: DIW-006764-박채은.hwp -> DIW-006764-박채은.hml +2026-01-28 18:05:31,360 - INFO - 변환 성공: DIW-006766-서채은.hwp -> DIW-006766-서채은.hml +2026-01-28 18:05:31,894 - INFO - 변환 성공: DIW-006777-경예진.hwp -> DIW-006777-경예진.hml +2026-01-28 18:05:32,438 - INFO - 변환 성공: DIW-006806-김시원.hwp -> DIW-006806-김시원.hml +2026-01-28 18:05:33,030 - INFO - 변환 성공: DIW-006811-김하윤.hwp -> DIW-006811-김하윤.hml +2026-01-28 18:05:33,574 - INFO - 변환 성공: DIW-006816-이보예.hwp -> DIW-006816-이보예.hml +2026-01-28 18:05:34,126 - INFO - 변환 성공: DIW-006817-박채아.hwp -> DIW-006817-박채아.hml +2026-01-28 18:05:34,588 - INFO - 변환 성공: DIW-006823-조건호.hwp -> DIW-006823-조건호.hml +2026-01-28 18:05:35,063 - INFO - 변환 성공: DIW-006830-신해인.hwp -> DIW-006830-신해인.hml +2026-01-28 18:05:35,514 - INFO - 변환 성공: DIW-006844-김현서.hwp -> DIW-006844-김현서.hml +2026-01-28 18:05:35,955 - INFO - 변환 성공: DIW-007488-박지완.hwp -> DIW-007488-박지완.hml +2026-01-28 18:05:36,517 - INFO - 변환 성공: DIW-007545-구혜린.hwp -> DIW-007545-구혜린.hml +2026-01-28 18:05:37,068 - INFO - 변환 성공: DIW-007548-이현지.hwp -> DIW-007548-이현지.hml +2026-01-28 18:05:37,613 - INFO - 변환 성공: DIW-007555-장진욱.hwp -> DIW-007555-장진욱.hml +2026-01-28 18:05:38,178 - INFO - 변환 성공: DIW-007563-박상우.hwp -> DIW-007563-박상우.hml +2026-01-28 18:05:38,731 - INFO - 변환 성공: DIW-007587-유하준.hwp -> DIW-007587-유하준.hml +2026-01-28 18:05:39,299 - INFO - 변환 성공: DIW-007591-임수현.hwp -> DIW-007591-임수현.hml +2026-01-28 18:05:40,017 - INFO - 변환 성공: DIW-007592-제희원.hwp -> DIW-007592-제희원.hml +2026-01-28 18:05:40,466 - INFO - 변환 성공: DIW-007595-김세헌.hwp -> DIW-007595-김세헌.hml +2026-01-28 18:05:40,867 - INFO - 변환 성공: DIW-007602-김정민.hwp -> DIW-007602-김정민.hml +2026-01-28 18:05:41,443 - INFO - 변환 성공: DIW-007604-송지원.hwp -> DIW-007604-송지원.hml +2026-01-28 18:05:41,982 - INFO - 변환 성공: DIW-007639-박담.hwp -> DIW-007639-박담.hml +2026-01-28 18:05:42,547 - INFO - 변환 성공: DIW-007640-신지후.hwp -> DIW-007640-신지후.hml +2026-01-28 18:05:43,017 - INFO - 변환 성공: DIW-007641-박세은.hwp -> DIW-007641-박세은.hml +2026-01-28 18:05:43,450 - INFO - 변환 성공: DIW-007692-양가인.hwp -> DIW-007692-양가인.hml +2026-01-28 18:05:44,003 - INFO - 변환 성공: DIW-007715-박서호.hwp -> DIW-007715-박서호.hml +2026-01-28 18:05:44,453 - INFO - 변환 성공: DIW-007723-송지오.hwp -> DIW-007723-송지오.hml +2026-01-28 18:05:45,031 - INFO - 변환 성공: DIW-007724-김서빈.hwp -> DIW-007724-김서빈.hml +2026-01-28 18:05:45,582 - INFO - 변환 성공: DIW-007776-박윤후.hwp -> DIW-007776-박윤후.hml +2026-01-28 18:05:46,139 - INFO - 변환 성공: DIW-007777-노아인.hwp -> DIW-007777-노아인.hml +2026-01-28 18:05:46,706 - INFO - 변환 성공: DIW-007778-정하린.hwp -> DIW-007778-정하린.hml +2026-01-28 18:05:47,233 - INFO - 변환 성공: DIW-007779-이윤성.hwp -> DIW-007779-이윤성.hml +2026-01-28 18:05:47,764 - INFO - 변환 성공: DIW-007780-조수아.hwp -> DIW-007780-조수아.hml +2026-01-28 18:05:48,302 - INFO - 변환 성공: DIW-007781-이주희.hwp -> DIW-007781-이주희.hml +2026-01-28 18:05:48,772 - INFO - 변환 성공: DIW-007821-이시호.hwp -> DIW-007821-이시호.hml +2026-01-28 18:05:49,149 - INFO - 변환 성공: DIW-007823-김태연.hwp -> DIW-007823-김태연.hml +2026-01-28 18:05:49,588 - INFO - 변환 성공: DIW-007833-한지우.hwp -> DIW-007833-한지우.hml +2026-01-28 18:05:50,157 - INFO - 변환 성공: 워드(한글)-005383-박규원.hwp -> 워드(한글)-005383-박규원.hml +2026-01-28 18:05:50,728 - INFO - 변환 성공: 워드(한글)-005384-윤하은.hwp -> 워드(한글)-005384-윤하은.hml +2026-01-28 18:05:51,328 - INFO - 변환 성공: DIW_2601C.hwpx -> DIW_2601C.hml +2026-01-28 18:05:51,711 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601\C\DIW -> D:\project\HWP\HWP-Scoring\output\2601\C\DIW +2026-01-28 18:05:52,212 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601\D\DIW +2026-01-28 18:05:53,471 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601\D\DIW -> D:\project\HWP\HWP-Scoring\output\2601\D\DIW +2026-01-28 18:05:53,972 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601\E\DIW +2026-01-28 18:05:55,232 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601\E\DIW -> D:\project\HWP\HWP-Scoring\output\2601\E\DIW +2026-01-29 17:25:46,791 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601 -> D:\project\HWP\HWP-Scoring\output\2601 +2026-01-29 17:25:50,844 - INFO - 변환 성공: DIW-005764-박지홍.hwp -> DIW-005764-박지홍.hml +2026-01-29 17:25:50,882 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601 -> D:\project\HWP\HWP-Scoring\output\2601 +2026-01-29 17:28:46,281 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601 -> D:\project\HWP\HWP-Scoring\output\2601 +2026-01-29 17:29:16,989 - INFO - 변환 성공: DIW-005764-박지홍.hwp -> DIW-005764-박지홍.hml +2026-01-29 17:29:17,021 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601 -> D:\project\HWP\HWP-Scoring\output\2601 +2026-01-29 17:29:48,816 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601 -> D:\project\HWP\HWP-Scoring\output\2601 +2026-01-29 17:29:52,636 - INFO - 변환 성공: DIW-005764-박지홍.hwp -> DIW-005764-박지홍.hml +2026-01-29 17:29:52,670 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601 -> D:\project\HWP\HWP-Scoring\output\2601 +2026-01-29 17:31:27,771 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2601 -> D:\project\HWP\HWP-Scoring\output\2601 +2026-01-29 17:31:30,759 - INFO - 변환 성공: DIW-005764.hwp -> DIW-005764.hml +2026-01-29 17:31:31,127 - INFO - 변환 성공: DIW-005764-박지홍.hwpx -> DIW-005764-박지홍.hml +2026-01-29 17:31:31,531 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2601 -> D:\project\HWP\HWP-Scoring\output\2601 +2026-02-11 15:47:26,489 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\A\DIW -> D:\project\HWP\HWP-Scoring\output\2622\A\DIW +2026-02-11 15:47:28,769 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\A\DIW -> D:\project\HWP\HWP-Scoring\output\2622\A\DIW +2026-02-11 15:47:29,270 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\B\DIW -> D:\project\HWP\HWP-Scoring\output\2622\B\DIW +2026-02-11 15:47:30,420 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\B\DIW -> D:\project\HWP\HWP-Scoring\output\2622\B\DIW +2026-02-11 15:47:30,920 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\C\DIW -> D:\project\HWP\HWP-Scoring\output\2622\C\DIW +2026-02-11 15:47:32,130 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\C\DIW -> D:\project\HWP\HWP-Scoring\output\2622\C\DIW +2026-02-11 15:47:32,631 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\D\DIW -> D:\project\HWP\HWP-Scoring\output\2622\D\DIW +2026-02-11 15:47:33,854 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\D\DIW -> D:\project\HWP\HWP-Scoring\output\2622\D\DIW +2026-02-11 15:47:34,354 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\E\DIW -> D:\project\HWP\HWP-Scoring\output\2622\E\DIW +2026-02-11 15:47:35,544 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\E\DIW -> D:\project\HWP\HWP-Scoring\output\2622\E\DIW +2026-02-11 15:48:27,560 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\A\DIW -> D:\project\HWP\HWP-Scoring\output\2622\A\DIW +2026-02-11 15:48:31,790 - INFO - 변환 성공: DIW_2622A.hwpx -> DIW_2622A.hml +2026-02-11 15:48:32,296 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\A\DIW -> D:\project\HWP\HWP-Scoring\output\2622\A\DIW +2026-02-11 15:48:32,797 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\B\DIW -> D:\project\HWP\HWP-Scoring\output\2622\B\DIW +2026-02-11 15:48:34,899 - INFO - 변환 성공: DIW_2622B.hwpx -> DIW_2622B.hml +2026-02-11 15:48:35,309 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\B\DIW -> D:\project\HWP\HWP-Scoring\output\2622\B\DIW +2026-02-11 15:48:35,810 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\C\DIW -> D:\project\HWP\HWP-Scoring\output\2622\C\DIW +2026-02-11 15:48:37,956 - INFO - 변환 성공: DIW_2622C.hwpx -> DIW_2622C.hml +2026-02-11 15:48:38,348 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\C\DIW -> D:\project\HWP\HWP-Scoring\output\2622\C\DIW +2026-02-11 15:48:38,849 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\D\DIW -> D:\project\HWP\HWP-Scoring\output\2622\D\DIW +2026-02-11 15:48:40,982 - INFO - 변환 성공: DIW_2622D.hwpx -> DIW_2622D.hml +2026-02-11 15:48:41,380 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\D\DIW -> D:\project\HWP\HWP-Scoring\output\2622\D\DIW +2026-02-11 15:48:41,881 - INFO - 폴더 변환 시작: D:\project\HWP\HWP-Scoring\input\2622\E\DIW -> D:\project\HWP\HWP-Scoring\output\2622\E\DIW +2026-02-11 15:48:43,085 - INFO - 폴더 변환 완료: D:\project\HWP\HWP-Scoring\input\2622\E\DIW -> D:\project\HWP\HWP-Scoring\output\2622\E\DIW diff --git a/score_result/260211_DIW_2622A_채점결과.xlsx b/score_result/260211_DIW_2622A_채점결과.xlsx new file mode 100644 index 0000000..83f6f3f Binary files /dev/null and b/score_result/260211_DIW_2622A_채점결과.xlsx differ diff --git a/score_result/260211_DIW_2622B_채점결과.xlsx b/score_result/260211_DIW_2622B_채점결과.xlsx new file mode 100644 index 0000000..2125a71 Binary files /dev/null and b/score_result/260211_DIW_2622B_채점결과.xlsx differ diff --git a/score_result/260211_DIW_2622C_채점결과.xlsx b/score_result/260211_DIW_2622C_채점결과.xlsx new file mode 100644 index 0000000..faf1b21 Binary files /dev/null and b/score_result/260211_DIW_2622C_채점결과.xlsx differ diff --git a/score_result/260211_DIW_2622D_채점결과.xlsx b/score_result/260211_DIW_2622D_채점결과.xlsx new file mode 100644 index 0000000..62b3f7c Binary files /dev/null and b/score_result/260211_DIW_2622D_채점결과.xlsx differ diff --git a/260127_DIW_2601A_채점결과.xlsx b/회차별채점자료/2601/260127_DIW_2601A_채점결과.xlsx similarity index 100% rename from 260127_DIW_2601A_채점결과.xlsx rename to 회차별채점자료/2601/260127_DIW_2601A_채점결과.xlsx diff --git a/260127_DIW_2601B_채점결과.xlsx b/회차별채점자료/2601/260127_DIW_2601B_채점결과.xlsx similarity index 100% rename from 260127_DIW_2601B_채점결과.xlsx rename to 회차별채점자료/2601/260127_DIW_2601B_채점결과.xlsx diff --git a/260127_DIW_2601C_채점결과.xlsx b/회차별채점자료/2601/260127_DIW_2601C_채점결과.xlsx similarity index 100% rename from 260127_DIW_2601C_채점결과.xlsx rename to 회차별채점자료/2601/260127_DIW_2601C_채점결과.xlsx diff --git a/회차별채점자료/2601/260129_DIW_2601A_채점결과.xlsx b/회차별채점자료/2601/260129_DIW_2601A_채점결과.xlsx new file mode 100644 index 0000000..1b2156c Binary files /dev/null and b/회차별채점자료/2601/260129_DIW_2601A_채점결과.xlsx differ diff --git a/회차별채점자료/2601/260129_DIW_2601B_TEST.xlsx b/회차별채점자료/2601/260129_DIW_2601B_TEST.xlsx new file mode 100644 index 0000000..1f2c3a9 Binary files /dev/null and b/회차별채점자료/2601/260129_DIW_2601B_TEST.xlsx differ diff --git a/회차별채점자료/2601/260129_DIW_2601B_채점결과.xlsx b/회차별채점자료/2601/260129_DIW_2601B_채점결과.xlsx new file mode 100644 index 0000000..25acc47 Binary files /dev/null and b/회차별채점자료/2601/260129_DIW_2601B_채점결과.xlsx differ diff --git a/회차별채점자료/2601/260129_DIW_2601C_TEST.xlsx b/회차별채점자료/2601/260129_DIW_2601C_TEST.xlsx new file mode 100644 index 0000000..5b083ff Binary files /dev/null and b/회차별채점자료/2601/260129_DIW_2601C_TEST.xlsx differ diff --git a/회차별채점자료/2601/260129_DIW_2601C_채점결과.xlsx b/회차별채점자료/2601/260129_DIW_2601C_채점결과.xlsx new file mode 100644 index 0000000..16e869d Binary files /dev/null and b/회차별채점자료/2601/260129_DIW_2601C_채점결과.xlsx differ diff --git a/회차별채점자료/2601/260130_DIW_2601C_채점결과.xlsx b/회차별채점자료/2601/260130_DIW_2601C_채점결과.xlsx new file mode 100644 index 0000000..53817f5 Binary files /dev/null and b/회차별채점자료/2601/260130_DIW_2601C_채점결과.xlsx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) A형 문제.hwpx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) A형 문제.hwpx new file mode 100644 index 0000000..f32719d Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) A형 문제.hwpx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) A형 정답.hwpx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) A형 정답.hwpx new file mode 100644 index 0000000..4de1cd5 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) A형 정답.hwpx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) A형 채점기준표.xlsx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) A형 채점기준표.xlsx new file mode 100644 index 0000000..c333eb6 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) A형 채점기준표.xlsx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) B형 문제.hwpx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) B형 문제.hwpx new file mode 100644 index 0000000..f544165 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) B형 문제.hwpx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) B형 정답.hwpx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) B형 정답.hwpx new file mode 100644 index 0000000..cccd3d8 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) B형 정답.hwpx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) B형 채점기준표.xlsx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) B형 채점기준표.xlsx new file mode 100644 index 0000000..67ceda6 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) B형 채점기준표.xlsx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) C형 문제.hwpx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) C형 문제.hwpx new file mode 100644 index 0000000..9b8f847 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) C형 문제.hwpx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) C형 정답.hwpx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) C형 정답.hwpx new file mode 100644 index 0000000..3fc96c6 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) C형 정답.hwpx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) C형 채점기준표.xlsx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) C형 채점기준표.xlsx new file mode 100644 index 0000000..be6f530 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) C형 채점기준표.xlsx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) D형 문제.hwpx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) D형 문제.hwpx new file mode 100644 index 0000000..88c44f1 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) D형 문제.hwpx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) D형 정답.hwpx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) D형 정답.hwpx new file mode 100644 index 0000000..e7e8a89 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) D형 정답.hwpx differ diff --git a/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) D형 채점기준표.xlsx b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) D형 채점기준표.xlsx new file mode 100644 index 0000000..8f47b74 Binary files /dev/null and b/회차별채점자료/2622/제2622회 디지털정보활용능력 워드프로세서(한글2022버전) D형 채점기준표.xlsx differ