Java transient 수식자

직렬화 대상에서 제외 – transient 한정자

인스턴스화된 객체를 바이트 배열로 변환하는 것을 직렬화라고 한다. 객체를 파일이나 데이터베이스에 저장하거나 네트워크를 통해 송수신하는데 이용한다.

Java에서는 Serializable 객체가 되면 기본적으로 모든 필드를 직렬화의 대상이 되지만, 일시적인 변수인 등의 이유로 예외적으로 직렬화 하고 싶지 않는 경우도 있다. 이러한 경우 필드에 transient 한정자를 지정하여 직렬화시에 해당 필드를 직렬화 대상에서 제외할수 있다.

class MyClass implements Serializable {
    private String value;
    private transient int tmp;    // 시러얼라이즈 대상 제외
}

어떤 경우에 필요한가?

  • 패스워드와 같은 보안정보가 직렬화(Serialize) 과정에서 제외하고 싶은 경우에 적용한다.
  • 다양한 이유로 데이터를 전송을 하고 싶지 않을 때 선언할 수 있다.

참조




최종 수정 : 2022-10-03