[Java] Transient

Jisoo Choi·2021년 10월 19일
0

Java

목록 보기
1/2
post-thumbnail

스프링 프로젝트에서 Entity에서 변수 선언중에 transient 키워드를 사용하는 것을 발견했다.

transient키워드는 쉽게 말해 객체 직렬화 중 사용자 지정 field를 무시하려고 사용하는 키워드라고 하는데, Entity에서 사용하는 @Transient 어노테이션과의 차이도 존재한다.

💡 transient란

  • Serialize하는 과정을 제외하고 싶은 경우 선언하는 키워드

Why?

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

Result

  • 변수 field는 유지되지만, null값이 대입되는 것을 확인 할 수 있다.

📗 Transient VS @Transient

  1. Transient
  • Java에서 직렬화 시 특정 멤버변수를 무시하고 싶을 때 사용
transient String id;
  1. @Transient
  • Entity 객체의 데이터와 테이블의 컬럼과 매핑하고 있는 관계를 제외하기 위해 사용

주의해야할 점

  • 적용하는 데이터에 대한 이해가 필요하다.
  • 데이터를 제외했을 때 서비스 장애에 이상이 없는지 검토 후 사용.


Reference

https://nesoy.github.io/articles/2018-06/Java-transient

https://gmoon92.github.io/jpa/2019/09/29/what-is-the-transient-annotation-used-for-in-jpa.html

profile
👩‍🚀 No worries! Just record

0개의 댓글