데이터 지속성
*************

이 장에서 설명하는 모듈은 파이썬 데이터를 디스크에 지속적인 형태로 저
장하는 것을 지원합니다. "pickle"과 "marshal" 모듈은 많은 파이썬 데이터
형을 바이트 스트림으로 바꿀 수 있고 그 바이트열로부터 객체를 재생성할
수 있습니다. 다양한 DBM 관련 모듈은 문자열에서 다른 문자열로의 매핑을
저장하는 일군의 해시 기반 파일 형식을 지원합니다.

이 장에서 설명하는 모듈 목록은 다음과 같습니다:

* "pickle" --- 파이썬 객체 직렬화

  * 다른 파이썬 모듈과의 관계

    * "marshal" 과의 비교

    * "json" 과의 비교

  * 데이터 스트림 형식

  * 모듈 인터페이스

  * 어떤 것이 피클 되고 역 피클 될 수 있을까요?

  * 클래스 인스턴스 피클링

    * 외부 객체의 지속성

    * 디스패치 테이블

    * 상태 저장 객체 처리

  * 전역 제한하기

  * 성능

  * 예제

* "copyreg" --- "pickle" 지원 함수 등록

  * 예제

* "shelve" --- 파이썬 객체 지속성

  * 제약 사항

  * 예제

* "marshal" --- 내부 파이썬 객체 직렬화

* "dbm" --- 유닉스 "데이터베이스" 인터페이스

  * "dbm.gnu" --- GNU의 dbm 재해석

  * "dbm.ndbm" --- ndbm 기반 인터페이스

  * "dbm.dumb" --- 이식성 있는 DBM 구현

* "sqlite3" --- SQLite 데이터베이스용 DB-API 2.0 인터페이스

  * 모듈 함수와 상수

  * Connection 객체

  * Cursor 객체

  * Row 객체

  * 예외

  * SQLite 와 파이썬 형

    * 소개

    * 어댑터를 사용하여 SQLite 데이터베이스에 추가 파이썬 형을 저장하
      기

      * 객체가 스스로 어댑트하도록 하기

      * 어댑터 콜러블 등록하기

    * SQLite 값을 사용자 정의 파이썬 형으로 변환하기

    * 기본 어댑터와 변환기

  * 트랜잭션 제어

  * 효율적으로 "sqlite3" 사용하기

    * 바로 가기 메서드 사용하기

    * 인덱스 대신 이름으로 열 액세스하기

    * 컨텍스트 관리자로 연결 사용하기

  * 일반적인 문제

    * 다중 스레드
