2EV 2023. 3. 6. 23:21

직렬화

  • 직렬화란: 
    • 객체를 연속적인 데이터로 변환하는 것이다.
    • 연속적 -> 직렬 => 따라서 이름이 직렬화(Serialize) 이다.
    • 컴퓨터 : 0,1 로 이루어짐 -> 따라서 객체를 0,1 로 데이터 바꾸는 과정이다.
    • 객체를 컴퓨터에 저장하기 위해서는 직렬화가 필요하다!
  • Pickle 모듈
    • 파이썬에서 객체를 직렬화하는 모듈은 =>pickle 이다.
    • <<내용,객체 -> 직렬화 -> 저장>> 
      • pickle.dump (출력할 객체, 파일 객체) : 파일 객체에 출력할 객체를 저장한다. (파일에!! 직렬화하여 파일에 저장)
      • 사용예시)
        • with open('test.txt','wb') as f:  #파일 open, with 사용해서, write byte = wb 로 저장(쓰기) 할 것이므로 write, 직렬화는 0,1 바이트이므로 byte 사용 
          • pickle.dump([1,2,3,4],f)  #= f 파일에 [1,2,3,4] 를 저장,쓴다.
      • pickle.dumps(출력할객체) : (s가 붙어있다.)출력할 객체를 바이트 형태로 반환한다. (파일 안거치고 바로 직렬화 0,1 해서 반환)
      • 사용예시)
        • pickle.dumps([1,2,3,4])
    • <<직렬화된 객체 -> 다시 원상복귀 변환>>
      • pickle.load(파일객체) : pickle을 통해 바이트화 되어 저장된 파일객체를 다시 원본의 모습으로 반환한다. (파일! 을 직렬화된 객체를 풀어서 원본으로 돌리는 과정)
      • pickle.loads(바이트 객체) : pickle을 통해 바이트화 된 객체를 다시 원본 모습으로 반환한다. (파일 없이! 바로 바이트화 직렬화 된 객체를 원본 모습으로 돌리는 과정)
      • 사용예시) 
        • pickle.loads(pickle.dumps([1,2,3,4])) #loads 함수 안의 내용은 출력할 객체를 바이트 형태로 변환한 dumps 내용이다.
  • Json 모듈
    • Json 은 pickle과는 또다른 직렬화 방식으로,
    • 서로 다른 언어로 작성된 프로그램에서 통신할 때 쓸 수 있고
    • 인간이 보기에 알아보기 편한 형식으로 저장할 수 있기 때문에 널리 사용된다.
    • 단, json 으로 직렬화 할 수 있는 객체는 한정되어 있다. (단점)
    • 사용예시)
      • import json
      • json.dumps([1,2,3,{'4':5,'6':7}])  # string 형식으로 반환된다. (0,1로 이루어진 직렬화 아니다.)
    • 사용예시)
      • import json
      • json.loads('[1,2,3,{"4":5,"6":7}]')  # String 형식의 data를 list와 dictionary 등의 원본 형태로 복원한다.
    • 사용예시)
      • improt json
      • with open('test.txt','w') as f:  #file open 부분, pickle에서는 바이트 다루므로 바이트 형식의 wb를 사용했지만 <-> json 은 string 형태로 가져가므로 그냥 write w 면 된다.
        • json.dump([1,2,3,{'4':5,'6':7}],f) # f 파일에 넣는다.
        • => 파일에 json 화 된 객체 저장한다.
    • 사용예시)
      • improt json
      • with open('test.txt','r') as f: # 파일과 관련한 json 직렬화 방식
        • json.load(f)# load -> 직렬화 객체 -=> 원본복원이다.
      • => Json 화 된 data를 list 와 dictionary 등의 형태로 복원한다.

 


* 필수 삽입 링크 : http://bit.ly/3Y34pE0

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr

<사진 2장>

 
> 본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.