- 공유 링크 만들기
- X
- 이메일
- 기타 앱
이 글의 목적은 사업장이 보유한 화학물질 목록을 개정 화학물질관리법(화관법) 관점에서 일관되게 재분류하는 절차와 산출물 기준을 정리하여, 인허가·점검·감사 대응에 바로 활용할 수 있도록 돕는 것이다.
1. 유해화학물질 목록을 “재분류”해야 하는 이유
유해화학물질 목록은 단순한 물질 리스트가 아니라 영업허가, 시설기준 적용, 자체점검, 사고대비계획, 교육훈련, 취급기준 준수, 검사·진단 등 여러 의무의 출발점이 되는 데이터이다.
법령 체계가 개정되면 유해화학물질의 분류·관리 프레임이 바뀌거나 세분화될 수 있으며, 기존에 “유해화학물질”로만 관리하던 목록은 규제 의사결정에 필요한 정보가 부족해질 수 있다.
따라서 재분류의 핵심은 “현재 목록을 최신 분류체계의 데이터 구조로 다시 설계”하고, 물질별로 동일 기준의 근거를 남기는 것이다.
2. 재분류의 목표 산출물 정의하기
재분류를 시작하기 전에 “무엇을 끝으로 볼 것인지”를 문서로 확정해야 한다. 실무에서 권장되는 산출물은 다음과 같다.
| 산출물 | 내용 | 활용 목적 | 최소 보관 권장 |
|---|---|---|---|
| 마스터 물질 목록(정규화) | CAS, 국문/영문명, 동의어, 제품-성분 매핑 키 | 중복 제거, 동일물질 통합 | 항상 최신 1본 + 이력 |
| 유해성 분류 근거표 | GHS 분류항목, 카테고리, 근거 출처(사내 문서 번호) | 점검·감사 근거 제시 | 최소 5년 이상 |
| 화관법 관리범주 매핑표 | 사업장 내부 규칙에 따른 “관리범주” 코드화 | 허가/기준/점검 항목 자동 판정 | 개정마다 버전 관리 |
| 혼합물(제품) 구성 목록 | 제품명, 공급사, 성분, 함량범위, SDS 버전 | 제품 단위 구매·사용 통제 | SDS 유효기간 정책에 따름 |
| 변경관리 기록 | 변경 사유, 적용일, 영향평가, 승인자 | 법정의무 영향 추적 | 최소 5년 이상 |
3. 재분류에 필요한 입력 데이터 준비
3.1 물질 식별 데이터 정리
재분류 품질은 “식별 정확도”에서 결정된다. 특히 CAS, 물질명, 동의어가 여러 형태로 들어오면 중복과 누락이 발생한다.
권장 입력 컬럼은 다음과 같다.
| 필수 컬럼 | 설명 | 품질 기준 | 예시 |
|---|---|---|---|
| CAS No. | 정규화된 숫자-숫자-숫자 | 하이픈 포함, 공백 제거 | 123-45-6 |
| 물질명(국문/영문) | SDS 기준의 표준명 우선 | 동일 CAS는 1개 표준명 지정 | Substance A |
| 형태 | 고체/액체/가스/에어로졸 등 | 취급시설 판단에 연결 | 액체 |
| 취급공정 | 입고/보관/투입/반응/세정/폐기 | 공정별 위험도 평가에 사용 | 세정 |
| 최대보유량/일사용량 | 규정수량 및 시설기준 판단 입력값 | 단위 통일(kg, L, Nm3 등) | 500 L |
| SDS 버전/일자 | 근거 문서의 최신성 확인 | 버전 누락 금지 | Rev.3 |
3.2 유해성 분류 데이터 확보
개정 체계에서 유해화학물질을 재분류하려면, 최소한 물질의 유해성 분류값이 필요하다. 실무에서는 SDS 2항(위험·유해성) 또는 공인된 분류 데이터베이스에 기반한 값을 내부 근거로 고정하는 방식이 일반적이다.
혼합물(제품)의 경우에는 “제품 SDS 분류”와 “성분별 분류”를 함께 보유해야 한다. 제품 분류는 작업자 노출·취급관리 측면에서, 성분별 분류는 법정 의무 판정과 목록 통합 측면에서 각각 필요하다.
4. 개정 체계에 맞춘 “관리범주” 데이터 모델 설계
재분류의 목적은 법령 문구를 그대로 복사하는 것이 아니라, 사업장이 실행 가능한 관리체계를 데이터로 구현하는 것이다. 다음과 같은 내부 관리범주 코드를 설계하면 목록이 곧바로 의무판정 로직의 입력값이 된다.
| 관리범주(예시 코드) | 정의(사업장 내부 정의) | 대표 입력값 | 주요 연결 업무 |
|---|---|---|---|
| H-A(급성) | 인체 급성 유해성 중심으로 강화 관리가 필요한 물질이다. | 급성독성, 부식성, 흡입 유해성 등 | 취급절차, 보호구, 비상조치 |
| H-C(만성) | 인체 만성 유해성 중심으로 장기 관리가 필요한 물질이다. | 발암성, 생식독성, 특정표적장기독성 반복노출 등 | 노출평가, 대체검토, 건강보호 |
| ECO | 환경(수생생물 등) 유해성 중심으로 유출 방지 관리가 필요한 물질이다. | 수생환경 유해성 분류 등 | 2차 containment, 배출·유출 통제 |
| ACC | 사고 시 영향이 커서 사고대비 중심 관리가 필요한 물질이다. | 물질 특성 + 보유량 + 공정특성 | 비상대응, 시나리오, 훈련 |
| GEN | 일반 유해화학물질 관리범주이다. | 유해성 분류 보유 | 기본 취급기준, 교육, 표지 |
위 코드는 예시이며, 실제 적용 시에는 법령이 요구하는 분류요소와 사업장 리스크 관리요소를 동시에 만족하도록 정의해야 한다.
5. 재분류 실무 절차 7단계
5.1 1단계: 기준 문서(최신본) 고정
재분류는 기준이 흔들리면 결과가 흔들린다. 따라서 다음을 문서로 고정해야 한다.
- 적용 기준일(내부 정책상 언제부터 적용하는지)이다.
- 분류 근거 문서의 우선순위(SDS, 내부 평가서, 외부 공인 DB 등)이다.
- 혼합물 분류를 제품 분류로 볼지 성분 분류로 볼지의 판단 기준이다.
- 분류 불확실 또는 데이터 부재 시 임시코드(예: HOLD) 부여 기준이다.
5.2 2단계: 물질 마스터 정규화
동일 CAS를 하나의 표준 엔트리로 통합하고, 동의어를 별도 컬럼으로 관리해야 한다. 이 단계에서 중복을 제거하지 않으면, 이후 단계에서 의무 판정이 과대 또는 과소로 계산될 수 있다.
5.3 3단계: 유해성 분류값 입력 및 검증
SDS 2항을 기준으로 유해성 분류항목을 구조화된 데이터로 만든다. 구조화란 “문장”을 “항목-카테고리”로 쪼개는 작업이다.
예를 들어 ‘급성독성(흡입) 카테고리 2’처럼 정형화하여 저장해야 한다.
5.4 4단계: 관리범주 매핑 룰 적용
사업장 내부 매핑 룰에 따라 각 물질에 관리범주 코드를 부여한다. 권장 방식은 “룰 우선순위”를 두는 방식이다.
| 우선순위 | 조건(예시) | 부여 코드(예시) | 설명 |
|---|---|---|---|
| 1 | 사고대비 중심 관리 대상 조건을 만족하다. | ACC | 사고대비 관점이 최상위 우선이다. |
| 2 | 만성 유해성 핵심 항목이 특정 기준 이상이다. | H-C | 장기 노출 관리가 필요하다. |
| 3 | 급성 유해성 핵심 항목이 특정 기준 이상이다. | H-A | 즉시 위해 및 사고 초기대응이 중요하다. |
| 4 | 환경 유해성 핵심 항목이 특정 기준 이상이다. | ECO | 유출 방지 중심의 관리가 필요하다. |
| 5 | 그 외 유해성 분류가 존재하다. | GEN | 기본 관리범주이다. |
| 6 | 분류 데이터가 부재하거나 확인 중이다. | HOLD | 구매·사용 통제를 병행하다. |
5.5 5단계: 혼합물(제품) 처리 기준 적용
혼합물은 다음 두 축으로 관리해야 한다.
- 제품 단위 관리: 구매·현장사용·라벨링·교육·보관의 기본 단위이다.
- 성분 단위 관리: 법정 목록 통합, 특정 성분 중심 의무판정의 기본 단위이다.
권장 산식은 “제품-성분 매핑 테이블”을 별도로 두고, 제품 목록과 성분 목록을 관계형으로 연결하는 방식이다.
5.6 6단계: 시설·공정 위험도 입력값 결합
재분류는 유해성만으로 끝나지 않는다. 같은 물질이라도 보유량, 저장형태, 취급압력, 온도, 반응성, 이송방식에 따라 사고·노출 리스크가 달라진다. 따라서 최소한 다음 입력값을 결합해야 한다.
- 최대보유량, 일최대사용량, 최대이송량이다.
- 보관형태(드럼, 탱크, 실린더, IBC 등)이다.
- 이송방식(펌프, 중력, 압송, 배관 고정 등)이다.
- 작업빈도 및 작업자 접근성이다.
5.7 7단계: 결과 검증 및 변경관리 완료
재분류 결과는 반드시 교차검증해야 한다. 실무에서 효과적인 검증은 다음과 같다.
- 상위 리스크 코드(예: ACC, H-C) 부여 물질의 근거 문서가 100% 존재하다.
- CAS 중복, 제품-성분 연결 누락, 단위 혼재가 0건이다.
- 구매목록, 창고재고, 공정투입 목록과 마스터 목록의 차이가 설명 가능하다.
- 변경관리 문서에 “의무 영향”이 한 줄이라도 반드시 기재되다.
6. 가상 예시로 보는 재분류 로직
다음 예시는 특정 실물질을 지칭하지 않는 가상 데이터이며, 로직 이해를 위한 예시이다.
| 물질 | 유해성 분류 입력(가상) | 추가 입력 | 관리범주 결과(예시) | 핵심 관리 포인트 |
|---|---|---|---|---|
| 물질 A | 급성독성(흡입) Cat.2 | 실린더 저장, 빈번한 연결/분리 | H-A | 초기누출 대응, 국소배기, 누출점검 강화이다. |
| 물질 B | 발암성 Cat.1 | 소량이지만 장기 사용 | H-C | 대체검토, 노출 최소화, 취급자 제한이다. |
| 물질 C | 수생환경 유해성 Acute Cat.1 | 대용량 탱크, 하수 연결 근접 | ECO | 2차 차단, 배수로 차단, 유출대응 물품 확보이다. |
| 물질 D | 가연성 + 급성유해성(혼재) | 최대보유량 대, 공정 가열 | ACC | 시나리오 기반 비상대응, 훈련, 설비 인터락 검토이다. |
7. 엑셀 템플릿으로 재분류를 고정하는 방법
대부분 사업장은 엑셀을 마스터로 운용한다. 엑셀 기반 재분류 템플릿을 설계할 때 핵심은 “입력 시트”와 “판정 시트”를 분리하는 것이다.
7.1 권장 시트 구조
- Sheet1_MaterialMaster: CAS 기준 표준 물질 테이블이다.
- Sheet2_ProductMaster: 제품(혼합물) 테이블이다.
- Sheet3_ProductComposition: 제품-성분 매핑 테이블이다.
- Sheet4_HazardClass: 유해성 분류항목 구조화 테이블이다.
- Sheet5_MappingRule: 관리범주 매핑 룰 테이블이다.
- Sheet6_Result: 최종 목록 및 코드 결과 시트이다.
7.2 권장 데이터 검증 규칙
최소한 다음 검증 규칙을 넣어야 한다.
- CAS 형식 오류는 입력 자체를 막아야 한다.
- 최대보유량 단위는 드롭다운으로 고정해야 한다.
- 유해성 분류항목은 표준 리스트에서만 선택하도록 해야 한다.
- 제품-성분 매핑 누락은 결과 시트에서 즉시 경고해야 한다.
8. 파이썬으로 재분류 자동화하는 기본 예시
아래 코드는 “CAS 정규화, 중복 제거, 간단한 룰 기반 코드 부여”의 최소 예시이다. 실제 적용 시에는 사업장 매핑 룰과 입력 컬럼을 그대로 반영하여 확장해야 한다.
import re import pandas as pd # ------------------------------------------------------------ # 1) CAS 정규화 함수이다. # - 공백 제거, 하이픈 형식 보정, 기본 형식 검사이다. # ------------------------------------------------------------ def normalize_cas(cas_text: str) -> str: if cas_text is None: return "" text = str(cas_text).strip() text = text.replace(" ", "") text = text.replace("-", "-") return text def is_cas_format(text: str) -> bool: # 기본 CAS 형식: 2~7자리-2자리-1자리이다. return bool(re.fullmatch(r"\d{2,7}-\d{2}-\d", text)) # ------------------------------------------------------------ # 2) 간단 매핑 룰 예시이다. # - 실제로는 Sheet5_MappingRule 같은 테이블 기반이 권장이다. # ------------------------------------------------------------ def map_category(row) -> str: # 가상 입력 컬럼: acute_flag, chronic_flag, eco_flag, accident_flag이다. if row.get("accident_flag") == 1: return "ACC" if row.get("chronic_flag") == 1: return "H-C" if row.get("acute_flag") == 1: return "H-A" if row.get("eco_flag") == 1: return "ECO" return "GEN" # ------------------------------------------------------------ # 3) 메인 처리 예시이다. # - input.xlsx의 Sheet1을 읽는다고 가정하다. # ------------------------------------------------------------ def main(): df = pd.read_excel("input.xlsx", sheet_name=0) # CAS 정규화 및 형식검사이다. df["CAS"] = df["CAS"].apply(normalize_cas) df["CAS_valid"] = df["CAS"].apply(is_cas_format) # 형식 오류는 별도 표시한다. df["data_status"] = df["CAS_valid"].apply(lambda x: "OK" if x else "CHECK") # 동일 CAS 중복은 최신(또는 우선순위) 기준으로 1개만 남긴다. # 여기서는 단순히 첫 번째만 남기다. df_unique = df.sort_values(by=["CAS"]).drop_duplicates(subset=["CAS"], keep="first") # 관리범주 부여이다. df_unique["manage_code"] = df_unique.apply(map_category, axis=1) # 결과 저장이다. df_unique.to_excel("reclass_result.xlsx", index=False) if __name__ == "__main__": main() 9. 재분류 점검 체크리스트
| 구분 | 체크 항목 | 판정 기준 | 담당 |
|---|---|---|---|
| 식별 | CAS 누락/오류가 존재하다. | 오류 0건 또는 전건 사유서 보유이다. | EHS/구매 |
| 근거 | SDS 버전이 최신으로 고정되다. | 물질별 근거 문서 번호가 있다. | EHS |
| 혼합물 | 제품-성분 매핑이 누락되다. | 매핑 누락 0건이다. | 구매/현장 |
| 룰 | 매핑 우선순위가 문서화되다. | 룰 테이블과 버전이 관리되다. | EHS/법무 |
| 수량 | 단위가 혼재되다. | 단위 표준표와 환산 기준이 있다. | 생산/물류 |
| 변경관리 | 변경 이력이 남다. | 적용일, 승인자, 영향평가가 있다. | 전부서 |
10. 자주 발생하는 실패 유형과 예방
10.1 “물질명” 기준으로 통합하여 CAS가 뒤섞이다
같은 이름을 다른 CAS가 공유하거나, 같은 CAS가 여러 이름으로 유통되다. 따라서 통합 키는 CAS를 1순위로 하고, 이름은 보조키로 사용해야 한다.
10.2 제품 SDS만으로 성분 관리를 생략하다
제품 단위 관리만 하면 목록 통합과 성분 중심 의무판정이 무너질 수 있다. 제품과 성분을 동시에 관리하는 구조가 필요하다.
10.3 매핑 룰이 담당자 머릿속에만 존재하다
룰은 사람 교체와 함께 사라진다. 반드시 룰 테이블과 예외처리 기준을 문서화하고 버전 관리해야 한다.
10.4 ‘확인 중’ 물질이 계속 방치되다
HOLD 같은 임시코드는 기간 제한과 조치계획을 함께 운영해야 한다. 예를 들어 30일 내 근거 확보, 미확보 시 구매중지 같은 정책이 필요하다.
11. 조직 역할 분담 예시(RACI)
| 업무 | EHS | 구매 | 생산/현장 | 품질 | 경영 |
|---|---|---|---|---|---|
| 분류 기준 수립 | R | C | C | C | A |
| SDS 수집/갱신 | C | R | C | C | A |
| 목록 정규화/중복 제거 | R | C | C | C | A |
| 보유량 데이터 확정 | C | C | R | C | A |
| 최종 승인/적용일 공지 | C | C | C | C | A |
12. 점검·감사 대응을 위한 문서 패키지 구성
재분류가 완료되면 다음 문서 묶음을 즉시 만들면 좋다.
- 최종 유해화학물질 목록(관리범주 코드 포함)이다.
- 물질별 유해성 분류 근거표(근거 문서 번호, SDS 버전 포함)이다.
- 매핑 룰 문서(우선순위, 예외, HOLD 처리)이다.
- 변경관리 기록(적용 기준일, 영향평가, 승인)이다.
- 현장 적용 증빙(라벨, 표지, 교육, 작업절차 반영 내역)이다.
FAQ
재분류는 어느 부서가 주관해야 하나?
EHS가 기준과 근거를 주관하고, 구매는 SDS 확보와 제품정보를 책임지며, 현장은 보유량과 취급공정 정보를 확정하는 구조가 실무적으로 안정적이다.
혼합물(제품)은 유해화학물질 목록에 어떻게 넣어야 하나?
제품 단위 목록과 성분 단위 목록을 분리하고, 제품-성분 매핑 테이블로 연결하는 방식이 권장되다. 제품 SDS 분류는 현장 관리에, 성분 분류는 목록 통합과 의무판정에 사용하다.
SDS가 최신인지 확신이 없으면 어떻게 해야 하나?
SDS 버전 정책을 먼저 세우고, 공급사로부터 최신본을 재수령하는 절차를 고정해야 한다. 최신성 확인이 끝나기 전까지는 임시코드(HOLD)로 분류하고 구매·사용 통제를 병행하는 방식이 안전하다.
재분류 결과가 바뀌면 내부적으로 무엇을 업데이트해야 하나?
목록 자체뿐 아니라 라벨·표지, 작업절차서, 교육자료, 비상대응 절차, 자체점검표, 구매승인 기준 등 연결 문서를 함께 갱신해야 한다. 변경관리에 “영향받는 문서 리스트”를 포함하는 방식이 누락을 줄이다.
가장 흔한 오류를 한 가지로 줄이면 무엇인가?
CAS 정규화 없이 물질명을 기준으로 통합하는 오류가 가장 흔하다. 동일물질 통합의 1순위 키는 CAS로 고정하고, 이름은 보조키로 관리해야 한다.