본문 바로가기
TIL/python

pickle

by code_Cook 2022. 10. 7.
pickle

pickle을 통해 텍스트 상태의 데이터가 아닌 파이썬 객체를 바이너리 파일로 저장할 수 있다.

즉 입력된 코드 데이터를 파일화 시키는 것이다.

 

import pickle

information_user = dict({
	"user_id": "myID",
	"user_pw": "myPW"
})

f = open(INFORMATION_USER, 'wb')
pickle.dump(information_user, f)
f.close()

예제 코드를 보았을 때 dict로 key값과 value값을 정의하고 그 값을 infromation_user에 담았다.

이렇게 담긴 정보를 pickle.dump를 통해 실행하면 해당 정보가 들어가 있는 파일이 생성된다.

 

그렇다면 pickle을 사용하는 이유가 무엇이고 이렇게 하는 이유가 무엇일까?

 

무엇인가 연속적인 작업을 할 경우 예제와 같이 유저의 데이터를 통해 Access 하는 경우가 있을 것이다.

이러한 경우 매번 access 하기 위해 해당 데이터를 필요할 때마다 입력해 줘야 하는 번거로움이 발생한다.

번거롭다는 건 사소하게 발생할 수도 있지만 작업에 효율성에서는 그다지 효율적이지 못하다.

 

코드를 입력하면서 번거롭거나 귀찮은 건 제거해야 한다. 왜? 효율적이지 못하니깐 작업의 속도를 떨어뜨린다.

또 같은 코드가 중복되면서 지저분해진다. 그건 좋은 코드가 되지 못한다. 알아보기 어려우니깐...

 

효율적으로 작업하기 위해서 pickle을 사용하는 것이다. pickle.dump를 통해 저장된 파일을 필요할 때마다 불러와

데이터를 꺼내 쓰는 식으로 작업을 하면 전보다 작업 속도는 더욱 빨리질 것이다. 

이는 보기 좋은 코드를 작성하는 데에 많은 도움을 준다고 본다.

 

보안 문제에서도 해결할 수 있다.

예제에서 유저의 정보가 코드 자체에 노출되어 있다. 이러한 경우 외부에서 유저의 정보에 쉽게 접근할 수 있다.

이 또한 pickle을 사용해 파일 화하여 저장해두면 외부에서 유저의 정보를 볼 수 없기 때문에 사용하기도 한다.

 

사용방법
import pickle

//저장
pickle.dump(객체, 파일)

//불러오기
pickle.load(파일)