Merge remote-tracking branches 'origin/sub_laptop_1' and 'origin/sub_laptop_2' into sub_laptop_4
This commit is contained in:
@@ -15,7 +15,7 @@
|
||||
⚠ 같은 날짜에 0 과 제값이 함께 실린다(2025-04-24) — 날짜만 보지 말고 **0 을 건너뛴 뒤**
|
||||
가장 나중 공시를 고른다.
|
||||
|
||||
돌리기: `./venv/Scripts/python.exe resources/data_cost_input_value/_build_mat_price.py`
|
||||
돌리기: `./venv/Scripts/python.exe resources/master_data/scripts/_build_mat_price.py`
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
@@ -23,9 +23,11 @@ from __future__ import annotations
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
from _migrate_base import dump_master
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[3]
|
||||
RAW = ROOT / "resources/knowledge/original/원가계산/자재단가/나라장터_시설공통자재_2026-08-14.json"
|
||||
MASTER = ROOT / "resources/data_cost_input_value/mat_price_public_2026-08-14.json"
|
||||
MASTER = ROOT / "resources/master_data/재료_나라장터자재.json"
|
||||
|
||||
#: 값이 안 실린 공시를 가리는 잣대 — 빈 칸·0 은 「값 없음」이다.
|
||||
EMPTY_PRICES = {"", "0", "0.0", "0.00"}
|
||||
@@ -56,7 +58,7 @@ def notice_day(row: dict) -> str:
|
||||
def build() -> dict:
|
||||
raw = json.loads(RAW.read_text(encoding="utf-8"))
|
||||
master = json.loads(MASTER.read_text(encoding="utf-8"))
|
||||
records = master["variables"]["mat_price"]["records"]
|
||||
records = master["줄"]
|
||||
|
||||
history: dict[str, list[dict]] = {}
|
||||
for row in raw:
|
||||
@@ -66,35 +68,34 @@ def build() -> dict:
|
||||
|
||||
repaired, unrecovered = 0, []
|
||||
for record in records:
|
||||
if str(record.get("price_krw")).strip() not in EMPTY_PRICES:
|
||||
if str(record.get("값")).strip() not in EMPTY_PRICES:
|
||||
continue
|
||||
was = notice_day(record | {"nticeDt": record.get("notice_datetime")})
|
||||
adopted = next((r for r in history.get(str(record["item_code"]), ()) if has_price(r)), None)
|
||||
was = notice_day(record | {"nticeDt": record.get("공시일시")})
|
||||
adopted = next((r for r in history.get(str(record["열쇠"]), ()) if has_price(r)), None)
|
||||
if adopted is None:
|
||||
unrecovered.append(
|
||||
{
|
||||
"item_code": record["item_code"],
|
||||
"classification_name": record.get("classification_name", ""),
|
||||
"specification": record.get("specification", ""),
|
||||
"notice_datetime": record.get("notice_datetime", ""),
|
||||
"reason": "이 물품코드의 모든 공시에 값이 없음",
|
||||
"열쇠": record["열쇠"],
|
||||
"이름": record.get("이름", ""),
|
||||
"규격": record.get("규격", ""),
|
||||
"공시일시": record.get("공시일시", ""),
|
||||
"사유": "이 물품코드의 모든 공시에 값이 없음",
|
||||
}
|
||||
)
|
||||
continue
|
||||
record["price_krw"] = int(price_of(adopted))
|
||||
record["notice_datetime"] = str(adopted.get("nticeDt", ""))
|
||||
record["notice_number"] = str(adopted.get("prceNticeNo", ""))
|
||||
record["price_adopted_reason"] = f"{was} 공시에 값이 없어 {notice_day(adopted)} 값을 씀"
|
||||
record["값"] = int(price_of(adopted))
|
||||
record["공시일시"] = str(adopted.get("nticeDt", ""))
|
||||
record["공시번호"] = str(adopted.get("prceNticeNo", ""))
|
||||
record["비고"] = f"{was} 공시에 값이 없어 {notice_day(adopted)} 값을 씀"
|
||||
repaired += 1
|
||||
|
||||
master["selection_policy"] = SELECTION_POLICY
|
||||
master["zero_price_unrecovered"] = {"note": UNRECOVERED_NOTE, "items": unrecovered}
|
||||
master["선정규칙"] = SELECTION_POLICY
|
||||
master["0원미회수"] = {"비고": UNRECOVERED_NOTE, "줄": unrecovered}
|
||||
return {"master": master, "repaired": repaired, "unrecovered": len(unrecovered)}
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
result = build()
|
||||
MASTER.write_text(
|
||||
json.dumps(result["master"], ensure_ascii=False, indent=2) + "\n", encoding="utf-8"
|
||||
)
|
||||
master = result["master"]
|
||||
dump_master(MASTER, {k: v for k, v in master.items() if k != "줄"}, master["줄"])
|
||||
print(f"고친 줄 {result['repaired']} · 못 고친 줄 {result['unrecovered']}")
|
||||
|
||||
@@ -0,0 +1,472 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""1_기초 옛 파일 7 → 새 틀(`_틀.md` 2~4장) 요소 파일 6 옮김 · 대조.
|
||||
|
||||
돌리기: `./venv/Scripts/python.exe resources/master_data/scripts/_migrate_base.py`
|
||||
옛 파일은 `old/` 에서 읽기만 함. 새 파일은 `resources/master_data/` 첫 층에 씀. 값은 바꾸지 않음.
|
||||
`dump_master` 는 `_build_mat_price.py` 도 씀.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import sys
|
||||
from pathlib import Path
|
||||
|
||||
MD = Path(__file__).resolve().parents[1]
|
||||
OLD = MD / "old"
|
||||
|
||||
UNIT = {
|
||||
"KRW/day": "원/일",
|
||||
"KRW/L": "원/L",
|
||||
"KRW/USD": "원/USD",
|
||||
"KRW/JPY100": "원/JPY100",
|
||||
"KRW/EUR": "원/EUR",
|
||||
"KRW/GBP": "원/GBP",
|
||||
"KRW/CNY": "원/CNY",
|
||||
}
|
||||
STATUS = {"published": "공표", "not_published": "미공표"}
|
||||
|
||||
|
||||
def dump_master(path: Path, head: dict, rows: list[dict]) -> None:
|
||||
"""머리는 들여쓰기 2칸 · 줄은 한 줄씩(길면 펼침) · UTF-8 · LF."""
|
||||
out = ["{"]
|
||||
for key, val in head.items():
|
||||
text = json.dumps(val, ensure_ascii=False, indent=2).replace("\n", "\n ")
|
||||
out.append(f" {json.dumps(key, ensure_ascii=False)}: {text},")
|
||||
out.append(' "줄": [')
|
||||
for i, row in enumerate(rows):
|
||||
line = json.dumps(row, ensure_ascii=False, separators=(", ", ": "))
|
||||
if len(line) <= 450:
|
||||
body = "{ " + line[1:-1] + " }"
|
||||
else:
|
||||
body = json.dumps(row, ensure_ascii=False, indent=2).replace("\n", "\n ")
|
||||
out.append(" " + body + ("," if i < len(rows) - 1 else ""))
|
||||
out += [" ]", "}"]
|
||||
path.write_bytes(("\n".join(out) + "\n").encode("utf-8"))
|
||||
|
||||
|
||||
def load(name: str) -> dict:
|
||||
return json.loads((OLD / name).read_text(encoding="utf-8"))
|
||||
|
||||
|
||||
def origin(sources: list[dict]) -> list[dict]:
|
||||
return [{"경로": s["path"], "해시": s["sha256"], "역할": s["role"]} for s in sources]
|
||||
|
||||
|
||||
def pick(rec: dict, allowed: set[str]) -> None:
|
||||
extra = set(rec) - allowed
|
||||
assert not extra, f"모르는 칸 {extra}"
|
||||
|
||||
|
||||
# ── 인력 ────────────────────────────────────────────────────────────────
|
||||
LABOR_EXTRA = { # 옛 칸 → 새 칸
|
||||
"hours_per_day": "일시간",
|
||||
"reliability": "신뢰도",
|
||||
"industry": "업종",
|
||||
"variation_coefficient": "변동계수",
|
||||
"source_flag": "원문기호",
|
||||
}
|
||||
LABOR_KEYS = {
|
||||
"occupation_code",
|
||||
"occupation_name",
|
||||
"unit",
|
||||
"daily_wage_krw",
|
||||
"status",
|
||||
*LABOR_EXTRA,
|
||||
}
|
||||
|
||||
|
||||
def labor_rows(recs: list[dict], origin_name: str) -> list[dict]:
|
||||
rows = []
|
||||
for r in recs:
|
||||
pick(r, LABOR_KEYS)
|
||||
row = {
|
||||
"열쇠": r["occupation_code"],
|
||||
"이름": r["occupation_name"],
|
||||
"규격": "",
|
||||
"단위": UNIT[r["unit"]],
|
||||
"값": r.get("daily_wage_krw"),
|
||||
"출처": f"{origin_name} {r['occupation_code']}",
|
||||
}
|
||||
for old, new in LABOR_EXTRA.items():
|
||||
if old in r:
|
||||
row[new] = r[old]
|
||||
row["상태"] = STATUS[r["status"]]
|
||||
rows.append(row)
|
||||
return rows
|
||||
|
||||
|
||||
def labor_back(rows: list[dict]) -> list[dict]:
|
||||
inv_unit = {v: k for k, v in UNIT.items()}
|
||||
inv_status = {v: k for k, v in STATUS.items()}
|
||||
out = []
|
||||
for w in rows:
|
||||
r = {
|
||||
"occupation_code": w["열쇠"],
|
||||
"occupation_name": w["이름"],
|
||||
"unit": inv_unit[w["단위"]],
|
||||
}
|
||||
for old, new in LABOR_EXTRA.items():
|
||||
if new in w:
|
||||
r[old] = w[new]
|
||||
if w["값"] is not None:
|
||||
r["daily_wage_krw"] = w["값"]
|
||||
r["status"] = inv_status[w["상태"]]
|
||||
out.append(r)
|
||||
return out
|
||||
|
||||
|
||||
# ── 재료 ────────────────────────────────────────────────────────────────
|
||||
MAT_EXTRA = {
|
||||
"classification_code": "분류코드",
|
||||
"notice_datetime": "공시일시",
|
||||
"notice_number": "공시번호",
|
||||
"business_division_code": "사업구분코드",
|
||||
"business_division_name": "사업구분",
|
||||
"vat_basis": "부가세",
|
||||
"price_type": "가격종류",
|
||||
"delivery_condition": "인도조건",
|
||||
"field": "분야",
|
||||
"price_adopted_reason": "비고",
|
||||
}
|
||||
MAT_KEYS = {"item_code", "classification_name", "specification", "unit", "price_krw", *MAT_EXTRA}
|
||||
|
||||
|
||||
def mat_rows(recs: list[dict]) -> list[dict]:
|
||||
rows = []
|
||||
for r in recs:
|
||||
pick(r, MAT_KEYS)
|
||||
row = {
|
||||
"열쇠": r["item_code"],
|
||||
"이름": r["classification_name"],
|
||||
"규격": r["specification"],
|
||||
"단위": r["unit"],
|
||||
"값": r["price_krw"],
|
||||
"출처": f"나라장터자재 {r['item_code']}",
|
||||
}
|
||||
for old, new in MAT_EXTRA.items():
|
||||
if old in r:
|
||||
row[new] = r[old]
|
||||
rows.append(row)
|
||||
return rows
|
||||
|
||||
|
||||
def mat_back(rows: list[dict]) -> list[dict]:
|
||||
inv = {v: k for k, v in MAT_EXTRA.items()}
|
||||
out = []
|
||||
for w in rows:
|
||||
r = {
|
||||
"item_code": w["열쇠"],
|
||||
"classification_name": w["이름"],
|
||||
"specification": w["규격"],
|
||||
"unit": w["단위"],
|
||||
"price_krw": w["값"],
|
||||
}
|
||||
for new, old in inv.items():
|
||||
if new in w:
|
||||
r[old] = w[new]
|
||||
out.append(r)
|
||||
return out
|
||||
|
||||
|
||||
# ── 유가 · 환율 ─────────────────────────────────────────────────────────
|
||||
FUEL = {"oil_gasoline": "휘발유", "oil_diesel": "경유"}
|
||||
FX_NAME = {
|
||||
"fx_usd": "USD",
|
||||
"fx_jpy100": "JPY100",
|
||||
"fx_eur": "EUR",
|
||||
"fx_gbp": "GBP",
|
||||
"fx_cny": "CNY",
|
||||
}
|
||||
|
||||
|
||||
def oil_rows(avg: dict, reg: dict) -> list[dict]:
|
||||
rows = []
|
||||
for var, v in avg["variables"].items():
|
||||
rows.append(
|
||||
{
|
||||
"열쇠": f"{FUEL[var]}:전국평균",
|
||||
"이름": v["source_product_name"],
|
||||
"규격": "",
|
||||
"단위": UNIT[v["unit"]],
|
||||
"값": v["value"],
|
||||
"출처": f"오피넷유가 {v['source_product_code']}",
|
||||
"구분": "전국평균",
|
||||
"지역": "전국평균",
|
||||
"기준일": v["date"],
|
||||
"상품코드": v["source_product_code"],
|
||||
}
|
||||
)
|
||||
for var, v in reg["variables"].items():
|
||||
for r in v["records"]:
|
||||
rows.append(
|
||||
{
|
||||
"열쇠": f"{FUEL[var]}:{r['sido_name']}",
|
||||
"이름": v["source_product_name"],
|
||||
"규격": "",
|
||||
"단위": UNIT[v["unit"]],
|
||||
"값": r["value"],
|
||||
"출처": f"오피넷유가 {v['source_product_code']}",
|
||||
"구분": "시도별",
|
||||
"지역": r["sido_name"],
|
||||
"지역코드": r["sido_code"],
|
||||
"기준일": v["date"],
|
||||
"상품코드": v["source_product_code"],
|
||||
}
|
||||
)
|
||||
return rows
|
||||
|
||||
|
||||
def fx_rows(fx: dict) -> list[dict]:
|
||||
return [
|
||||
{
|
||||
"열쇠": v["source_item_code"],
|
||||
"이름": FX_NAME[var],
|
||||
"규격": "",
|
||||
"단위": UNIT[v["unit"]],
|
||||
"값": v["value"],
|
||||
"출처": f"한국은행환율 {v['source_item_code']}",
|
||||
"기준일": v["date"],
|
||||
}
|
||||
for var, v in fx["variables"].items()
|
||||
]
|
||||
|
||||
|
||||
# ── 요율 ────────────────────────────────────────────────────────────────
|
||||
RATE_NAME = {
|
||||
"rate_sanjae": "산재보험료",
|
||||
"rate_goyong": "고용보험료",
|
||||
"rate_health": "건강보험료",
|
||||
"rate_pension": "국민연금보험료",
|
||||
"rate_care": "노인장기요양보험료",
|
||||
"rate_safety_pct": "산업안전보건관리비",
|
||||
"rate_safety_base": "산업안전보건관리비 기초액",
|
||||
"rate_indirect_labor": "간접노무비",
|
||||
"rate_other_expense": "기타경비",
|
||||
"rate_environment": "환경보전비",
|
||||
"rate_retirement_mutual_aid": "퇴직공제부금비",
|
||||
"rate_wage_claim_contribution": "임금채권보장분담금",
|
||||
"rate_asbestos_contribution": "석면피해구제분담금",
|
||||
"rate_subcontract_payment_guarantee": "하도급대금 지급보증 수수료",
|
||||
"rate_equipment_payment_guarantee": "건설기계대여대금 지급보증 수수료",
|
||||
"rate_performance_guarantee_fee": "공사이행보증 수수료",
|
||||
"rate_overhead": "일반관리비",
|
||||
"rate_profit": "이윤",
|
||||
"rate_vat": "부가가치세",
|
||||
}
|
||||
|
||||
|
||||
def rate_rows(rates: dict) -> list[dict]:
|
||||
assert set(rates["variables"]) == set(RATE_NAME)
|
||||
return [
|
||||
{"열쇠": k, "이름": RATE_NAME[k], "값": v, "출처": "조달청제비율"}
|
||||
for k, v in rates["variables"].items()
|
||||
]
|
||||
|
||||
|
||||
# ── 옮기기 ──────────────────────────────────────────────────────────────
|
||||
F_LC = "1_기초_노임_건설업_대한건설협회_2026-01-01.json"
|
||||
F_LM = "1_기초_노임_제조업_중소기업중앙회_2026-07-01.json"
|
||||
F_OR = "1_기초_유가_시도별_오피넷_2026-09-09.json"
|
||||
F_OA = "1_기초_유가_전국평균_오피넷_2026-08-14.json"
|
||||
F_MT = "1_기초_자재_시설공통_나라장터_2026-08-14.json"
|
||||
F_RT = "1_기초_제비율_토목_조달청_2026-04-13.json"
|
||||
F_FX = "1_기초_환율_일별_한국은행_2026-08-14.json"
|
||||
|
||||
NEW = {
|
||||
"lc": "인력_건설노임.json",
|
||||
"lm": "인력_제조노임.json",
|
||||
"mt": "재료_나라장터자재.json",
|
||||
"oil": "재료_오피넷유가.json",
|
||||
"fx": "환율_한국은행환율.json",
|
||||
"rt": "요율_조달청제비율.json",
|
||||
}
|
||||
|
||||
|
||||
def migrate() -> None:
|
||||
lc, lm, mt = load(F_LC), load(F_LM), load(F_MT)
|
||||
orr, oa, rt, fx = load(F_OR), load(F_OA), load(F_RT), load(F_FX)
|
||||
|
||||
lcv = lc["variables"]["labor_rate"]
|
||||
dump_master(
|
||||
MD / NEW["lc"],
|
||||
{
|
||||
"그룹": "인력",
|
||||
"원문": "건설노임",
|
||||
"판": lc["effective_date"],
|
||||
"공표일": lc["publication_date"],
|
||||
"원천": origin(lc["sources"]),
|
||||
"비고": [lcv["reliability_note"]],
|
||||
},
|
||||
labor_rows(lcv["records"], "건설노임"),
|
||||
)
|
||||
lmv = lm["variables"]["labor_mfg"]
|
||||
dump_master(
|
||||
MD / NEW["lm"],
|
||||
{
|
||||
"그룹": "인력",
|
||||
"원문": "제조노임",
|
||||
"판": lm["effective_date"],
|
||||
"공표일": lm["publication_date"],
|
||||
"조사월": lm["survey_month"],
|
||||
"원천": origin(lm["sources"]),
|
||||
"비고": [lmv["industry_note"]],
|
||||
},
|
||||
labor_rows(lmv["records"], "제조노임"),
|
||||
)
|
||||
dump_master(
|
||||
MD / NEW["mt"],
|
||||
{
|
||||
"그룹": "재료",
|
||||
"원문": "나라장터자재",
|
||||
"판": mt["effective_date"],
|
||||
"원천": origin(mt["sources"]),
|
||||
"선정규칙": mt["selection_policy"],
|
||||
"원천행수": mt["source_row_count"],
|
||||
"제외묶음": mt["excluded_named_groups"],
|
||||
"0원미회수": {
|
||||
"비고": mt["zero_price_unrecovered"]["note"],
|
||||
"줄": mt["zero_price_unrecovered"]["items"],
|
||||
},
|
||||
},
|
||||
mat_rows(mt["variables"]["mat_price"]["records"]),
|
||||
)
|
||||
dump_master(
|
||||
MD / NEW["oil"],
|
||||
{
|
||||
"그룹": "재료",
|
||||
"원문": "오피넷유가",
|
||||
"판": orr["effective_date"],
|
||||
"원천": origin(oa["sources"]) + origin(orr["sources"]),
|
||||
"비고": [orr["note"]],
|
||||
},
|
||||
oil_rows(oa, orr),
|
||||
)
|
||||
dump_master(
|
||||
MD / NEW["fx"],
|
||||
{
|
||||
"그룹": "환율",
|
||||
"원문": "한국은행환율",
|
||||
"판": fx["effective_date"],
|
||||
"원천": origin(fx["sources"]),
|
||||
},
|
||||
fx_rows(fx),
|
||||
)
|
||||
dump_master(
|
||||
MD / NEW["rt"],
|
||||
{
|
||||
"그룹": "요율",
|
||||
"원문": "조달청제비율",
|
||||
"판": rt["effective_date"],
|
||||
"원천": origin(rt["sources"]),
|
||||
"처리규칙": rt["processing_rules"],
|
||||
},
|
||||
rate_rows(rt),
|
||||
)
|
||||
|
||||
|
||||
# ── 대조 ────────────────────────────────────────────────────────────────
|
||||
def new(key: str) -> dict:
|
||||
return json.loads((MD / NEW[key]).read_text(encoding="utf-8"))
|
||||
|
||||
|
||||
def num_sum(vals) -> float:
|
||||
return round(sum(v for v in vals if isinstance(v, (int, float))), 6)
|
||||
|
||||
|
||||
def leaves(o):
|
||||
if isinstance(o, dict):
|
||||
for v in o.values():
|
||||
yield from leaves(v)
|
||||
elif isinstance(o, list):
|
||||
for v in o:
|
||||
yield from leaves(v)
|
||||
elif isinstance(o, (int, float)) and not isinstance(o, bool):
|
||||
yield o
|
||||
|
||||
|
||||
def check() -> bool:
|
||||
res = [] # (이름, 옛 줄, 새 줄, 옛 합, 새 합, 같음)
|
||||
|
||||
def add(name, old_rows, new_rows, old_sum, new_sum, same):
|
||||
res.append((name, len(old_rows), len(new_rows), old_sum, new_sum, same))
|
||||
|
||||
for key, f, v, fn in (
|
||||
("lc", F_LC, "labor_rate", "건설노임"),
|
||||
("lm", F_LM, "labor_mfg", "제조노임"),
|
||||
):
|
||||
old = load(f)["variables"][v]["records"]
|
||||
nw = new(key)["줄"]
|
||||
add(
|
||||
fn,
|
||||
old,
|
||||
nw,
|
||||
num_sum(r.get("daily_wage_krw") for r in old),
|
||||
num_sum(r["값"] for r in nw),
|
||||
labor_back(nw) == old,
|
||||
)
|
||||
old = load(F_MT)["variables"]["mat_price"]["records"]
|
||||
nw = new("mt")["줄"]
|
||||
add(
|
||||
"나라장터자재",
|
||||
old,
|
||||
nw,
|
||||
num_sum(r["price_krw"] for r in old),
|
||||
num_sum(r["값"] for r in nw),
|
||||
mat_back(nw) == old,
|
||||
)
|
||||
oa, orr = load(F_OA), load(F_OR)
|
||||
nw = new("oil")["줄"]
|
||||
old_vals = [v["value"] for v in oa["variables"].values()] + [
|
||||
r["value"] for v in orr["variables"].values() for r in v["records"]
|
||||
]
|
||||
n_old = len(oa["variables"]) + sum(len(v["records"]) for v in orr["variables"].values())
|
||||
keys_ok = len({r["열쇠"] for r in nw}) == len(nw)
|
||||
same = keys_ok and [r["값"] for r in nw] == old_vals and nw == oil_rows(oa, orr)
|
||||
res.append(
|
||||
("오피넷유가", n_old, len(nw), num_sum(old_vals), num_sum(r["값"] for r in nw), same)
|
||||
)
|
||||
fx = load(F_FX)
|
||||
nw = new("fx")["줄"]
|
||||
old_vals = [v["value"] for v in fx["variables"].values()]
|
||||
same = [r["값"] for r in nw] == old_vals and nw == fx_rows(fx)
|
||||
res.append(
|
||||
(
|
||||
"한국은행환율",
|
||||
len(old_vals),
|
||||
len(nw),
|
||||
num_sum(old_vals),
|
||||
num_sum(r["값"] for r in nw),
|
||||
same,
|
||||
)
|
||||
)
|
||||
rt = load(F_RT)
|
||||
nw = new("rt")
|
||||
same = {r["열쇠"]: r["값"] for r in nw["줄"]} == rt["variables"] and nw["처리규칙"] == rt[
|
||||
"processing_rules"
|
||||
]
|
||||
old_sum = num_sum(leaves(rt["variables"]))
|
||||
res.append(
|
||||
(
|
||||
"조달청제비율",
|
||||
len(rt["variables"]),
|
||||
len(nw["줄"]),
|
||||
old_sum,
|
||||
num_sum(leaves([r["값"] for r in nw["줄"]])),
|
||||
same,
|
||||
)
|
||||
)
|
||||
|
||||
print(f"{'파일':<12}{'옛 줄':>7}{'새 줄':>7}{'옛 값합':>16}{'새 값합':>16} 일치")
|
||||
ok = True
|
||||
for name, a, b, sa, sb, same in res:
|
||||
good = a == b and sa == sb and same
|
||||
ok &= good
|
||||
print(f"{name:<12}{a:>7}{b:>7}{sa:>16}{sb:>16} {'예' if good else '아니오'}")
|
||||
return ok
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.stdout.reconfigure(encoding="utf-8")
|
||||
migrate()
|
||||
sys.exit(0 if check() else 1)
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,150 @@
|
||||
{
|
||||
"그룹": "인력",
|
||||
"원문": "건설노임",
|
||||
"판": "2026-01-01",
|
||||
"공표일": "2025-12-31",
|
||||
"원천": [
|
||||
{
|
||||
"경로": "resources/knowledge/original/원가계산/노임단가_건설업_대한건설협회/3. 개별직종 노임단가.md",
|
||||
"해시": "5e8ffba22b3a2c05f58bb0080f4c31e13eaaebf587918096a048ca3852e2e9b3",
|
||||
"역할": "primary"
|
||||
}
|
||||
],
|
||||
"비고": [
|
||||
"reliability = 원문 신뢰도 기호: * 조사현장 5개 미만(적용 시 유의) / ** 미조사(임금적용요령 Ⅱ 참조). 없는 레코드 = 정상 공표. 포설공(1018)·일반기계운전사(1050) 등 임도 빈발 직종 포함 — 프로그램은 경고 표시 권장"
|
||||
],
|
||||
"줄": [
|
||||
{ "열쇠": "1001", "이름": "작업반장", "규격": "", "단위": "원/일", "값": 215907, "출처": "건설노임 1001", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1002", "이름": "보통인부", "규격": "", "단위": "원/일", "값": 172068, "출처": "건설노임 1002", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1003", "이름": "특별인부", "규격": "", "단위": "원/일", "값": 226122, "출처": "건설노임 1003", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1004", "이름": "조력공", "규격": "", "단위": "원/일", "값": 179028, "출처": "건설노임 1004", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1005", "이름": "제도사", "규격": "", "단위": "원/일", "값": 237324, "출처": "건설노임 1005", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1006", "이름": "비계공", "규격": "", "단위": "원/일", "값": 281939, "출처": "건설노임 1006", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1007", "이름": "형틀목공", "규격": "", "단위": "원/일", "값": 275790, "출처": "건설노임 1007", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1008", "이름": "철근공", "규격": "", "단위": "원/일", "값": 268187, "출처": "건설노임 1008", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1009", "이름": "철공", "규격": "", "단위": "원/일", "값": 239808, "출처": "건설노임 1009", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1010", "이름": "철판공", "규격": "", "단위": "원/일", "값": 221481, "출처": "건설노임 1010", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1011", "이름": "철골공", "규격": "", "단위": "원/일", "값": 252641, "출처": "건설노임 1011", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1012", "이름": "용접공", "규격": "", "단위": "원/일", "값": 282536, "출처": "건설노임 1012", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1013", "이름": "콘크리트공", "규격": "", "단위": "원/일", "값": 273540, "출처": "건설노임 1013", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1014", "이름": "보링공", "규격": "", "단위": "원/일", "값": 232562, "출처": "건설노임 1014", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1015", "이름": "착암공", "규격": "", "단위": "원/일", "값": 222306, "출처": "건설노임 1015", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1016", "이름": "화약취급공", "규격": "", "단위": "원/일", "값": 272448, "출처": "건설노임 1016", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1017", "이름": "할석공", "규격": "", "단위": "원/일", "값": 241932, "출처": "건설노임 1017", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1018", "이름": "포설공", "규격": "", "단위": "원/일", "값": 221015, "출처": "건설노임 1018", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1019", "이름": "포장공", "규격": "", "단위": "원/일", "값": 273308, "출처": "건설노임 1019", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1020", "이름": "잠수부", "규격": "", "단위": "원/일", "값": 387342, "출처": "건설노임 1020", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1021", "이름": "조적공", "규격": "", "단위": "원/일", "값": 270807, "출처": "건설노임 1021", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1022", "이름": "견출공", "규격": "", "단위": "원/일", "값": 250903, "출처": "건설노임 1022", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1023", "이름": "건축목공", "규격": "", "단위": "원/일", "값": 277642, "출처": "건설노임 1023", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1024", "이름": "창호공", "규격": "", "단위": "원/일", "값": 247188, "출처": "건설노임 1024", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1025", "이름": "유리공", "규격": "", "단위": "원/일", "값": 253539, "출처": "건설노임 1025", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1026", "이름": "방수공", "규격": "", "단위": "원/일", "값": 228286, "출처": "건설노임 1026", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1027", "이름": "미장공", "규격": "", "단위": "원/일", "값": 277276, "출처": "건설노임 1027", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1028", "이름": "타일공", "규격": "", "단위": "원/일", "값": 290939, "출처": "건설노임 1028", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1029", "이름": "도장공", "규격": "", "단위": "원/일", "값": 263017, "출처": "건설노임 1029", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1030", "이름": "내장공", "규격": "", "단위": "원/일", "값": 256883, "출처": "건설노임 1030", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1031", "이름": "도배공", "규격": "", "단위": "원/일", "값": 227614, "출처": "건설노임 1031", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1032", "이름": "연마공", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 1032", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "1033", "이름": "석공", "규격": "", "단위": "원/일", "값": 268908, "출처": "건설노임 1033", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1034", "이름": "줄눈공", "규격": "", "단위": "원/일", "값": 211653, "출처": "건설노임 1034", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1035", "이름": "판넬조립공", "규격": "", "단위": "원/일", "값": 243121, "출처": "건설노임 1035", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1036", "이름": "지붕잇기공", "규격": "", "단위": "원/일", "값": 233250, "출처": "건설노임 1036", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1037", "이름": "벌목부", "규격": "", "단위": "원/일", "값": 253243, "출처": "건설노임 1037", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1038", "이름": "조경공", "규격": "", "단위": "원/일", "값": 235204, "출처": "건설노임 1038", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1039", "이름": "배관공", "규격": "", "단위": "원/일", "값": 247897, "출처": "건설노임 1039", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1040", "이름": "배관공수도", "규격": "", "단위": "원/일", "값": 262580, "출처": "건설노임 1040", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1041", "이름": "보일러공", "규격": "", "단위": "원/일", "값": 240120, "출처": "건설노임 1041", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1042", "이름": "위생공", "규격": "", "단위": "원/일", "값": 218908, "출처": "건설노임 1042", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1043", "이름": "덕트공", "규격": "", "단위": "원/일", "값": 202472, "출처": "건설노임 1043", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1044", "이름": "보온공", "규격": "", "단위": "원/일", "값": 217012, "출처": "건설노임 1044", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1045", "이름": "인력운반공", "규격": "", "단위": "원/일", "값": 180193, "출처": "건설노임 1045", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1046", "이름": "궤도공", "규격": "", "단위": "원/일", "값": 218933, "출처": "건설노임 1046", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1047", "이름": "건설기계조장", "규격": "", "단위": "원/일", "값": 210909, "출처": "건설노임 1047", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1048", "이름": "건설기계운전사", "규격": "", "단위": "원/일", "값": 283297, "출처": "건설노임 1048", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1049", "이름": "화물차운전사", "규격": "", "단위": "원/일", "값": 238936, "출처": "건설노임 1049", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1050", "이름": "일반기계운전사", "규격": "", "단위": "원/일", "값": 173995, "출처": "건설노임 1050", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1051", "이름": "기계설비공", "규격": "", "단위": "원/일", "값": 241698, "출처": "건설노임 1051", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1052", "이름": "준설선선장", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 1052", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "1053", "이름": "준설선기관사", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 1053", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "1054", "이름": "준설선운전사", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 1054", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "1055", "이름": "선원", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 1055", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "1056", "이름": "플랜트배관공", "규격": "", "단위": "원/일", "값": 320480, "출처": "건설노임 1056", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1057", "이름": "플랜트제관공", "규격": "", "단위": "원/일", "값": 266029, "출처": "건설노임 1057", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1058", "이름": "플랜트용접공", "규격": "", "단위": "원/일", "값": 292640, "출처": "건설노임 1058", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1059", "이름": "플랜트특수용접공", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 1059", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "1060", "이름": "플랜트기계설치공", "규격": "", "단위": "원/일", "값": 230376, "출처": "건설노임 1060", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1061", "이름": "플랜트특별인부", "규격": "", "단위": "원/일", "값": 213074, "출처": "건설노임 1061", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1062", "이름": "플랜트케이블전공", "규격": "", "단위": "원/일", "값": 264269, "출처": "건설노임 1062", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1063", "이름": "플랜트계장공", "규격": "", "단위": "원/일", "값": 204377, "출처": "건설노임 1063", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1064", "이름": "플랜트덕트공", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 1064", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "1065", "이름": "플랜트보온공", "규격": "", "단위": "원/일", "값": 250140, "출처": "건설노임 1065", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1066", "이름": "제철축로공", "규격": "", "단위": "원/일", "값": 362985, "출처": "건설노임 1066", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1067", "이름": "비파괴시험공", "규격": "", "단위": "원/일", "값": 214553, "출처": "건설노임 1067", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1068", "이름": "특급품질관리원", "규격": "", "단위": "원/일", "값": 199588, "출처": "건설노임 1068", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1069", "이름": "고급품질관리원", "규격": "", "단위": "원/일", "값": 197788, "출처": "건설노임 1069", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1070", "이름": "중급품질관리원", "규격": "", "단위": "원/일", "값": 177841, "출처": "건설노임 1070", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "1071", "이름": "초급품질관리원", "규격": "", "단위": "원/일", "값": 149081, "출처": "건설노임 1071", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1072", "이름": "지적기사", "규격": "", "단위": "원/일", "값": 275711, "출처": "건설노임 1072", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1073", "이름": "지적산업기사", "규격": "", "단위": "원/일", "값": 245000, "출처": "건설노임 1073", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1074", "이름": "지적기능사", "규격": "", "단위": "원/일", "값": 178874, "출처": "건설노임 1074", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1075", "이름": "내선전공", "규격": "", "단위": "원/일", "값": 273676, "출처": "건설노임 1075", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1076", "이름": "특고압케이블전공", "규격": "", "단위": "원/일", "값": 440616, "출처": "건설노임 1076", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1077", "이름": "고압케이블전공", "규격": "", "단위": "원/일", "값": 373640, "출처": "건설노임 1077", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1078", "이름": "저압케이블전공", "규격": "", "단위": "원/일", "값": 304156, "출처": "건설노임 1078", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1079", "이름": "송전전공", "규격": "", "단위": "원/일", "값": 638460, "출처": "건설노임 1079", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1080", "이름": "송전활선전공", "규격": "", "단위": "원/일", "값": 675173, "출처": "건설노임 1080", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1081", "이름": "배전전공", "규격": "", "단위": "원/일", "값": 414968, "출처": "건설노임 1081", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1082", "이름": "배전활선전공", "규격": "", "단위": "원/일", "값": 562439, "출처": "건설노임 1082", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1083", "이름": "플랜트전공", "규격": "", "단위": "원/일", "값": 269759, "출처": "건설노임 1083", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1084", "이름": "계장공", "규격": "", "단위": "원/일", "값": 319449, "출처": "건설노임 1084", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1085", "이름": "철도신호공", "규격": "", "단위": "원/일", "값": 310041, "출처": "건설노임 1085", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1086", "이름": "통신내선공", "규격": "", "단위": "원/일", "값": 284880, "출처": "건설노임 1086", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1087", "이름": "통신설비공", "규격": "", "단위": "원/일", "값": 315528, "출처": "건설노임 1087", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1088", "이름": "통신외선공", "규격": "", "단위": "원/일", "값": 408942, "출처": "건설노임 1088", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1089", "이름": "통신케이블공", "규격": "", "단위": "원/일", "값": 436224, "출처": "건설노임 1089", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1090", "이름": "무선안테나공", "규격": "", "단위": "원/일", "값": 356809, "출처": "건설노임 1090", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "1091", "이름": "석면해체공", "규격": "", "단위": "원/일", "값": 204181, "출처": "건설노임 1091", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "2001", "이름": "광케이블설치사", "규격": "", "단위": "원/일", "값": 471349, "출처": "건설노임 2001", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "2002", "이름": "H/W시험사", "규격": "", "단위": "원/일", "값": 393090, "출처": "건설노임 2002", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "2003", "이름": "S/W시험사", "규격": "", "단위": "원/일", "값": 446358, "출처": "건설노임 2003", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "3001", "이름": "도편수", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 3001", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "3002", "이름": "드잡이공", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 3002", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "3003", "이름": "한식목공", "규격": "", "단위": "원/일", "값": 342273, "출처": "건설노임 3003", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "3004", "이름": "한식목공조공", "규격": "", "단위": "원/일", "값": 243009, "출처": "건설노임 3004", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "3005", "이름": "한식석공", "규격": "", "단위": "원/일", "값": 386079, "출처": "건설노임 3005", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "3006", "이름": "한식미장공", "규격": "", "단위": "원/일", "값": 321230, "출처": "건설노임 3006", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "3007", "이름": "한식와공", "규격": "", "단위": "원/일", "값": 333250, "출처": "건설노임 3007", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "3008", "이름": "한식와공조공", "규격": "", "단위": "원/일", "값": 278180, "출처": "건설노임 3008", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "3009", "이름": "목조각공", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 3009", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "3010", "이름": "석조각공", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 3010", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "3011", "이름": "특수화공", "규격": "", "단위": "원/일", "값": 324326, "출처": "건설노임 3011", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "3012", "이름": "화공", "규격": "", "단위": "원/일", "값": 322920, "출처": "건설노임 3012", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "3013", "이름": "드잡이공편수", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 3013", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "3014", "이름": "한식미장공편수", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 3014", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "3015", "이름": "한식와공편수", "규격": "", "단위": "원/일", "값": null, "출처": "건설노임 3015", "일시간": 8, "신뢰도": "**", "상태": "미공표" },
|
||||
{ "열쇠": "3016", "이름": "한식단청공편수", "규격": "", "단위": "원/일", "값": 286887, "출처": "건설노임 3016", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "3017", "이름": "한식석공조공", "규격": "", "단위": "원/일", "값": 321250, "출처": "건설노임 3017", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "3018", "이름": "한식미장공조공", "규격": "", "단위": "원/일", "값": 250000, "출처": "건설노임 3018", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "4001", "이름": "원자력플랜트전공", "규격": "", "단위": "원/일", "값": 221727, "출처": "건설노임 4001", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "4002", "이름": "원자력용접공", "규격": "", "단위": "원/일", "값": 217203, "출처": "건설노임 4002", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "4003", "이름": "원자력기계설치공", "규격": "", "단위": "원/일", "값": 229770, "출처": "건설노임 4003", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "4004", "이름": "원자력품질관리사", "규격": "", "단위": "원/일", "값": 285759, "출처": "건설노임 4004", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5001", "이름": "통신관련기사", "규격": "", "단위": "원/일", "값": 320449, "출처": "건설노임 5001", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5002", "이름": "통신관련산업기사", "규격": "", "단위": "원/일", "값": 304509, "출처": "건설노임 5002", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5003", "이름": "통신관련기능사", "규격": "", "단위": "원/일", "값": 249822, "출처": "건설노임 5003", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5004", "이름": "전기공사기사", "규격": "", "단위": "원/일", "값": 335319, "출처": "건설노임 5004", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5005", "이름": "전기공사산업기사", "규격": "", "단위": "원/일", "값": 294135, "출처": "건설노임 5005", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5006", "이름": "변전전공", "규격": "", "단위": "원/일", "값": 485075, "출처": "건설노임 5006", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5007", "이름": "코킹공", "규격": "", "단위": "원/일", "값": 209131, "출처": "건설노임 5007", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5008", "이름": "특급품질관리기술인", "규격": "", "단위": "원/일", "값": 271869, "출처": "건설노임 5008", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "5009", "이름": "고급품질관리기술인", "규격": "", "단위": "원/일", "값": 220394, "출처": "건설노임 5009", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "5010", "이름": "중급품질관리기술인", "규격": "", "단위": "원/일", "값": 192523, "출처": "건설노임 5010", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5011", "이름": "초급품질관리기술인", "규격": "", "단위": "원/일", "값": 167155, "출처": "건설노임 5011", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5012", "이름": "플로어링마루시공공", "규격": "", "단위": "원/일", "값": 257561, "출처": "건설노임 5012", "일시간": 8, "신뢰도": "*", "상태": "공표" },
|
||||
{ "열쇠": "5013", "이름": "교통정리원", "규격": "", "단위": "원/일", "값": 173784, "출처": "건설노임 5013", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5014", "이름": "철거공", "규격": "", "단위": "원/일", "값": 266743, "출처": "건설노임 5014", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5015", "이름": "흙막이공", "규격": "", "단위": "원/일", "값": 275072, "출처": "건설노임 5015", "일시간": 8, "상태": "공표" },
|
||||
{ "열쇠": "5016", "이름": "전철전공", "규격": "", "단위": "원/일", "값": 426714, "출처": "건설노임 5016", "일시간": 8, "상태": "공표" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,148 @@
|
||||
{
|
||||
"그룹": "인력",
|
||||
"원문": "제조노임",
|
||||
"판": "2026-07-01",
|
||||
"공표일": "2026-06-30",
|
||||
"조사월": "2026-03",
|
||||
"원천": [
|
||||
{
|
||||
"경로": "resources/knowledge/original/원가계산/노임단가_제조업_중소기업중앙회/2026상반기_중소제조업_직종별_임금조사_중소기업중앙회.md",
|
||||
"해시": "01739fd9f698955fc61e66a6848dedf93ccfc1e2ab74bee52201feaab8738530",
|
||||
"역할": "primary"
|
||||
}
|
||||
],
|
||||
"비고": [
|
||||
"⚠ 2026-09-18 **상위업종 누락 바로잡음** — 품질 관리 갈래의 115~123 이 하위업종만 담아 「금속 재료」·「전기· 전자· 기계」·「기타 공학」으로 반쪽이었음. 원문(중소기업중앙회 조사표)은 「품질 관리 / 하위업종」으로 적음. **노임 값은 안 건드림 · 업종 이름만 채움.**"
|
||||
],
|
||||
"줄": [
|
||||
{ "열쇠": "1", "이름": "CAD설계사(기계)", "규격": "", "단위": "원/일", "값": 160065, "출처": "제조노임 1", "업종": "CAD설계", "변동계수": 23, "상태": "공표" },
|
||||
{ "열쇠": "2", "이름": "CAD설계사(회로)", "규격": "", "단위": "원/일", "값": 149344, "출처": "제조노임 2", "업종": "CAD설계", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "3", "이름": "컴퓨터웹디자이너", "규격": "", "단위": "원/일", "값": 120661, "출처": "제조노임 3", "업종": "웹활용", "변동계수": 18, "상태": "공표" },
|
||||
{ "열쇠": "4", "이름": "컴퓨터운용사", "규격": "", "단위": "원/일", "값": 150801, "출처": "제조노임 4", "업종": "컴퓨터운용", "변동계수": 33, "상태": "공표" },
|
||||
{ "열쇠": "5", "이름": "제과제빵떡제조원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 5", "업종": "식품가공", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "6", "이름": "식품가공원", "규격": "", "단위": "원/일", "값": 94481, "출처": "제조노임 6", "업종": "식품가공", "변동계수": 17, "상태": "공표" },
|
||||
{ "열쇠": "7", "이름": "식품가공기계조작원", "규격": "", "단위": "원/일", "값": 102181, "출처": "제조노임 7", "업종": "식품가공", "변동계수": 23, "상태": "공표" },
|
||||
{ "열쇠": "8", "이름": "귀금속보석세공원", "규격": "", "단위": "원/일", "값": 117929, "출처": "제조노임 8", "업종": "귀금속세공", "변동계수": 26, "상태": "공표" },
|
||||
{ "열쇠": "9", "이름": "목재가공기계조작원", "규격": "", "단위": "원/일", "값": 112792, "출처": "제조노임 9", "업종": "제재·제지", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "10", "이름": "목재건조기계조작원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 10", "업종": "제재·제지", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "11", "이름": "펄프종이제조장치조작원", "규격": "", "단위": "원/일", "값": 128597, "출처": "제조노임 11", "업종": "제재·제지", "변동계수": 20, "상태": "공표" },
|
||||
{ "열쇠": "12", "이름": "합판제조원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 12", "업종": "제재·제지", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "13", "이름": "종이제품생산기계조작원", "규격": "", "단위": "원/일", "값": 114106, "출처": "제조노임 13", "업종": "제재·제지", "변동계수": 28, "상태": "공표" },
|
||||
{ "열쇠": "14", "이름": "목제품도장원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 14", "업종": "제재·제지", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "15", "이름": "가구목제품제조원", "규격": "", "단위": "원/일", "값": 107423, "출처": "제조노임 15", "업종": "가구제조", "변동계수": 16, "상태": "공표" },
|
||||
{ "열쇠": "16", "이름": "유리제품생산기계조작원", "규격": "", "단위": "원/일", "값": 114912, "출처": "제조노임 16", "업종": "유리제품", "변동계수": 40, "상태": "공표" },
|
||||
{ "열쇠": "17", "이름": "유리절단및재단원", "규격": "", "단위": "원/일", "값": 95183, "출처": "제조노임 17", "업종": "유리제품", "변동계수": 18, "상태": "공표" },
|
||||
{ "열쇠": "18", "이름": "점토제품생산기계조작원", "규격": "", "단위": "원/일", "값": 102036, "출처": "제조노임 18", "업종": "요업·화학· 콘크리트", "변동계수": 13, "상태": "공표" },
|
||||
{ "열쇠": "19", "이름": "채석및석재절단원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 19", "업종": "요업·화학· 콘크리트", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "20", "이름": "시멘트광물제품생산기계조작원", "규격": "", "단위": "원/일", "값": 136636, "출처": "제조노임 20", "업종": "요업·화학· 콘크리트", "변동계수": 19, "상태": "공표" },
|
||||
{ "열쇠": "21", "이름": "화학제품생산기계조작원", "규격": "", "단위": "원/일", "값": 116889, "출처": "제조노임 21", "업종": "화학·고무· 플라스틱", "변동계수": 18, "상태": "공표" },
|
||||
{ "열쇠": "22", "이름": "플라스틱제품생산기계조작원", "규격": "", "단위": "원/일", "값": 110755, "출처": "제조노임 22", "업종": "화학·고무· 플라스틱", "변동계수": 26, "상태": "공표" },
|
||||
{ "열쇠": "23", "이름": "고무제품생산기계조작원", "규격": "", "단위": "원/일", "값": 103486, "출처": "제조노임 23", "업종": "화학·고무· 플라스틱", "변동계수": 29, "상태": "공표" },
|
||||
{ "열쇠": "24", "이름": "고무·합성수지·도료배합원", "규격": "", "단위": "원/일", "값": 108471, "출처": "제조노임 24", "업종": "화학·고무· 플라스틱", "변동계수": 19, "상태": "공표" },
|
||||
{ "열쇠": "25", "이름": "유약·점토제품원료배합원", "규격": "", "단위": "원/일", "값": 114287, "출처": "제조노임 25", "업종": "화학·고무· 플라스틱", "변동계수": 18, "상태": "공표" },
|
||||
{ "열쇠": "26", "이름": "시멘트·아스콘배합원", "규격": "", "단위": "원/일", "값": 131875, "출처": "제조노임 26", "업종": "화학·고무· 플라스틱", "변동계수": 18, "상태": "공표" },
|
||||
{ "열쇠": "27", "이름": "소성로조작원", "규격": "", "단위": "원/일", "값": 112080, "출처": "제조노임 27", "업종": "화학·고무· 플라스틱", "변동계수": 7, "상태": "공표" },
|
||||
{ "열쇠": "28", "이름": "세척원", "규격": "", "단위": "원/일", "값": 91181, "출처": "제조노임 28", "업종": "세척", "변동계수": 16, "상태": "공표" },
|
||||
{ "열쇠": "29", "이름": "전자조판원", "규격": "", "단위": "원/일", "값": 106954, "출처": "제조노임 29", "업종": "출판․인쇄", "변동계수": 16, "상태": "공표" },
|
||||
{ "열쇠": "30", "이름": "편집교정사", "규격": "", "단위": "원/일", "값": 99874, "출처": "제조노임 30", "업종": "출판․인쇄", "변동계수": 17, "상태": "공표" },
|
||||
{ "열쇠": "31", "이름": "종이및합성수지인쇄기계조작원", "규격": "", "단위": "원/일", "값": 121205, "출처": "제조노임 31", "업종": "출판․인쇄", "변동계수": 22, "상태": "공표" },
|
||||
{ "열쇠": "32", "이름": "인쇄기능원", "규격": "", "단위": "원/일", "값": 127289, "출처": "제조노임 32", "업종": "출판․인쇄", "변동계수": 25, "상태": "공표" },
|
||||
{ "열쇠": "33", "이름": "연포장재접합원", "규격": "", "단위": "원/일", "값": 144957, "출처": "제조노임 33", "업종": "출판․인쇄", "변동계수": 17, "상태": "공표" },
|
||||
{ "열쇠": "34", "이름": "방적기계(섬유기계)조작원", "규격": "", "단위": "원/일", "값": 104566, "출처": "제조노임 34", "업종": "방직․의류", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "35", "이름": "섬유기계정비원", "규격": "", "단위": "원/일", "값": 128944, "출처": "제조노임 35", "업종": "방직․의류", "변동계수": 28, "상태": "공표" },
|
||||
{ "열쇠": "36", "이름": "직조기조작원", "규격": "", "단위": "원/일", "값": 107243, "출처": "제조노임 36", "업종": "방직․의류", "변동계수": 25, "상태": "공표" },
|
||||
{ "열쇠": "37", "이름": "편직기조작원", "규격": "", "단위": "원/일", "값": 118291, "출처": "제조노임 37", "업종": "방직․의류", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "38", "이름": "염색기계조작원", "규격": "", "단위": "원/일", "값": 115118, "출처": "제조노임 38", "업종": "방직․의류", "변동계수": 18, "상태": "공표" },
|
||||
{ "열쇠": "39", "이름": "재단사", "규격": "", "단위": "원/일", "값": 114472, "출처": "제조노임 39", "업종": "방직․의류", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "40", "이름": "패턴사", "규격": "", "단위": "원/일", "값": 147217, "출처": "제조노임 40", "업종": "방직․의류", "변동계수": 26, "상태": "공표" },
|
||||
{ "열쇠": "41", "이름": "재봉사", "규격": "", "단위": "원/일", "값": 106254, "출처": "제조노임 41", "업종": "방직․의류", "변동계수": 28, "상태": "공표" },
|
||||
{ "열쇠": "42", "이름": "재봉기능원", "규격": "", "단위": "원/일", "값": 90475, "출처": "제조노임 42", "업종": "방직․의류", "변동계수": 13, "상태": "공표" },
|
||||
{ "열쇠": "43", "이름": "모피가죽제조원", "규격": "", "단위": "원/일", "값": 91534, "출처": "제조노임 43", "업종": "모피․피혁", "변동계수": 11, "상태": "공표" },
|
||||
{ "열쇠": "44", "이름": "제화원", "규격": "", "단위": "원/일", "값": 104096, "출처": "제조노임 44", "업종": "제화", "변동계수": 16, "상태": "공표" },
|
||||
{ "열쇠": "45", "이름": "신발제조기조작원", "규격": "", "단위": "원/일", "값": 87798, "출처": "제조노임 45", "업종": "제화", "변동계수": 7, "상태": "공표" },
|
||||
{ "열쇠": "46", "이름": "판금원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 46", "업종": "금속가공", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "47", "이름": "제관원", "규격": "", "단위": "원/일", "값": 119113, "출처": "제조노임 47", "업종": "금속가공", "변동계수": 28, "상태": "공표" },
|
||||
{ "열쇠": "48", "이름": "단조원", "규격": "", "단위": "원/일", "값": 114828, "출처": "제조노임 48", "업종": "금속가공", "변동계수": 31, "상태": "공표" },
|
||||
{ "열쇠": "49", "이름": "주물(주조)원", "규격": "", "단위": "원/일", "값": 115294, "출처": "제조노임 49", "업종": "금속가공", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "50", "이름": "용접원", "규격": "", "단위": "원/일", "값": 124879, "출처": "제조노임 50", "업종": "금속가공", "변동계수": 25, "상태": "공표" },
|
||||
{ "열쇠": "51", "이름": "목형원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 51", "업종": "금속가공", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "52", "이름": "금형원", "규격": "", "단위": "원/일", "값": 127946, "출처": "제조노임 52", "업종": "금속가공", "변동계수": 24, "상태": "공표" },
|
||||
{ "열쇠": "53", "이름": "다이캐스트원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 53", "업종": "금속가공", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "54", "이름": "조형원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 54", "업종": "금속가공", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "55", "이름": "절곡원", "규격": "", "단위": "원/일", "값": 108555, "출처": "제조노임 55", "업종": "금속가공", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "56", "이름": "압연원", "규격": "", "단위": "원/일", "값": 109472, "출처": "제조노임 56", "업종": "금속가공", "변동계수": 14, "상태": "공표" },
|
||||
{ "열쇠": "57", "이름": "열처리원", "규격": "", "단위": "원/일", "값": 114461, "출처": "제조노임 57", "업종": "금속가공", "변동계수": 19, "상태": "공표" },
|
||||
{ "열쇠": "58", "이름": "용해원", "규격": "", "단위": "원/일", "값": 129411, "출처": "제조노임 58", "업종": "금속가공", "변동계수": 30, "상태": "공표" },
|
||||
{ "열쇠": "59", "이름": "합금원", "규격": "", "단위": "원/일", "값": 99053, "출처": "제조노임 59", "업종": "금속가공", "변동계수": 6, "상태": "공표" },
|
||||
{ "열쇠": "60", "이름": "절단원", "규격": "", "단위": "원/일", "값": 118825, "출처": "제조노임 60", "업종": "금속가공", "변동계수": 27, "상태": "공표" },
|
||||
{ "열쇠": "61", "이름": "권취원", "규격": "", "단위": "원/일", "값": 99762, "출처": "제조노임 61", "업종": "금속가공", "변동계수": 28, "상태": "공표" },
|
||||
{ "열쇠": "62", "이름": "수동연마원", "규격": "", "단위": "원/일", "값": 114486, "출처": "제조노임 62", "업종": "금속가공", "변동계수": 26, "상태": "공표" },
|
||||
{ "열쇠": "63", "이름": "전선원", "규격": "", "단위": "원/일", "값": 89755, "출처": "제조노임 63", "업종": "금속가공", "변동계수": 11, "상태": "공표" },
|
||||
{ "열쇠": "64", "이름": "절연원", "규격": "", "단위": "원/일", "값": 96924, "출처": "제조노임 64", "업종": "금속가공", "변동계수": 13, "상태": "공표" },
|
||||
{ "열쇠": "65", "이름": "도장원(취부)", "규격": "", "단위": "원/일", "값": 116939, "출처": "제조노임 65", "업종": "도장 ․ 도금", "변동계수": 19, "상태": "공표" },
|
||||
{ "열쇠": "66", "이름": "전기도금원", "규격": "", "단위": "원/일", "값": 112340, "출처": "제조노임 66", "업종": "도장 ․ 도금", "변동계수": 15, "상태": "공표" },
|
||||
{ "열쇠": "67", "이름": "피복원", "규격": "", "단위": "원/일", "값": 96298, "출처": "제조노임 67", "업종": "도장 ․ 도금", "변동계수": 16, "상태": "공표" },
|
||||
{ "열쇠": "68", "이름": "합성수지피막원", "규격": "", "단위": "원/일", "값": 93356, "출처": "제조노임 68", "업종": "도장 ․ 도금", "변동계수": 13, "상태": "공표" },
|
||||
{ "열쇠": "69", "이름": "금속교정원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 69", "업종": "교정", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "70", "이름": "선반기조작원", "규격": "", "단위": "원/일", "값": 123489, "출처": "제조노임 70", "업종": "공작기계 조작", "변동계수": 27, "상태": "공표" },
|
||||
{ "열쇠": "71", "이름": "드릴링기조작원", "규격": "", "단위": "원/일", "값": 101336, "출처": "제조노임 71", "업종": "공작기계 조작", "변동계수": 17, "상태": "공표" },
|
||||
{ "열쇠": "72", "이름": "쇠톱기조작원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 72", "업종": "공작기계 조작", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "73", "이름": "벤딩머쉰조작원", "규격": "", "단위": "원/일", "값": 104512, "출처": "제조노임 73", "업종": "공작기계 조작", "변동계수": 22, "상태": "공표" },
|
||||
{ "열쇠": "74", "이름": "프레나기조작원", "규격": "", "단위": "원/일", "값": 103338, "출처": "제조노임 74", "업종": "공작기계 조작", "변동계수": 23, "상태": "공표" },
|
||||
{ "열쇠": "75", "이름": "레이저광선원", "규격": "", "단위": "원/일", "값": 119138, "출처": "제조노임 75", "업종": "공작기계 조작", "변동계수": 5, "상태": "공표" },
|
||||
{ "열쇠": "76", "이름": "신선기조작원", "규격": "", "단위": "원/일", "값": 99704, "출처": "제조노임 76", "업종": "공작기계 조작", "변동계수": 14, "상태": "공표" },
|
||||
{ "열쇠": "77", "이름": "용융도금기조작원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 77", "업종": "공작기계 조작", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "78", "이름": "플라스틱사출기조작원", "규격": "", "단위": "원/일", "값": 107966, "출처": "제조노임 78", "업종": "공작기계 조작", "변동계수": 26, "상태": "공표" },
|
||||
{ "열쇠": "79", "이름": "압출기조작원", "규격": "", "단위": "원/일", "값": 115520, "출처": "제조노임 79", "업종": "공작기계 조작", "변동계수": 30, "상태": "공표" },
|
||||
{ "열쇠": "80", "이름": "인발기조작원", "규격": "", "단위": "원/일", "값": 105429, "출처": "제조노임 80", "업종": "공작기계 조작", "변동계수": 27, "상태": "공표" },
|
||||
{ "열쇠": "81", "이름": "태핑기조작원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 81", "업종": "공작기계 조작", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "82", "이름": "연삭기및연마기조작원", "규격": "", "단위": "원/일", "값": 116506, "출처": "제조노임 82", "업종": "공작기계 조작", "변동계수": 24, "상태": "공표" },
|
||||
{ "열쇠": "83", "이름": "모형조각기조작원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 83", "업종": "공작기계 조작", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "84", "이름": "머쉬닝센터조작원", "규격": "", "단위": "원/일", "값": 119851, "출처": "제조노임 84", "업종": "공작기계 조작", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "85", "이름": "기타공작기계조작원", "규격": "", "단위": "원/일", "값": 124222, "출처": "제조노임 85", "업종": "공작기계 조작", "변동계수": 22, "상태": "공표" },
|
||||
{ "열쇠": "86", "이름": "기계기술자", "규격": "", "단위": "원/일", "값": 146084, "출처": "제조노임 86", "업종": "기계기술", "변동계수": 16, "상태": "공표" },
|
||||
{ "열쇠": "87", "이름": "로봇기술자", "규격": "", "단위": "원/일", "값": 136895, "출처": "제조노임 87", "업종": "기계기술", "변동계수": 19, "상태": "공표" },
|
||||
{ "열쇠": "88", "이름": "기계장치정비원", "규격": "", "단위": "원/일", "값": 139942, "출처": "제조노임 88", "업종": "정비․수리", "변동계수": 26, "상태": "공표" },
|
||||
{ "열쇠": "89", "이름": "보일러설치정비원", "규격": "", "단위": "원/일", "값": 119312, "출처": "제조노임 89", "업종": "정비․수리", "변동계수": 14, "상태": "공표" },
|
||||
{ "열쇠": "90", "이름": "전기전자설비정비원", "규격": "", "단위": "원/일", "값": 137584, "출처": "제조노임 90", "업종": "정비․수리", "변동계수": 26, "상태": "공표" },
|
||||
{ "열쇠": "91", "이름": "일반기계수리원", "규격": "", "단위": "원/일", "값": 134065, "출처": "제조노임 91", "업종": "정비․수리", "변동계수": 20, "상태": "공표" },
|
||||
{ "열쇠": "92", "이름": "전기및정밀기기수리원", "규격": "", "단위": "원/일", "값": 138265, "출처": "제조노임 92", "업종": "정비․수리", "변동계수": 18, "상태": "공표" },
|
||||
{ "열쇠": "93", "이름": "공업배관원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 93", "업종": "배관", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "94", "이름": "폐수처리장치조작원", "규격": "", "단위": "원/일", "값": 136252, "출처": "제조노임 94", "업종": "폐수정화", "변동계수": 22, "상태": "공표" },
|
||||
{ "열쇠": "95", "이름": "전기기사", "규격": "", "단위": "원/일", "값": 158759, "출처": "제조노임 95", "업종": "전기", "변동계수": 28, "상태": "공표" },
|
||||
{ "열쇠": "96", "이름": "전기산업기사", "규격": "", "단위": "원/일", "값": 135437, "출처": "제조노임 96", "업종": "전기", "변동계수": 46, "상태": "공표" },
|
||||
{ "열쇠": "97", "이름": "전기기능사", "규격": "", "단위": "원/일", "값": 132608, "출처": "제조노임 97", "업종": "전기", "변동계수": 28, "상태": "공표" },
|
||||
{ "열쇠": "98", "이름": "전자제품조립원", "규격": "", "단위": "원/일", "값": 103690, "출처": "제조노임 98", "업종": "조립작업", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "99", "이름": "전기기계조립원", "규격": "", "단위": "원/일", "값": 116674, "출처": "제조노임 99", "업종": "조립작업", "변동계수": 29, "상태": "공표" },
|
||||
{ "열쇠": "100", "이름": "고무플라스틱제품조립원", "규격": "", "단위": "원/일", "값": 94944, "출처": "제조노임 100", "업종": "조립작업", "변동계수": 19, "상태": "공표" },
|
||||
{ "열쇠": "101", "이름": "경기계조립원", "규격": "", "단위": "원/일", "값": 129158, "출처": "제조노임 101", "업종": "조립작업", "변동계수": 28, "상태": "공표" },
|
||||
{ "열쇠": "102", "이름": "중기계조립원", "규격": "", "단위": "원/일", "값": 134081, "출처": "제조노임 102", "업종": "조립작업", "변동계수": 36, "상태": "공표" },
|
||||
{ "열쇠": "103", "이름": "통신기계조립원", "규격": "", "단위": "원/일", "값": 110853, "출처": "제조노임 103", "업종": "조립작업", "변동계수": 24, "상태": "공표" },
|
||||
{ "열쇠": "104", "이름": "벨트콘베이어작업원", "규격": "", "단위": "원/일", "값": null, "출처": "제조노임 104", "업종": "조립작업", "원문기호": "*", "상태": "미공표" },
|
||||
{ "열쇠": "105", "이름": "부품조립원", "규격": "", "단위": "원/일", "값": 110036, "출처": "제조노임 105", "업종": "조립작업", "변동계수": 24, "상태": "공표" },
|
||||
{ "열쇠": "106", "이름": "제품검사및조정원", "규격": "", "단위": "원/일", "값": 109491, "출처": "제조노임 106", "업종": "제품검사․ 마감", "변동계수": 24, "상태": "공표" },
|
||||
{ "열쇠": "107", "이름": "상표부착원", "규격": "", "단위": "원/일", "값": 95538, "출처": "제조노임 107", "업종": "제품검사․ 마감", "변동계수": 15, "상태": "공표" },
|
||||
{ "열쇠": "108", "이름": "기계물품포장원", "규격": "", "단위": "원/일", "값": 101927, "출처": "제조노임 108", "업종": "포장", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "109", "이름": "수동물품포장원", "규격": "", "단위": "원/일", "값": 104303, "출처": "제조노임 109", "업종": "포장", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "110", "이름": "목재포장원", "규격": "", "단위": "원/일", "값": 97332, "출처": "제조노임 110", "업종": "포장", "변동계수": 13, "상태": "공표" },
|
||||
{ "열쇠": "111", "이름": "철강포장원", "규격": "", "단위": "원/일", "값": 94994, "출처": "제조노임 111", "업종": "포장", "변동계수": 13, "상태": "공표" },
|
||||
{ "열쇠": "112", "이름": "화학공학품질관리사", "규격": "", "단위": "원/일", "값": 174040, "출처": "제조노임 112", "업종": "품질 관리 / 화학 공학", "변동계수": 40, "상태": "공표" },
|
||||
{ "열쇠": "113", "이름": "화학공학품질관리원", "규격": "", "단위": "원/일", "값": 137860, "출처": "제조노임 113", "업종": "품질 관리 / 화학 공학", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "114", "이름": "화학공학제품시험원", "규격": "", "단위": "원/일", "값": 115318, "출처": "제조노임 114", "업종": "품질 관리 / 화학 공학", "변동계수": 23, "상태": "공표" },
|
||||
{ "열쇠": "115", "이름": "금속재료품질관리사", "규격": "", "단위": "원/일", "값": 164926, "출처": "제조노임 115", "업종": "품질 관리 / 금속 재료", "변동계수": 17, "상태": "공표" },
|
||||
{ "열쇠": "116", "이름": "금속재료품질관리원", "규격": "", "단위": "원/일", "값": 140458, "출처": "제조노임 116", "업종": "품질 관리 / 금속 재료", "변동계수": 26, "상태": "공표" },
|
||||
{ "열쇠": "117", "이름": "금속재료제품시험원", "규격": "", "단위": "원/일", "값": 98202, "출처": "제조노임 117", "업종": "품질 관리 / 금속 재료", "변동계수": 17, "상태": "공표" },
|
||||
{ "열쇠": "118", "이름": "전기·전자및기계품질관리사", "규격": "", "단위": "원/일", "값": 166228, "출처": "제조노임 118", "업종": "품질 관리 / 전기· 전자· 기계", "변동계수": 31, "상태": "공표" },
|
||||
{ "열쇠": "119", "이름": "전기·전자및기계품질관리원", "규격": "", "단위": "원/일", "값": 136083, "출처": "제조노임 119", "업종": "품질 관리 / 전기· 전자· 기계", "변동계수": 21, "상태": "공표" },
|
||||
{ "열쇠": "120", "이름": "전기·전자및기계제품시험원", "규격": "", "단위": "원/일", "값": 123943, "출처": "제조노임 120", "업종": "품질 관리 / 전기· 전자· 기계", "변동계수": 15, "상태": "공표" },
|
||||
{ "열쇠": "121", "이름": "기타공학품질관리사", "규격": "", "단위": "원/일", "값": 152022, "출처": "제조노임 121", "업종": "품질 관리 / 기타 공학", "변동계수": 23, "상태": "공표" },
|
||||
{ "열쇠": "122", "이름": "기타공학품질관리원", "규격": "", "단위": "원/일", "값": 127016, "출처": "제조노임 122", "업종": "품질 관리 / 기타 공학", "변동계수": 24, "상태": "공표" },
|
||||
{ "열쇠": "123", "이름": "기타공학제품시험원", "규격": "", "단위": "원/일", "값": 151884, "출처": "제조노임 123", "업종": "품질 관리 / 기타 공학", "변동계수": 30, "상태": "공표" },
|
||||
{ "열쇠": "124", "이름": "제품하역적재원", "규격": "", "단위": "원/일", "값": 112956, "출처": "제조노임 124", "업종": "하역․적재․ 이송", "변동계수": 23, "상태": "공표" },
|
||||
{ "열쇠": "125", "이름": "내부특수차운전원", "규격": "", "단위": "원/일", "값": 116078, "출처": "제조노임 125", "업종": "하역․적재․ 이송", "변동계수": 25, "상태": "공표" },
|
||||
{ "열쇠": "126", "이름": "외부특수차운전원", "규격": "", "단위": "원/일", "값": 122773, "출처": "제조노임 126", "업종": "하역․적재․ 이송", "변동계수": 25, "상태": "공표" },
|
||||
{ "열쇠": "127", "이름": "단순노무종사원", "규격": "", "단위": "원/일", "값": 95767, "출처": "제조노임 127", "업종": "단순노무", "변동계수": 16, "상태": "공표" },
|
||||
{ "열쇠": "128", "이름": "안전관리사", "규격": "", "단위": "원/일", "값": 149611, "출처": "제조노임 128", "업종": "안 전", "변동계수": 26, "상태": "공표" },
|
||||
{ "열쇠": "129", "이름": "작업반장", "규격": "", "단위": "원/일", "값": 147122, "출처": "제조노임 129", "업종": "작업반장", "변동계수": 32, "상태": "공표" }
|
||||
]
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"그룹": "재료",
|
||||
"원문": "오피넷유가",
|
||||
"판": "2026-09-09",
|
||||
"원천": [
|
||||
{
|
||||
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_전국평균_2026-08-14.json",
|
||||
"해시": "3726397c89108ca5d98b65c0bc615443d02c6fe84794bd95937dabe46464a747",
|
||||
"역할": "primary"
|
||||
},
|
||||
{
|
||||
"경로": "resources/knowledge/original/원가계산/유가_오피넷/유가_시도별_2026-09-09.json",
|
||||
"해시": "6f1b58101fbe57be402d44582763ca1d54aea8d9bb5ee9b85b38bdeea2d4e439",
|
||||
"역할": "primary"
|
||||
}
|
||||
],
|
||||
"비고": [
|
||||
"시도별 유가 — 품셈 8-1-7 5호 「유류가격은 해당지역의 가격으로 한다」. 코드 00(전국)은 원문 그대로 두되 지역 선택지에서는 전국평균 판이 맡는다. ⚠ 원천이 시도를 17줄로 주는데 그 가름이 행정구역과 다르다 — 코드 20 이 「전남광주」 한 줄이고 07(전남)·16(광주)은 아예 없다. 원문 이름을 그대로 두고 우리가 쪼개지 않는다."
|
||||
],
|
||||
"줄": [
|
||||
{ "열쇠": "휘발유:전국평균", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1863.25, "출처": "오피넷유가 B027", "구분": "전국평균", "지역": "전국평균", "기준일": "2026-08-14", "상품코드": "B027" },
|
||||
{ "열쇠": "경유:전국평균", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1846.39, "출처": "오피넷유가 D047", "구분": "전국평균", "지역": "전국평균", "기준일": "2026-08-14", "상품코드": "D047" },
|
||||
{ "열쇠": "휘발유:전국", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1858.93, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "전국", "지역코드": "00", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:서울", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1905.02, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "서울", "지역코드": "01", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:경기", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1855.78, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "경기", "지역코드": "02", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:강원", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1870.23, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "강원", "지역코드": "03", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:충북", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1866.12, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "충북", "지역코드": "04", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:충남", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1864.78, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "충남", "지역코드": "05", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:전북", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1859.7, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "전북", "지역코드": "06", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:경북", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1852.71, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "경북", "지역코드": "08", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:경남", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1854.71, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "경남", "지역코드": "09", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:부산", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1842.66, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "부산", "지역코드": "10", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:제주", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1889.27, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "제주", "지역코드": "11", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:대구", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1831.78, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "대구", "지역코드": "14", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:인천", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1845.64, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "인천", "지역코드": "15", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:대전", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1836.79, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "대전", "지역코드": "17", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:울산", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1838.49, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "울산", "지역코드": "18", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:세종", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1855.8, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "세종", "지역코드": "19", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "휘발유:전남광주", "이름": "휘발유", "규격": "", "단위": "원/L", "값": 1862.28, "출처": "오피넷유가 B027", "구분": "시도별", "지역": "전남광주", "지역코드": "20", "기준일": "2026-09-09", "상품코드": "B027" },
|
||||
{ "열쇠": "경유:전국", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1843.79, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "전국", "지역코드": "00", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:서울", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1886.15, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "서울", "지역코드": "01", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:경기", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1838.22, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "경기", "지역코드": "02", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:강원", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1859.9, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "강원", "지역코드": "03", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:충북", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1851.55, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "충북", "지역코드": "04", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:충남", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1850.08, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "충남", "지역코드": "05", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:전북", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1846.86, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "전북", "지역코드": "06", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:경북", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1838.1, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "경북", "지역코드": "08", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:경남", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1837.71, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "경남", "지역코드": "09", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:부산", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1825.55, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "부산", "지역코드": "10", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:제주", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1869.16, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "제주", "지역코드": "11", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:대구", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1815.72, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "대구", "지역코드": "14", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:인천", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1829.14, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "인천", "지역코드": "15", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:대전", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1824.58, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "대전", "지역코드": "17", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:울산", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1826.63, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "울산", "지역코드": "18", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:세종", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1841.72, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "세종", "지역코드": "19", "기준일": "2026-09-09", "상품코드": "D047" },
|
||||
{ "열쇠": "경유:전남광주", "이름": "자동차용경유", "규격": "", "단위": "원/L", "값": 1850.47, "출처": "오피넷유가 D047", "구분": "시도별", "지역": "전남광주", "지역코드": "20", "기준일": "2026-09-09", "상품코드": "D047" }
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"그룹": "환율",
|
||||
"원문": "한국은행환율",
|
||||
"판": "2026-08-14",
|
||||
"원천": [
|
||||
{
|
||||
"경로": "resources/knowledge/original/원가계산/환율_한국은행ECOS/환율_일별_20260101_2026-08-14.csv",
|
||||
"해시": "36a9684af9d6b4a59c3d9c96beec2d75d1d8ad3f01b6af21f078f39fa1d5ffbd",
|
||||
"역할": "primary"
|
||||
}
|
||||
],
|
||||
"줄": [
|
||||
{ "열쇠": "0000001", "이름": "USD", "규격": "", "단위": "원/USD", "값": 1414.9, "출처": "한국은행환율 0000001", "기준일": "2026-08-14" },
|
||||
{ "열쇠": "0000002", "이름": "JPY100", "규격": "", "단위": "원/JPY100", "값": 887.33, "출처": "한국은행환율 0000002", "기준일": "2026-08-14" },
|
||||
{ "열쇠": "0000003", "이름": "EUR", "규격": "", "단위": "원/EUR", "값": 1631.87, "출처": "한국은행환율 0000003", "기준일": "2026-08-14" },
|
||||
{ "열쇠": "0000012", "이름": "GBP", "규격": "", "단위": "원/GBP", "값": 1908.7, "출처": "한국은행환율 0000012", "기준일": "2026-08-14" },
|
||||
{ "열쇠": "0000053", "이름": "CNY", "규격": "", "단위": "원/CNY", "값": 209.75, "출처": "한국은행환율 0000053", "기준일": "2026-08-14" }
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user