Item 86. Serializable Interface

Serializable μΈν„°νŽ˜μ΄μŠ€λŠ” μ‹ μ€‘νžˆ κ΅¬ν˜„ν•˜λΌ

클래슀 선언에 implements Serializableλ₯Ό μΆ”κ°€ν•˜λŠ” κ²ƒλ§ŒμœΌλ‘œ 직렬화가 κ°€λŠ₯ν•΄μ§€μ§€λ§Œ, λ‹€μŒκ³Ό 같은 문제λ₯Ό μ•ΌκΈ°ν•  수 μžˆλ‹€.

  1. ν•œ 번 μ μš©ν•˜κ³  λ¦΄λ¦¬μŠ€ν•œ ν›„μ—λŠ” μˆ˜μ •ν•˜κΈ° 어렀움

    • μ§λ ¬ν™”λœ λ°”μ΄νŠΈ 슀트림 인코딩(직렬화 ν˜•νƒœ)도 ν•˜λ‚˜μ˜ 곡개 APIκ°€ 될 수 있음

    • λ˜ν•œ μ»€μŠ€ν…€ 직렬화λ₯Ό ν•˜μ§€ μ•Šκ³  κΈ°λ³Έ 방식을 μ‚¬μš©ν•˜κ²Œ 되면, 적용 λ‹Ήμ‹œμ˜ 클래슀 λ‚΄λΆ€ κ΅¬ν˜„ 방식에 λ¬Άμ—¬ μˆ˜μ • μ‹œ 직렬화 ν˜•νƒœκ°€ 변경될 수 있음

  2. 버그와 λ³΄μ•ˆ λ¬Έμ œκ°€ 생길 μœ„ν—˜ 증가

    • κ°μ²΄λŠ” μƒμ„±μžλ₯Ό 톡해 λ§Œλ“œλŠ” 것이 κΈ°λ³Έμ΄μ§€λ§Œ, 역직렬화λ₯Ό 톡해 일반적인 μƒμ„±μž ν˜ΈμΆœμ„ 톡해 μƒμ„±λ˜λŠ” 것이 μ•„λ‹˜

  3. ν•΄λ‹Ή 클래슀 신버전 릴리슀 μ‹œ ν…ŒμŠ€νŠΈ μš”μ†Œ 증가

    • 클래슀 λ‚΄λΆ€ κ΅¬ν˜„ λ³€κ²½ μ‹œ, κ΅¬λ²„μ „κ³Όμ˜ μ–‘λ°©ν–₯ 직렬회/역직렬화 ν˜Έν™˜μ„± 확인 ν•„μš”

    • λ‚΄λΆ€ κ΅¬ν˜„μ΄ λ³€κ²½ 된 수 만큼의 버전 ν…ŒμŠ€νŠΈ ν•„μš”

Serializable μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜λŠ” 것은 μ‹ μ€‘νžˆ κ²°μ •ν•΄μ•Ό ν•˜λ©°, Serializable μΈν„°νŽ˜μ΄μŠ€ κ΅¬ν˜„ μ‹œ μ•„λž˜μ˜ 사항을 κ³ λ €ν•˜λŠ” 것이 μ’‹λ‹€.

  • 'λ™μž‘'ν•˜λŠ” 객체λ₯Ό ν‘œν˜„ν•˜λŠ” ν΄λž˜μŠ€λ³΄λ‹¨ 'κ°’'을 ν‘œν˜„ν•˜λŠ” ν΄λž˜μŠ€μ— 적합

  • ν•΄λ‹Ή 클래슀λ₯Ό ν™•μž₯ν•˜κ±°λ‚˜ κ΅¬ν˜„ μ‹œ 직렬화에 λŒ€ν•œ 뢀담이 생길 수 μžˆμ–΄ μƒμ†μš©μœΌλ‘œ μ„€κ³„λœ ν΄λž˜μŠ€μ—λŠ” μ ν•©ν•˜μ§€ μ•ŠμŒ

Last updated