작성: COZYGONO 개발·편집팀 · 수정:
자료가 없을 때 기본값을 넣으면 생기는 일: 혼합물 급성독성 계산의 함정
에탄올과 톨루엔을 섞었더니 "흡입하면 유해함"이 나왔습니다. 당시 입력한 자료에는 그 분류의 근거값이 없었는데도 말입니다. 계산식 한 줄이 만든 과잉분류를 추적한 기록입니다.
미상 성분에 경계값(20 mg/L) 자동 입력 시
문제점: 입력 근거가 전혀 없는데도 모든 미상 혼합물이 무조건 흡입 유해(H332)로 판정되어 경고 표지와 보호구 기준을 왜곡합니다.
유효 자료만 합산 + 미상 성분 함량 별도 고지
원칙: 미상 성분이 10%를 초과하면 보정식(100 − ΣC_unknown)을 적용하고, 자료가 없으면 임의 숫자를 만들지 않고 검토 항목으로 남깁니다.
혼합물 GHS 분류 엔진을 웹용으로 옮기며 발견한 문제입니다. 개발 노트에서 이 대목만 발췌합니다.
1. 입력 근거 없이 문구가 나왔다
에탄올 70%, 톨루엔 30%로 시험 계산을 돌렸습니다. 결과에 이 문구가 붙었습니다.
H332: 흡입하면 유해함
당시 도구에 넣은 자료에는 이 판정을 계산할 성분별 급성 흡입독성 시험값이나 추정값이 없었습니다. 이 글에서 확인한 오류는 그 빈칸을 임의의 값으로 채웠다는 점입니다. 에탄올·톨루엔 또는 이 배합이 유해하지 않다는 판정이 아닙니다. 공개 DB의 조회 결과에는 원출처와 적용 조건을 연결해야 하며, 특정 분류 목록에 항목이 없다는 사실만으로 안전하다고 결론 내릴 수 없습니다.[1]
2. 경계값과 기본값이 같았다
급성독성 혼합물 계산(ATEmix)은 성분의 독성값을 함량으로 가중해 역수 합으로 구합니다. 문제는 독성 자료가 없는 성분을 어떻게 다루느냐였습니다.
기존 구현은 자료가 없으면 경로별 기본값을 넣었습니다. 흡입에는 20 mg/L를 넣고, 증기의 4시간 노출 기준 상한과 비교했습니다. 예를 들어 미국 OSHA HCS의 표 A.1.1에서 증기 구분 4는 10 mg/L 초과·20 mg/L 이하입니다. 가스·분진·미스트는 단위나 경계값이 다르므로 20 mg/L를 모든 흡입 형태의 공통값으로 쓰면 안 됩니다.[3]
모든 성분에 흡입 자료가 없으면 계산은 이렇게 흘러갑니다.
ATEmix = 100 / (70/20 + 30/20) = 20 판정: 20 이하이므로 구분 4 → H332
즉 이 잘못된 기본값 처리와 비교식을 적용하면, 입력을 모두 미상으로 둔 혼합물은 조성과 무관하게 구분 4로 계산됩니다. 위 수식은 당시 코드의 오류를 보여 주는 계산이며 실제 혼합물의 독성 시험 결과가 아닙니다.
3. 미상 성분의 계산과 고지를 구분하기
UNECE의 GHS 교육 예제는 사용할 수 있는 성분 자료로 계산하면서 미상 성분의 비중을 별도로 다룹니다.[2] 자료가 없다는 이유로 구분 경계값을 시험값처럼 만들어 넣는 방식과는 다릅니다.
계산식 보정 조건과 미상 성분 고지 조건도 구분해야 합니다. 예를 들어 미국 OSHA HCS는 혼합물 전체의 시험으로 분류하지 않고 미상 급성독성 성분이 1% 이상 들어간 경우의 고지 조건과, 관련 미상 성분의 총함량이 10%를 넘는 경우의 계산식 보정 조건을 따로 둡니다.[3] 이전 원고의 '10%를 넘으면 고지'라는 설명은 둘을 혼동하여 수정했습니다. 이 수치는 미국 기준을 설명한 것으로, 국내 작성 시에는 적용 법령·고시와 원료 SDS를 별도로 대조해야 합니다.
개발 당시 임의의 기본값을 제거한 뒤에는 다음과 같이 자료의 빈자리를 드러내도록 바꿨습니다.
급성독성(흡입): 입력 자료만으로 판정 불가 — 자료 확보 필요 (미상 성분 100.0%)
"자료가 없다"와 "유해하지 않다"는 다른 말이고, "자료가 없다"와 "구분 4"는 더더욱 다른 말입니다.
4. 안전측 판단이라는 오해
과잉분류는 안전한 쪽으로 틀린 것이니 괜찮다고 여기기 쉽습니다. 실제로는 그렇지 않습니다.
경고 문구가 근거 없이 붙으면 라벨과 보호구 기준이 함께 부풀고, 정작 진짜 위험한 항목이 묻힙니다. 무엇보다 "이 도구는 아무 혼합물에나 흡입 유해를 붙인다"는 사실을 사용자가 눈치채는 순간, 나머지 계산 결과도 신뢰를 잃습니다.
당시 구현에서 급성독성 구분 5를 출력 대상에서 제외한 것도 목표로 삼은 분류 범위를 정하는 작업이었습니다. UN GHS의 분류 체계와 각 국가에서 채택한 구분은 구별해야 합니다. 이 개발 기록만으로 현재 국내 고시의 모든 분류·표시 요건을 구현했다고 판단할 수는 없습니다.
5. 남긴 것
고친 뒤에도 계산 근거는 화면에 그대로 펼쳐 둡니다. 어떤 성분의 어떤 값이 분모에 들어갔는지, 자료가 없어 빠진 성분이 몇 퍼센트인지 보이게 했습니다. 분류 결과만 덩그러니 주는 도구는 검토할 수가 없기 때문입니다.
6. 같은 계산을 비교하기 위한 기록
혼합물 입력을 복사해 다시 확인할 때에는 성분의 질량비 합계, 독성 경로(경구·경피·흡입), 수치의 단위와 근거 SDS를 함께 고정해야 합니다. 서로 다른 경로나 증기·분진·미스트 값을 섞으면 같은 식을 사용해도 비교가 성립하지 않습니다.
자료가 없는 성분의 비중을 별도로 표시하고, 데이터가 없다는 이유로 임의의 독성값을 자동 생성하지 않습니다. 계산기가 분류 문구를 출력했다면 입력 근거와 적용 기준을 함께 확인해야 하며, 이 개발 기록의 특정 예시를 모든 공급사의 원료에 대한 일반적인 분류 결론으로 확대하지 않습니다.
참고 문헌과 해석 범위
- PubChem — Data Sources
수집된 자료의 제공 기관과 원출처를 확인하는 방법입니다. 공개 DB의 조회 결과를 특정 공급사 원료의 최종 분류로 대신하지 않습니다.
- UNECE — GHS 급성독성 혼합물 계산 교육 예제 (2008)
미상 성분의 함량을 보정식과 별도 고지에 반영하는 공식 예제입니다. 원리 설명에 사용하며 현재 국내 법규의 적합성 판정 자료로 사용하지 않습니다.
- 미국 OSHA HCS — 29 CFR 1910.1200 Appendix A, A.1
표 A.1.1의 증기·분진·미스트 기준과 A.1.3.6.2.3–2.4의 미상 성분 처리 조건을 확인했습니다. 미국 기준이며 국내 MSDS에 그대로 적용하는 안내가 아닙니다.