-
[ JAVA ] μ§λ ¬ν Serializable , μμ§λ ¬ν DeserializeJAVA 2022. 3. 17. 15:46λ°μν
μ§λ ¬ν Serializable , μμ§λ ¬ν Deserialize μ μ
μ§λ ¬ν(η΄εε) λλ μ리μΌλΌμ΄μ μ΄μ (serialization)μ λ°μ΄ν° ꡬ쑰λ μ€λΈμ νΈ μνλ₯Ό λμΌνκ±°λ λ€λ₯Έ μ»΄ν¨ν° νκ²½μ μ μ₯
(μ΄λ₯Όν λ©΄ νμΌμ΄λ λ©λͺ¨λ¦¬ λ²νΌμμ, λλ λ€νΈμν¬ μ°κ²° λ§ν¬ κ° μ μ‘)νκ³ λμ€μ μ¬κ΅¬μ±ν μ μλ ν¬λ§·μΌλ‘ λ³ννλ κ³Όμ μ΄λ€.
μ€λΈμ νΈλ₯Ό μ§λ ¬ννλ κ³Όμ μ μ€λΈμ νΈλ₯Ό λ§μ¬λ§νλ€κ³ λ νλ€.
λ°λλ‘, μΌλ ¨μ λ°μ΄νΈλ‘λΆν° λ°μ΄ν° ꡬ쑰λ₯Ό μΆμΆνλ μΌμ μμ§λ ¬ν λλ λμ리μΌλΌμ΄μ μ΄μ (deserialization)μ΄λΌκ³ νλ€.
μ§λ ¬νμ μμ§λ ¬νλ₯Ό μν€μμ μ μν κ²°κ³Όλ μ΄λ μ§λ§ κ·Έλ κ² μ½κ² μλΏμ§ μμλ€. π’
κ°λ¨ν λ§νμλ©΄
μ§λ ¬νλ λ©λͺ¨λ¦¬λ₯Ό λμ€ν¬μ μ μ₯νκ±°λ λ€νΈμν¬ ν΅μ μ μ¬μ©νκΈ° μν νμμΌλ‘ λ³ννλ κ²
μμ§λ ¬νλ λ°λλ‘ λμ€ν¬μ μ μ₯ν λ°μ΄ν°λ₯Ό μ½κ±°λ, λ€νΈμν¬ ν΅μ μΌλ‘ λ°μ λ°μ΄ν°λ₯Ό λ©λͺ¨λ¦¬μ μΈ μ μλλ‘ λ€μ λ³ννλ κ²μ΄λ€.
μΌλ¨ μ§λ ¬νμ μμ§λ ¬νκ° μ νμνμ§μ λν΄ λ¨Όμ μμμΌ νλ€κ³ μκ°νλ€.
μ§λ ¬νλ λ°μ΄ν°λ₯Ό μ μ₯ νΉμ ν΅μ μ μ¬μ©νκΈ° μν¨μΈλ° λ°μ΄ν°λ₯Ό κ·Έλ₯ μ¬μ©νλ©΄ μ λκ³ μ μ§λ ¬νλΌλ κ³Όμ μ κ±°μ³μΌ ν κΉ ?
μ§λ ¬νλ μ νμνκ°? μ¬μ©μ΄μ
κ°λ° μΈμ΄λ‘ 무μμ μ¬μ©νλ(C++, C, C#, Java λ±,,) μ¬μ©νλ λ°μ΄ν°λ€μ λ©λͺ¨λ¦¬ ꡬ쑰λ ν¬κ² 2κ°μ§λ‘ λλλ€.
1. κ° νμ λ°μ΄ν°(Value Type) : μ°λ¦¬κ° νν μ μΈν΄μ μ¬μ©νλ int, float, char λ±, κ° νμ λ°μ΄ν°λ€μ μ€νμ λ©λͺ¨λ¦¬κ° μμ΄κ³ μ§μ μ κ·Όμ΄ κ°λ₯νλ€.
2. μ°Έμ‘° νμ λ°μ΄ν°(Reference Type) : C#μμ Object νμ νΉμ C++μμ ν¬μΈν° λ³μλ€μ΄ μ¬κΈ°μ ν΄λΉλλ€. ν΄λΉ νμμ λ³μλ₯Ό μ μΈνλ©΄ νμ λ©λͺ¨λ¦¬κ° ν λΉλκ³ μ€νμμλ μ΄ ν λ©λͺ¨λ¦¬λ₯Ό μ°Έμ‘°νλ(νμ λ©λͺ¨λ¦¬ λ²μ§ μ£Όμλ₯Ό κ°μ§κ³ μμ) κ΅¬μ‘°λ‘ λμ΄μλ€.
μ΄ λκ°μ§ λ°μ΄ν° μ€μμ λμ€ν¬μ μ μ₯νκ±°λ ν΅μ μλ κ° νμ λ°μ΄ν°(Value Type)λ§ κ°λ₯νλ€.
μ°Έμ‘° νμ λ°μ΄ν°(Reference Type)λ μ€μ λ°μ΄ν° κ°μ΄ μλ νμ ν λΉλμ΄μλ λ©λͺ¨λ¦¬ λ²μ§ μ£Όμλ₯Ό κ°μ§κ³ μκΈ° λλ¬Έμ μ μ₯, ν΅μ μ μ¬μ©ν μ μλ€.
** μ€ν, ν
- μ€ν
- κΈ°λ³Έν νμ λ³μλ€κ³Ό κ·Έ κ°λ€μ΄ ν¨κ» μ μ₯λλ€.
- ν μμμ μ μ₯λμ΄ μλ μ°Έμ‘°ν νμ λ³μλ€μ reference(μ£Όμ)κ° μ μ₯λλ€.
- μ μ μΈ κ²λ€μ΄ μ μ₯λλ κ³³ - ν
- μ°Έμ‘°ν νμ μ λ³μλ€μ΄ μ μ₯λλ€. (newμ°μ°μλ₯Ό ν΅ν΄ μμ±λ μΈμ€ν΄μ€ λ³μκ° μ μ₯λλ€.)
- (cf. μΈμ€ν΄μ€ λ³μμ referenceλ μ€νμ μ μ₯)
- λμ μΈ κ²λ€μ΄ μ μ₯λλ κ³³
μ μ°Έμ‘° νμ λ°μ΄ν°λ μ¬μ©ν μ μμκΉ ?
μλ₯Ό λ€μλ©΄
ν¬μΈν° λ³μ Class A λ₯Ό μ μΈνκ³ κ°μ²΄λ₯Ό λ§λ€μ΄ κ·Έ μ£Όμ κ°μ΄ 0x00045523λΌκ³ κ°μ νμ.
κ·Έλ¦¬κ³ μ΄ κ°μ νμΌμ ν¬ν¨νμ¬ μ μ₯νλ€κ³ ν΄λ³΄μ.
κ·Έ ν νλ‘κ·Έλ¨μ μ’ λ£νκ³ λ€μ μ€νν΄μ μ£Όμκ° 0x00045523μ κ°μ Έμ€λλΌλ κΈ°μ‘΄ A κ°μ²΄μ λ°μ΄ν°λ₯Ό κ°μ Έμ¬ μ μλ€.(νλ‘κ·Έλ¨μ΄ μ’ λ£λλ©΄ κΈ°μ‘΄μ ν λΉλμλ λ©λͺ¨λ¦¬(0x00045523)λ ν΄μ λκ³ μμ΄μ§λ€)
λ€νΈμν¬ ν΅μ λν λ§μ°¬κ°μ§μ΄λ€.
κ° PCλ§λ€ μ¬μ©νκ³ μλ λ©λͺ¨λ¦¬ κ³΅κ° μ£Όμλ μ ν λ€λ₯΄λ€.
κ·Έλ κΈ° λλ¬Έμ λ΄κ° λ€λ₯Έ PCλ‘ μ μ‘ν Aκ°μ²΄ λ°μ΄ν°(0x00045523)μ 무μλ―Ένλ€.
μ΄ λ°μ΄ν°λ₯Ό λ°μ PCμμμ λ©λͺ¨λ¦¬ μ£Όμ 0x00045523μλ μ ν λ€λ₯Έ κ°μ΄ μ‘΄μ¬νκΈ° λλ¬Έμ΄λ€.
μ§λ ¬νλ₯Ό νκ² λλ©΄ κ° μ£Όμκ°μ΄ κ°μ§λ λ°μ΄ν°λ€μ μ λΆ λμ΄λͺ¨μμ κ° νμ(Value Type)λ°μ΄ν°λ‘ λ³νν΄μ€λ€.
μ΄λ¬ν μ΄μ λλ¬Έμ λ°μ΄ν°λ₯Ό μ μ₯, ν΅μ μ μ 'λ°μ΄ν° μ§λ ¬ν(Serialization)' μμ μ΄ νμν κ²μ΄λ€!!
μ§λ ¬νκ° λ λ°μ΄ν°λ€μ μΈμ΄μ λ°λΌμ ν μ€νΈ λλ λ°μ΄λ리 λ±μ ννκ° λλλ°, μ΄λ¬ν ννκ° λμμ λ μ μ₯νκ±°λ ν΅μ μ νμ±μ΄ κ°λ₯ν μ μλ―Έν λ°μ΄ν°κ° λλ κ²μ΄λ€.
ν κ°μ§ μμλ₯Ό λ λ§νμλ©΄,
Stringμ΄ ν¬μΈν°λ‘ ꡬνλμ΄μλ κ²½μ° int, double λ± κ³Όλ λ€λ₯΄κ² λ΄λΆμ μΌλ‘ λ©λͺ¨λ¦¬κ° μ°μμ μΌλ‘ λμ΄μμ§ μλ€.(int*λ 4byteμ© double* 8byteμ© λ©λͺ¨λ¦¬κ° μ°μμ μΌλ‘ λ°°μΉλμ΄μμ) μ΄ μ€νΈλ§ λ°μ΄ν°λ₯Ό 무μ¬ν μ μ₯ νΉμ μ μ‘νκΈ° μν΄μλ μ΄ λ©λͺ¨λ¦¬ λ°μ΄ν°λ€μ μ°μμ μΌλ‘ λ°°μΉ, κ° νμ λ³μ‘° μ¦ μ§λ ¬νλ₯Ό ν΄μ€μΌ νλ κ²μ΄λ€.
λ§μ§λ§μΌλ‘ μμ½ν΄λ³΄λ©΄
μ§λ ¬νλ₯Ό μ°λ μ΄μ λ μ¬μ©νκ³ μλ λ°μ΄ν°λ€μ νμΌ μ μ₯ νΉμ λ°μ΄ν° ν΅μ μμ νμ± ν μ μλ μ μλ―Έν λ°μ΄ν°λ₯Ό λ§λ€κΈ° μν¨μ΄λ€.
μΆμ² : https://hub1234.tistory.com/26
λ°μν'JAVA' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[ JAVA ] Object Mapper : json μ§λ ¬ν, μμ§λ ¬ν μ¬μ©λ² (0) 2022.03.17 JAVA 8 : Dateμ Time (0) 2021.03.21 JAVA 8 : Optional (0) 2021.03.18 - μ€ν