diff --git a/import_reports/2022년_3회_image_required.md b/import_reports/2022년_3회_image_required.md new file mode 100644 index 0000000..55c719f --- /dev/null +++ b/import_reports/2022년_3회_image_required.md @@ -0,0 +1,9 @@ +# 2022년 3회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- missing_png — 0건 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- diff --git a/import_reports/2023년_1회_image_required.md b/import_reports/2023년_1회_image_required.md new file mode 100644 index 0000000..aafec3b --- /dev/null +++ b/import_reports/2023년_1회_image_required.md @@ -0,0 +1,9 @@ +# 2023년 1회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- missing_png — 0건 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- diff --git a/import_reports/2023년_2회_image_required.md b/import_reports/2023년_2회_image_required.md new file mode 100644 index 0000000..cbe676e --- /dev/null +++ b/import_reports/2023년_2회_image_required.md @@ -0,0 +1,27 @@ +# 2023년 2회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- **missing_png — 2건 ⚠** (이 항목이 있으면 apply 금지) + - 15번 / 가스유체역학 — 15.png 필요 + - 95번 / 가스계측기기 — 95.png 필요 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- + +## 누락 (missing_png) — 2건 ⚠ + +### 15번 / 가스유체역학 / 압축성 유동 / 수렴-발산 노즐 +- md: /Users/hyungiahn/Desktop/가스기사/2023년 2회/01 가스유체역학/15.md +- png: MISSING (15.png) +- 설명: 수렴-발산 노즐(Throat 포함) 그래프, P/P0 vs L 곡선과 a~k 점, gg', hh' 충격파 표시. +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 95번 / 가스계측기기 / 자동제어 / 제어동작 +- md: /Users/hyungiahn/Desktop/가스기사/2023년 2회/05 가스계측기기/95.md +- png: MISSING (95.png) +- 설명: 입력 신호 그래프(시간 비례 ramp)와 출력 신호 그래프(일정값 step) 2개. +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 diff --git a/import_reports/2023년_3회_image_required.md b/import_reports/2023년_3회_image_required.md new file mode 100644 index 0000000..5428df1 --- /dev/null +++ b/import_reports/2023년_3회_image_required.md @@ -0,0 +1,43 @@ +# 2023년 3회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- **missing_png — 4건 ⚠** (이 항목이 있으면 apply 금지) + - 2번 / 가스유체역학 — 2.png 필요 + - 5번 / 가스유체역학 — 5.png 필요 + - 7번 / 가스유체역학 — 7.png 필요 + - 38번 / 연소공학 — 38.png 필요 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- + +## 누락 (missing_png) — 4건 ⚠ + +### 2번 / 가스유체역학 / 경사마노미터·차압 (`01_fluid/02_pressure/14_경사마노미터_개념.md` 참고) +- md: /Users/hyungiahn/Desktop/가스기사/2023년 3회/01 가스유체역학/2.md +- png: MISSING (2.png) +- 설명: 경사 마노미터 그림. +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 5번 / 가스유체역학 / 축소-확대 노즐·임계 (`01_fluid/06_dynamics/14_노즐_임계_개념.md` 참고) +- md: /Users/hyungiahn/Desktop/가스기사/2023년 3회/01 가스유체역학/5.md +- png: MISSING (5.png) +- 설명: 축소-확대 노즐 P/P₀ 곡선 그림 (A·B·C·D·X). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 7번 / 가스유체역학 / 마노미터·압력차 (`01_fluid/02_pressure/15_마노미터_개념.md` 참고) +- md: /Users/hyungiahn/Desktop/가스기사/2023년 3회/01 가스유체역학/7.md +- png: MISSING (7.png) +- 설명: 3 유체 마노미터 그림 (γ₁·γ₂·γ₃, a·b·c). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 38번 / 연소공학 / 정수압·층상 (`02_combustion/02_thermodynamics/22_정수압_개념.md` 참고) +- md: /Users/hyungiahn/Desktop/가스기사/2023년 3회/02 연소공학/38.md +- png: MISSING (38.png) +- 설명: 기름 + 물 층 그림 (40 cm + 90 cm). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 diff --git a/import_reports/2024년_1회_image_required.md b/import_reports/2024년_1회_image_required.md new file mode 100644 index 0000000..c1dd152 --- /dev/null +++ b/import_reports/2024년_1회_image_required.md @@ -0,0 +1,27 @@ +# 2024년 1회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- **missing_png — 2건 ⚠** (이 항목이 있으면 apply 금지) + - 11번 / 가스유체역학 — 11.png 필요 + - 43번 / 가스설비 — 43.png 필요 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- + +## 누락 (missing_png) — 2건 ⚠ + +### 11번 / 가스유체역학 / 토리첼리 정리·등가깊이 (`01_fluid/06_dynamics/` 참고) +- md: /Users/hyungiahn/Desktop/가스기사/2024년 1회/01 가스유체역학/11.md +- png: MISSING (11.png) +- 설명: 그림: 위쪽 비중 0.7 유체 A가 5m, 아래쪽 물 10m, 바닥 측면에서 V로 유출되는 탱크 단면도. +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 43번 / 가스설비 / 액화가스 비용적·과충전 (`03_facility/` 참고) +- md: /Users/hyungiahn/Desktop/가스기사/2024년 1회/03 가스설비/43.md +- png: MISSING (43.png) +- 설명: 그림: 비용적(L/kg) vs 온도(℃) 그래프 (비용적 1.9~2.7, 온도 10~70℃ 범위). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 diff --git a/import_reports/2024년_2회_image_required.md b/import_reports/2024년_2회_image_required.md new file mode 100644 index 0000000..0e39810 --- /dev/null +++ b/import_reports/2024년_2회_image_required.md @@ -0,0 +1,27 @@ +# 2024년 2회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- **missing_png — 2건 ⚠** (이 항목이 있으면 apply 금지) + - 3번 / 가스유체역학 — 3.png 필요 + - 19번 / 가스유체역학 — 19.png 필요 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- + +## 누락 (missing_png) — 2건 ⚠ + +### 3번 / 가스유체역학 / 유체정역학 / U자관 마노미터 +- md: /Users/hyungiahn/Desktop/가스기사/2024년 2회/01 가스유체역학/3.md +- png: MISSING (3.png) +- 설명: U자관 마노미터 그림 (물 관 안에 A, B 두 지점, 아래쪽에 수은 U자관, 수은 높이 차 h를 표시). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 19번 / 가스유체역학 / 운동량 방정식 / 관내 마찰력 +- md: /Users/hyungiahn/Desktop/가스기사/2024년 2회/01 가스유체역학/19.md +- png: MISSING (19.png) +- 설명: 수평 원관 그림 (A 단면, B 단면 두 곳 표시. 위에 F (벽면 마찰력), 아래 화살표로 압력 방향 표시). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 diff --git a/import_reports/2024년_3회_image_required.md b/import_reports/2024년_3회_image_required.md new file mode 100644 index 0000000..bcf8b22 --- /dev/null +++ b/import_reports/2024년_3회_image_required.md @@ -0,0 +1,27 @@ +# 2024년 3회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- **missing_png — 2건 ⚠** (이 항목이 있으면 apply 금지) + - 2번 / 가스유체역학 — 2.png 필요 + - 8번 / 가스유체역학 — 8.png 필요 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- + +## 누락 (missing_png) — 2건 ⚠ + +### 2번 / 가스유체역학 / 정수역학 / 평면에 작용하는 정수력 +- md: /Users/hyungiahn/Desktop/가스기사/2024년 3회/01 가스유체역학/2.md +- png: MISSING (2.png) +- 설명: 60° 기울어진 4m × 8m 수문, A지점 힌지(상단), B지점(하단), 수면 위 대기압. +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 8번 / 가스유체역학 / 압축성 유동 / 노즐 / 임계압력비·Choking +- md: /Users/hyungiahn/Desktop/가스기사/2024년 3회/01 가스유체역학/8.md +- png: MISSING (8.png) +- 설명: 수축노즐 분출 시 $m$ vs $P_b/P_r$ 그래프. A, B는 좌측 평탄 구간(최대 유량), C는 임계점(꺾임), D, E는 우측 감소 구간(E는 $P_b/P_r=1.0$). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 diff --git a/import_reports/2025년_1회_image_required.md b/import_reports/2025년_1회_image_required.md new file mode 100644 index 0000000..79e46cf --- /dev/null +++ b/import_reports/2025년_1회_image_required.md @@ -0,0 +1,35 @@ +# 2025년 1회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- **missing_png — 3건 ⚠** (이 항목이 있으면 apply 금지) + - 2번 / 가스유체역학 — 2.png 필요 + - 9번 / 가스유체역학 — 9.png 필요 + - 30번 / 연소공학 — 30.png 필요 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- + +## 누락 (missing_png) — 3건 ⚠ + +### 2번 / 가스유체역학 / 운동량 보존 / 마찰력 +- md: /Users/hyungiahn/Desktop/가스기사/2025년 1회/01 가스유체역학/2.md +- png: MISSING (2.png) +- 설명: 수평 원관 단면 A, B와 마찰력 F 화살표 그림. +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 9번 / 가스유체역학 / 압축성 유동 / 노즐·디퓨저 / 아음속·초음속 +- md: /Users/hyungiahn/Desktop/가스기사/2025년 1회/01 가스유체역학/9.md +- png: MISSING (9.png) +- 설명: 단면적이 좁아지는 수렴노즐 형태 덕트 그림 (유동방향 화살표 + 빗금 단면). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 30번 / 연소공학 / 불활성화 (Inerting) / 퍼지 방법 +- md: /Users/hyungiahn/Desktop/가스기사/2025년 1회/02 연소공학/30.md +- png: MISSING (30.png) +- 설명: 용기에 불활성가스(Inert Gas) 입구·혼합가스(Mixed Gas) 출구가 표시된 스위프 퍼지 도식. +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 diff --git a/import_reports/2025년_2회_image_required.md b/import_reports/2025년_2회_image_required.md new file mode 100644 index 0000000..b9f2c32 --- /dev/null +++ b/import_reports/2025년_2회_image_required.md @@ -0,0 +1,19 @@ +# 2025년 2회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- **missing_png — 1건 ⚠** (이 항목이 있으면 apply 금지) + - 62번 / 가스안전관리 — 62.png 필요 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- + +## 누락 (missing_png) — 1건 ⚠ + +### 62번 / 가스안전관리 / 폭발위험장소 0·1·2종 분류 (KGS) (`04_safety/` 참고) +- md: /Users/hyungiahn/Desktop/가스기사/2025년 2회/04 가스안전관리/62.md +- png: MISSING (62.png) +- 설명: 보기 ③, ④가 사진에 잘려 미확인. 본 문제는 보기 ①, ② 기준 추정. +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 diff --git a/import_reports/2025년_3회_image_required.md b/import_reports/2025년_3회_image_required.md new file mode 100644 index 0000000..45bdbac --- /dev/null +++ b/import_reports/2025년_3회_image_required.md @@ -0,0 +1,35 @@ +# 2025년 3회 — 이미지 필요 문항 리포트 + +## 사용자가 확인할 것 + +- **missing_png — 3건 ⚠** (이 항목이 있으면 apply 금지) + - 4번 / 가스유체역학 — 4.png 필요 + - 18번 / 가스유체역학 — 18.png 필요 + - 41번 / 가스설비 — 41.png 필요 +- placeholder_skipped — 0건 +- **attach_planned — 0건** (apply 시 자동 첨부 예정) + +--- + +## 누락 (missing_png) — 3건 ⚠ + +### 4번 / 가스유체역학 / 압력 측정 / 경사마노메타 (Inclined Manometer) +- md: /Users/hyungiahn/Desktop/가스기사/2025년 3회/01 가스유체역학/4.md +- png: MISSING (4.png) +- 설명: 경사마노메타 그림 (P₁, P₂, A₁, A₂, R, θ=30°). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 18번 / 가스유체역학 / 압축성 유동 / 노즐 / 임계압력비·Choking +- md: /Users/hyungiahn/Desktop/가스기사/2025년 3회/01 가스유체역학/18.md +- png: MISSING (18.png) +- 설명: 수축노즐 분출 시 m vs Pb/Pr 그래프. A, B는 좌측 평탄(최대 유량), C는 임계점, D, E는 우측 감소(E는 Pb/Pr=1). +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 + +### 41번 / 가스설비 / 정수역학 / 부력 (Buoyancy) / 아르키메데스 원리 +- md: /Users/hyungiahn/Desktop/가스기사/2025년 3회/03 가스설비/41.md +- png: MISSING (41.png) +- 설명: A(물), B(수은), C(식용유)에 동일 물체를 넣은 모양 그림. +- 상태: missing_png (dry-run 실패. apply 금지) +- 처리: 이미지 파일 필요 diff --git a/scripts/import_gas_questions.py b/scripts/import_gas_questions.py index 7bd25e1..f94f98e 100644 --- a/scripts/import_gas_questions.py +++ b/scripts/import_gas_questions.py @@ -208,12 +208,18 @@ def _extract_meta(md: str) -> dict[str, str]: def _parse_choices(raw: str) -> tuple[str, str, str, str]: """보기 fenced block → 4개 텍스트. - 한 줄당 "{N}번:", "{N}.", "{N})" 형태. 멀티라인 보기는 다음 항목 직전까지 합침. + 한 줄당 "{N}번:", "{N}.", "{N})", "①②③④" 모두 인정. 멀티라인 보기는 다음 항목 직전까지 합침. """ lines = raw.splitlines() buckets: dict[int, list[str]] = {1: [], 2: [], 3: [], 4: []} current: Optional[int] = None for line in lines: + # 동그라미 숫자 ①②③④ 우선 시도 + m_circ = re.match(r"^\s*([①②③④])\s*(.*)$", line) + if m_circ: + current = CIRCLED[m_circ.group(1)] + buckets[current].append(m_circ.group(2).rstrip()) + continue # "1번:" / "1." / "1)" 모두 인정. 점/괄호 다음 공백 허용. m = re.match(r"^\s*(\d)\s*[번.):]\s*(.*)$", line) if m: