한국환경정보
경력근거: 백엔드/서버개발 , 웹개발 , AWS , PostgreSQL
※ 실제 산출물이 아닌 AI 예측 시안입니다.
한국환경정보는 환경 측정 데이터를 다루는 회사라, 측정 점검과 규제 리포트 초안을 만드는 이 도구는 그 환경 측정 데이터가 있어야 점검을 검증합니다.
'Founding Product Engineer, 초기 제품 개발 리드'. 측정 점검 도구가 초기 제품의 코어.
'백엔드/서버개발, PostgreSQL, Python'. 측정 데이터 파이프라인이 직무 핵심.
환경 측정·기준 초과 점검이 규제 보고의 토대.
환경 측정 데이터를 받아 이상치·결측·기준 초과를 규칙으로 짚고, 규제 보고 리포트 초안을 근거와 함께 생성하는 1주 포트폴리오입니다.
한국환경정보 Founding PE. 측정 데이터를 사람이 검수하고 보고서를 쓰던 일을, 점검 + 리포트 초안 도구로 옮기고 싶은 사람입니다.
측정에 오염원·기준을 붙이면, 도구가 (a) 이상치·결측·기준 초과를 규칙으로 짚고 (b) 규제 보고 초안을 근거와 함께 생성합니다.
환경 측정 데이터를 받아 이상치·결측·기준 초과를 짚고 규제 보고 리포트 초안을 근거와 함께 내는 동작하는 도구입니다.
점검 규칙이 실제 이상·기준 초과를 잡는 비율과 오탐을 보여주는 대시보드입니다.
정기 규제 보고 리포트를 자동 생성·제출 양식으로 만드는 단계입니다.
환경 측정을 넣으면 이상치·기준 초과와 보고 초안이 근거와 함께 나오는 걸 시연합니다.
점검 규칙 판정이 정답과 일치하는 비율 100%
측정: 결정적 재계산, 표본: 측정 200건
일부러 만든 결측·이상치·미등록 측정소 30종을 넣어도 점검이 멈추지 않고 처리되는 걸 시연합니다.
위 수치는 더미데이터 자가채점이며, 실제 측정 점검 정확도는 한국환경정보 실데이터 + 실 검수자가 있어야 측정 가능합니다. 이 포트폴리오는 그 검증을 바로 돌릴 수 있는 상태까지 만듭니다.
수치는 합성 데이터 자가채점이라 성능 증명이 아닙니다. 면접에서는 데모 동작과 실검증 준비 상태로 솔직히 설명합니다.
정답을 작성자가 만들었으니 잘 맞는 것이 당연합니다. 결측·경계·미등록·표기 흔들림 케이스를 더미에 일부러 섞어 쉬운 문제만 푸는 게 아님을 보여줍니다.
규제 안전: 위반 단정은 하지 않고 '기준 초과 의심 + 검증 필요'까지만 표시합니다.
실제 도입 시 달라지는 것: 실 측정 분포·규제 기준이 더미와 다르므로 점검 규칙·기준 테이블을 실데이터로 맞춰야 한다(도입 단계 과제)
① 인라인 샘플 · ② seed.json 다운로드 · ③ 증강 프롬프트. 세 층 모두 동일한 schema 에서 파생.
환경 측정 데이터를 묶어 이상·기준 점검 입력으로 쓴다
| obs_id | station_raw | station_id | pollutant | value | limit | measured_at |
|---|---|---|---|---|---|---|
| O900 | A측정소(구) | — | PM2.5 | — | 50 | 2026-05-20T09:00:00 |
| O901 | 측정소0 | stn0 | NOx | -5 | 100 | 2026-05-20T09:00:00 |
| O902 | 초과측정소 | stn2 | SOx | 500 | 100 | 2026-05-20T03:00:00 |
| O903 | 미등록측정소 | — | PM2.5 | 30 | 50 | 1970-01-01T00:00:00 |
| O000 | 측정소0 | stn0 | PM2.5 | 20 | 100 | 2026-05-20T09:00:00 |
{"type":"object","properties":{"obs_id":{"type":"string"},"station_raw":{"type":"string"},"station_id":{"type":["string","null"]},"pollutant":{"type":"string"},"value":{"type":["number","null"]},"limit":{"type":"number"},"measured_at":{"type":"string"}},"required":["obs_id","station_raw","station_id","pollutant","value","limit","measured_at"]}. 쉬운 데이터만 만들지 말 것. 다음 하드 케이스를 의도적으로 섞어라: value null(센서 누락)·음수(이상치)·극단(기준 초과), station_id null 미등록, measured_at 1970(잡음), station_raw 표기 흔들림. 형식 깨뜨리기 시도 3건도 별도로.{"type":"object","properties":{"obs_id":{"type":"string"},"station_raw":{"type":"string"},"station_id":{"type":["string","null"]},"pollutant":{"type":"string"},"value":{"type":["number","null"]},"limit":{"type":"number"},"measured_at":{"type":"string"}},"required":["obs_id","station_raw","station_id","pollutant","value","limit","measured_at"]}| Python | 측정 데이터 ingest + 점검 + eval |
| PostgreSQL | 측정 단일 진실원 + 기준 테이블 |
| AWS | 배포 + 측정 데이터 스토리지 |
✓ pass → 그대로 멈춰도 완성품입니다. 더 키우려면 2주차(이상 판정 검증)로 갑니다.
✓ pass → 여기서 멈춰도 완결입니다. 더 키우려면 3주차(규제 보고 자동화)로 갑니다.
측정 점검 + 보고 초안
{"type":"object","properties":{"obs_id":{"type":"string"},"status":{"type":"string","enum":["ok","exceed","review"]},"report_line":{"type":"string"},"evidence":{"type":["object","null"],"properties":{"pollutant":{"type":"string"},"value":{"type":"number"},"limit":{"type":"number"}},"required":["pollutant","value","limit"]}},"required":["obs_id","status","report_line","evidence"]}[
{
"obs_id": "O902",
"status": "exceed",
"report_line": "SOx 500 (기준 100) 초과 의심. 검증 필요",
"evidence": {
"pollutant": "SOx",
"value": 500,
"limit": 100
}
},
{
"obs_id": "O000",
"status": "ok",
"report_line": "기준 내",
"evidence": {
"pollutant": "PM2.5",
"value": 23,
"limit": 100
}
},
{
"obs_id": "O900",
"status": "review",
"report_line": "측정값 결측. 확인 필요",
"evidence": null
}
]status 규칙·evidence 정합성은 자동 검증, report_line 적절성은 전문가/judge 검증.
근거: 백엔드/서버개발 , 웹개발 , AWS , PostgreSQL