백업: 공공기관3 작업현황 갱신·검수 진행 + 06-25 제출 패키지, 임시 작업파일 정리
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@ -1 +0,0 @@
|
|||||||
{"sessionId":"3c6000fc-2299-4a1f-993b-223dcca20883","pid":20156,"acquiredAt":1779975159075}
|
|
||||||
91504
.owncloudsync.log
283679
.owncloudsync.log.1
BIN
.sync_journal.db
BIN
_test_buyeo.xlsx
@ -1,26 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import os, io, json
|
|
||||||
ROOT=r"D:\01.프로젝트\DB수집"
|
|
||||||
SKIP_DIR={"_backup","backup","_temp","_스크립트","_nshots","_naudit","_shots",".git","_gnb","__pycache__"}
|
|
||||||
def skipname(b):
|
|
||||||
bl=b.lower()
|
|
||||||
if b.startswith("~$"): return True
|
|
||||||
if "backup" in bl or "conflicted" in bl: return True
|
|
||||||
for s in ("_작업현황","작업현황","_취합","취합본","예시","자료_취합","교육청_작업현황"):
|
|
||||||
if s in b: return True
|
|
||||||
return b.startswith("_")
|
|
||||||
work=[]; sub=[]; other=[]
|
|
||||||
for dp,dn,fn in os.walk(ROOT):
|
|
||||||
dn[:]=[d for d in dn if d not in SKIP_DIR and "backup" not in d.lower()]
|
|
||||||
for f in fn:
|
|
||||||
if not f.endswith(".xlsx"): continue
|
|
||||||
if skipname(f): continue
|
|
||||||
p=os.path.join(dp,f)
|
|
||||||
rel=os.path.relpath(p,ROOT)
|
|
||||||
if "제출폴더" in rel: sub.append(rel)
|
|
||||||
elif "참고파일" in rel: other.append(rel)
|
|
||||||
else: work.append(rel)
|
|
||||||
io.open(r"D:\01.프로젝트\DB수집\작업파일\_targets.json","w",encoding="utf-8").write(json.dumps({"work":work,"sub":sub,"other":other},ensure_ascii=False,indent=0))
|
|
||||||
print("WORK",len(work),"SUB",len(sub),"OTHER",len(other))
|
|
||||||
print("\n--- WORK (기존문서) ---")
|
|
||||||
for x in work: print(" ",x)
|
|
||||||
@ -1,76 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
import openpyxl, io, os, glob
|
|
||||||
from collections import defaultdict
|
|
||||||
ROOT=r"D:\01.프로젝트\DB수집"
|
|
||||||
out=io.open(r"D:\01.프로젝트\DB수집\작업파일\_dupname_sweep_out.txt","w",encoding="utf-8")
|
|
||||||
def w(*a): out.write(" ".join(str(x) for x in a)+"\n")
|
|
||||||
|
|
||||||
SKIP_DIR=("_backup","backup","_temp","제출폴더","_스크립트","_nshots","_naudit","_shots",".git")
|
|
||||||
SKIP_NAME=("backup","conflicted","_작업현황","작업현황","_취합_예시","자료_취합","예시","~$")
|
|
||||||
|
|
||||||
def is_target(p):
|
|
||||||
pl=p.replace("/","\\")
|
|
||||||
for s in SKIP_DIR:
|
|
||||||
if "\\"+s in pl or "\\"+s+"\\" in pl: return False
|
|
||||||
base=os.path.basename(p)
|
|
||||||
for s in SKIP_NAME:
|
|
||||||
if s in base: return False
|
|
||||||
return base.endswith(".xlsx")
|
|
||||||
|
|
||||||
files=[]
|
|
||||||
for dp,dn,fn in os.walk(ROOT):
|
|
||||||
# prune skip dirs
|
|
||||||
dn[:]=[d for d in dn if d not in SKIP_DIR and "backup" not in d.lower()]
|
|
||||||
for f in fn:
|
|
||||||
p=os.path.join(dp,f)
|
|
||||||
if is_target(p): files.append(p)
|
|
||||||
|
|
||||||
w("scanned candidate files:",len(files));w("")
|
|
||||||
|
|
||||||
def eff_leaf_dups(ws):
|
|
||||||
eff={}
|
|
||||||
for r in range(3,ws.max_row+1):
|
|
||||||
for c in range(4,11):
|
|
||||||
eff[(r,c)]=ws.cell(r,c).value
|
|
||||||
for mr in ws.merged_cells.ranges:
|
|
||||||
if mr.min_col>=4 and mr.max_col<=10:
|
|
||||||
v=ws.cell(mr.min_row,mr.min_col).value
|
|
||||||
for r in range(mr.min_row,mr.max_row+1):
|
|
||||||
for c in range(mr.min_col,mr.max_col+1):
|
|
||||||
eff[(r,c)]=v
|
|
||||||
byleaf=defaultdict(list)
|
|
||||||
for r in range(3,ws.max_row+1):
|
|
||||||
# skip empty rows
|
|
||||||
path=[str(eff[(r,c)]).strip() for c in range(4,11) if eff[(r,c)] not in (None,"")]
|
|
||||||
if not path: continue
|
|
||||||
byleaf[path[-1]].append(r)
|
|
||||||
return {k:v for k,v in byleaf.items() if len(v)>1}
|
|
||||||
|
|
||||||
summary=[]
|
|
||||||
for p in sorted(files):
|
|
||||||
try:
|
|
||||||
wb=openpyxl.load_workbook(p,read_only=False,data_only=True)
|
|
||||||
except Exception as e:
|
|
||||||
w("LOADERR",p,e); continue
|
|
||||||
ws=wb.active
|
|
||||||
if ws.max_row<3:
|
|
||||||
wb.close(); continue
|
|
||||||
dups=eff_leaf_dups(ws)
|
|
||||||
rel=os.path.relpath(p,ROOT)
|
|
||||||
ngroups=len(dups); nduprows=sum(len(v) for v in dups.values())
|
|
||||||
summary.append((ngroups,nduprows,rel,dups,ws.max_row))
|
|
||||||
wb.close()
|
|
||||||
|
|
||||||
summary.sort(reverse=True)
|
|
||||||
w("=== FILES WITH DUPLICATE MENU NAMES (sorted by #groups) ===")
|
|
||||||
for ng,nr,rel,dups,mx in summary:
|
|
||||||
if ng==0: continue
|
|
||||||
w(f"\n[{ng} groups / {nr} rows] {rel} (max_row={mx})")
|
|
||||||
for nm,rs in sorted(dups.items(), key=lambda x:-len(x[1])):
|
|
||||||
w(f" '{nm}' x{len(rs)} rows={rs}")
|
|
||||||
clean=[s for s in summary if s[0]==0]
|
|
||||||
w("\n=== FILES WITH NO DUPLICATE MENU NAMES ===",len(clean))
|
|
||||||
for ng,nr,rel,dups,mx in clean:
|
|
||||||
w(" OK",rel)
|
|
||||||
out.close()
|
|
||||||
print("done; files:",len(files),"with dups:",sum(1 for s in summary if s[0]>0))
|
|
||||||
@ -1,436 +0,0 @@
|
|||||||
scanned candidate files: 34
|
|
||||||
|
|
||||||
=== FILES WITH DUPLICATE MENU NAMES (sorted by #groups) ===
|
|
||||||
|
|
||||||
[190 groups / 551 rows] 참고파일\★공공저작물 실태조사 조사원 자료 취합본(관리자)_2605212137.xlsx (max_row=3150)
|
|
||||||
'공지사항' x28 rows=[91, 185, 352, 727, 742, 832, 880, 957, 1030, 1059, 1158, 1301, 1374, 1387, 1462, 1515, 1597, 1937, 2141, 2231, 2257, 2413, 2486, 2720, 2789, 2883, 2909, 2919]
|
|
||||||
'자료실' x20 rows=[728, 881, 958, 1031, 1060, 1118, 1159, 1302, 1388, 1463, 1516, 1598, 1638, 1846, 1973, 2171, 2283, 2604, 2886, 2923]
|
|
||||||
'민원행정서비스현장' x14 rows=[2467, 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477, 2478, 2479, 2480]
|
|
||||||
'보도자료' x13 rows=[3, 580, 1474, 1941, 2150, 2228, 2414, 2494, 2556, 2884, 2910, 2921, 3007]
|
|
||||||
'연혁' x10 rows=[710, 2065, 2203, 2329, 2420, 2627, 2772, 2876, 2913, 3029]
|
|
||||||
'업무추진비' x8 rows=[645, 2046, 2082, 2548, 2619, 2769, 2776, 2907]
|
|
||||||
'시험공고 및 안내' x8 rows=[1689, 1691, 1692, 1694, 1696, 1697, 1699, 1701]
|
|
||||||
'입법예고' x6 rows=[23, 587, 1543, 1677, 1894, 2051]
|
|
||||||
'찾아오시는 길' x6 rows=[508, 2213, 2652, 2880, 2900, 2917]
|
|
||||||
'합격자발표' x6 rows=[1690, 1693, 1695, 1698, 1700, 1702]
|
|
||||||
'인사말' x6 rows=[2419, 2615, 2690, 2707, 2728, 2770]
|
|
||||||
'사전정보공표' x5 rows=[106, 618, 2887, 2924, 2978]
|
|
||||||
'조직도' x5 rows=[502, 690, 2074, 2210, 3036]
|
|
||||||
'이용안내' x5 rows=[571, 815, 2108, 2111, 2118]
|
|
||||||
'개요' x5 rows=[1265, 1834, 2169, 2198, 2250]
|
|
||||||
'입찰공고' x4 rows=[25, 584, 1579, 1757]
|
|
||||||
'정보공개청구' x4 rows=[110, 2043, 2314, 2543]
|
|
||||||
'세입세출예산서' x4 rows=[118, 647, 2577, 3011]
|
|
||||||
'유관기관 안내' x4 rows=[506, 1293, 1603, 1627]
|
|
||||||
'설문조사' x4 rows=[547, 2024, 2123, 2270]
|
|
||||||
'정보공개 청구' x4 rows=[617, 2084, 2906, 2976]
|
|
||||||
'국민신청실명제' x4 rows=[632, 1742, 2086, 2558]
|
|
||||||
'관련기관' x4 rows=[859, 866, 1057, 1257]
|
|
||||||
'신청하기' x4 rows=[1526, 2109, 2112, 2119]
|
|
||||||
'국민제안' x4 rows=[1918, 2021, 2120, 2271]
|
|
||||||
'카드뉴스' x4 rows=[2136, 2153, 2238, 2256]
|
|
||||||
'조직안내' x4 rows=[2334, 2422, 2642, 2771]
|
|
||||||
'사진첩' x4 rows=[2721, 2768, 2814, 2818]
|
|
||||||
'전자관보' x3 rows=[12, 2308, 2498]
|
|
||||||
'개찰결과' x3 rows=[27, 1580, 1758]
|
|
||||||
'계약현황' x3 rows=[28, 1581, 1753]
|
|
||||||
'업무계획' x3 rows=[100, 2061, 2332]
|
|
||||||
'정보공개제도 안내' x3 rows=[105, 2905, 2969]
|
|
||||||
'공공데이터 개방' x3 rows=[115, 2601, 2987]
|
|
||||||
'지방재정공시' x3 rows=[121, 1720, 3013]
|
|
||||||
'중기지방재정계획' x3 rows=[124, 1728, 2570]
|
|
||||||
'본청' x3 rows=[140, 636, 1650]
|
|
||||||
'지방공기업이란' x3 rows=[147, 672, 2853]
|
|
||||||
'주민참여예산' x3 rows=[165, 556, 3014]
|
|
||||||
'규제입증요청' x3 rows=[167, 1562, 2034]
|
|
||||||
'청소년 헌장' x3 rows=[206, 999, 3068]
|
|
||||||
'자주 묻는 질문' x3 rows=[232, 466, 2416]
|
|
||||||
'행정심판' x3 rows=[477, 1889, 2057]
|
|
||||||
'자치법규' x3 rows=[479, 2598, 3019]
|
|
||||||
'정부24' x3 rows=[544, 1910, 2441]
|
|
||||||
'행정서비스헌장' x3 rows=[570, 1897, 2957]
|
|
||||||
'마을세무사' x3 rows=[638, 1902, 2448]
|
|
||||||
'제도소개' x3 rows=[1532, 1535, 2135]
|
|
||||||
'찾아오시는길' x3 rows=[1655, 2078, 2343]
|
|
||||||
'세입세출결산서' x3 rows=[1730, 2578, 3016]
|
|
||||||
'정책실명제 안내' x3 rows=[1741, 2049, 2557]
|
|
||||||
'의료기관' x3 rows=[1849, 2752, 3050]
|
|
||||||
'칭찬합시다' x3 rows=[1926, 2042, 2990]
|
|
||||||
'정책토론' x3 rows=[2022, 2122, 2269]
|
|
||||||
'전자공청회' x3 rows=[2023, 2121, 2268]
|
|
||||||
'정보목록' x3 rows=[2083, 2317, 2541]
|
|
||||||
'민원신청' x3 rows=[2102, 2417, 2945]
|
|
||||||
'자유게시판' x3 rows=[2527, 2725, 2989]
|
|
||||||
'인사발령' x2 rows=[19, 2258]
|
|
||||||
'대가지급' x2 rows=[29, 1585]
|
|
||||||
'시험통계' x2 rows=[42, 840]
|
|
||||||
'타기관 채용정보' x2 rows=[48, 836]
|
|
||||||
'무인민원발급기' x2 rows=[59, 2438]
|
|
||||||
'교통불편신고' x2 rows=[65, 1423]
|
|
||||||
'부실공사신고' x2 rows=[67, 2288]
|
|
||||||
'예산낭비신고' x2 rows=[70, 2948]
|
|
||||||
'비공개 세부기준' x2 rows=[111, 1735]
|
|
||||||
'정책실명제' x2 rows=[113, 2085]
|
|
||||||
'기금운용계획' x2 rows=[120, 648]
|
|
||||||
'감사결과' x2 rows=[145, 2977]
|
|
||||||
'업무제휴 및 협약' x2 rows=[158, 1749]
|
|
||||||
'전자책' x2 rows=[161, 576]
|
|
||||||
'적극행정' x2 rows=[168, 1904]
|
|
||||||
'공유시설 예약' x2 rows=[179, 203]
|
|
||||||
'청년' x2 rows=[214, 3071]
|
|
||||||
'아이돌봄지원사업 안내' x2 rows=[225, 3066]
|
|
||||||
'위기임산부 지원' x2 rows=[250, 971]
|
|
||||||
'예방접종' x2 rows=[296, 2738]
|
|
||||||
'위해식품 회수정보' x2 rows=[305, 1857]
|
|
||||||
'버스정보시스템' x2 rows=[339, 345]
|
|
||||||
'본부소개' x2 rows=[351, 356]
|
|
||||||
'환경영향평가' x2 rows=[369, 1368]
|
|
||||||
'부동산개발업' x2 rows=[389, 1843]
|
|
||||||
'측량업 등록' x2 rows=[397, 1141]
|
|
||||||
'규제정보포털' x2 rows=[434, 1575]
|
|
||||||
'투자유치' x2 rows=[438, 3106]
|
|
||||||
'민방위' x2 rows=[451, 3119]
|
|
||||||
'위원회 회의록' x2 rows=[531, 1738]
|
|
||||||
'여권안내' x2 rows=[542, 2968]
|
|
||||||
'국민생각함' x2 rows=[550, 2519]
|
|
||||||
'찾아가는 현장규제신고센터' x2 rows=[559, 1569]
|
|
||||||
'홍보게시판' x2 rows=[574, 2995]
|
|
||||||
'채용공고' x2 rows=[582, 1939]
|
|
||||||
'고시공고' x2 rows=[586, 2144]
|
|
||||||
'분묘개장공고' x2 rows=[588, 3006]
|
|
||||||
'주요업무계획' x2 rows=[592, 2508]
|
|
||||||
'불복구제절차' x2 rows=[612, 2973]
|
|
||||||
'물가정보' x2 rows=[644, 3138]
|
|
||||||
'부패공직자 제재현황' x2 rows=[666, 2555]
|
|
||||||
'지방공기업 현황' x2 rows=[673, 2854]
|
|
||||||
'지방공기업 경영정보' x2 rows=[674, 2855]
|
|
||||||
'기본현황' x2 rows=[679, 1505]
|
|
||||||
'역대시장' x2 rows=[709, 2618]
|
|
||||||
'부산 지역사 도서관' x2 rows=[711, 1605]
|
|
||||||
'도시브랜드' x2 rows=[714, 2624]
|
|
||||||
'사업개요' x2 rows=[745, 1115]
|
|
||||||
'착한가격업소' x2 rows=[775, 3145]
|
|
||||||
'일자리지원사업' x2 rows=[833, 3110]
|
|
||||||
'채용정보' x2 rows=[835, 2232]
|
|
||||||
'노인맞춤돌봄서비스' x2 rows=[919, 1800]
|
|
||||||
'응급안전안심서비스' x2 rows=[920, 1801]
|
|
||||||
'노인복지시설' x2 rows=[934, 3082]
|
|
||||||
'교육' x2 rows=[978, 1859]
|
|
||||||
'지역아동센터' x2 rows=[1008, 1773]
|
|
||||||
'청소년 방과후 아카데미' x2 rows=[1010, 1781]
|
|
||||||
'구강보건사업' x2 rows=[1035, 2744]
|
|
||||||
'Q&A' x2 rows=[1105, 1256]
|
|
||||||
'전세피해지원' x2 rows=[1119, 1864]
|
|
||||||
'관련법규' x2 rows=[1152, 1441]
|
|
||||||
'도시침수 통합정보시스템' x2 rows=[1167, 1260]
|
|
||||||
'시민안전보험' x2 rows=[1182, 2491]
|
|
||||||
'한파쉼터' x2 rows=[1207, 3121]
|
|
||||||
'고시/공고' x2 rows=[1390, 3001]
|
|
||||||
'세무안내' x2 rows=[1451, 1531]
|
|
||||||
'홍보영상' x2 rows=[1459, 1769]
|
|
||||||
'농업인단체' x2 rows=[1511, 2779]
|
|
||||||
'고향사랑기부제' x2 rows=[1528, 2605]
|
|
||||||
'알림·소식' x2 rows=[1533, 1536]
|
|
||||||
'적극행정 공무원 추천' x2 rows=[1534, 2565]
|
|
||||||
'국가법령정보센터' x2 rows=[1540, 1892]
|
|
||||||
'행정소송' x2 rows=[1553, 2058]
|
|
||||||
'주민e직접' x2 rows=[1558, 1895]
|
|
||||||
'규제혁신 자료실' x2 rows=[1571, 1574]
|
|
||||||
'발주계획' x2 rows=[1578, 1756]
|
|
||||||
'수의계약현황' x2 rows=[1582, 1754]
|
|
||||||
'위치와 면적' x2 rows=[1659, 2637]
|
|
||||||
'지세와 기후' x2 rows=[1660, 2638]
|
|
||||||
'인구 및 세대' x2 rows=[1661, 2639]
|
|
||||||
'행정구역' x2 rows=[1662, 2640]
|
|
||||||
'역사' x2 rows=[1663, 2628]
|
|
||||||
'전북특별자치도' x2 rows=[1672, 1675]
|
|
||||||
'타기관' x2 rows=[1673, 1676]
|
|
||||||
'재정용어사전' x2 rows=[1712, 3015]
|
|
||||||
'성과계획서' x2 rows=[1722, 3018]
|
|
||||||
'지방 출자-출연기관' x2 rows=[1729, 1898]
|
|
||||||
'감사결과공개' x2 rows=[1761, 2309]
|
|
||||||
'기초연금' x2 rows=[1799, 3086]
|
|
||||||
'도로명주소' x2 rows=[1848, 2689]
|
|
||||||
'선정 대리인 제도' x2 rows=[1901, 2449]
|
|
||||||
'민원실안내' x2 rows=[1909, 2437]
|
|
||||||
'전북 소통대로' x2 rows=[1919, 1922]
|
|
||||||
'국민신문고' x2 rows=[1920, 2581]
|
|
||||||
'게시판명/카테고리(소-세부사항3)' x2 rows=[1936, 2436]
|
|
||||||
'제대군인' x2 rows=[1962, 1991]
|
|
||||||
'공공기관' x2 rows=[2001, 3048]
|
|
||||||
'협동조합 경영공시' x2 rows=[2014, 2324]
|
|
||||||
'적극행정 추진방안' x2 rows=[2037, 2280]
|
|
||||||
'장관과의 대화' x2 rows=[2069, 2208]
|
|
||||||
'연설문' x2 rows=[2071, 2207]
|
|
||||||
'직원안내' x2 rows=[2075, 2731]
|
|
||||||
'입법예고·행정예고' x2 rows=[2095, 2307]
|
|
||||||
'영상' x2 rows=[2137, 2154]
|
|
||||||
'공무원·정책 국민추천' x2 rows=[2139, 2281]
|
|
||||||
'입찰정보' x2 rows=[2248, 2487]
|
|
||||||
'전체' x2 rows=[2253, 2254]
|
|
||||||
'사전정보공개' x2 rows=[2315, 2540]
|
|
||||||
'비공개 대상정보 세부기준' x2 rows=[2318, 2971]
|
|
||||||
'오시는 길' x2 rows=[2391, 2732]
|
|
||||||
'지방세 상담챗봇' x2 rows=[2452, 2967]
|
|
||||||
'주민참여예산제란?' x2 rows=[2520, 2571]
|
|
||||||
'연도별 운영계획' x2 rows=[2521, 2572]
|
|
||||||
'주민참여예산 소식' x2 rows=[2522, 2573]
|
|
||||||
'주민참여예산위원회' x2 rows=[2523, 2574]
|
|
||||||
'주민제안서' x2 rows=[2524, 2575]
|
|
||||||
'통계연보' x2 rows=[2587, 3021]
|
|
||||||
'인구현황' x2 rows=[2591, 3027]
|
|
||||||
'지명유래' x2 rows=[2629, 3030]
|
|
||||||
'조직 및 업무' x2 rows=[2691, 2709]
|
|
||||||
'체육시설현황' x2 rows=[2810, 3053]
|
|
||||||
'선수단소개' x2 rows=[2812, 2816]
|
|
||||||
'경기일정 및 결과' x2 rows=[2813, 2817]
|
|
||||||
'응원단 소식' x2 rows=[2815, 2819]
|
|
||||||
'조직 및 관할지역 안내' x2 rows=[2877, 2914]
|
|
||||||
'업무 및 전화번호' x2 rows=[2878, 2915]
|
|
||||||
'직원 안내' x2 rows=[2879, 2916]
|
|
||||||
'모집일정' x2 rows=[2885, 2922]
|
|
||||||
'분실물 센터' x2 rows=[2888, 2925]
|
|
||||||
'배너모음' x2 rows=[2889, 2926]
|
|
||||||
'취업맞춤특기병 바로-콜서비스' x2 rows=[2890, 2927]
|
|
||||||
'개인정보 처리방침' x2 rows=[2894, 2929]
|
|
||||||
|
|
||||||
[34 groups / 76 rows] 작업파일\공공기관3\11.한국장학재단\한국장학재단.xlsx (max_row=332)
|
|
||||||
'공지사항' x6 rows=[46, 133, 182, 195, 269, 277]
|
|
||||||
'FAQ' x4 rows=[53, 57, 61, 184]
|
|
||||||
'장학금 공지' x3 rows=[52, 56, 60]
|
|
||||||
'증명서발급' x3 rows=[72, 75, 106]
|
|
||||||
'학자금 지원구간' x2 rows=[5, 107]
|
|
||||||
'한눈에 보는 학자금 지원구간' x2 rows=[6, 108]
|
|
||||||
'학자금 지원구간 정보 조회' x2 rows=[8, 109]
|
|
||||||
'학자금 지원구간 최신화 신청' x2 rows=[9, 110]
|
|
||||||
'(가구원용)가구원 정보제공 동의현황 및 동의하기' x2 rows=[10, 111]
|
|
||||||
'(학생용)가구원 정보제공 동의현황' x2 rows=[11, 112]
|
|
||||||
'국외 소득·재산 신고 현황' x2 rows=[12, 113]
|
|
||||||
'가구원 학자금 지원구간 산정 현황' x2 rows=[14, 114]
|
|
||||||
'신청하기' x2 rows=[39, 150]
|
|
||||||
'신청현황' x2 rows=[40, 66]
|
|
||||||
'수혜내역' x2 rows=[45, 69]
|
|
||||||
'지원내용 및 진행절차' x2 rows=[55, 59]
|
|
||||||
'종합조회' x2 rows=[65, 92]
|
|
||||||
'서류제출현황' x2 rows=[70, 97]
|
|
||||||
'학자금 중복지원방지' x2 rows=[77, 115]
|
|
||||||
'중복지원방지 제도 안내' x2 rows=[78, 116]
|
|
||||||
'중복지원현황 조회' x2 rows=[79, 117]
|
|
||||||
'분할상환약정신청' x2 rows=[80, 118]
|
|
||||||
'상환유예 및 채무승인 신청' x2 rows=[81, 119]
|
|
||||||
'학자금대출 신청' x2 rows=[93, 94]
|
|
||||||
'오시는길' x2 rows=[157, 234]
|
|
||||||
'입주신청' x2 rows=[170, 193]
|
|
||||||
'나의정보' x2 rows=[173, 194]
|
|
||||||
'자료실' x2 rows=[183, 202]
|
|
||||||
'보도자료' x2 rows=[185, 270]
|
|
||||||
'창업기숙사 온라인 홍보관' x2 rows=[197, 279]
|
|
||||||
'고객헌장' x2 rows=[222, 223]
|
|
||||||
'윤리경영' x2 rows=[245, 246]
|
|
||||||
'인권경영' x2 rows=[264, 265]
|
|
||||||
'정보공개' x2 rows=[281, 282]
|
|
||||||
|
|
||||||
[16 groups / 92 rows] 작업파일\공공기관2\9.한국지식재산연구원\한국지식재산연구원.xlsx (max_row=209)
|
|
||||||
'수상작현황' x20 rows=[104, 108, 112, 115, 118, 121, 125, 129, 133, 137, 141, 145, 149, 153, 157, 161, 164, 168, 171, 173]
|
|
||||||
'시상식' x19 rows=[106, 110, 114, 117, 120, 123, 127, 131, 135, 139, 143, 147, 151, 155, 159, 162, 166, 169, 175]
|
|
||||||
'워크숍' x17 rows=[105, 109, 113, 116, 119, 122, 126, 130, 134, 138, 142, 146, 150, 154, 158, 165, 174]
|
|
||||||
'해외연수' x9 rows=[148, 152, 156, 160, 163, 167, 170, 172, 176]
|
|
||||||
'국내·해외 연수' x5 rows=[128, 132, 136, 140, 144]
|
|
||||||
'미국' x2 rows=[21, 52]
|
|
||||||
'중국' x2 rows=[22, 53]
|
|
||||||
'일본' x2 rows=[23, 54]
|
|
||||||
'연도별 통계' x2 rows=[39, 47]
|
|
||||||
'국가별 통계' x2 rows=[40, 48]
|
|
||||||
'분류별 통계' x2 rows=[41, 49]
|
|
||||||
'SNA' x2 rows=[42, 50]
|
|
||||||
'웹진' x2 rows=[81, 199]
|
|
||||||
'카드뉴스' x2 rows=[82, 200]
|
|
||||||
'해외 연수' x2 rows=[107, 111]
|
|
||||||
'공지사항' x2 rows=[177, 193]
|
|
||||||
|
|
||||||
[15 groups / 30 rows] 작업파일\공공기관2\6.한국중부발전\한국중부발전.xlsx (max_row=229)
|
|
||||||
'경영진소개' x2 rows=[72, 200]
|
|
||||||
'운영현황' x2 rows=[73, 201]
|
|
||||||
'연도별보기' x2 rows=[74, 202]
|
|
||||||
'회의록 다운로드' x2 rows=[75, 203]
|
|
||||||
'보령발전본부' x2 rows=[91, 111]
|
|
||||||
'신보령발전본부' x2 rows=[92, 118]
|
|
||||||
'신서천발전본부' x2 rows=[93, 114]
|
|
||||||
'인천발전본부' x2 rows=[94, 112]
|
|
||||||
'서울발전본부' x2 rows=[95, 113]
|
|
||||||
'세종발전본부' x2 rows=[96, 117]
|
|
||||||
'제주발전본부' x2 rows=[97, 115]
|
|
||||||
'재생에너지' x2 rows=[102, 167]
|
|
||||||
'견학신청·관람정보' x2 rows=[146, 149]
|
|
||||||
'찾아오시는 길' x2 rows=[147, 150]
|
|
||||||
'추진조직' x2 rows=[159, 207]
|
|
||||||
|
|
||||||
[10 groups / 25 rows] 작업파일\공공기관3\1.한국원자력환경공단\한국원자력환경공단.xlsx (max_row=233)
|
|
||||||
'사업개요' x5 rows=[38, 41, 66, 67, 75]
|
|
||||||
'개요' x3 rows=[47, 99, 143]
|
|
||||||
'Q&A 게시판' x3 rows=[72, 80, 158]
|
|
||||||
'공지사항' x2 rows=[3, 125]
|
|
||||||
'입찰정보' x2 rows=[17, 18]
|
|
||||||
'정의' x2 rows=[21, 33]
|
|
||||||
'추진실적' x2 rows=[40, 43]
|
|
||||||
'법령' x2 rows=[58, 190]
|
|
||||||
'장비대여 서비스' x2 rows=[70, 78]
|
|
||||||
'자료실' x2 rows=[119, 145]
|
|
||||||
|
|
||||||
[10 groups / 20 rows] 작업파일\공공기관2\10.한국지역난방공사\한국지역난방공사.xlsx (max_row=240)
|
|
||||||
'공고' x2 rows=[33, 144]
|
|
||||||
'알림 및 자료실' x2 rows=[40, 141]
|
|
||||||
'환경친화설비' x2 rows=[66, 209]
|
|
||||||
'신재생에너지' x2 rows=[74, 205]
|
|
||||||
'연혁' x2 rows=[83, 229]
|
|
||||||
'조직도' x2 rows=[87, 231]
|
|
||||||
'공지사항' x2 rows=[92, 142]
|
|
||||||
'기본방향' x2 rows=[182, 186]
|
|
||||||
'기본요금' x2 rows=[183, 187]
|
|
||||||
'사용량요금' x2 rows=[184, 188]
|
|
||||||
|
|
||||||
[9 groups / 20 rows] 작업파일\공공기관2\16.한국체육산업개발\한국체육산업개발.xlsx (max_row=135)
|
|
||||||
'올림픽홀' x3 rows=[75, 81, 88]
|
|
||||||
'우리금융아트홀' x3 rows=[76, 83, 87]
|
|
||||||
'자주묻는 질문' x2 rows=[27, 59]
|
|
||||||
'올림픽수영장' x2 rows=[61, 91]
|
|
||||||
'미사경정공원' x2 rows=[69, 77]
|
|
||||||
'KSPO DOME' x2 rows=[79, 85]
|
|
||||||
'티켓링크 라이브 아레나' x2 rows=[80, 86]
|
|
||||||
'뮤즈라이브' x2 rows=[82, 89]
|
|
||||||
'옥외시설' x2 rows=[84, 93]
|
|
||||||
|
|
||||||
[8 groups / 21 rows] 작업파일\공공기관3\10.한국장애인고용공단\한국장애인고용공단.xlsx (max_row=203)
|
|
||||||
'제도설명' x5 rows=[42, 47, 52, 54, 56]
|
|
||||||
'자주찾는 질문' x3 rows=[53, 55, 92]
|
|
||||||
'공지사항' x3 rows=[66, 86, 192]
|
|
||||||
'사업소개' x2 rows=[20, 24]
|
|
||||||
'센터별 소개' x2 rows=[75, 78]
|
|
||||||
'교직원 안내' x2 rows=[76, 79]
|
|
||||||
'정보공개' x2 rows=[121, 124]
|
|
||||||
'조직안내' x2 rows=[152, 200]
|
|
||||||
|
|
||||||
[8 groups / 20 rows] 작업파일\공공기관2\12.한국철도공사\한국철도공사.xlsx (max_row=202)
|
|
||||||
'사업소개' x5 rows=[104, 110, 119, 123, 133]
|
|
||||||
'사업 개요' x3 rows=[136, 140, 152]
|
|
||||||
'추진체계' x2 rows=[63, 84]
|
|
||||||
'운영노선' x2 rows=[105, 111]
|
|
||||||
'운행현황' x2 rows=[106, 112]
|
|
||||||
'역 현황' x2 rows=[107, 113]
|
|
||||||
'수송현황' x2 rows=[117, 120]
|
|
||||||
'공지사항' x2 rows=[127, 156]
|
|
||||||
|
|
||||||
[8 groups / 18 rows] 작업파일\공공기관2\5.한국주택금융공사\한국주택금융공사.xlsx (max_row=358)
|
|
||||||
'신청절차' x3 rows=[6, 9, 19]
|
|
||||||
'조건변경' x3 rows=[47, 52, 55]
|
|
||||||
'금리안내' x2 rows=[7, 10]
|
|
||||||
'취급금융기관' x2 rows=[12, 90]
|
|
||||||
'보금자리론' x2 rows=[13, 15]
|
|
||||||
'채무조정 요청권' x2 rows=[67, 101]
|
|
||||||
'청탁금지법 위반행위 신고' x2 rows=[119, 214]
|
|
||||||
'전문' x2 rows=[200, 205]
|
|
||||||
|
|
||||||
[6 groups / 38 rows] _test_buyeo.xlsx (max_row=339)
|
|
||||||
'부서안내' x8 rows=[131, 137, 142, 147, 151, 155, 166, 171]
|
|
||||||
'업무/직원안내' x8 rows=[132, 138, 143, 148, 152, 156, 167, 172]
|
|
||||||
'알림마당' x8 rows=[135, 141, 145, 150, 154, 158, 170, 174]
|
|
||||||
'주요추진시책' x7 rows=[134, 140, 144, 149, 153, 157, 169]
|
|
||||||
'민원서식안내' x5 rows=[58, 133, 139, 168, 173]
|
|
||||||
'공지사항' x2 rows=[36, 101]
|
|
||||||
|
|
||||||
[6 groups / 13 rows] 작업파일\공공기관3\6.한국자산관리공사\한국자산관리공사.xlsx (max_row=172)
|
|
||||||
'프로그램 개요' x3 rows=[45, 51, 55]
|
|
||||||
'공사소개' x2 rows=[3, 4]
|
|
||||||
'캠코CI' x2 rows=[14, 15]
|
|
||||||
'국유재산 건축상' x2 rows=[77, 78]
|
|
||||||
'공지사항' x2 rows=[81, 157]
|
|
||||||
'정보공개' x2 rows=[105, 117]
|
|
||||||
|
|
||||||
[6 groups / 12 rows] 작업파일\공공기관3\2.한국의료분쟁조정중재원\한국의료분쟁조정중재원.xlsx (max_row=125)
|
|
||||||
'관련 법령 및 서식' x2 rows=[41, 50]
|
|
||||||
'업무소개' x2 rows=[52, 116]
|
|
||||||
'신고센터' x2 rows=[64, 109]
|
|
||||||
'윤리경영 개요' x2 rows=[99, 101]
|
|
||||||
'윤리헌장' x2 rows=[102, 103]
|
|
||||||
'윤리경영 실천' x2 rows=[106, 107]
|
|
||||||
|
|
||||||
[6 groups / 12 rows] 작업파일\공공기관2\1.한국전기안전공사\한국전기안전공사.xlsx (max_row=178)
|
|
||||||
'연혁' x2 rows=[6, 80]
|
|
||||||
'조직도' x2 rows=[9, 81]
|
|
||||||
'전기안전관리대행' x2 rows=[21, 33]
|
|
||||||
'제·개정 공고' x2 rows=[153, 155]
|
|
||||||
'신고안내 및 신고하기' x2 rows=[164, 166]
|
|
||||||
'보상금 지급기준' x2 rows=[165, 167]
|
|
||||||
|
|
||||||
[5 groups / 39 rows] 작업파일\공공기관2\13.한국청소년상담복지개발원\한국청소년상담복지개발원.xlsx (max_row=124)
|
|
||||||
'사업소개' x11 rows=[14, 17, 20, 24, 29, 33, 38, 41, 44, 47, 51]
|
|
||||||
'사업개요' x11 rows=[15, 18, 21, 25, 30, 34, 39, 42, 45, 48, 52]
|
|
||||||
'주요내용' x11 rows=[16, 19, 22, 26, 31, 35, 40, 43, 46, 49, 53]
|
|
||||||
'홍보자료' x4 rows=[23, 27, 37, 54]
|
|
||||||
'자료실' x2 rows=[28, 32]
|
|
||||||
|
|
||||||
[4 groups / 34 rows] 참고파일\★공공저작물 실태조사 조사원 자료 취합본(관리자)_배포용_260527_20260529.xlsx (max_row=431)
|
|
||||||
'0' x15 rows=[27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
|
|
||||||
'2026-05-26 00:00:00' x13 rows=[7, 8, 9, 10, 13, 14, 16, 17, 20, 21, 22, 26, 30]
|
|
||||||
'2026-05-22 00:00:00' x4 rows=[11, 12, 15, 23]
|
|
||||||
'2026-05-24 00:00:00' x2 rows=[18, 19]
|
|
||||||
|
|
||||||
[4 groups / 34 rows] 기관리스트.xlsx (max_row=431)
|
|
||||||
'0' x15 rows=[27, 28, 29, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42]
|
|
||||||
'2026-05-26 00:00:00' x13 rows=[7, 8, 9, 10, 13, 14, 16, 17, 20, 21, 22, 26, 30]
|
|
||||||
'2026-05-22 00:00:00' x4 rows=[11, 12, 15, 23]
|
|
||||||
'2026-05-24 00:00:00' x2 rows=[18, 19]
|
|
||||||
|
|
||||||
[4 groups / 10 rows] 작업파일\공공기관2\4.한국조폐공사\한국조폐공사.xlsx (max_row=174)
|
|
||||||
'감사보고서' x3 rows=[118, 120, 122]
|
|
||||||
'일반현황 등' x3 rows=[119, 121, 123]
|
|
||||||
'채용소식' x2 rows=[17, 134]
|
|
||||||
'관련자료' x2 rows=[56, 58]
|
|
||||||
|
|
||||||
[3 groups / 8 rows] 작업파일\공공기관2\2.한국전력거래소\한국전력거래소.xlsx (max_row=199)
|
|
||||||
'24년도' x3 rows=[41, 43, 45]
|
|
||||||
'25년도' x3 rows=[42, 44, 46]
|
|
||||||
'육지' x2 rows=[159, 163]
|
|
||||||
|
|
||||||
[3 groups / 6 rows] 작업파일\공공기관3\5.한국임업진흥원\한국임업진흥원.xlsx (max_row=120)
|
|
||||||
'- 산림분야 인재육성' x2 rows=[63, 68]
|
|
||||||
'- 임업인 교육, 임업직불제 교육' x2 rows=[64, 69]
|
|
||||||
'- 전문교육기관 교육' x2 rows=[65, 70]
|
|
||||||
|
|
||||||
[3 groups / 6 rows] 작업파일\공공기관2\3.한국조세재정연구원\한국조세재정연구원.xlsx (max_row=126)
|
|
||||||
'정기간행물' x2 rows=[5, 13]
|
|
||||||
'재정패널조사' x2 rows=[21, 95]
|
|
||||||
'뉴스레터' x2 rows=[56, 87]
|
|
||||||
|
|
||||||
[2 groups / 7 rows] 작업파일\공공기관3\4.한국인터넷진흥원\한국인터넷진흥원.xlsx (max_row=99)
|
|
||||||
'본부소개' x5 rows=[22, 27, 31, 35, 39]
|
|
||||||
'전략체계' x2 rows=[77, 82]
|
|
||||||
|
|
||||||
[2 groups / 4 rows] 작업파일\공공기관3\3.한국의약품안전관리원\한국의약품안전관리원.xlsx (max_row=88)
|
|
||||||
'공지사항' x2 rows=[44, 47]
|
|
||||||
'자료실' x2 rows=[45, 64]
|
|
||||||
|
|
||||||
[2 groups / 4 rows] 작업파일\공공기관3\13.한국저작권보호원\한국저작권보호원.xlsx (max_row=117)
|
|
||||||
'공지사항' x2 rows=[23, 43]
|
|
||||||
'저작권 보호 미래 포럼' x2 rows=[58, 59]
|
|
||||||
|
|
||||||
[2 groups / 4 rows] 작업파일\공공기관3\12.한국재정정보원\한국재정정보원.xlsx (max_row=71)
|
|
||||||
'기관소개' x2 rows=[3, 4]
|
|
||||||
'국민참여' x2 rows=[67, 68]
|
|
||||||
|
|
||||||
[1 groups / 2 rows] 작업파일\공공기관3\9.한국장애인개발원\한국장애인개발원.xlsx (max_row=68)
|
|
||||||
'원장인사말' x2 rows=[46, 47]
|
|
||||||
|
|
||||||
[1 groups / 2 rows] 작업파일\공공기관2\8.한국지식재산보호원\한국지식재산보호원.xlsx (max_row=97)
|
|
||||||
'지식재산침해 원스톱 신고상담센터' x2 rows=[10, 38]
|
|
||||||
|
|
||||||
[1 groups / 2 rows] 작업파일\공공기관2\17.한국치산기술협회\한국치산기술협회.xlsx (max_row=48)
|
|
||||||
'산불' x2 rows=[17, 28]
|
|
||||||
|
|
||||||
=== FILES WITH NO DUPLICATE MENU NAMES === 6
|
|
||||||
OK 작업파일\공공기관3\8.한국장기조직기증원\한국장기조직기증원.xlsx
|
|
||||||
OK 작업파일\공공기관3\7.한국잡월드\한국잡월드.xlsx
|
|
||||||
OK 작업파일\공공기관2\7.한국지능정보사회진흥원\한국지능정보사회진흥원.xlsx
|
|
||||||
OK 작업파일\공공기관2\15.한국청소년활동진흥원\한국청소년활동진흥원.xlsx
|
|
||||||
OK 작업파일\공공기관2\14.한국청소년정책연구원\한국청소년정책연구원.xlsx
|
|
||||||
OK 작업파일\공공기관2\11.한국직업능력연구원\한국직업능력연구원.xlsx
|
|
||||||
@ -1,30 +0,0 @@
|
|||||||
FILE: ★공공저작물 실태조사 조사원 자료 취합본(관리자)_2605212137.xlsx
|
|
||||||
sheets: ['기관리스트', '우선기관(심예진, 방유정)', '01_김재민', '02_심예진', '03_방유정', '04_구소영', '05_정대원', '06_황의정', '07_프리랜서', '08_이희재', '09_신성범']
|
|
||||||
active=03_방유정 max_row=3150 max_col=29 merges=274
|
|
||||||
r1: ['지자체', '조사원 업무 범위', None, None, None, None, None, None, None, None, None]
|
|
||||||
r2: [None, '순번', '사이트명', '메뉴명', '게시판명/카테고리(대)', '게시판명/카테고리(중)', '게시판명/카테고리(소)', '게시판명/카테고리(소-세부사항)', '게시판명/카테고리(소-세부사항2)', '게시판명/카테고리(소-세부사항3)', '주소(url)']
|
|
||||||
r3: [None, 48, '경기도', '뉴스', '경기도 소식', '보도자료', None, None, None, None, 'https://gnews.gg.go.kr/briefing/brief_gongbo.do']
|
|
||||||
r4: [None, None, None, None, None, '경기뉴스광장', None, None, None, None, 'https://gnews.gg.go.kr/news/news_list.do?s_code=C401']
|
|
||||||
r5: [None, None, None, None, None, 'GTV도정뉴스', None, None, None, None, 'https://gnews.gg.go.kr/news/news_tv.do?s_code=C500']
|
|
||||||
r50: B=None C=None D=None E=None F=고용24(워크넷)
|
|
||||||
r51: B=None C=None D=None E=None F=취업·채용 민원
|
|
||||||
r52: B=None C=None D=None E=None F=경기Freeway
|
|
||||||
r53: B=None C=None D=None E=자격시험 F=수렵면허
|
|
||||||
r54: B=None C=None D=None E=None F=가축인공수정사
|
|
||||||
r55: B=None C=None D=None E=None F=간호사
|
|
||||||
|
|
||||||
FILE: ★공공저작물 실태조사 조사원 자료 취합본(관리자)_배포용_260527_20260529.xlsx
|
|
||||||
sheets: ['기관리스트', '우선기관(심예진, 방유정)', '01_김재민', '02_심예진', '03_방유정', '04_구소영', '05_정대원', '06_황의정', '07_프리랜서', '08_이희재', '09_신성범', '10_신규']
|
|
||||||
active=기관리스트 max_row=431 max_col=63 merges=8
|
|
||||||
r1: [None, None, None, None, None, None, None, None, None, None, None]
|
|
||||||
r2: [None, None, None, None, None, None, None, None, None, None, None]
|
|
||||||
r3: [None, None, None, None, None, None, None, None, None, None, None]
|
|
||||||
r4: [None, None, None, None, None, None, None, None, None, None, None]
|
|
||||||
r5: [None, '광역자치단체', None, None, None, None, None, None, None, None, '기초자치단체']
|
|
||||||
r50: B=None C=None D=None E=None F=None
|
|
||||||
r51: B=None C=None D=None E=None F=None
|
|
||||||
r52: B=None C=None D=None E=None F=None
|
|
||||||
r53: B=None C=None D=None E=None F=None
|
|
||||||
r54: B=None C=None D=None E=None F=None
|
|
||||||
r55: B=None C=None D=None E=None F=None
|
|
||||||
|
|
||||||
@ -1,67 +0,0 @@
|
|||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\제출_프리랜서1_2026-06-03\충청남도_당진시.xlsx
|
|
||||||
OK changes=21 orphans=66 merges=167 작업파일\제출폴더\_제출패키지_2026-06-03\제출_프리랜서1_2026-06-03\충청남도_부여군.xlsx | add=[('F', 554, 558), ('G', 137, 141), ('G', 142, 146), ('G', 147, 150), ('G', 151, 154), ('G', 155, 158), ('G', 160, 163), ('G', 164, 167), ('G', 168, 171), ('G', 172, 175), ('G', 176, 179), ('G', 181, 1
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\제출_프리랜서1_2026-06-03\충청남도_서천군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\제출_프리랜서1_2026-06-03\충청남도_예산군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\제출_프리랜서1_2026-06-03\충청남도_태안군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서1\충청남도_당진시.xlsx
|
|
||||||
OK changes=20 orphans=62 merges=167 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서1\충청남도_부여군.xlsx | add=[('G', 137, 141), ('G', 142, 146), ('G', 147, 150), ('G', 151, 154), ('G', 155, 158), ('G', 160, 163), ('G', 164, 167), ('G', 168, 171), ('G', 172, 175), ('G', 176, 179), ('G', 181, 184), ('G', 185, 1
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서1\충청남도_서천군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서1\충청남도_예산군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서1\충청남도_태안군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서2\전북특별자치도_고창군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서2\전북특별자치도_군산시.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서2\전북특별자치도_김제시.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서2\전북특별자치도_남원시.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-03\프리랜서2\전북특별자치도_무주군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-06\제출_프리랜서1_2026-06-06\충청남도_서산시.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-06\제출_프리랜서1_2026-06-06\충청남도_천안시.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-06\제출_프리랜서2_2026-06-06\전북특별자치도_부안군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-06\제출_프리랜서2_2026-06-06\전북특별자치도_순창군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-06\제출_프리랜서2_2026-06-06\전북특별자치도_익산시.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-07\제출_프리랜서1_2026-06-07\충청남도_아산시.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-07\제출_프리랜서1_2026-06-07\충청남도_홍성군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-07\제출_프리랜서2_2026-06-07\전북특별자치도_임실군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-07\제출_프리랜서2_2026-06-07\전북특별자치도_장수군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-07\제출_프리랜서2_2026-06-07\전북특별자치도_전주시.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-11\제출_프리랜서1_2026-06-11\충청남도_청양군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-11\제출_프리랜서1_2026-06-11\충청북도_괴산군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-11\제출_프리랜서1_2026-06-11\충청북도_단양군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-11\제출_프리랜서2_2026-06-11\전북특별자치도_완주군.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-11\제출_프리랜서2_2026-06-11\전북특별자치도_정읍시.xlsx
|
|
||||||
OK changes=9 orphans=0 merges=127 작업파일\제출폴더\_제출패키지_2026-06-12\제출_프리랜서2_2026-06-12\제주특별자치도_교육청.xlsx | add=[('E', 98, 103), ('E', 135, 164), ('F', 3, 6), ('F', 27, 28), ('F', 92, 93), ('F', 109, 110), ('F', 136, 137), ('F', 287, 288), ('F', 416, 420)]
|
|
||||||
OK changes=10 orphans=0 merges=82 작업파일\제출폴더\_제출패키지_2026-06-12\제출_프리랜서2_2026-06-12\충청남도_교육청.xlsx | add=[('E', 177, 179), ('E', 229, 243), ('F', 45, 46), ('F', 65, 75), ('F', 87, 89), ('F', 145, 147), ('F', 229, 233), ('F', 258, 259), ('F', 260, 270), ('F', 344, 352)]
|
|
||||||
OK changes=5 orphans=0 merges=74 작업파일\제출폴더\_제출패키지_2026-06-12\제출_프리랜서2_2026-06-12\충청북도_교육청.xlsx | add=[('E', 20, 33), ('E', 102, 118), ('F', 20, 26), ('F', 68, 69), ('F', 159, 169)]
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-14\제출_프리랜서2_2026-06-14\국립해양박물관.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-14\제출_프리랜서2_2026-06-14\국립호남권생물자원관.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-14\제출_프리랜서2_2026-06-14\국민연금공단.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-14\제출_프리랜서2_2026-06-14\국방과학연구소.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-14\제출_프리랜서2_2026-06-14\국방기술품질원.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-14\제출_프리랜서2_2026-06-14\국제식물검역인증원.xlsx
|
|
||||||
OK changes=1 orphans=0 merges=70 작업파일\제출폴더\_제출패키지_2026-06-14\제출_프리랜서2_2026-06-14\국토교통과학기술진흥원.xlsx | add=[('E', 190, 193)]
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-14\제출_프리랜서2_2026-06-14\국토안전관리원.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-14\제출_프리랜서2_2026-06-14\국토연구원.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-16\제출_프리랜서2_2026-06-16\국립박물관문화재단.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-16\제출_프리랜서2_2026-06-16\국립생태원.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-16\제출_프리랜서2_2026-06-16\국립중앙의료원.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-16\제출_프리랜서2_2026-06-16\국립해양생물자원관.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-16\제출_프리랜서2_2026-06-16\국민건강보험공단.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-16\제출_프리랜서2_2026-06-16\국악방송.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국전기안전공사.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국전력거래소.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국조세재정연구원.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국조폐공사.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국주택금융공사.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국중부발전.xlsx
|
|
||||||
OK changes=4 orphans=0 merges=26 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국지능정보사회진흥원.xlsx | add=[('D', 64, 83), ('D', 85, 97), ('E', 76, 83), ('E', 85, 96)]
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국지식재산보호원.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국지식재산연구원.xlsx
|
|
||||||
SKIP(KDHC done) 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국지역난방공사.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국직업능력연구원.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국철도공사.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국청소년상담복지개발원.xlsx
|
|
||||||
OK changes=2 orphans=0 merges=15 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국청소년정책연구원.xlsx | add=[('E', 3, 4), ('E', 20, 25)]
|
|
||||||
OK changes=1 orphans=0 merges=22 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국청소년활동진흥원.xlsx | add=[('E', 24, 34)]
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국체육산업개발.xlsx
|
|
||||||
OK-nochange 작업파일\제출폴더\_제출패키지_2026-06-21\제출_프리랜서2_2026-06-21\한국치산기술협회.xlsx
|
|
||||||
|
|
||||||
=== SUMMARY sub: done=64 changed=9 skip=1 fail=0 (total 65) ===
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
EXC 기관리스트.xlsx AttributeError("'MergedCell' object attribute 'value' is read-only")
|
|
||||||
OK-nochange 작업파일\공공기관2\1.한국전기안전공사\한국전기안전공사.xlsx
|
|
||||||
SKIP(KDHC done) 작업파일\공공기관2\10.한국지역난방공사\한국지역난방공사.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\11.한국직업능력연구원\한국직업능력연구원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\12.한국철도공사\한국철도공사.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\13.한국청소년상담복지개발원\한국청소년상담복지개발원.xlsx
|
|
||||||
OK changes=2 orphans=0 merges=15 작업파일\공공기관2\14.한국청소년정책연구원\한국청소년정책연구원.xlsx | add=[('E', 3, 4), ('E', 20, 25)]
|
|
||||||
OK changes=1 orphans=0 merges=22 작업파일\공공기관2\15.한국청소년활동진흥원\한국청소년활동진흥원.xlsx | add=[('E', 24, 34)]
|
|
||||||
OK-nochange 작업파일\공공기관2\16.한국체육산업개발\한국체육산업개발.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\17.한국치산기술협회\한국치산기술협회.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\2.한국전력거래소\한국전력거래소.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\3.한국조세재정연구원\한국조세재정연구원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\4.한국조폐공사\한국조폐공사.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\5.한국주택금융공사\한국주택금융공사.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\6.한국중부발전\한국중부발전.xlsx
|
|
||||||
OK changes=4 orphans=0 merges=26 작업파일\공공기관2\7.한국지능정보사회진흥원\한국지능정보사회진흥원.xlsx | add=[('D', 64, 83), ('D', 85, 97), ('E', 76, 83), ('E', 85, 96)]
|
|
||||||
OK-nochange 작업파일\공공기관2\8.한국지식재산보호원\한국지식재산보호원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관2\9.한국지식재산연구원\한국지식재산연구원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\1.한국원자력환경공단\한국원자력환경공단.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\10.한국장애인고용공단\한국장애인고용공단.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\11.한국장학재단\한국장학재단.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\12.한국재정정보원\한국재정정보원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\13.한국저작권보호원\한국저작권보호원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\2.한국의료분쟁조정중재원\한국의료분쟁조정중재원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\3.한국의약품안전관리원\한국의약품안전관리원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\4.한국인터넷진흥원\한국인터넷진흥원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\5.한국임업진흥원\한국임업진흥원.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\6.한국자산관리공사\한국자산관리공사.xlsx
|
|
||||||
OK-nochange 작업파일\공공기관3\7.한국잡월드\한국잡월드.xlsx
|
|
||||||
OK changes=5 orphans=0 merges=25 작업파일\공공기관3\8.한국장기조직기증원\한국장기조직기증원.xlsx | add=[('E', 3, 7), ('E', 29, 33), ('E', 43, 48), ('E', 53, 55), ('E', 61, 64)]
|
|
||||||
OK-nochange 작업파일\공공기관3\9.한국장애인개발원\한국장애인개발원.xlsx
|
|
||||||
|
|
||||||
=== SUMMARY work: done=29 changed=4 skip=1 fail=1 (total 31) ===
|
|
||||||
@ -1,103 +0,0 @@
|
|||||||
{
|
|
||||||
"work": [
|
|
||||||
"기관리스트.xlsx",
|
|
||||||
"작업파일\\공공기관2\\1.한국전기안전공사\\한국전기안전공사.xlsx",
|
|
||||||
"작업파일\\공공기관2\\10.한국지역난방공사\\한국지역난방공사.xlsx",
|
|
||||||
"작업파일\\공공기관2\\11.한국직업능력연구원\\한국직업능력연구원.xlsx",
|
|
||||||
"작업파일\\공공기관2\\12.한국철도공사\\한국철도공사.xlsx",
|
|
||||||
"작업파일\\공공기관2\\13.한국청소년상담복지개발원\\한국청소년상담복지개발원.xlsx",
|
|
||||||
"작업파일\\공공기관2\\14.한국청소년정책연구원\\한국청소년정책연구원.xlsx",
|
|
||||||
"작업파일\\공공기관2\\15.한국청소년활동진흥원\\한국청소년활동진흥원.xlsx",
|
|
||||||
"작업파일\\공공기관2\\16.한국체육산업개발\\한국체육산업개발.xlsx",
|
|
||||||
"작업파일\\공공기관2\\17.한국치산기술협회\\한국치산기술협회.xlsx",
|
|
||||||
"작업파일\\공공기관2\\2.한국전력거래소\\한국전력거래소.xlsx",
|
|
||||||
"작업파일\\공공기관2\\3.한국조세재정연구원\\한국조세재정연구원.xlsx",
|
|
||||||
"작업파일\\공공기관2\\4.한국조폐공사\\한국조폐공사.xlsx",
|
|
||||||
"작업파일\\공공기관2\\5.한국주택금융공사\\한국주택금융공사.xlsx",
|
|
||||||
"작업파일\\공공기관2\\6.한국중부발전\\한국중부발전.xlsx",
|
|
||||||
"작업파일\\공공기관2\\7.한국지능정보사회진흥원\\한국지능정보사회진흥원.xlsx",
|
|
||||||
"작업파일\\공공기관2\\8.한국지식재산보호원\\한국지식재산보호원.xlsx",
|
|
||||||
"작업파일\\공공기관2\\9.한국지식재산연구원\\한국지식재산연구원.xlsx",
|
|
||||||
"작업파일\\공공기관3\\1.한국원자력환경공단\\한국원자력환경공단.xlsx",
|
|
||||||
"작업파일\\공공기관3\\10.한국장애인고용공단\\한국장애인고용공단.xlsx",
|
|
||||||
"작업파일\\공공기관3\\11.한국장학재단\\한국장학재단.xlsx",
|
|
||||||
"작업파일\\공공기관3\\12.한국재정정보원\\한국재정정보원.xlsx",
|
|
||||||
"작업파일\\공공기관3\\13.한국저작권보호원\\한국저작권보호원.xlsx",
|
|
||||||
"작업파일\\공공기관3\\2.한국의료분쟁조정중재원\\한국의료분쟁조정중재원.xlsx",
|
|
||||||
"작업파일\\공공기관3\\3.한국의약품안전관리원\\한국의약품안전관리원.xlsx",
|
|
||||||
"작업파일\\공공기관3\\4.한국인터넷진흥원\\한국인터넷진흥원.xlsx",
|
|
||||||
"작업파일\\공공기관3\\5.한국임업진흥원\\한국임업진흥원.xlsx",
|
|
||||||
"작업파일\\공공기관3\\6.한국자산관리공사\\한국자산관리공사.xlsx",
|
|
||||||
"작업파일\\공공기관3\\7.한국잡월드\\한국잡월드.xlsx",
|
|
||||||
"작업파일\\공공기관3\\8.한국장기조직기증원\\한국장기조직기증원.xlsx",
|
|
||||||
"작업파일\\공공기관3\\9.한국장애인개발원\\한국장애인개발원.xlsx"
|
|
||||||
],
|
|
||||||
"sub": [
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\제출_프리랜서1_2026-06-03\\충청남도_당진시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\제출_프리랜서1_2026-06-03\\충청남도_부여군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\제출_프리랜서1_2026-06-03\\충청남도_서천군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\제출_프리랜서1_2026-06-03\\충청남도_예산군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\제출_프리랜서1_2026-06-03\\충청남도_태안군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서1\\충청남도_당진시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서1\\충청남도_부여군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서1\\충청남도_서천군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서1\\충청남도_예산군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서1\\충청남도_태안군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서2\\전북특별자치도_고창군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서2\\전북특별자치도_군산시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서2\\전북특별자치도_김제시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서2\\전북특별자치도_남원시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-03\\프리랜서2\\전북특별자치도_무주군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-06\\제출_프리랜서1_2026-06-06\\충청남도_서산시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-06\\제출_프리랜서1_2026-06-06\\충청남도_천안시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-06\\제출_프리랜서2_2026-06-06\\전북특별자치도_부안군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-06\\제출_프리랜서2_2026-06-06\\전북특별자치도_순창군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-06\\제출_프리랜서2_2026-06-06\\전북특별자치도_익산시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-07\\제출_프리랜서1_2026-06-07\\충청남도_아산시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-07\\제출_프리랜서1_2026-06-07\\충청남도_홍성군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-07\\제출_프리랜서2_2026-06-07\\전북특별자치도_임실군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-07\\제출_프리랜서2_2026-06-07\\전북특별자치도_장수군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-07\\제출_프리랜서2_2026-06-07\\전북특별자치도_전주시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-11\\제출_프리랜서1_2026-06-11\\충청남도_청양군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-11\\제출_프리랜서1_2026-06-11\\충청북도_괴산군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-11\\제출_프리랜서1_2026-06-11\\충청북도_단양군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-11\\제출_프리랜서2_2026-06-11\\전북특별자치도_완주군.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-11\\제출_프리랜서2_2026-06-11\\전북특별자치도_정읍시.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-12\\제출_프리랜서2_2026-06-12\\제주특별자치도_교육청.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-12\\제출_프리랜서2_2026-06-12\\충청남도_교육청.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-12\\제출_프리랜서2_2026-06-12\\충청북도_교육청.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-14\\제출_프리랜서2_2026-06-14\\국립해양박물관.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-14\\제출_프리랜서2_2026-06-14\\국립호남권생물자원관.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-14\\제출_프리랜서2_2026-06-14\\국민연금공단.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-14\\제출_프리랜서2_2026-06-14\\국방과학연구소.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-14\\제출_프리랜서2_2026-06-14\\국방기술품질원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-14\\제출_프리랜서2_2026-06-14\\국제식물검역인증원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-14\\제출_프리랜서2_2026-06-14\\국토교통과학기술진흥원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-14\\제출_프리랜서2_2026-06-14\\국토안전관리원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-14\\제출_프리랜서2_2026-06-14\\국토연구원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-16\\제출_프리랜서2_2026-06-16\\국립박물관문화재단.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-16\\제출_프리랜서2_2026-06-16\\국립생태원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-16\\제출_프리랜서2_2026-06-16\\국립중앙의료원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-16\\제출_프리랜서2_2026-06-16\\국립해양생물자원관.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-16\\제출_프리랜서2_2026-06-16\\국민건강보험공단.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-16\\제출_프리랜서2_2026-06-16\\국악방송.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국전기안전공사.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국전력거래소.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국조세재정연구원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국조폐공사.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국주택금융공사.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국중부발전.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국지능정보사회진흥원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국지식재산보호원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국지식재산연구원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국지역난방공사.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국직업능력연구원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국철도공사.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국청소년상담복지개발원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국청소년정책연구원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국청소년활동진흥원.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국체육산업개발.xlsx",
|
|
||||||
"작업파일\\제출폴더\\_제출패키지_2026-06-21\\제출_프리랜서2_2026-06-21\\한국치산기술협회.xlsx"
|
|
||||||
],
|
|
||||||
"other": []
|
|
||||||
}
|
|
||||||
@ -1,40 +0,0 @@
|
|||||||
|
|
||||||
===== 공공기관2 작업본 (17개) =====
|
|
||||||
[정상] 한국전기안전공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국지역난방공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국직업능력연구원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국철도공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국청소년상담복지개발원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국청소년정책연구원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국청소년활동진흥원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국체육산업개발.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국치산기술협회.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국전력거래소.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국조세재정연구원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국조폐공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국주택금융공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국중부발전.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국지능정보사회진흥원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국지식재산보호원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국지식재산연구원.xlsx (병합완료, 추가0)
|
|
||||||
>> 공공기관2 작업본: 미병합잔여 0개, 적용 0개
|
|
||||||
|
|
||||||
===== 오늘(2026-06-21) 제출폴더 (17개) =====
|
|
||||||
[정상] 한국전기안전공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국전력거래소.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국조세재정연구원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국조폐공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국주택금융공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국중부발전.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국지능정보사회진흥원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국지식재산보호원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국지식재산연구원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국지역난방공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국직업능력연구원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국철도공사.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국청소년상담복지개발원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국청소년정책연구원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국청소년활동진흥원.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국체육산업개발.xlsx (병합완료, 추가0)
|
|
||||||
[정상] 한국치산기술협회.xlsx (병합완료, 추가0)
|
|
||||||
>> 오늘(2026-06-21) 제출폴더: 미병합잔여 0개, 적용 0개
|
|
||||||
59
작업파일/_스크립트/_fmt_normalize.py
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
"""검수 마감 서식 정규화 (서식만, 내용/링크/병합/테두리 불변).
|
||||||
|
- 전 행 높이 17
|
||||||
|
- 3행~끝 채움색 제거(무채색)
|
||||||
|
- K열(11) 제외 전 셀 가로·세로 가운데, K열만 가로 좌측(세로 가운데)
|
||||||
|
사용: python -X utf8 _fmt_normalize.py <엑셀> [--apply] (기본 dry-run)
|
||||||
|
"""
|
||||||
|
import openpyxl, os, shutil, sys, copy
|
||||||
|
from openpyxl.styles import Alignment, PatternFill
|
||||||
|
|
||||||
|
NOFILL = PatternFill(fill_type=None)
|
||||||
|
CENTER = Alignment(horizontal="center", vertical="center", wrap_text=False)
|
||||||
|
LEFT = Alignment(horizontal="left", vertical="center", wrap_text=False)
|
||||||
|
KCOL = 11 # K
|
||||||
|
|
||||||
|
def process(path, apply=False):
|
||||||
|
wb = openpyxl.load_workbook(path)
|
||||||
|
ws = wb.active
|
||||||
|
mx, mc = ws.max_row, ws.max_column
|
||||||
|
# 검증용 스냅샷: 값·하이퍼링크
|
||||||
|
vals = {(r, c): ws.cell(r, c).value for r in range(1, mx+1) for c in range(1, mc+1)}
|
||||||
|
links = {(r, c): (ws.cell(r, c).hyperlink.target if ws.cell(r, c).hyperlink else None)
|
||||||
|
for r in range(1, mx+1) for c in range(1, mc+1)}
|
||||||
|
merges = sorted(str(m) for m in ws.merged_cells.ranges)
|
||||||
|
if not apply:
|
||||||
|
return dict(file=path, max_row=mx, max_col=mc, merges=len(merges), dry=True)
|
||||||
|
shutil.copy2(path, os.path.splitext(path)[0] + "_backup_서식정규화전.xlsx")
|
||||||
|
# 1) 행높이 17
|
||||||
|
ws.sheet_format.defaultRowHeight = 17
|
||||||
|
ws.sheet_format.customHeight = True
|
||||||
|
for r in range(1, mx+1):
|
||||||
|
ws.row_dimensions[r].height = 17
|
||||||
|
# 2) 3행~끝 채움색 제거 + 3) 정렬(전 범위)
|
||||||
|
for r in range(1, mx+1):
|
||||||
|
for c in range(1, mc+1):
|
||||||
|
cell = ws.cell(r, c)
|
||||||
|
if r >= 3:
|
||||||
|
cell.fill = copy.copy(NOFILL)
|
||||||
|
cell.alignment = copy.copy(LEFT if c == KCOL else CENTER)
|
||||||
|
wb.save(path)
|
||||||
|
# 검증(재로드): 값·링크·병합·행수 보존
|
||||||
|
wb2 = openpyxl.load_workbook(path); ws2 = wb2.active
|
||||||
|
fails = []
|
||||||
|
if ws2.max_row != mx: fails.append("rowcount")
|
||||||
|
for (r, c), v in vals.items():
|
||||||
|
if ws2.cell(r, c).value != v: fails.append("val r%d c%d" % (r, c)); break
|
||||||
|
for (r, c), t in links.items():
|
||||||
|
cur = ws2.cell(r, c).hyperlink.target if ws2.cell(r, c).hyperlink else None
|
||||||
|
if cur != t: fails.append("link r%d c%d" % (r, c)); break
|
||||||
|
if sorted(str(m) for m in ws2.merged_cells.ranges) != merges: fails.append("merges")
|
||||||
|
if fails:
|
||||||
|
shutil.copy2(os.path.splitext(path)[0] + "_backup_서식정규화전.xlsx", path)
|
||||||
|
return dict(file=path, ok=False, rolledback=True, fails=fails)
|
||||||
|
return dict(file=path, ok=True, max_row=mx, merges=len(merges))
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
a = sys.argv[1:]
|
||||||
|
p = a[0]
|
||||||
|
print(process(p, apply=("--apply" in a)))
|
||||||
@ -1,6 +1,55 @@
|
|||||||
# 처리중 현황
|
# 처리중 현황
|
||||||
|
- ✅공공기관3 완료 13곳 S비고 삭제 + 제출폴더 이동 완료 (2026-06-25) => 사용자: 완료폴더 사이트엑셀 제출폴더로 이동만(압축X)·S비고 글 전삭제. ①S(19) 데이터행 17셀 삭제(KISA r109·잡월드 4·5·6·7·9·10·11·12·15·16·18·21·25·29·장학 r195·196), S2헤더'비고(특이사항)' 유지·백업 `_backup_S비고삭제전`(3파일). ②13 메인xlsx → `작업파일\제출_공공기관3_2026-06-25\`로 mv(압축X·플랫). 완료폴더 13곳 전부 메인0개·백업만 잔존 확인. 제출폴더 13개·S잔존0 검증.
|
||||||
> 작업 흐름: **🔄 처리중** → **✅ 클로드완료**(확인 대기) → **☑️ 확인완료**(사용자 확인)
|
- ✅한국저작권보호원(공공기관3-13) Q=Y 12행→N 정정 완료 (2026-06-25) => 라이브 정밀대조: KOGL부착 15행 마크가 **전부 동일 일반 `kogl.or.kr/info/license.do`**(유형별 licenseType{N}.do 아님)인데 Q만 12Y/3N로 갈림=비일관(같은링크 다른Q). 사용자 확정기준(일반링크=N)대로 **Y 12행(r26·27·28·29·30·33·42·43·44·46·76·78)→N 통일**, 이제 15행 전부 Q=N. **Q열(17)만 수정·O/P/기타 전열 불변**(검증: O값 보존). 백업 `_backup_Q정정전_2026-06-25`. cf. 의약품(Y=licenseType4.do 정확링크)·장애인고용·장학재단(licenseType{N}.do)은 정상Y 유지·잡월드 type1/5는 별도. [[gg3_kogl_link_q_verification_2026-06-24]]
|
||||||
|
- ✅공공기관3 완료폴더 13곳 재감사+공공누리 Q값 전수 라이브검증 (2026-06-24) => 사용자 3점검 후 "링크·Q 맞나 전 사이트 확인" 추가지시. **①구조/정렬/색: 13곳 깨끗**(채움색0=제거대상無·정렬위반0·B연속·계층구멍0·병합겹침0·미병합부모0). 특이=잡월드 r30 C빈칸 1건(사용자가 직접 채움). **②공공누리 O/Q 8곳 95행 라이브 전수검증**(마크 실렌더+href 추출): **O(유형)는 전 기관 정확**(마크 opentype0N=시트O 일치). **단 Q(마크하이퍼링크 Y/N)는 기관간 기준 비일관**: ⓐ의약품=링크 `licenseType4.do`(유형4 정확일치)→Q=Y 완벽 ⓑ장기조직·KISA=마크 4유형이나 **href無**(div이미지)→Q=N 정확 ⓒ자산·저작권=일반 `license.do`(유형숫자無, 전행동일)인데 **자산=N·저작권=Y 정반대**+저작권 r19/24/25는 동급행과 같은링크인데 혼자N=**비일관** ⓓ잡월드=JS `openType` 변수로 배지는 고정4유형(O정확)이나 링크는 `licenseType1.do`(Y)/`5.do`깨짐(N)→링크 유형4 아님. **정정후보(링크존재=Y 규칙시)**: 자산 r7·8·13·저작권 r19·24·25 N→Y. 사용자에 기준 3택 질문(①링크존재=Y ②유형번호일치=Y ③현행). 파일 무수정(읽기전용·O는 정확). 도구 scratchpad/kogl_verify_template.py.
|
||||||
|
- ✅한국장학재단(공공기관3-11) 검수완료 (2026-06-23) => 구조 재검수 PASS(B 1~250연속·헤더병합 B1:R1/S1:W1/Y1:AA1·C0·계층구멍0·K0·병합겹침0). N몽타주 신규36행 전부 어문 타당(행8=행4 동일 지원구간개편 인포그래픽)·기존21은 사용자 다맞다승인. 공공누리O 39게시판 Playwright 전수검증=기존부착 정확·추가누락 없음, **B223 사회공헌사진 O=4유형만 범례(1~4전부검출) 오독 의심→비고 사용자확인권장 1건**(기존행·단일O셀·사소경계로 무이상 간주). 서식정규화(행높이17·채움색0·K좌측)+Y/Z/AA 250행(프2·2026-06-23)+현황판 row12 ☑️검수완료/완료/250/06-23/비고갱신+**완료폴더 이동**(공공기관3/완료/11.한국장학재단). 백업 _backup_검수완료전·_YZAA전. 잠금(이후 수정금지).
|
||||||
|
- ☑️한국장애인고용공단(공공기관3-10) 엑셀 구조검수→검수완료 마감 (2026-06-24) => 사용자 지시: 유형나열 형식 1,2유형→1유형,2유형 / 사이트말고 엑셀만 검수 / 별일없으면 완료. ①형식수정: r173 장애인관련법령 '1,2유형'→'1유형,2유형'(나열형식, 다른 다중유형 행 없음). ②엑셀 구조검수(사이트대조 생략): 헤더병합·시트명·N8종·K링크·병합겹침0 OK. 발견·정리(양식): r22 발간물 B순번 누락→전행 B 1..271 연속재부번·r22 C(기관명) 채움·r21 K하이퍼링크 복구·**D=공단소개 병합 190:269→190:273 확장**(사용자가 추가한 찾아오시는길 본부5분기 r270-273가 D미포함=계층구멍 → 병합경계 보정). 사용자 추가분(찾아오시는길→본부/고용개발원·지역본부/지사·직업능력개발원·훈련센터·보조공학센터, 269→273행 +4)은 내용 그대로 둠. 재검수 ISSUES 0. ③완료마감: 서식정규화(_fmt_normalize 행높17·채움색전제거[작업마킹 하늘색 포함]·K좌측/그외가운데)+Y/Z/AA 271행(프리랜서2·2026-06-24)+현황판 r11 ☑️검수완료·행수201→271·검수완료일·비고갱신(KOGL0→부착12 정정)+완료폴더 이동(공공기관3\완료.한국장애인고용공단). 백업 _backup_유형형식수정전·_backup_서식정규화전·_backup_YZAA전·현황판 _backup_장애인고용검수완료전. 검수완료 잠금.
|
||||||
|
- ✅한국장학재단(공공기관3-11) B재부번+공공누리O 전수검증+N몽타주 완료 (2026-06-23) => ①**B 1~250 재부번**(행삭제 갭)·C기충전·헤더병합유지. ②**O 39게시판 Playwright 전수렌더**(마크=img_opentype0N, 글마다 유형달라 상위6~8글 합집합): 기존부착 정확확인(B34/38/42/46/167/227=4·B160=1/2/4·B228=2 마크직접확인)·미부착27 추가누락 사실상0·B132 4유형의혹=현재행은 로그인포털(ssoext)이라 정상(공개notice.do는 별URL). 검토2건만: B172자료실(3유형도검출→3,4가능)·B223사회공헌사진(1~4전부검출=범례면 미부착가능). 도구한계 일부 글0(JS상세진입실패). ③**N몽타주 250행**: 21이상치 중 신규36행은 행8(경곗값확인)1건뿐이고 그것도 행4(한눈에보는)와 동일 지원구간개편 인포그래픽=어문(사용자 기승인)→**신규행 N 전부 타당**, 나머지20=기존 사용자 다맞다한 행. **O는 검수상 내용셀이라 미수정(보고만)**. 백업 _backup_B재부번전2.
|
||||||
|
- ✅한국저작권보호원(공공기관3-13) 빡센 전면 재검수 + 공공누리(O) 전수 재확인 → 검수완료 (2026-06-24) => 사용자 "다시 빡세게 모두 검수+공공누리 다시 다 확인, 이상없으면 B재부번·정리·검수완료". **①공공누리(O) 라이브 전수재스캔**(`_kogl_rescan.py`: 페이지=본문 opentype0N·게시판=상세 view.do[article_seq/ntt_id] union)→부착15곳 전부 유형정확·미부착80곳 마크0=**이상0**. **②GNB 88리프 대조→누락0**(전체뷰부모 r30국내동향·r45웹툰 정상). **③구조**: K0·헤더병합OK·트레일링98~212빈행무해·B중복0·D/E/F구멍0. **④N**: `_검수_N대조.py` 37건 OVER_IMG 전부 **도구오탐**(KCOPA JS렌더 이미지 정적미검출, 몽타주0장)→브라우저 실렌더 검증으로 CI(7)/캐릭터(4)/응용동작(1)/브로슈어(2)/오프라인단속(9)/웹툰(9 1080px)/오시는길(지도20)/실태조사(표지) 실이미지존재=N이미지 타당. 경계(절차도 r5·r6·심의 / 상담 r49 img0 / 로고 r92·r93)는 어문/기타로 기울수있으나 읽기전용·사용자큐레이션·**critical아님**. **마감**: 사용자 "52·53 이대로 둘꺼야"→F52:F53 병합·라벨 유지. B 1~95재부번(row52→50·C채움)·서식정규화(행높17·3행~끝색제거·K좌측/그외가운데, md5가드)·Y/Z/AA 95행(프2·**2026-06-24**)·현황판 row14 ☑️검수완료/완료/95/06-24/비고갱신·**완료폴더 이동**(공공기관3/완료/13.한국저작권보호원). 백업 _backup_검수완료전_2026-06-24·보드 _backup_저작권보호원검수완료전. 94→95행. 잠금.
|
||||||
|
- ✅한국장학재단(공공기관3-11) 미전개 LNB 4종 라이브 렌더 수집 완료 (2026-06-23) => Playwright LNB 렌더로 별행/탭 확정. **순증+36행(222→258)**. ①상환안내=단일행(M5)→13그룹 트리 전면전개 20행(취업후상환4/일반상환2/농촌1/군복무이자면제4 + 단일9·M은 con_tab2실측 5/3/2/4 등·tuition05~22). ②사후관리=신용교육·불법채권추심 2 G자식(나머지 전부 로그인 javascript/#=제외). ③지원구간=경곗값/가구원동의/산정방식/계속사용/최신화/국외신고/FAQ 7개씩 장학금(4→11)·학자금대출(3→10) E밑 F형제(산정절차=한눈에보는와 동일pg라 제외·모의계산=로그인제외). ④기업민원 보호 서비스헌장 1 (고객헌장 E밑 F). 전부 O미부착(KOGL0)·N어문baseline·신규셀 D~O 블루. 풀리빌드 5지점 splice(①replace+②③④insert). 검증 PASS(B연속1~258·병합겹침0·헤더병합복원·계층구멍0·기존행손실0·신규K링크활성·각섹션행수정확). 백업 _backup_LNB4종전개전. ⚠️상환안내 일부 leaf 동일URL(tuition05_02_01 3회=라이브메뉴 자체중복)·FAQ M=con_tab2(게시판실글수 아님)=검수영역. 미검수.
|
||||||
|
- ✅한국장애인고용공단(공공기관3-10) 검수: 공공누리(O/P/Q) 부착 전수 재확인 (2026-06-23) => **KEAD 공공누리 메커니즘 규명**: 게시물 상세(bbsView.do?bbsCode=&bbsCnId=&menuId=)의 `div.publicwdtb`에 마크(`a[href*=licenseType(N).do]>img.publicwdtbimg`)·페이지(cntntsPage)엔 publicwdtb 없음=항상 미부착. 게시판 O=상위 3~6 상세 유형 합집합. 전 게시판 89행 전수스캔(static fn_bbsView ID→상세 GET, AJAX리스트는 Playwright). **부착 12곳 확정**: 2유형=신고현황(r47)·징수현황(r48)·장려금지원현황(r56)·정보목록(r166)·통계자료실(r171)·법령고시(r172) / 1,2유형=장애인관련법령(r173) / 4유형=트루컴퍼니(r85)·내규제개정예고(r175)·사업실명제(r177)·산업안전보건자료실(r178)·보도자료(r257). 전부 P=게시물·Q=Y(마크가 kogl링크). **정정 3건**: r166 미부착→2유형(원수집 누락)·r173 2→1,2유형(유형혼재 union)·r257 ' 4유형'→'4유형'(앞공백). 변경셀 하늘색. 페이지 전부 미부착 확인(원 페이지분기 KOGL탐지 버그 있었으나 페이지엔 마크 없어 무영향). ⚠️**JS빌드 리스트 4곳 자동검증불가**(사전정보공표 r156/157·공시송달 r44·일터 r200)=헤드리스서 목록 미렌더→현재 미부착 유지, 사용자 확인요망(공시송달=행정공고 미부착유력·사전정보공표=정보공개라 확인권장). 발간물r22·알기쉬운자료r24는 1~32 사용자검수영역(미부착 유지). 백업 _backup_공공누리검수전.
|
||||||
|
- ✅공공기관3 검수완료일 재배분 (2026-06-23) => 사용자 "23일에 몰린 7곳 적절히 분배, 21일은 적게". 23일 7곳→**21일1곳(75)·22일4곳(455)·23일4곳(469)**. 보드(공공기관3_작업현황.xlsx) 검수완료일 col8 3건(자산관리·장기조직·재정정보 06-23→06-22)+비고[검수]프리픽스, 개별파일 Z열(확인날짜) 자산관리194(str)·재정정보98(str)·장기조직73(datetime) 06-23→06-22 일관조정. 백업 _backup_검수일재배분전(보드+3파일). 행수/곳수 불변.
|
||||||
|
- ✅한국장학재단(공공기관3-11) 빡센 검수 → **미완료(이상보고)** (2026-06-23) => 검수=B/C+양식만 고침·D~ 읽기전용. **고침**: ①헤더병합(B1:R1·S1:W1·Y1:AA1) 소실복원 — _backup_정리전엔 有, _backup_랜딩제거전(06-21)부터 無=랜딩제거단계 유실(내작업 이전, 타 공공기관3도 점검필요) ②B갭(사용자 행삭제 흔적, 213정수행/maxB265) 1..222 재부번. C/계층구멍/K/병합겹침=깨끗. **보고(미완료 사유)**: ⓐ신규삽입 43행(학자금대출안내32·신용회복관리11) N=어문 baseline 미검증(몽타주필요) ⓑGNB 커버리지: 미반영 후보94 중 대부분 노이즈/코드형식오탐(재단소개 CI·오시는길·갑질·사회공헌·고객제안·자체공시 전부 시트有)이나 **실 un-expanded LNB 서브트리=학자금대출 상환안내(HD,01,03: 이자면제·지자체이자지원·체크카드포인트·조건변경·프리워크아웃·연체이자지원 등 ~13)·학자금 지원구간 LNB(JH,01,01/HD,07,01: 산정절차·경곗값·동의·산정방식·계속사용·최신화·국외신고·FAQ)·이사회(DN,03)** = 사용자 진행중 LNB확장 후속후보 ⓒN대조 완료=21건 이상치(UNDER15·OVER6): 어문→어문이미지 권고(QR r13/104/105/106·포스터캐릭터 r111·봉사사진 r194/197/200·게시판썸네일 r114)·어문이미지→어문 권고(0실이미지 도식 r101/116/183)·CI캐릭터 r173 유지(검출기 FN)·임원현황r170/역대이사장r177 팝업초상 확인·r217 N없음 재확인. 전부 읽기전용 보고(미수정). **검수완료 안 함**(미완료). 백업 _backup_검수BC헤더정리전.
|
||||||
|
- ✅한국저작권보호원(공공기관3-13) 공공누리 유형(O) 부착 전수검수 완료 (2026-06-23) => KCOPA KOGL마크=img_opentype0N.jpg/png(페이지=본문/게시판=상세10건 union). 전 행 라이브스캔 vs 시트 O 대조→**부착누락 3건 정정(미부착→4유형, P=게시물·Q=Y, 색칠)**: ①C STORY ②KCOPA REPORT(둘다 내가 추가시 이전 probe의 urljoin버그로 미부착 오판, 실제 매거진/연차보고 상세 전부 4유형) ③**기관동향(원수집부터 누락된 오류, 상세10중1건 4유형→union)**. 나머지 부착행 전부 검출일치(과/미부착 0). /bbs아닌 게시판(채용program·copyrightok·미래포럼자료실 sublink) 별도 재스캔도 일치. 백업 _backup_O검수전. ⚠️**관찰**: 기존 보도자료/연구보고서/이슈분석 Q=N인데 마크는 동일 license.do 링크有(타부착행 Q=Y)=기존 Q필드 비일관(미변경, 사용자판단). ⚠️**사용자 동시편집 확인**: 미래포럼 자료실 페이지→게시판M12 변경+미래포럼 영상 게시판 추가(95행, row52 B=None 편집중)=보존(미터치). 미검수.
|
||||||
|
- ✅한국장애인고용공단(공공기관3-10) 33행~끝 본문탭(#orgTab) 전수전개+LMN 재수집 (2026-06-23) => 사용자 '32행까지 검수, 33부터 저 탭 끝까지 찾아 재수집+LMN 다시'. 본문탭=div#orgTab>ul>li>a(active=a.act), GNB(div.gnb-sub-list 3단 D/E/F 191노드)엔 없는 4단 콘텐츠서브탭→전부 자식(G)모델. 33~끝 232 kead URL 전수스캔→37그룹중 33전개. 161→237행(+76 G자식). self탭=첫G자식·신규=추가G자식·F=부모카테고리병합. junk(alert준비중 2개)제외·전체탭=1행유지(공공데이터활용사례 r169)·외부(redwhistle/btis.mpm/open.go.kr)=사이트. LMN 라이브재수집(Playwright): L=URL+구조, M=라이브총건수(이사장동정150→443·공지3073·수의계약2522 정정), N=렌더이미지몽타주 시각검증(51검출→실제 21만 이미지[지도/QR/실사진/CI/표지/갤러리]·41은 flowchart/절차도/screenshot=어문정정·CI/캐릭터/건물/편의시설영상 5복원), O=전부미부착(KOGL전무). 1~32행 0셀변경PASS·B30~266연속·C채움·계층구멍0·병합겹침0·K링크237·행높17·신규변경 하늘색658셀. 백업 _backup_탭전개LMN재수집전. 보드행수→267. ⚠️미검수(N 시각확인권장·신고폼=페이지[로그인無]·M0게시판 피난안내도/안전보건경영시스템=진짜빈).
|
||||||
|
- ✅한국장학재단(공공기관3-11) 학자금대출 신용회복관리 LNB 하위 11leaf 전개 완료 (2026-06-23) => 신용회복관리(F,HD,01,04) 카테고리 전환·urlParm 11leaf(G) 삽입(1행→11행). G:신용회복지원제도소개(self=tuition07_01,상위자기페이지)/분할상환제도/손해금감면/중소기업분할상환약정/조건변경/사회적배려계층상환유예/신용도판단정보회복/정상화/전자채무승인/사망심신장애채무면제/외부기관연계. 전부 페이지M1·O미부착(KOGL0)·N어문(몽타주미실시=검수영역, tuition07_01~14). 풀리빌드(D~J효과값 fill-down→splice→C·D~J 동일값런 부모경계 재병합·스타일copy·K링크·B1~265재부번·행높17). 작업직전 사용자 파일 257행으로 편집→그 위 삽입. 검증 PASS(B연속1~265·병합겹침0·계층구멍0·기존행손실0·신규11행·K262/265[기존비활성3]). 신규셀 G/K/L/M/N/O 하늘색. 백업 _backup_신용회복관리전개전. 미검수.
|
||||||
|
- ✅한국장학재단(공공기관3-11) 학자금대출안내 LNB 4뎁스 하위 전개 완료 (2026-06-23) => 사용자 "구조대로 추가, 중복허용". 학자금대출안내(F,HD,01,02)를 카테고리로 전환·LNB 3뎁스(G 9그룹)>4뎁스(H 46leaf) 삽입(1행→46행). G:소개하기7/취업후상환7/일반상환7/AI5/다학기4/농촌출신4/학점은행5/WEST3/특별상환유예4. L/M/N/O 라이브판정: 페이지38·게시판8(온라인상담=공유 qna.do M1124 8회반복, 사용자 중복허용)·포털14(신청/실행/현황=fn_portal_linkNavi→portal_gateway.jsp URL재구성, 기존포털행 동일형식)·O 전부미부착(KOGL0)·N 전부 어문(몽타주 미실시=검수영역). 풀리빌드(D~J 효과값 fill-down→레코드 splice→C·D~J 동일값런 부모경계 재병합→스타일 copy·K링크·B 1~272 재부번·행높17). **⚠️작업직전 사용자가 파일 227행으로 편집(원 325→trailing정리)→그 버전 위 삽입**. 검증 PASS(B연속1~272·병합겹침0·계층구멍0·K링크270/272[기존 푸른등대 2행 비활성=원상보존]·백업대비 기존행 손실0·신규46행 9G). 신규셀 G/H/K/L/M/N/O 하늘색. 백업 _backup_학자금대출안내전개전. 미검수.
|
||||||
|
- ✅한국재정정보원(공공기관3-12) 검수완료·검수완료스탬프 (2026-06-23 19:08) => LNB재구성본 검수. ⚠️작업중 사용자 라이브편집(국민참여 4행삭제: 참여/부패공익신고/처리결과/성희롱신고=신고폼·랜딩, 프2#15 로그인/신고폼제외 타당)→mtime가드 후 마감. 구조: B비연속(삭제결번)→1~98재부번·**D=국민참여 라벨소실(participation행삭제로 병합라벨 유실)→복구**·헤더/병합/K정상. LNB커버리지 누락0(좌측메뉴 전항목 존재). N=신규 렌더판정(도식/체계도/인포그래픽=어문·월간나라재정매거진=어문,이미지·빈게시판=없음)·O전부미부착. 서식정규화(행높17·색제거·K좌측/타가운데)+Y/Z/AA 98(프2·06-23)+보드 ☑️검수완료·행수102→98·검수완료일06-23. **완료
|
||||||
|
.한국재정정보원\ 이동**. 백업 _backup_검수전_2026-06-23·보드 _backup_재정정보검수완료전.
|
||||||
|
- ✅한국저작권보호원(공공기관3-13) 점검도구소개 G자식 정정 + GNB기준 전체구조 대조 완료 (2026-06-23) => GNB 메가메뉴(display_pc, li>div.lnb_sub>ul 중첩) 88리프 권위트리 추출. **시트 D/E/F vs GNB 전수대조=불일치 0**(기존 GNB기반 수집 정확). 유일 구조오류=점검도구소개 본문탭 자식(Standalone/WebModule/내PC폰트)을 F형제로 넣은것→**G자식으로 정정**(점검도구소개=F부모 페이지 유지, 3툴=G자식, F36:F39 병합). C STORY/KCOPA REPORT(통합본 자식)는 이미 정상(F26:F27 부모, G자식). GNB-clean 90행 백업서 재빌드(풀리빌드 스타일copy·D~J 동일값런 재병합·K링크94·B재부번·행높17). 검증 PASS(B연속·겹침0·계층구멍0·K94=94·**GNB 불일치0**·기존89행 0변경). 신규/이동셀 하늘색(C STORY/KCOPA REPORT/Standalone/WebModule/내PC폰트 G셀+LMNO). 90→94행. 백업 _backup_점검도구형제배치_2026-06-23. 보드 94. 미검수.
|
||||||
|
- ☑️한국장기조직기증원(공공기관3-8) 검수완료 (2026-06-23) => 독립검수 ①구조 PASS(헤더병합·시트명·계층구멍0·K이상0·병합겹침0)·②GNB 전수커버리지 **100%**(라이브 GNB리프73=시트73·누락0·유령0)·③N 8종OK+신규3페이지 어문확정(정보공개제도=처리절차도/인포그래픽·경영공시 이미지0·공공누리 pen장식)+빈게시판3 N없음. B/C정리: r10(기증활성화프로그램) B순번·C공란 채움→B 1~73연속. **D~ 이상 1건=r24 하늘나라편지 M 19162→사용자지시로 라이브 15331 갱신**(게시판 총건수 재확인). 마감: 서식정규화(행높17·채움색0·K좌측/그외가운데)+Y/Z/AA 73행(프2·2026-06-23)+현황판 r9 ☑️검수완료·행수75→73·검수완료일06-23·비고 양식검수통과(73행)+완료폴더 이동(공공기관3\완료\8.한국장기조직기증원). 백업 _backup_검수BC정리전/_r24M검수전/_YZAA전·현황판 _backup_장기조직검수완료전.
|
||||||
|
- ✅한국장애인개발원(공공기관3-9) 빡센 검수→검수완료 (2026-06-23 18:30) => 사용자 메뉴구조·N 직접수정본 검수. ①구조 PASS(B 1~103연속·C전부채움·헤더병합·병합겹침0·계층구멍0·중복URL0·K링크103=103·N 8종준수·site-tail0·P/Q공백). 사용자가 본문탭그룹을 G레벨 정식중첩(복지진흥>장애인상>설립취지개요 등·통합돌봄>제도안내·정보공개>제도안내·사회공헌>장학사업)+장애인의날/자료실 F형제정리+이룸센터 메인랜딩행 삭제(104→103). ②GNB대조: 5대분류(사업/자료실/알림/참여/소개)+중분류 전부 일치·이룸센터=외부연계사이트(정상). ③N대조(전 내부행 본문스캔): critical 0. 플래그 전부=헌장/방침/절차표/버튼/그래프=어문(정확)·인증마크/CI/공모/게시판썸네일=이미지(사용자 의도·정당). 사용자 N판정 정확확인. → 서식정규화(행높이17·색전부제거·K좌측/그외가운데·row104 이룸소개 K링크복구)+Y/Z/AA 103행(프2·06-23)+보드 ☑️검수완료(행수104→103·검수완료일·양식검수통과)+완료폴더 이동(공공기관3\완료\9.한국장애인개발원). 백업 _backup_검수완료전·_YZAA전.
|
||||||
|
- ✅한국자산관리공사(공공기관3-6) 검수완료 처리+완료폴더 이동 완료 (2026-06-23) => 사용자 데이터수정 완료본 기준. ①B 1~194 재부번+C채움+셀병합 정상화(스냅샷 재병합·미병합중복0·구멍0·겹침0, 데이터 0행변경 검증). ②서식정규화(3행~끝 채움색 전부 제거→무채색·K외 가운데/K좌측 정렬·행높이17, 데이터/링크/병합 불변 검증). ③Y/Z/AA 194행(Y/2026-06-23/프리랜서2). ④현황판 공공기관3_작업현황.xlsx row7: ☑️검수완료·완료·행수194·검수완료일2026-06-23·비고 [검수]prepend+양식검수통과(194행). ⑤**완료폴더 이동**: `공공기관3.한국자산관리공사` → `공공기관3\완료.한국자산관리공사`(백업포함). 잔여폴더서 사라짐·완료폴더 존재 확인. ⑥**검수스킬 SKILL.md ④에 '완료 폴더 이동' 단계 추가**(배치별 완료위치·PASS시만 이동). 백업 _backup_검수완료마감전·_backup_구조정리전·보드 _backup_자산관리검수완료전. 검수완료 마감(잠금).
|
||||||
|
- ✅한국장기조직기증원(공공기관3-8) 25행~끝 구조·M 재정비 완료 (2026-06-23) => 사용자 "한알나라편지 하위 수혜자 오중첩 수정함, 25부터 끝까지 구조+M 다시". 라이브 GNB/LNB(.lnb ul1=E·ul2=F) 권위트리로 재구성. **구조정정 2섹션**: ❶참여소통=기관일정·기관행사·입찰안내·채용안내가 공지사항 하위(F)로 오묶임→5개 E레벨 승격, 혁신아이디어제안도 공모·참여 하위(F)→E레벨 승격. ❷정보공개=8개 전부 E-leaf인데 정보공개제도/경영공시/공공누리를 카테고리로 접어 **실페이지 3개(/about·/official-notice·/public-license) 누락**→플랫8개+신규3페이지 추가(페이지M1·어문·미부착, KOGL마크0 확인). 추모공간(r23~27)·기관자료·기관소개 구조는 이미정확=유지. **M(수량) 라이브 전수재측정**(p.count span.value): 대부분 시트와 일치, drift 2건만 정정(보도자료427→428·홍보물65→66). 빈게시판 M0 3건(기부소식·명예의전당·나눔후이야기) N=어문→없음 정정. 기증자통계=차트8개 페이지 유지·추모관=기증자카드갤러리(특수). 동결: 1~22행(주요업무·기증희망등록·추모관·하늘나라편지) 백업대비 **0셀 변경**(B 재부번도 동결구간 복원, r10 공란 보존). 70→73행(+3 정보공개 신규). 풀리빌드(E병합을 D병합보다 먼저=비앵커 None버그 회피·스타일copy·K링크72·B 21~73 신규부번·행높17). 검증 PASS(동결diff0·N8종·계층구멍0·병합겹침0·B연속·빈게시판N없음·신규3 어문/미부착). 백업 _backup_25행구조M재정비전. ⚠️미검수. ⚠️r24 하늘나라편지(25행 이전=미변경)는 라이브 15330 vs 시트 19162 불일치=사용자 확인영역.
|
||||||
|
- ✅(보고)한국자산관리공사(공공기관3-6) 사용자 순서수정본 GNB 빡센 재검수 → **이상치 보고·미완료**(2026-06-23) => 라이브 GNB 메가메뉴(#gnbNav)+LNB+본문탭 대조. ①**구조/순서 PASS**: D 7섹션 순서일치·E 순서일치(가계지원·기업지원 비숫자순까지 정확)·F 순서 E별 GNB와 100%일치·G/H(❶❷❸·희망리플레이) LNB/탭순서 일치 → **사용자 재정렬 성공**. 병합겹침0·D~J외0·계층구멍0·헤더유지·사이트행 M/N/O비움 OK. ②**오류 3건(수동편집 부작용)**: ❶**B순번 None 2건**(선박매입후임대 r41·사전정보공표 r102)→재부번필요(B/C는 검수가 정리가능). ❷**r105 비공개세부기준 L/K 불일치**(L=페이지·M1·어문인데 K=외부 kamco_voc/info/07_05.jsp)=명확오류, 페이지면 K=contents.do?mId=0605060000·외부면 L=사이트+M/N/O비움. ❸**L분류 재검토**: 사용자가 4건(직접유동화→oncorp program_03·동산→program_10_1·사전정보공표→kamco_voc/07_01·비공개세부기준→kamco_voc/07_05)을 사이트로 변경했으나 **LNB/GNB 메뉴는 4건 전부 contents.do(실콘텐츠 페이지)로 링크**(외부URL은 페이지 본문 내 버튼 목적지)→[[feedback_blank_newwindow_site]] 메뉴=_blank아님이라 GNB기준 페이지가 권위. 같은그룹 용어사전·서식자료는 페이지로 두고 사전정보공표·비공개세부기준만 외부=불일치. 단 페이지가 외부서비스 안내셸이면 사이트도 일리→사용자판단. ③판정: 오류 있어 검수완료 미실시(D~K 읽기전용 미수정). B재부번·r105·L분류는 사용자 지시 시 처리.
|
||||||
|
- ✅한국자산관리공사(공공기관3-6) 검수발견 누락 ❶❷❸ 수집·전개 완료 (2026-06-23) => ❶**자산매입형(S&LB)**(E): 프로그램개요(기존) 뒤 4 F추가=자산매입후임대(직접·유동화/사업재편기업/동산)·선박매입후임대(전부 페이지M1·어문/어문,이미지·미부착). 0304010000(기업구조혁신지원센터)=본문링크(side-menu 미포함) 제외. ❷**정보공개**(E→카테고리): 기존 로그인행을 F=정보공개청구(사이트)로 정리+공개 4 F추가=용어사전·서식자료·사전정보공표·비공개세부기준(페이지M1·어문·미부착). ❸**윤리경영 본문탭 전개**(희망리플레이 패턴): 평가결과(G)→H3(종합청렴도/캠코윤리지수/윤리인권경영진단)·현황(G)→H2(신고물품처리결과공개 게시판M10/부패행위현황자료 게시판M1)·윤리규범>윤리경영(G)→H2(윤리헌장및실천강령/임직원행동강령)·윤리규범>인권경영(G)→H3(인권경영헌장/이행세칙/노사공동선언). 부모4행→자식10행. 신규 18페이지 Playwright판정(페이지16·게시판2·전부 미부착·N 어문14/어문,이미지4·M 실측). 풀리빌드(스냅샷 grid 병합으로 off-by-one 방지·스타일copy·B 1~194 재부번·행높17). **180→194행(+14)**. 색=신규분만(기존 희망/함께 95+❶❷❸ 109=204셀). 검증 PASS(B연속1~194·K194=194·병합겹침0·D~J외0·계층구멍0·미병합중복셀0·헤더유지·추가18/부모제거4 확인). 백업 _backup_❶❷❸수집전참고. 보드 180→194. ⚠️미검수(신규 N·서식자료/사전정보공표 페이지vs게시판·협업기관 어문이미지vs기타 사용자확인 권장).
|
||||||
|
- ✅(보고)한국자산관리공사(공공기관3-6) 빡센 검수 → **이상치 보고·검수완료 미실시**(2026-06-23) => ①구조 PASS(B연속1~180·헤더B1:R1/S1:W1/Y1:AA1·병합겹침0·D~J외0·계층구멍0·K180=180·N 8종·사이트행 뒤컬럼공백). ②**GNB 리프 전수 커버리지(사이트 전역 크롤+#side-menu/#lnb 대조)**: 유령행0(시트 mId 전부 사이트존재). **진짜 누락 3건 확정(전부 ≤121 사용자검수구간)**: ❶**자산매입형(S&LB) 프로그램**(B35, 0304): 시트엔 '프로그램 개요'만, LNB 4페이지 누락=자산매입후임대(직접·유동화 0304020000/사업재편기업 0304120000/동산 0304140000)·선박매입후임대(0304100000). ❷**정보공개**(B99부근, 0605): 공개 4페이지 누락=용어사전(0605020000)·서식자료(0605040000)·사전정보공표(0605050000)·비공개세부기준(0605060000). (정보공개청구=로그인 제외 정상) ❸**윤리경영 본문탭 미전개**(B112~124, 희망리플레이와 동일패턴): 평가결과(0606020200)→캠코윤리지수/윤리인권경영진단/종합청렴도평가결과(3)·현황(0606020300, 게시판분류인데 탭있음)→신고물품처리결과공개/부패행위현황자료(2)·윤리규범>윤리경영(0606030100)→윤리헌장및실천강령/임직원행동강령(2)·윤리규범>인권경영(0606030200)→인권경영헌장/이행세칙/노사공동선언(3) = 10개 하위탭 미전개. 정상(보고만): 사이트행 수집(회생워크아웃·담보부사채=oncorp/VOC·국민제안·공모참가·규제정비요청=kamco_voc/안전보건위험신고=구글폼/캠코진=kamzine/정보공개청구=login)·부모mId표현 첫자식(인사말0102000000·캠코CI·임원진·국유재산건축상)·법무자료 카테고리랜딩·자세히보기 본문링크. ③신규 15페이지 N 몽타주 시각검증: 대체로 타당(13 어문,이미지+2 어문)·**협업기관(0607020200)=파트너 로고/링크라 어문,이미지 vs 기타 경계 사용자확인**. ④내가 새로 구성한 122~끝 구간은 깊이검사 일치(추가 평면화 0). **판정: ❶❷❸ 실누락 있어 검수완료 안 함**(D~ 읽기전용·미수정). 도구 _full_coverage/_verify_lnb/_verify_bodytab.
|
||||||
|
- ☑️한국임업진흥원(공공기관3-5) 검수완료 보정(2026-06-23) => 사용자 "B재부번 안됐고 메뉴구조 병합안된것 있다" 지적 정확. 원인: 사용자가 **국제박람회를 식품/목재/기계장비 3행으로 전개**했는데 신규 2행(목재 r80·기계장비 r81)에 B없음+E열 임산물수출종합정보 병합이 E63:79로 끝나 미포함. **수정**: E63→E81 병합확장·전체 180콘텐츠행 B 1~180 재부번·신규2행 C채움/서식17/Y/Z/AA보충. 병합감사 결함0·B연속·C빈0·채움0·K불일치0·병합겹침0 PASS. 현황판 행수 178→**180**. 백업 _backup_B병합수정전. (앞 178행 검수완료는 이 보정으로 갱신)
|
||||||
|
- ☑️한국임업진흥원(공공기관3-5) 검수완료(2026-06-23) => 사용자 N 전부수정후 "B랑 구조검수, 이상없으면 완료". B 결번(101·102·124·125, 사용자 행삭제분) 1~178 재부번·C채움확인·헤더병합·병합겹침0·D구멍0 PASS. ⚠️**K값 1건 복구**: r142 한국산림인증제도 K값이 "경게"(오타)로 덮였고 링크만 정상→링크타겟URL로 K값복원(양식정리). 서식정규화(행높이17·3행~끝 채움색0[하늘색마킹 제거]·K좌측/그외 가운데). Y/Z/AA 178행(프2·2026-06-23)·현황판 ☑️검수완료·행수118→178·검수완료일·양식검수통과(178). 백업 _backup_검수완료전/_YZAA전·현황판 _backup_임업검수완료전. 내용셀 D~Q 무수정.
|
||||||
|
- ✅한국자산관리공사(공공기관3-6) 색상정리 + 셀병합 off-by-one 버그 전역수정 (2026-06-23) => 사용자 "3행부터 색없음, 방금 추가분만 색"+"셀중복병합". ①3행~끝 전체 fill 제거 후 신규분만 하늘색: 신규 G카테고리 6(책임/신뢰/혁신/상생/1사1촌/협업기관)+신규 15페이지 내용셀(H/K/L/M/N/O, 빈H 제외)=95셀. 기존 relocate된 10자식·보존/꼬리행 무색. ②**풀리빌드 병합버그 발견·수정**: 좌측열을 '병합 후 라이브값'으로 비교→자식병합이 부모앵커행과 겹칠 때 첫행이 분리(예 책임 G122단독+G123:128). **스냅샷(eff grid) 기반 재병합으로 시트전역 정정**(책임 G122:G128 등). 검증: B연속1~180·미병합중복셀0·헤더병합유지·백업대조 값 mismatch0(병합/색만 변경, 값 무변). 미검수.
|
||||||
|
- ✅한국자산관리공사(공공기관3-6) 122행(희망리플레이사업)~끝 중첩 본문탭(li.list-N) 재크롤·재구성 완료 (2026-06-23) => 사용자 "책임/신뢰/혁신/상생 탭(mId=06070101~04)이 G로, 책임 하위 현재 G가 H로. 122~끝 재검수, ≤121은 검수완료 보존". **핵심: kamco mId=2자리×5단계 계층(D=1~2자리…H=9~10자리)**로 컬럼위치 검증→122~167 전수대조 결과 평면화 2곳 확정: ①**희망리플레이사업**(F): 이전전개가 중간 g4탭(책임/신뢰/혁신/상생) 누락+책임의 g5자식을 직접 G로 평면화. 재귀크롤로 4 G카테고리 복원, 7 책임자식 G→H 강등 + 신뢰5·혁신5·상생4 신규자식(H) 추가 → 7행→21행. ②**함께하는기관**(F): g4 '1사1촌'(0607020100) 누락+자매결연 g5를 직접 G로 평면화. 1사1촌(G,자식3 H강등)+협업기관(0607020200 신규 g4 단일페이지) → 3행→4행. **신규 15페이지 Playwright판정**: 전부 페이지/M1/미부착, N=어문,이미지13+어문2(bigimg 실측). 기존 10행 L/M/N/O 보존(컬럼만 G→H 이동). 풀리빌드(eff fill-down·스타일copy·D~J 동일값런 좌측변경경계 재병합·K링크 전행재적용·B 1~180 재부번·행높17). **165→180행(+15)**. 신규 G/H+신규페이지 K~O 하늘색. 검증 PASS(B연속1~180·병합겹침0·D~J외0·계층구멍0·K180=180·헤더유지·백업대조 보존/꼬리 mismatch0·신규15·삭제0). 백업 _backup_희망리플레이중첩전_2026-06-23. 보드 173→180. ⚠️미검수(신규자식 라벨/N 사용자확인).
|
||||||
|
- ✅(보고)한국임업진흥원(공공기관3-5) 빡센 검수 → **이상치 보고·미완료**(2026-06-23) => LMNO재작성 직후 사용자가 파일 직접편집(4행삭제+일부N수정)한 178행 기준 독립검증. ①구조: 헤더병합·C채움·K·병합겹침0·D구멍0 PASS, **단 B순번 결번(사용자 행삭제로 101·102·124·125 갭)→재부번 필요**(마감시 처리). ②GNB리프 전수커버리지(48리프): 시트누락 **2건=국민혁신제안함(/OGI/GOGIP_01)·민원신청(/customer/customer_minwon_01)**, 둘 다 사용자가 방금삭제+**로그인아닌 공개 안내페이지**→복원검토 권장(또는 신청/제안서비스로 제외할지 판단). ③N 몽타주 독립판정(도구 45플래그 시각확인): **B94 공지사항=어문,이미지인데 텍스트 공지보드(목록썸네일0)→어문 권고**(사용자 최근수정분, 명확). 경계: B119 산림분야인재육성·B122 산촌공동체·B142 한국산림인증=어문이나 본문 실사진 일부→어문,이미지 검토권장 / B148 설립근거=KoFPI나무 CI일러스트(어문/어문,이미지 둘다수용). 보존구간(B≤63 사용자판정)은 읽기만: B12재배적지도(지도=이미지 정당)·B32재배기술매뉴얼(썸네일8 검출, 사용자 어문) 참고. ④판정: **이상치 있어 검수완료 미실시**(B재부번·서식정규화·Y/Z/AA스탬프는 N확정 후 마감). 내용셀 무수정(읽기전용). 도구산출 _naudit/montage.
|
||||||
|
- ✅한국저작권보호원(공공기관3-13) 본문탭(div.sub_contents div.tab) 전수전개 완료 (2026-06-23) => 전 90행 URL fetch→div.tab 본문탭 11그룹 검출, 9그룹은 이미 시트행(LNB형제 재렌더)=SKIP, 신규 2그룹만 전개. **GROUP2 점검도구소개**(self==leaf→형제): Standalone/Web Module/내PC폰트점검기 3행 F레벨(E=SW점검도구) 추가, 전부 페이지M1·어문(구성도/인포그래픽 몽타주판정)·미부착. **GROUP1 C STORY 및 KCOPA REPORT(통합본)**(self≠leaf→자식): 저작권보호전문지 landing 본문탭=C STORY(S1T495C234 매거진 52건)+KCOPA REPORT(S1T495C236 연차보고 12건), 둘다 칼럼보드(S1T233C496/497)와 별개 신규. 원 통합본행(sublink)→C STORY 자식으로 승계+KCOPA REPORT 신규자식, 둘다 게시판/어문,이미지(표지)/미부착. **90→94행(+4)**. 풀리빌드(스타일 copy로 기존 파란셀112 보존·D~J 동일값런 부모경계 재병합·K링크94 재적용·B 1~94 재부번·행높17). 검증 PASS(B연속·병합겹침0·계층구멍0·K링크94=94·백업대비 기존89행 0변경). 신규/변경셀 하늘색(+14). 백업 _backup_탭전개전_2026-06-23. 보드 행수115(stale)→94. 미검수.
|
||||||
|
- ✅한국재정정보원(공공기관3-12) 3행~끝 LNB 좌측메뉴 권위트리로 구조 전면 재구성 + OLMN 재작성 완료 (2026-06-23) => 사이버안전센터 운영 등 LNB 하위메뉴(ul.lnbsub) 대량누락. 5개 GNB섹션 .lnb 전수BFS크롤(58노드)+본문서브탭(ly_flx, sibling/child규칙: subtab[0]==노드명→형제평면F/≠→자식G) 병합→완전트리. **59→102행(+43)**. 신규누락: 사이버안전센터(소개+주요기능4+위협통계4)·dBrain주요기능8/국제협력2·국고보조금5·안전윤리인권경영10·경영공시5·공공데이터2·부패신고센터3·월간나라재정6·(구)발간자료2. 신규53행 라이브 Phase234(페이지M1·게시판M=총건수·빈게시판2→없음·담당자안내=기타·정관내규=사이트). N: 도식/절차/체계도/인포그래픽=어문(렌더 실측 alt판정)·월간나라재정 매거진보드=어문,이미지(표지썸네일). O=KOGL전무 전부미부착. 사전정보공표 6분류(cateSubCode0101~06) 보존. 풀리빌드(헤더B1:R1/S1:W1/Y1:AA1·스타일copy·D~G 동일값런 G→F→E→D 재병합·K링크102·B1~102재부번·행높17). 검증 PASS(B연속·병합겹침0·계층구멍0·K링크102=102·5섹션/E12그룹/F중첩7 병합정확). 신규53행 하늘색·기존N몽타주블루 보존. 백업 _backup_LNB재구성전_2026-06-23. 보드 행수69→102. 미검수.
|
||||||
|
- ✅한국장학재단(공공기관3-11) 20행~끝 con_tab2 탭수 M 채우기 완료 (2026-06-23) => 사용자 r19까지 직접(con_tab2 ul.tabN 탭수=M). r20~끝 페이지행 전수 fetch→div.con_tab2 탭수 실측. **32행 M 1→탭수**(블루 FFBDD7EE). **핵심: self탭==leaf=형제(이미 행분할됨)→스킵 / self탭≠leaf=자식(인페이지 sub섹션)→M=탭수** 판별로 경영공시 openinfo 36탭블록(35행, 36개탭=형제행들 자체)·푸른등대 G행·상환안내 등 sibling 66행 정확히 제외(M=1유지). 검증 PASS(diff 32셀 전부 M열·예상행 일치·타셀0·B연속1~269). 백업 _backup_con_tab2수량전. ⚠️category필터형(전체+분류) 5행 포함(r146/161 자료실12·r162 온라인상담12·r211 통계6·r220 정보공개목록15)=순수 sub섹션 아닌 분류탭이나 con_tab2라 탭수 적용·사용자 확인영역. 미검수.
|
||||||
|
- ✅한국장기조직기증원(공공기관3-8) 기관소개 섹션 LNB 권위트리로 재구성 완료 (2026-06-23) => 사용자 LNB(lnb-list) 제공. 7개 E메뉴로 정정: KODA소개(설립목적·기관연혁·경영전략·CI로고)·원장소개(인사말·약력·일정·역대)·**조직안내(/agency/organization 신규누락추가)**·홍보대사·인권·윤리경영(인권경영·윤리경영·게시판·클린신고센터)·**안전·보건경영(/agency/safety-health 신규누락추가)**·오시는길. 정정3: ①가짜'조직 안내'E카테고리(홍보대사+인권윤리 잘못묶음) 해체 ②인권·윤리경영 E토글을 페이지로 오수집한 중복행(human-rights URL 2개) 제거→인권경영만 잔존 ③안전·보건경영 leaf 누락+오시는길이 그 하위 오중첩→각각 E-leaf 분리. 조직안내=조직도(어문)·안전보건=경영방침글자이미지(어문) 둘다 페이지M1 미부착. CI로고 4유형 보존. 15→16행(순증+1). 풀리빌드(스타일 copy·D57:D72/E57:60/E61:64/E67:70 재병합·K링크 전행·행높17·B 1~70 재부번[15번갭 해소]). 신규/변경셀 하늘색. 검증 PASS(B연속1~70·병합겹침0·계층구멍0·human-rights 1행·헤더병합유지·K링크70=70·신규2URL존재). 백업 _backup_기관소개재구성전. 미검수.
|
||||||
|
- ✅한국잡월드(공공기관3-7) 전체검수 완료·검수완료 (2026-06-23 12:10) => KOGL 배지=opentype_img.png 고정4유형(텍스트·링크만 openType따라감)→O=4유형 정확·링크오류(openType1)/Q=N(openType5) 타당. GNB 7대분류 일치·id33/72=errorPage 죽은링크라 누락아님. N 6건 중 r4(편의시설 식당·투썸 실사진) 어문→어문,이미지 보정(사용자승인), 나머지5 경계 유지. B 13/16/17/18결번+30행무번호 재부번(1~29연속). 서식정규화·Y/Z/AA(프2)·현황판 row8 검수완료(행수29) 반영. 검수완료 스탬프 완료.
|
||||||
|
- ✅한국임업진흥원(공공기관3-5) r66~끝(B64~182) L/M/N/O 재작성 완료 (2026-06-23) => 사용자 "65행(수출가이드,카드뉴스)까지 검수했으니 학습해 그 다음부터 LMNO 재작성, MN 다른게 많다". **r3~65(B1~63) 0셀 변경 보존**(백업대조 검증0). r66~184 라이브 재판정 **37셀/34행 변경**. ①**M 대량정정**: 정적수집 가짜 기본값(48·100·20 반복) 실측 교체 — 기술이전현황100→373·보유특허100→403·공지2998→2999·브리핑룸2487→2489·채용210→211·해외시장48→41·연구보고서48→44·통계자료20→8·발굴업체20→18·e-book48→61·갤러리48→**498**·기술자료집30→38·FAQ13→23(테이블=첫행번호열, 갤러리=cPage페이지walk). ②**L 정정**: 국제박람회 페이지→게시판(table 4건). 특허·논문검색=순수검색폼이라 페이지 유지. R&D관리=외부ftis 사이트. ③**N 몽타주 시각판정**(정적크기판정은 도식/표/글자이미지/CI 오인→Playwright 63장 렌더 직접판독): 페이지 19곳 어문→어문,이미지 상향(원장사진·CI규정·캐릭터·BI·지도·실사진·표지·행사사진 등 r124/125/128/130/133/134/135/138/139/140/141/142/146/148/149/150/151/168/176/178/179) / 도식·조직도·절차도·서약서·인증서·그래프·표는 어문 유지 / 유관기관·수출업체·관련사이트=링크모음 기타 유지. ④**O 전수 KOGL마크 스캔=0건→전 행 미부착 확정**. 검증 PASS(보존구간0변경·B연속1~182·병합겹침0·K링크불일치0). 백업 _backup_LMNO재작성전. ⚠️미검수(사용자 최종확인).
|
||||||
|
- ✅한국장애인개발원(공공기관3-9) 좌측메뉴(LNB) depth3 하위페이지 전수 전개 완료 (2026-06-23) => 5개 GNB섹션(사업/자료실/알림/참여/소개) .snb 전수크롤→depth2(E)>depth3(F) 트리 재구성. **60→104행(+44 신규 F)**. self-child(같은URL)는 E행에 F1으로 흡수(중복행 0, 기존관례), 신규44행만 추가. 기존 본문탭 depth4(복지진흥 info02~05·통합돌봄·정보공개 open01_2~4·사회공헌 contri01_2~4 등)·L/M/N/O URL매칭 전부 보존. 신규 Phase234 라이브판정: 페이지M1·게시판M=총건수정적추출·O 전부 미부착(koddi KOGL전무)·open.go.kr=사이트·N몽타주(영상=홍보영상vod/교육자료동영상/온라인교육·어문이미지=CI/캐릭터/오시는길지도/간행물표지/봉사사진/홍보자료). 풀리빌드(스타일copy·D섹션·E그룹 재병합·K링크 전행재적용·B 1~104 재부번·행높17). 검증 PASS(B연속·중복URL0·병합겹침0·계층구멍0·K링크104=104·헤더병합유지). 신규44행+self14 F1 하늘색. 백업 _backup_LNB전개전_2026-06-23. 보드 행수66→104. ⚠️검수영역: total_care_news=AJAX목록 M0(브라우저검수)·신규 N=몽타주추정. 미검수.
|
||||||
|
- ✅한국자산관리공사(공공기관3-6) 본문탭 ul.list-N 전수전개 완료 (2026-06-23 11:35) => 사용자 "17행(오시는길) li.list-4 탭 자식수집+17행~끝 전수". kamco LNB 본문탭=`li.list-N>a`(active=`a.on`)·정적fetch는 해당분기 최심 list-N만 렌더. 17행~끝 전 URL 재귀크롤→**17앵커 신규탭그룹**(전부 self('on')≠leaf=자식G전개·손자탭 없음). **130→173행(+43, 자식60-앵커17)**. 앵커 mId(…0000)는 첫자식으로 리다이렉트하는 랜딩이라 원행 대체(자식이 승계). L/M/N/O=**Playwright 렌더 실측**: 게시판M=번호열/총건수(정적 오검출 교정—점검결과3568→19·윤리현황3541→10·공지1004→2·갤러리 수상작68·캠코홍보영상8 원본일치)·페이지N=렌더이미지 실측크기(≥140×100·UI/도식 제외)로 어문/어문,이미지·O=KOGL마크 전무 전부 미부착. 풀리빌드(eff fill-down 부모변경시 하위리셋·스타일copy·D~J 동일값런 재병합·K링크 전행재적용·B1~173 재부번). 신규 G/K/L/M/N/O 하늘색(60자식×, 06-22 조직안내 파란셀 보존). 검증 PASS(B연속·병합겹침0·DJ외0·계층구멍0·K173=173·앵커행잔존0·헤더유지). 백업 _backup_탭전개전_2026-06-23. 보드 130→173. ⚠️**검수영역**: ①게시판N=어문 기본(수상작=건축수상작 사진→어문,이미지 가능·영상자료 자식[캠코홍보영상·사회공헌활동영상]=영상콘텐츠→영상 포함 가능) ②페이지 bigimg=1 경계행(오시는길자식·동반성장추진체계·개인정보처리방침류)=도식이면 어문 ③**부모카테고리명이 자식명과 동일/유사 3건**(서비스 이행표준점검결과·데이터 안심구역 이용신청·개인정보처리방침=원 랜딩이 리다이렉트대상 자식명으로 라벨됨)→부모명 보정 사용자판단 필요.
|
||||||
|
- ✅한국자산관리공사(공공기관3-6) 랜딩셸 삭제 완료 (2026-06-23 11:12) => 06-21 `--safe` collapse가 보존했던 **게시판/페이지 상속·리다이렉트 셸 6곳 삭제**: 수상경력(0106000000)·신고센터(0504000000)·공사소식(0701000000)·홍보자료(0702000000)·매체광고(0703000000)·발간자료(0705000000). 전부 부모 mId 인덱스→첫자식으로 자동 리다이렉트 확인(requests resp.url 대조)·M값=첫자식과 동일=상속셸. 1-5e/1-5d 적용, 셸행 삭제·E카테고리 라벨은 자식 그룹에 보존. + **유령 빈행(B순번만137~169, 06-21 --safe가 내용만 비우고 남긴 33행) 정리**. 풀리빌드(eff값 부모변경시 하위리셋 fill-down·스타일copy·D~J 동일값런 재병합·K링크 전행재적용·B 1~130 재부번). **169→130행**(실내용 136-셸6=130). 검증 PASS(B연속1~130·병합겹침0·DJ외병합0·계층구멍0·K링크130=130·셸URL전무·헤더B1:R1/S1:W1/Y1:AA1 유지). 백업 _backup_랜딩셸삭제전_2026-06-23. 보드 행수 169→130. 미검수.
|
||||||
|
- ✅한국임업진흥원(공공기관3-5) 목재제품정보 tab01 전개분 동기화충돌 복구 완료 (2026-06-23) => 06-22 목재제품정보 15탭(제재목~숯,목초액 mc_cd=1~15) 전개분이 OwnCloud **conflicted copy로 밀려나고** 라이브엔 미전개168행만 잔존(엑셀 열린채 동기화→충돌). 두 파일 전체 diff결과 **차이=이 전개 1건뿐**(사용자 추가편집 없음). 충돌본(182행) 검증 PASS(B연속1~182·병합겹침0·K링크불일치0)→**라이브 승격**(168→182행). 라이브검증: 목재제품정보 r37~51 15자식·전부 페이지M1/어문,이미지/미부착. 백업 _backup_충돌복구전_168행·충돌본은 _conflict_복구완료_2026-06-22.xlsx.bak로 보존. ⚠️교훈: 클로드 작업중 해당 엑셀 열어두면 OwnCloud 충돌로 저장분 유실 가능→작업중엔 파일 닫아두기.
|
||||||
|
- ✅한국인터넷진흥원(공공기관3-4) 빡센 검수 → 검수완료 (2026-06-23 11:30) => ①구조 PASS: B 1..157 재부번(원수집번호 비연속 정리·145건·병합/타열 불변)·C빈칸0·계층구멍0·병합겹침0·헤더OK·K0. ②GNB(homepage 130경로 대조): 누락후보 28개 전부 정상 판정 → 동향분석/정기간행물/실태조사 분류탭18=전체탭 1행통합(전체=1행)·**사전정보공표(/501)=전체 콘텐츠페이지라 부서별 하위(9010101~) 1행유지**(사용자확정 06-23, 보강불요)·푸터701~704 제외. ③N대조(전157행 렌더): UNDER_IMG~20=사업소개 추진방향 체계도/인포그래픽(도식)=어문 정확·OVER_IMG3=도구오탐(board list·CI SVG)·실사진누락0 → N 이상없음. → 서식정규화(채움색0·행높17·K좌측·값/링크/병합 보존검증 B만변경)+Y/Z/AA 157행(프2·06-23)+보드 ☑️검수완료·행수97→157·검수완료일06-23·비고 KOGL0→발간물7정정·양식검수통과(157행). **전체뷰=1행 규칙 수집·검수 스킬 양쪽 반영**. 백업 _backup_B재부번전·_backup_YZAA전·보드 _backup_KISA검수완료전.
|
||||||
|
- ✅한국인터넷진흥원(공공기관3-4) 공공누리 부착 게시판 5곳 O/P/Q 보정 (2026-06-23 09:57) => 사용자 "14행 공공누리 부착됨 학습해 나머지 전수확인". KISA 공공누리=상세 서버HTML `<div id="koglOpen">N</div>`값(koglOpen.js렌더·게시물단위·매우희소 40~120건당1~4건). 전 게시판30·페이지126 전수스캔→발간물/연구/조사/가이드라인류만 부착. **미입력 5곳 보정**(메뉴라벨 실페이지 활성메뉴 일치검증 완료): r13연구보고서·r15정기간행물·r19가이드라인·r20안내서=4유형 / r21사례집,편람등=2유형 (전부 P=게시물·Q=N, O·P칸 FF00B0F0). r14동향분석·r16실태조사=사용자기입유지. 역대발간물(120건무검출)·행정소식게시판·전페이지=미부착확정.
|
||||||
|
- ✅한국자산관리공사(공공기관3-6) 조직안내(0104020000) 본문탭 3개 자식전개+랜딩셸삭제 완료 (2026-06-22) => 조직안내(F,페이지)에 ul.list-3 탭[조직안내도0104020100(self/on)·부서·업무내용및연락처0104020200·운영위원회0104020300]. self탭(조직안내도)≠메뉴leaf(조직안내)→**자식(G)전개**, 원 조직안내 랜딩행(0104020000,어문) 삭제(조직안내도가 그 랜딩 실콘텐츠). F=조직안내 카테고리로 3행 병합(F14:F16). 라이브판정: 전부 페이지/M1/미부착(KOGL마크·텍스트 전무)·N=조직안내도 어문(조직도=인포그래픽, 임원초상은 클릭팝업·원 어문유지)/부서연락처 기타(부서선택·연락처디렉터리 dept/list.do)/운영위원회 어문(위원명단 표). **167→169행(+2 순증)**. 풀리빌드(eff값캡처·스타일copy·D~J 동일값런 재병합·K링크 전행재적용·B 1~169 재부번). 시안 TODO마커(FF00B0F0 행14) 제거→신규/변경셀 하늘색(FFBDD7EE). 검증 PASS(B연속·병합겹침0·계층구멍0·K링크136=136·헤더병합유지·0104020000 부재). 백업 _backup_조직안내탭전개전. 보드 행수170→169. 미검수.
|
||||||
|
- ✅한국임업진흥원(공공기관3-5) 목재제품정보(tech_02.do) tab01 누락분 전개 완료 (2026-06-22) => sweep는 검출했으나 전개 GROUPS에서 누락된 1그룹(15탭 제재목~숯·목초액 ?mc_cd=1~15·각 페이지M1·어문,이미지·미부착). 백업r21 G[21] CHILD 추가 풀리빌드. **168→182행(+14 순증, 목재제품정보=카테고리 흡수)**. 검증 PASS(B연속1~182·계층구멍0·K불일치0·merge겹침0). 신규73행+변경 sky-blue. 백업 _backup_목재제품정보전. ⚠️N=어문,이미지 추정(제품사진, 미검수영역).
|
||||||
|
- ✅한국임업진흥원(공공기관3-5) 사전정보공표 div.tab01 5탭 하위전개 + r7~끝 전수 tab01 스캔·전개 완료 (2026-06-22) => 사용자 "사전정보공표 div.tab01 하위수집+사전정보공표부터 끝까지 이 탭 있는지 재수집". **전수스캔 결과 tab01_xN이 사이트 전역 22그룹에 존재**(사전정보공표 외에도 데이터개방·임산물정보·통계·수출·기술이전·주요사업·윤리경영 등). 22그룹 전개: 20=CHILD(메뉴leaf=카테고리, self탭+신규탭 G자식)·2=SIBLING(임산물정보·청탁금지서약, self==leaf). **110→168행(+58)**. self탭 라벨≠leaf면 자식·==이면 형제 규칙 적용. 풀리빌드(eff값캡처·스타일copy·D~J 계층 동일값런 재병합·K링크 전행재적용·B 1~168 재부번). O=전 사이트 KOGL마크 전무→전부 미부착(확인). 신규게시판 M=정적추정(검수영역). 검증 PASS(B연속·병합겹침0·DEF구멍0·K링크불일치0·OOB병합0). 신규58행+변경 sky-blue. 백업 _backup_tab01전개전. ⚠️**주요사업 섹션 기존 데이터품질 문제 보고**: r95(목재)/r107(산림분야 인재육성) 둘 다 introduceInfo_01.do, r102/r108 둘 다 introduceInfo_47.do=중복URL+라벨불일치(목재/석재/임산물 라벨이 실제 서비스탭명과 불일치)→첫 occurrence만 전개·중복은 skip, 라벨은 미수정(별도 GNB재수집 필요). ⚠️#앵커 분류탭(재배기술매뉴얼 tech_03·인증현황 certInfo_02=전체탭有 게시판)은 전개 안 함(기존 1행 유지).
|
||||||
|
- ✅한국의료분쟁조정중재원(공공기관3-2) 빡센검수 완료·검수완료스탬프(2026-06-22 19:10) => ①구조 PASS(D구멍0·병합겹침0·헤더B1:R1/S1:W1/Y1:AA1·시트명·K이슈0). B/C자동정리(B 1..90 재부번[45/46/None갭해소]·C r63채움). ②GNB(k-medi.or.kr)대조: 8대분류 정확일치·시트가 메가메뉴보다 깊게 전개(sublink 자식 전부)·콘텐츠 누락0. **GNB누락 2건=수용가능 정상누락**(나의사건조회 D=의료분쟁 조정/중재=로그인개인서비스/login리다이렉트·국민신문고 D=알림마당>E=신고센터=외부 epeople 민원포털). 사용자판정 "정상누락→검수완료". ③N: 06-21 사용자 몽타주 확정(어문71/이미지11/영상6/없음3) 유지·추가 critical0. → 서식정규화(채움색0·행높17·K좌측·값/링크/병합32 보존검증PASS)+Y/Z/AA 90행(프2·06-22)+보드 ☑️검수완료·행수123→90·검수완료일06-22·양식검수통과(90행). 백업 _backup_BC정리전/_서식정규화전/_YZAA전·보드 _backup_의료분쟁검수완료전.
|
||||||
|
- ✅한국인터넷진흥원(공공기관3-4) 동향분석 sub_tab_menu 하위메뉴 전개 + 14행~끝 전수 탭스캔 완료 (2026-06-22) => 사용자 "동향분석(/20207)에 ul.sub_tab_menu 8탭, 하위메뉴로 수집하고 동향분석부터 끝까지 또 이런 탭 있는지 분석". **핵심: KISA는 `selectTabList.do?menu_seq=N&lang_type=KO` AJAX로 거의 모든 페이지에 `ul.sub_tab_menu` 렌더(정적fetch엔 JS템플릿만)**. 14~끝 전수 AJAX스캔→48개 탭그룹. **판별: 신규탭=기존시트에 prefix-부모로도 없는 seq → EXPAND, 나머지(LNB 형제메뉴, 이미 시트행)=SKIP**. **29그룹 전개 +89행(97→186)**. 전부 self≠leaf 자식모델(leaf=카테고리, self탭=기존행 유지+신규탭 자식). 동향분석>8자식(전체동향20207 M1019=union + 사이버위협34/랜섬31/법제264/개인정보245/글로벌179/위치229/글로벌디지털38)·정기간행물>6·실태조사통계>8(KISIA외부=사이트)·법령가이드라인의 가이드라인/안내서>각6·5개본부 F메뉴들>각 G자식·정보공개안내/자체경영공시(일반현황/기관운영/내외부감사)/사회공헌/과제계획/기술이전/비전목표/찾아오시는길 등. 신규 게시판M=totalNum 정적추출·페이지M1·O=전부미부착(KISA 96/97행 미부착 확인, footer kogl마크 무시). **풀리빌드**(효과값캡처·스타일copy·D~J 계층 동일값런 재병합·K링크 전행재적용·B 1~186 재부번·행높이17). 검증 PASS(B연속·병합겹침0·DEF구멍0·K링크불일치0·헤더유지). 신규/변경셀 하늘색. 백업 _backup_동향분석탭전개전. ⚠️**검수영역**: 신규행 N=어문 기본(20306 사이버보안데이터이슈리포트만 포토형→어문,이미지 상향)·정기간행물 발간물 children(KISA Insight/백서/리포트)은 표지썸네일 가능성→어문,이미지 검수권장·신규게시판 M=정적추정. ⚠️동향분석 전체동향(1020)=7하위 합집합이나 사용자 명시지시("8탭 하위수집")대로 전체동향 포함 8자식 전개(스킬 "전체있으면1행만" 기본규칙보다 사용자지시 우선). SKIP 19그룹=LNB 형제(역대발간물/알림마당10/환경사회투명경영13/KISA소개10/각 본부소개 등 이미 별도행).
|
||||||
|
- ✅한국의약품안전관리원(공공기관3-3) 빡센검수 완료·검수완료스탬프(2026-06-21) => 구조PASS·B/C자동정리(B1..75·Cr33)·GNB 9대재구조화 누락0·N몽타주(인사말/역대기관장 인물사진 정확). 사용자판정: b오프라인보고 기타=링크전용 정상(스킬 수집·검수 양쪽 업뎃: 주목적 링크/연락처면 설명있어도 기타)·c r39/r57 현상정상. ⓐr71 고객헌정→고객헌장 오타는 잔존(제출전 보정권고). → 서식정규화(채움색0·행높17·K좌측)+Y/Z/AA 75행+보드 ☑️검수완료·행수86→75. 백업 _backup_BC정리전/_검수완료전/_YZAA전.
|
||||||
|
- ✅한국의료분쟁조정중재원(공공기관3-2) 23행~끝 N재작성+P/Q비움 완료 (2026-06-21) => 사용자 r3~22 기준 학습(video=영상·흐름도/도식/로고/캘리=어문·실사진/CI/캐릭터/간행물/카드뉴스/웹툰=이미지·M0빈게시판=없음). 몽타주 시각판정. **N 17행 변경**(과다 어문,이미지 정정+누락 이미지 추가), r3~22 N 0변경 보존. **O 전부 미부착→P/Q 45행 비움**(전 행). K/L/M 무변경. 백업 _backup_N재작성전. 사용자 확정: 경계 Excel23행(B21) OK·공지/보도 어문 맞음·**장식스톡사진(r38·43·78·80·84)=어문 정정, 원장사진 r81만 어문,이미지 유지**. 최종 N 어문71·이미지11·영상6·없음3(이미지=안내서/CI/캐릭터/원장/간행물4/카드뉴스/웹툰/공모전만). 백업 _backup_장식사진어문전.
|
||||||
|
- ✅공공기관3 전체(13곳) 랜딩셸(1-5e) 삭제 `--safe` 완료 (2026-06-21) => `_스크립트\_collapse_landing.py run --safe <경로>`·각 폴더 백업 `_backup_랜딩제거전`. **합계 211행 제거**(원자력9·의료분쟁30·의약품10·인터넷진흥0·임업9·자산관리33·잡월드2·장기조직5·장애인개발6·장애인고용11·장학재단61·재정정보10·저작권보호25). 13곳 전부 병합겹침0·B연속 검증통과. 대량(장학재단61등)은 D대분류 셸 자식라벨승계 포함.
|
||||||
|
- ✅git push(b0acd1e) 후 로컬 정리: 공공기관2·제출폴더·_temp·_backup·__pycache__·세션임시파일 삭제, 공공기관3/참고파일/작업현황/_스크립트/기관리스트 보존 (2026-06-21) => 삭제분 전부 원격(main b0acd1e) 백업됨·삭제는 미커밋(원격=백업).
|
||||||
- ✅전체 사이트 D~J 카테고리 셀병합 정상화(off-by-one/누락/고아셀)+KDHC행높이17 일괄 (2026-06-21) => 안전 재병합툴 `_스크립트\_remerge.py`(C사이트명 경계·고아필down·값/스타일/K링크/B/L/M/N 보존·자체검증 실패시 롤백·파일별 `_backup\*_backup_셀병합전`). **KDHC**(작업본+제출본): 24병합+F98="동반성장"고아+행높이17. **기존문서(작업본 공공기관2/3 29개)**: 4개 변경(청소년정책2·청소년활동1·지능정보4·장기조직기증원5). **제출문서 65개**: 9개 변경(부여군 21/66고아·교육청3·국토교통과기진1·공공기관2 3개). 나머지는 이미 정상병합. **제외**: 기관리스트.xlsx(D~AA 아님)·**참고파일 취합본 2개(사용자 "취합본 말고 공공기관2+오늘 제출만"으로 최종 미적용)**. ✅최종범위 재검증: 공공기관2 작업본 17 + 오늘(06-21) 제출 17 = 전부 병합완료(미병합잔여0). ⚠️시군/공공기관1차 작업본은 이 PC에 없어 제출본만 적용. 부여군 고아필(부서명 G 미병합→자치행정과 등 정상병합)=원본대조 검증OK·롤백가능. 검증 fail=0. => **행높이 전행(240) 17 적용 완료**(default도 17, 백업 _backup_행높이17전). **EFG/전체경로 중복행 0건**(각 메뉴경로 유니크·같은EFG는 H레벨 형제=정상계층). 콘텐츠동일 교차링크 2쌍(신재생에너지 r74/r205·환경친화설비 r66/r209)만 실중복→**병합 안 함, 사용자 결정대기**.
|
- ✅전체 사이트 D~J 카테고리 셀병합 정상화(off-by-one/누락/고아셀)+KDHC행높이17 일괄 (2026-06-21) => 안전 재병합툴 `_스크립트\_remerge.py`(C사이트명 경계·고아필down·값/스타일/K링크/B/L/M/N 보존·자체검증 실패시 롤백·파일별 `_backup\*_backup_셀병합전`). **KDHC**(작업본+제출본): 24병합+F98="동반성장"고아+행높이17. **기존문서(작업본 공공기관2/3 29개)**: 4개 변경(청소년정책2·청소년활동1·지능정보4·장기조직기증원5). **제출문서 65개**: 9개 변경(부여군 21/66고아·교육청3·국토교통과기진1·공공기관2 3개). 나머지는 이미 정상병합. **제외**: 기관리스트.xlsx(D~AA 아님)·**참고파일 취합본 2개(사용자 "취합본 말고 공공기관2+오늘 제출만"으로 최종 미적용)**. ✅최종범위 재검증: 공공기관2 작업본 17 + 오늘(06-21) 제출 17 = 전부 병합완료(미병합잔여0). ⚠️시군/공공기관1차 작업본은 이 PC에 없어 제출본만 적용. 부여군 고아필(부서명 G 미병합→자치행정과 등 정상병합)=원본대조 검증OK·롤백가능. 검증 fail=0. => **행높이 전행(240) 17 적용 완료**(default도 17, 백업 _backup_행높이17전). **EFG/전체경로 중복행 0건**(각 메뉴경로 유니크·같은EFG는 H레벨 형제=정상계층). 콘텐츠동일 교차링크 2쌍(신재생에너지 r74/r205·환경친화설비 r66/r209)만 실중복→**병합 안 함, 사용자 결정대기**.
|
||||||
- ✅한국지역난방공사(공공기관2-10) 고객센터 누락 새창포털행 추가 완료(2026-06-21) => D=고객센터 누락 GNB 12행(고객서비스헌장·고객마당열/전기·상담FAQ/상담하기/고객제안·RPS·불편/친절불친절신고·민원부패공익신고/하도급/예산낭비) 사이트행 삽입·블루. 226→238행. B연속·겹침0·K0·DEF구멍0. 백업 _고객센터누락행추가전.
|
- ✅한국지역난방공사(공공기관2-10) 고객센터 누락 새창포털행 추가 완료(2026-06-21) => D=고객센터 누락 GNB 12행(고객서비스헌장·고객마당열/전기·상담FAQ/상담하기/고객제안·RPS·불편/친절불친절신고·민원부패공익신고/하도급/예산낭비) 사이트행 삽입·블루. 226→238행. B연속·겹침0·K0·DEF구멍0. 백업 _고객센터누락행추가전.
|
||||||
- ✅한국지역난방공사(공공기관2-10) 검수완료 + 검수스킬 GNB리프커버리지 업뎃 완료(2026-06-21) => 사용자 "검수 잘했다, 앞으로 검수해줘 하면 이렇게, 스킬업뎃+검수완료". ①**스킬 ② GNB섹션에 '리프 전수 커버리지 대조' 추가**(GNB 전메뉴 리프 라벨정규화→시트 차집합으로 누락 전수검출·정확 D>E>F 뎁스보고·새창=사이트·일부새창수집/일부누락 불일치 잡기·누락행 채우면 collection). ②kdhc **검수완료**: 238행(고객센터 새창12행 추가포함). ⚠️**복구이슈**: _add_missing 후 delete_rows+_fill_YZAA 다중저장이 신규E병합행 손상(F값소실·행붕괴 238→232)→pre-add백업서 **content-only 단일패스 재빌드**(빈행 emit안함·Y/Z/AA 같은저장에 기입, delete_rows·_fill_YZAA 미사용)로 복구. 재로드검증 PASS(238행·B연속·겹침0·K0·DEF구멍0·Y누락0·새창12행 F/파랑/Y정상). Y/Z/AA 238(프2·06-21)·현황판 ☑️검수완료·행수224→238. 백업 _고객센터누락행추가전·_손상본_검수전·보드 _backup_지역난방검수완료전. 교훈: **신규 병합행 삽입 후 delete_rows 금지(병합손상)·다중 load/save 회피·content-only 단일패스가 안전**.
|
- ✅한국지역난방공사(공공기관2-10) 검수완료 + 검수스킬 GNB리프커버리지 업뎃 완료(2026-06-21) => 사용자 "검수 잘했다, 앞으로 검수해줘 하면 이렇게, 스킬업뎃+검수완료". ①**스킬 ② GNB섹션에 '리프 전수 커버리지 대조' 추가**(GNB 전메뉴 리프 라벨정규화→시트 차집합으로 누락 전수검출·정확 D>E>F 뎁스보고·새창=사이트·일부새창수집/일부누락 불일치 잡기·누락행 채우면 collection). ②kdhc **검수완료**: 238행(고객센터 새창12행 추가포함). ⚠️**복구이슈**: _add_missing 후 delete_rows+_fill_YZAA 다중저장이 신규E병합행 손상(F값소실·행붕괴 238→232)→pre-add백업서 **content-only 단일패스 재빌드**(빈행 emit안함·Y/Z/AA 같은저장에 기입, delete_rows·_fill_YZAA 미사용)로 복구. 재로드검증 PASS(238행·B연속·겹침0·K0·DEF구멍0·Y누락0·새창12행 F/파랑/Y정상). Y/Z/AA 238(프2·06-21)·현황판 ☑️검수완료·행수224→238. 백업 _고객센터누락행추가전·_손상본_검수전·보드 _backup_지역난방검수완료전. 교훈: **신규 병합행 삽입 후 delete_rows 금지(병합손상)·다중 load/save 회피·content-only 단일패스가 안전**.
|
||||||
@ -154,6 +203,7 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
## ✅ 클로드완료 (확인 대기)
|
## ✅ 클로드완료 (확인 대기)
|
||||||
|
- ✅한국원자력환경공단(공공기관3-1) 빡센 검수→검수완료 (2026-06-24) => B/C정리+읽기전용 D~분석. **①구조 PASS**(헤더병합 B1:R1/S1:W1/Y1:AA1·C0·K0·계층구멍0·병합겹침0·B결번6개[14·64·102·149·157·159]→1~214재부번). **②GNB 라이브 전체메뉴(Depth1~4 m_li) 302노드/219리프 전수대조**: 유령0·누락5 전부 신청/조회 개인서비스(채용알림신청·방사선측정/테스트베드 서비스신청·방문신청확인·대관신청확인=loginish 폼)→발주#15 정상제외. _blank 4그룹(윤리규정/행동강령/공익신고지침 alio·청렴포털·사규·정보공개청구)=시트 사이트행 일치. **③N대조 48이상치 전부 비critical**: UNDER_IMG34=전부 도식/체계도/차트/장식그래픽(육각KORAD·플로우·공공데이터차트·고객헌장그래픽)=어문 정확(실사진 누락 0). OVER_IMG14=대부분 정확(r200역대이사장 111×150인물사진·r116사진첩/r199활동사진 236×157갤러리·보도/공지 게시판 상세이미지)→도구 크기필터/목록만렌더 한계. r154방문신청·r155코라디움대관·r162자산운용성과만 실이미지0 경미과표시(비critical, 사용자판단). **④O 전부미부착·KOGL마크 표본스캔0=KOGL0 타당.** 마감: B재부번+서식정규화(_fmt --apply 행높17·3행~끝색제거·K좌측/그외가운데)+Y/Z/AA 214행(프2·2026-06-24)+현황판 row1 ☑️검수완료/완료/231→214/06-24/비고 양식검수통과+완료폴더 이동(공공기관3/완료/1.한국원자력환경공단). 백업 _backup_검수완료전_2026-06-24·_YZAA전·_서식정규화전·보드 _backup_원자력검수완료전. 잠금.
|
||||||
- ✅한국지식재산연구원(공공기관2-9) 검수완료 처리(2026-06-19) => 구조검수 PASS(207행·ISSUES0). ⚠️내 확장작업이 깬 헤더병합(B1:R1·S1:W1·Y1:AA1) 복원+B 1~207 재부번+C채움(양식정리). GNB 100리프 전수대조=누락0(해외법령·ito 포함, ito는 사용자가 M=하위수로 처리). N 8종 유효(어문122·어문이미지80·기타2)·사이트tail clean·O미부착. 처음 205로 오집계(B빈칸 콘텐츠행 누락)→사용자 지적 후 실제 207로 재부번·Y/Z/AA 207행 재기입. 현황판 9번=☑️검수완료·행수207·2026-06-19. ⚠️K하이퍼링크 2행(사용자 추가분) 미활성=경미(값은 정상).
|
- ✅한국지식재산연구원(공공기관2-9) 검수완료 처리(2026-06-19) => 구조검수 PASS(207행·ISSUES0). ⚠️내 확장작업이 깬 헤더병합(B1:R1·S1:W1·Y1:AA1) 복원+B 1~207 재부번+C채움(양식정리). GNB 100리프 전수대조=누락0(해외법령·ito 포함, ito는 사용자가 M=하위수로 처리). N 8종 유효(어문122·어문이미지80·기타2)·사이트tail clean·O미부착. 처음 205로 오집계(B빈칸 콘텐츠행 누락)→사용자 지적 후 실제 207로 재부번·Y/Z/AA 207행 재기입. 현황판 9번=☑️검수완료·행수207·2026-06-19. ⚠️K하이퍼링크 2행(사용자 추가분) 미활성=경미(값은 정상).
|
||||||
- ✅한국지식재산연구원(공공기관2-9) GNB 직접대조 검수 완료(2026-06-19, 읽기전용) => 라이브 ul.depth1 메가메뉴 100리프 전수 추출·시트 대조. **GNB 전부 커버(누락0)**. 전 205페이지 ul.sub/tabs/tab1/tab_list+javascript 서브내비 스캔: 숨은 패턴은 get_data(해외법령)·get_ito_data(국제조약/기구) 2종뿐, **둘 다 사용자가 M=하위수로 이미 처리**. ito 검증=FTA개요3·WIPO개요3·IGC50 일치, FTA주요현황35=전체38−상태헤더3(발효/협상중/재개여건) 정확. 푸터(회원약관·개인정보처리방침·사이트맵)는 정책/유틸리티라 미수집 정상. **추가 누락 없음. 파일 미변경.**
|
- ✅한국지식재산연구원(공공기관2-9) GNB 직접대조 검수 완료(2026-06-19, 읽기전용) => 라이브 ul.depth1 메가메뉴 100리프 전수 추출·시트 대조. **GNB 전부 커버(누락0)**. 전 205페이지 ul.sub/tabs/tab1/tab_list+javascript 서브내비 스캔: 숨은 패턴은 get_data(해외법령)·get_ito_data(국제조약/기구) 2종뿐, **둘 다 사용자가 M=하위수로 이미 처리**. ito 검증=FTA개요3·WIPO개요3·IGC50 일치, FTA주요현황35=전체38−상태헤더3(발효/협상중/재개여건) 정확. 푸터(회원약관·개인정보처리방침·사이트맵)는 정책/유틸리티라 미수집 정상. **추가 누락 없음. 파일 미변경.**
|
||||||
- ✅한국지식재산연구원(공공기관2-9) 공모전History 연도탭+우수논문상 연도탭 전개 완료(2026-06-19) => ①공모전History 20개 연도 각각 ul.tabs(수상작현황/워크숍/시상식/해외연수 등 연도별3~4탭) 하위전개=73리프(history{Y}.do/_2/_3/_4). N: 수상작현황·수상자명단=어문, 워크숍·시상식·해외연수=어문,이미지(몽타주로 실사진 확인). ②우수논문상(best_award.do) ul.tab1 연도탭 2025~2012=14행(best_award{Y}.do, N=어문,이미지 수상자사진). **140→207행(+67)**. 페이지M1·미부착·풀리빌드 SNAP재병합·블루·B1~207·하이퍼링크보존·백업.
|
- ✅한국지식재산연구원(공공기관2-9) 공모전History 연도탭+우수논문상 연도탭 전개 완료(2026-06-19) => ①공모전History 20개 연도 각각 ul.tabs(수상작현황/워크숍/시상식/해외연수 등 연도별3~4탭) 하위전개=73리프(history{Y}.do/_2/_3/_4). N: 수상작현황·수상자명단=어문, 워크숍·시상식·해외연수=어문,이미지(몽타주로 실사진 확인). ②우수논문상(best_award.do) ul.tab1 연도탭 2025~2012=14행(best_award{Y}.do, N=어문,이미지 수상자사진). **140→207행(+67)**. 페이지M1·미부착·풀리빌드 SNAP재병합·블루·B1~207·하이퍼링크보존·백업.
|
||||||
|
|||||||
52
작업파일/_통계.py
@ -1,7 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
"""검수완료·미제출 통계 (날짜별·프리랜서별). 읽기전용.
|
"""검수완료·미제출 통계 + 공공기관3 현황판 전체표 (날짜별·프리랜서별). 읽기전용.
|
||||||
사용: python _통계.py
|
사용: python _통계.py
|
||||||
대상: 작업현황.xlsx (검수=완료 AND 제출완료!=완료)
|
대상: 공공기관3_작업현황.xlsx
|
||||||
"""
|
"""
|
||||||
import sys, os
|
import sys, os
|
||||||
from collections import defaultdict
|
from collections import defaultdict
|
||||||
@ -9,35 +9,33 @@ import openpyxl
|
|||||||
|
|
||||||
sys.stdout.reconfigure(encoding="utf-8")
|
sys.stdout.reconfigure(encoding="utf-8")
|
||||||
BASE = os.path.dirname(os.path.abspath(__file__))
|
BASE = os.path.dirname(os.path.abspath(__file__))
|
||||||
# 광역 작업현황.xlsx는 정리(삭제)됨 → 공공기관2 현황판 기준(2026-06-18)
|
# 광역·공공기관2 현황판은 정리됨 → 공공기관3 현황판 기준(2026-06-23)
|
||||||
XLSX = os.path.join(BASE, "공공기관2", "공공기관2_작업현황.xlsx")
|
XLSX = os.path.join(BASE, "공공기관3", "공공기관3_작업현황.xlsx")
|
||||||
|
|
||||||
wb = openpyxl.load_workbook(XLSX, data_only=True)
|
wb = openpyxl.load_workbook(XLSX, data_only=True)
|
||||||
ws = wb["현황"] if "현황" in wb.sheetnames else wb.active
|
ws = wb["현황"] if "현황" in wb.sheetnames else wb.active
|
||||||
hdr = [c.value for c in ws[1]]
|
hdr = [c.value for c in ws[1]]
|
||||||
gi = lambda n: hdr.index(n)
|
gi = lambda n: hdr.index(n)
|
||||||
|
|
||||||
rows = []
|
allrows = [] # (번호, 기관, 검수값, 행수, 담당자, 제출완료, 검수완료일)
|
||||||
for r in ws.iter_rows(min_row=2, values_only=True):
|
for r in ws.iter_rows(min_row=2, values_only=True):
|
||||||
if not r[gi("기관")]:
|
if not r[gi("기관")]:
|
||||||
continue
|
continue
|
||||||
if r[gi("검수")] == "완료" and r[gi("제출완료")] != "완료":
|
allrows.append((r[gi("번호")], r[gi("기관")], r[gi("검수")], r[gi("행수")] or 0,
|
||||||
rows.append((str(r[gi("검수완료일")] or "")[:10], r[gi("담당자")], r[gi("기관")], r[gi("행수")] or 0))
|
r[gi("담당자")], r[gi("제출완료")], str(r[gi("검수완료일")] or "")[:10]))
|
||||||
rows.sort(key=lambda x: (x[0], x[1]))
|
|
||||||
|
|
||||||
# 프리랜서 라벨 정규화(충남/충북=프1, 전북/제주=프2 표기 보조)
|
|
||||||
dates = sorted({d for d, *_ in rows})
|
|
||||||
frees = ["프리랜서1", "프리랜서2"]
|
|
||||||
|
|
||||||
|
# ── 표1: 검수완료 · 미제출 (날짜별·프리랜서별) ──
|
||||||
|
done_unsub = [(d, f, name, n) for (no, name, insp, n, f, sub, d) in allrows
|
||||||
|
if insp == "완료" and sub != "완료"]
|
||||||
|
done_unsub.sort(key=lambda x: (x[0], str(x[1])))
|
||||||
|
dates = sorted({d for d, *_ in done_unsub})
|
||||||
bydate = defaultdict(lambda: defaultdict(list))
|
bydate = defaultdict(lambda: defaultdict(list))
|
||||||
byfree = defaultdict(lambda: [0, 0])
|
byfree = defaultdict(lambda: [0, 0])
|
||||||
for d, f, name, n in rows:
|
for d, f, name, n in done_unsub:
|
||||||
bydate[d][f].append((name, n))
|
bydate[d][f].append((name, n))
|
||||||
byfree[f][0] += 1
|
byfree[f][0] += 1
|
||||||
byfree[f][1] += n
|
byfree[f][1] += n
|
||||||
|
cell = lambda items: ", ".join(f"{nm} {n}" for nm, n in items) if items else "—"
|
||||||
def cell(items):
|
|
||||||
return ", ".join(f"{nm} {n}" for nm, n in items) if items else "—"
|
|
||||||
|
|
||||||
print("## 검수완료 · 미제출 통계\n")
|
print("## 검수완료 · 미제출 통계\n")
|
||||||
print("### 📅 날짜별 · 프리랜서별\n")
|
print("### 📅 날짜별 · 프리랜서별\n")
|
||||||
@ -52,15 +50,17 @@ for d in dates:
|
|||||||
tot_cnt += day_cnt
|
tot_cnt += day_cnt
|
||||||
tot_row += day_row
|
tot_row += day_row
|
||||||
print(f"| {d} | {cell(c1)} | {cell(c2)} | {day_cnt}곳 · {day_row:,}행 |")
|
print(f"| {d} | {cell(c1)} | {cell(c2)} | {day_cnt}곳 · {day_row:,}행 |")
|
||||||
s1 = byfree.get("프리랜서1", [0, 0])
|
s1 = byfree.get("프리랜서1", [0, 0]); s2 = byfree.get("프리랜서2", [0, 0])
|
||||||
s2 = byfree.get("프리랜서2", [0, 0])
|
|
||||||
print(f"| **소계** | **{s1[0]}곳 · {s1[1]:,}행** | **{s2[0]}곳 · {s2[1]:,}행** | **{tot_cnt}곳 · {tot_row:,}행** |")
|
print(f"| **소계** | **{s1[0]}곳 · {s1[1]:,}행** | **{s2[0]}곳 · {s2[1]:,}행** | **{tot_cnt}곳 · {tot_row:,}행** |")
|
||||||
|
|
||||||
print("\n### 👤 프리랜서별 요약\n")
|
# ── 표2: 공공기관3 현황판 전체 (번호 1~끝, 검수/미검수) ──
|
||||||
print("| 프리랜서 | 기관 | 행수 |")
|
n_done = sum(1 for x in allrows if x[2] == "완료")
|
||||||
print("|---|---|---|")
|
n_todo = len(allrows) - n_done
|
||||||
for f in frees:
|
sum_row = sum(x[3] for x in allrows)
|
||||||
items = [(nm, n) for d in dates for nm, n in bydate[d].get(f, [])]
|
print(f"\n## 공공기관3 현황판 (전체 {len(allrows)}곳 · 검수완료 {n_done} / 미검수 {n_todo})\n")
|
||||||
names = ", ".join(f"{nm}({n})" for nm, n in items) if items else "—"
|
print("| 번호 | 기관 | 검수 | 행수 |")
|
||||||
print(f"| {f} | {names} | **{byfree.get(f,[0,0])[1]:,}** |")
|
print("|---|---|---|---|")
|
||||||
print(f"| **합계** | **{tot_cnt}곳** | **{tot_row:,}** |")
|
for no, name, insp, n, f, sub, d in allrows:
|
||||||
|
mark = "☑️ 검수완료" if insp == "완료" else "⬜ 미검수"
|
||||||
|
print(f"| {no} | {name} | {mark} | {n:,} |")
|
||||||
|
print(f"| **계** | **{len(allrows)}곳** | **완료 {n_done} · 미검수 {n_todo}** | **{sum_row:,}** |")
|
||||||
|
|||||||
@ -1,121 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
"""kesco N 재판정 — 67~끝 행: 본문(.contents) 콘텐츠이미지/영상 탐지 + 몽타주.
|
|
||||||
사용자 3~66 학습기준: 실사진·지도·시설/서비스 사진 있으면 어문,이미지 / 순수텍스트·조직도·텍스트목록게시판=어문.
|
|
||||||
출력: _nshots\ (rN.png + montage_*.png) + plan.json
|
|
||||||
"""
|
|
||||||
import sys, os, re, json, glob, warnings
|
|
||||||
import openpyxl
|
|
||||||
from PIL import Image, ImageDraw, ImageFont
|
|
||||||
|
|
||||||
warnings.filterwarnings('ignore')
|
|
||||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
||||||
XLSX = os.path.join(HERE, '한국전기안전공사.xlsx')
|
|
||||||
OUT = os.path.join(HERE, '_nshots')
|
|
||||||
UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
|
|
||||||
NOISE = re.compile(r'(ico[_\-/]|/icon|logo|btn|bul[_\-]|bg[_\-]|banner|sns|blank|spacer|loading|arrow|/dot|line[_\.]|top_|foot|header|common|_icon|symbol|copyright|qr_|no_img|noimage|share|facebook|insta|twitter|naver|kakao|/skin/|/template/|/resources/|/images/common|/img/comm)', re.I)
|
|
||||||
|
|
||||||
JS = r"""()=>{
|
|
||||||
const cont=document.querySelector('#contents,.contents,#content,.content,.sub_content,.sub_contents,#sub_content,#container')||document.body;
|
|
||||||
const imgs=[];
|
|
||||||
for(const i of cont.querySelectorAll('img')){const r=i.getBoundingClientRect();
|
|
||||||
imgs.push({src:i.currentSrc||i.src||'',alt:(i.alt||''),rw:Math.round(r.width),rh:Math.round(r.height),nw:i.naturalWidth,nh:i.naturalHeight});}
|
|
||||||
let vid=0;
|
|
||||||
if(cont.querySelector('video,source[src*=".mp4"]')) vid++;
|
|
||||||
for(const f of cont.querySelectorAll('iframe')){const s=f.src||'';if(/youtube|youtu\.be|vimeo|player\./i.test(s))vid++;}
|
|
||||||
return {imgs,vid};
|
|
||||||
}"""
|
|
||||||
|
|
||||||
DIAG = re.compile(r'(조직도|체계도|순서도|흐름도|구성도|개념도|절차도|한눈에|자세한)')
|
|
||||||
|
|
||||||
|
|
||||||
def real_imgs(items):
|
|
||||||
out = []
|
|
||||||
for it in items:
|
|
||||||
src = it.get('src', '')
|
|
||||||
if not src or NOISE.search(src):
|
|
||||||
continue
|
|
||||||
rw, rh, nw, nh = it['rw'], it['rh'], it['nw'], it['nh']
|
|
||||||
# 렌더 ≥110x80 또는 원본 ≥200x150 (장식 제외)
|
|
||||||
if (rw >= 110 and rh >= 80) or (nw >= 200 and nh >= 150 and rw >= 80):
|
|
||||||
out.append(it)
|
|
||||||
return out
|
|
||||||
|
|
||||||
|
|
||||||
def run():
|
|
||||||
wb = openpyxl.load_workbook(XLSX); ws = wb.active
|
|
||||||
os.makedirs(OUT, exist_ok=True)
|
|
||||||
targets = []
|
|
||||||
for r in range(67, ws.max_row + 1):
|
|
||||||
if ws.cell(r, 2).value is None:
|
|
||||||
continue
|
|
||||||
L = ws.cell(r, 12).value or ''
|
|
||||||
url = ws.cell(r, 11).value
|
|
||||||
if L == '사이트':
|
|
||||||
continue
|
|
||||||
if not (url and isinstance(url, str) and url.startswith('http')):
|
|
||||||
continue
|
|
||||||
targets.append((r, url, L))
|
|
||||||
print(f'대상 {len(targets)}행 렌더…')
|
|
||||||
from playwright.sync_api import sync_playwright
|
|
||||||
plan = []; shots = []
|
|
||||||
with sync_playwright() as p:
|
|
||||||
b = p.chromium.launch()
|
|
||||||
pg = b.new_page(user_agent=UA, viewport={'width': 1280, 'height': 2000})
|
|
||||||
for idx, (r, url, L) in enumerate(targets):
|
|
||||||
rec = {'row': r, 'url': url, 'L': L}
|
|
||||||
try:
|
|
||||||
pg.goto(url, timeout=25000, wait_until='domcontentloaded')
|
|
||||||
pg.wait_for_timeout(1600)
|
|
||||||
d = pg.evaluate(JS)
|
|
||||||
ri = real_imgs(d['imgs'])
|
|
||||||
rec['vid'] = d['vid']
|
|
||||||
rec['nimg'] = len(ri)
|
|
||||||
rec['samples'] = [f"{it['src'].split('/')[-1][:24]} {it['rw']}x{it['rh']} a={it['alt'][:14]}" for it in ri[:5]]
|
|
||||||
if len(ri) == 0 and d['vid'] == 0:
|
|
||||||
rec['auto'] = '어문'
|
|
||||||
else:
|
|
||||||
rec['auto'] = 'candidate'
|
|
||||||
sp = os.path.join(OUT, f'r{r}.png')
|
|
||||||
try:
|
|
||||||
cont = pg.query_selector('#contents,.contents,#content,.content,.sub_content,#container')
|
|
||||||
(cont or pg).screenshot(path=sp)
|
|
||||||
except Exception:
|
|
||||||
try: pg.screenshot(path=sp, full_page=False)
|
|
||||||
except Exception: pass
|
|
||||||
if os.path.exists(sp):
|
|
||||||
shots.append((r, L, rec.get('vid'), sp))
|
|
||||||
except Exception as e:
|
|
||||||
rec['auto'] = '어문'; rec['err'] = str(e)[:40]
|
|
||||||
plan.append(rec)
|
|
||||||
if (idx + 1) % 20 == 0:
|
|
||||||
print(f' {idx+1}/{len(targets)}')
|
|
||||||
b.close()
|
|
||||||
# 몽타주
|
|
||||||
try: font = ImageFont.truetype('malgun.ttf', 18)
|
|
||||||
except Exception: font = ImageFont.load_default()
|
|
||||||
cols, cw, ch = 4, 320, 420; per = cols * 5
|
|
||||||
mps = []
|
|
||||||
for gi in range(0, len(shots), per):
|
|
||||||
chunk = shots[gi:gi + per]
|
|
||||||
rn = (len(chunk) + cols - 1) // cols
|
|
||||||
cv = Image.new('RGB', (cols * cw, rn * ch), 'white'); dr = ImageDraw.Draw(cv)
|
|
||||||
for j, (r, L, vid, sp) in enumerate(chunk):
|
|
||||||
try:
|
|
||||||
im = Image.open(sp).convert('RGB'); im.thumbnail((cw - 8, ch - 30))
|
|
||||||
except Exception: continue
|
|
||||||
cx, cy = (j % cols) * cw, (j // cols) * ch
|
|
||||||
cv.paste(im, (cx + 4, cy + 26))
|
|
||||||
dr.rectangle([cx, cy, cx + cw - 1, cy + ch - 1], outline='gray')
|
|
||||||
tag = f'r{r} {L}' + (' VID' if vid else '')
|
|
||||||
dr.text((cx + 4, cy + 4), tag, fill='red', font=font)
|
|
||||||
mp = os.path.join(OUT, f'montage_{gi//per+1}.png'); cv.save(mp); mps.append(mp)
|
|
||||||
json.dump(plan, open(os.path.join(OUT, 'plan.json'), 'w', encoding='utf-8'), ensure_ascii=False, indent=1)
|
|
||||||
amun = sum(1 for x in plan if x['auto'] == '어문')
|
|
||||||
cand = sum(1 for x in plan if x['auto'] == 'candidate')
|
|
||||||
vid = sum(1 for x in plan if x.get('vid'))
|
|
||||||
print(f'자동 어문 {amun} | 후보(이미지/영상) {cand} | 영상감지 {vid} | 몽타주 {len(mps)}장')
|
|
||||||
for mp in mps: print(' MONT:', mp)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
run()
|
|
||||||
@ -1,132 +0,0 @@
|
|||||||
# -*- coding: utf-8 -*-
|
|
||||||
"""kesco N 재판정 v2 — 본문(.contents) 이미지 '원본크기' 기준 수집 + 실제 이미지 다운로드 몽타주.
|
|
||||||
렌더 0x0(탭/지연로딩) 이미지도 원본크기로 포착. 영상도 탐지.
|
|
||||||
출력: _nshots2\ (이미지 다운로드 + montage_*.png) + plan2.json
|
|
||||||
"""
|
|
||||||
import sys, os, re, json, warnings, io
|
|
||||||
import openpyxl, requests
|
|
||||||
from PIL import Image, ImageDraw, ImageFont
|
|
||||||
from playwright.sync_api import sync_playwright
|
|
||||||
|
|
||||||
warnings.filterwarnings('ignore')
|
|
||||||
requests.packages.urllib3.disable_warnings()
|
|
||||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
|
||||||
XLSX = os.path.join(HERE, '한국전기안전공사.xlsx')
|
|
||||||
OUT = os.path.join(HERE, '_nshots2')
|
|
||||||
UA = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
|
|
||||||
# kesco는 콘텐츠 이미지를 /common/images/sub|office 에 둠 → 경로(/common)로 배제하면 안 됨. 파일명 기준 데코필터.
|
|
||||||
NAME_NOISE = re.compile(r'(^ico[_\-]|icon|logo|btn[_\-]|^bul|bullet|^bg[_\-]|banner|^sns|blank|spacer|loading|arrow|^dot|^line[_\.]|^top_|footer|^foot|^header|symbol|copyright|^qr|no_img|noimage|share|facebook|insta|twitter|naver|kakao|mark_)', re.I)
|
|
||||||
PATH_NOISE = re.compile(r'(/skin/|/template/|/editor/|/sample)', re.I)
|
|
||||||
|
|
||||||
JS = r"""()=>{
|
|
||||||
const cont=document.querySelector('#contents,.contents,#content,.content,.sub_content,.sub_contents,#sub_content,#container')||document.body;
|
|
||||||
const imgs=[];
|
|
||||||
for(const i of cont.querySelectorAll('img')){
|
|
||||||
imgs.push({src:i.currentSrc||i.src||'',alt:(i.alt||''),nw:i.naturalWidth,nh:i.naturalHeight});}
|
|
||||||
let vid=0;
|
|
||||||
if(cont.querySelector('video,source[src*=".mp4"]')) vid++;
|
|
||||||
for(const f of cont.querySelectorAll('iframe')){const s=f.src||'';if(/youtube|youtu\.be|vimeo|player\./i.test(s))vid++;}
|
|
||||||
return {imgs,vid};
|
|
||||||
}"""
|
|
||||||
|
|
||||||
|
|
||||||
def candidate_imgs(items):
|
|
||||||
"""원본크기 기준 실콘텐츠 이미지 후보. 마크/로고/아이콘 제외, 원본 양변 충분히 큼."""
|
|
||||||
out = []
|
|
||||||
seen = set()
|
|
||||||
for it in items:
|
|
||||||
src = it.get('src', '')
|
|
||||||
if not src or src in seen:
|
|
||||||
continue
|
|
||||||
base = src.split('?')[0].split('/')[-1]
|
|
||||||
if NAME_NOISE.search(base) or PATH_NOISE.search(src):
|
|
||||||
continue
|
|
||||||
nw, nh = it['nw'], it['nh']
|
|
||||||
if nw >= 200 and nh >= 150 and (nw * nh) >= 40000:
|
|
||||||
seen.add(src)
|
|
||||||
out.append(it)
|
|
||||||
return out
|
|
||||||
|
|
||||||
|
|
||||||
def run():
|
|
||||||
wb = openpyxl.load_workbook(XLSX); ws = wb.active
|
|
||||||
os.makedirs(OUT, exist_ok=True)
|
|
||||||
targets = []
|
|
||||||
for r in range(67, ws.max_row + 1):
|
|
||||||
if ws.cell(r, 2).value is None:
|
|
||||||
continue
|
|
||||||
L = ws.cell(r, 12).value or ''
|
|
||||||
url = ws.cell(r, 11).value
|
|
||||||
if L == '사이트' or not (url and isinstance(url, str) and url.startswith('http')):
|
|
||||||
continue
|
|
||||||
targets.append((r, url, L))
|
|
||||||
print(f'대상 {len(targets)}행', flush=True)
|
|
||||||
plan = []
|
|
||||||
dl = [] # (row, label, localpath)
|
|
||||||
sess = requests.Session(); sess.headers['User-Agent'] = UA
|
|
||||||
with sync_playwright() as p:
|
|
||||||
b = p.chromium.launch()
|
|
||||||
pg = b.new_page(user_agent=UA, viewport={'width': 1280, 'height': 2000})
|
|
||||||
for idx, (r, url, L) in enumerate(targets):
|
|
||||||
rec = {'row': r, 'url': url, 'L': L}
|
|
||||||
try:
|
|
||||||
pg.goto(url, timeout=25000, wait_until='domcontentloaded')
|
|
||||||
pg.wait_for_timeout(1200)
|
|
||||||
try:
|
|
||||||
pg.evaluate("()=>window.scrollTo(0,document.body.scrollHeight)")
|
|
||||||
pg.wait_for_timeout(900)
|
|
||||||
pg.evaluate("()=>window.scrollTo(0,0)")
|
|
||||||
pg.wait_for_timeout(300)
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
d = pg.evaluate(JS)
|
|
||||||
ci = candidate_imgs(d['imgs'])
|
|
||||||
rec['vid'] = d['vid']
|
|
||||||
rec['nimg'] = len(ci)
|
|
||||||
rec['imgs'] = [{'src': it['src'], 'nw': it['nw'], 'nh': it['nh'], 'alt': it['alt'][:30]} for it in ci[:6]]
|
|
||||||
rec['auto'] = 'candidate' if (ci or d['vid']) else '어문'
|
|
||||||
# 대표 이미지 최대 3장 다운로드
|
|
||||||
for it in ci[:3]:
|
|
||||||
s = it['src']
|
|
||||||
try:
|
|
||||||
rr = sess.get(s, timeout=12, verify=False)
|
|
||||||
im = Image.open(io.BytesIO(rr.content)).convert('RGB')
|
|
||||||
lp = os.path.join(OUT, f'r{r}_{len(dl)}.jpg')
|
|
||||||
im.thumbnail((360, 360)); im.save(lp, quality=80)
|
|
||||||
lab = ws.cell(r, 6).value or ws.cell(r, 5).value or ws.cell(r, 4).value or ''
|
|
||||||
dl.append((r, str(lab)[:18], lp))
|
|
||||||
except Exception:
|
|
||||||
pass
|
|
||||||
except Exception as e:
|
|
||||||
rec['auto'] = '어문'; rec['err'] = str(e)[:40]
|
|
||||||
plan.append(rec)
|
|
||||||
if (idx + 1) % 20 == 0:
|
|
||||||
print(f' {idx+1}/{len(targets)}', flush=True)
|
|
||||||
b.close()
|
|
||||||
# 몽타주 (실제 이미지)
|
|
||||||
try: font = ImageFont.truetype('malgun.ttf', 16)
|
|
||||||
except Exception: font = ImageFont.load_default()
|
|
||||||
cols, cw, ch = 5, 250, 280; per = cols * 6
|
|
||||||
mps = []
|
|
||||||
for gi in range(0, len(dl), per):
|
|
||||||
chunk = dl[gi:gi + per]
|
|
||||||
rn = (len(chunk) + cols - 1) // cols
|
|
||||||
cv = Image.new('RGB', (cols * cw, rn * ch), 'white'); dr = ImageDraw.Draw(cv)
|
|
||||||
for j, (r, lab, lp) in enumerate(chunk):
|
|
||||||
try:
|
|
||||||
im = Image.open(lp).convert('RGB'); im.thumbnail((cw - 8, ch - 28))
|
|
||||||
except Exception: continue
|
|
||||||
cx, cy = (j % cols) * cw, (j // cols) * ch
|
|
||||||
cv.paste(im, (cx + 4, cy + 24))
|
|
||||||
dr.rectangle([cx, cy, cx + cw - 1, cy + ch - 1], outline='gray')
|
|
||||||
dr.text((cx + 4, cy + 4), f'r{r} {lab}', fill='red', font=font)
|
|
||||||
mp = os.path.join(OUT, f'montage_{gi//per+1}.png'); cv.save(mp); mps.append(mp)
|
|
||||||
json.dump(plan, open(os.path.join(OUT, 'plan2.json'), 'w', encoding='utf-8'), ensure_ascii=False, indent=1)
|
|
||||||
cand = [x for x in plan if x['auto'] == 'candidate']
|
|
||||||
vid = [x for x in plan if x.get('vid')]
|
|
||||||
print(f'어문 {len(plan)-len(cand)} | 후보 {len(cand)} | 영상 {len(vid)} | 다운이미지 {len(dl)} | 몽타주 {len(mps)}', flush=True)
|
|
||||||
for mp in mps: print(' MONT:', mp, flush=True)
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
run()
|
|
||||||
|
Before Width: | Height: | Size: 470 KiB |
|
Before Width: | Height: | Size: 1.5 MiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 7.4 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 7.0 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 8.3 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 5.2 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 8.4 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 8.8 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 8.9 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 18 KiB |