Logo
내 게시판 만들기
파이썬

pickle — 파이썬 객체 직렬화

야옹이 | 2026.04.27 06:24:44
조회 16 | 추천 0

pickle은 「파이썬 객체를 바이트로 변환해 저장하거나 전송할 수 있게 하는」 직렬화(serialization) 표준 라이브러리입니다.

「피클(절임)」이라는 이름답게 객체를 「피클 항아리에 절여 보관하는」 비유입니다.



기본 사용.

import pickle.

with open("data.pkl", "wb") as f: pickle.dump(my_object, f).

with open("data.pkl", "rb") as f: loaded = pickle.load(f).

「wb」/「rb」(바이너리 모드) 사용에 주의.

어떤 파이썬 객체든 — 리스트·딕셔너리·클래스 인스턴스·심지어 함수까지 — 거의 모두 절일 수 있습니다.



JSON과 비교.

JSON은 「텍스트 + 언어 독립」으로 다른 언어와 호환되지만 「딕셔너리·리스트·기본 타입」만 가능.

pickle은 「바이너리 + 파이썬 전용」으로 호환성은 없지만 「클래스 인스턴스, 함수, 복잡한 객체」 등 거의 모든 파이썬 객체를 다룰 수 있습니다.



주요 활용.

ML 모델 저장(scikit-learn 모델은 pickle로), 캐시 데이터 보관, 멀티프로세스 간 객체 전달.

단, 모델 저장에는 pickle보다 joblib이 더 빠르며, ML 분야는 점차 ONNX·SafeTensors 같은 다른 형식으로 옮겨 가는 추세입니다.



보안 경고: 「알 수 없는 출처의 pickle 파일은 절대 로드하지 마세요」.

pickle.load()는 임의 코드 실행을 허용해 악성 pickle 파일이 시스템을 손상시킬 수 있습니다.

신뢰할 수 있는 자기 데이터만 pickle을 쓰고, 외부 데이터는 JSON 같은 안전한 형식을 써야 합니다.




한 줄 요약


pickle은 파이썬 객체를 바이트로 직렬화해 저장·전송합니다.

클래스 인스턴스·함수까지 거의 모든 객체를 절일 수 있지만, 알 수 없는 출처의 pickle은 보안 위험으로 로드 금지입니다.




더 알아볼 것


- joblib — 큰 NumPy 배열에 더 효율적

- SafeTensors — Hugging Face의 안전 직렬화

- pickle 보안 사고 사례

공유하기
목록보기
번호 제목 글쓴이 작성일 조회 좋아요
101 별님이 26/04/27 12 0
100 부엉이 26/04/27 10 0
99 다람쥐 26/04/27 13 0
98 야옹이 26/04/27 14 0
97 구름이 26/04/27 17 0
96 곰돌이 26/04/27 14 0
95 부엉이 26/04/27 8 0
94 햇살이 26/04/27 8 0
93 멍뭉이 26/04/27 8 0
92 별님이 26/04/27 11 0
91 다람쥐 26/04/27 9 0
90 부엉이 26/04/27 24 0
89 구름이 26/04/27 7 0
88 토순이 26/04/27 12 0
87 토순이 26/04/27 9 0
86 햇살이 26/04/27 9 0
85 구름이 26/04/27 11 0
84 햇살이 26/04/27 13 0
83 야옹이 26/04/27 16 0
82 너구리 26/04/27 11 0
81 햇살이 26/04/27 8 0
80 토순이 26/04/27 25 0
79 다람쥐 26/04/27 11 0
78 야옹이 26/04/27 9 0
77 부엉이 26/04/27 9 0
76 별님이 26/04/27 9 0
75 햇살이 26/04/27 14 0
74 곰돌이 26/04/27 9 0
73 구름이 26/04/27 11 0
72 햇살이 26/04/27 6 0
신고하기

신고 사유를 선택해 주세요.