(kotlin) Serializable, Parcelable

박용석·2023년 8월 30일
0
  • Serializable

Serializable 인터페이스는 Java와 Kotlin에서 제공하는 기본적인 직렬화 방법이다. 객체를 직렬화하면 해당 객체의 상태를 바이트 스트림으로 변환하여 저장하거나 전송할 수 있다. 하지만 Serializable은 Java의 기능을 사용하기 때문에 다소 무겁고 느릴 수 있다.

장점
1. 간편함: Serializable 을 구현하기 위해 추가적인 코드 작성이 필요하지 않다. 클래스를 Serializable 로 표시하기만 하면 된다.
2. 자동 직렬화: 대부분의 기본 데이터 유형과 사용자 정의 클래스에 대한 자동 직렬화가 지원된다.

단점
1. 느린 성능: Java 직렬화는 직렬화 및 역직렬화 과정에서 많은 오버헤드와 복잡성을 가질 수 있다. 때문에 이로 인해 성능 저하가 발생할 수 있다.
2. 유연성 부족: 클래스 변경 시 직렬화 된 데이터와의 호환성을 유지하기가 어려울 수 있다.

  • Parcelable

Parcelable 인터페이스는 안드로이드 플랫폼에서 제공하는 직렬화 방법으로, 안드로이드 컴포넌트 간에 빠르고 효율적인 데이터 전달을 위해 최적화 되어있다. Parcelable은 직렬화 및 역직렬화 과정을 명시적으로 정의하여 더 빠른 성능을 제공한다.

장점
1. 빠른 성능: Parcelable은 안드로이드 플랫폼에서 최적화되었기 때문에 직렬화 및 역직렬화가 더 빠르다.
2. 정교한 제어: 개발자는 어떤 데이터를 포함하고 어떻게 직렬화할지에 대한 제어를 더 정교하게 할 수 있다.
3. 안드로이드 특화 기능: 안드로이드 번들에 쉽게 포함시킬 수 있어서 컴포넌트 간 데이터 전달이 편리하다.

언제 사용할까 ?
Serializable은 단순한 데이터 객체 또는 네트워크 통신에 사용될 경우 유용할 수 있다.
Parcelable은 안드로이드 컴포넌트 간 데이터 전달이 필요한 경우 더 나은 선택이다. 특히 성능이 중요한 경우에 유용하다.

일반적으로는, 데이터 전달이나 저장을 위해 Parcelable을 사용하는 것이 안드로이드 애플리케이션의 성능 및 효율성을 향상시킬 수 있다.

profile
슬기로운 개발 활동

1개의 댓글

comment-user-thumbnail
2023년 8월 31일

언제 사용할까 ?
Serializable은 단순한 데이터 객체 또는 네트워크 통신에 사용될 경우 유용할 수 있다.
Parcelable은 안드로이드 컴포넌트 간 데이터 전달이 필요한 경우 더 나은 선택입니다.

이번엔 또 어디서 복붙하셨습니까? ㅎㅎ

답글 달기