[Java] Serializable 직렬화

2024. 5. 24. 09:43Β· π™Ώπš›πš˜πšπš›πšŠπš–πš–πš’πš—πš π™»πšŠπš—πšπšžπšŠπšπšŽ/π™Ήπ™°πš…π™°
λͺ©μ°¨
  1. 직렬화 ν•˜λŠ” 이유
  2. 직렬화
  3. serialVersionUID
λ°˜μ‘ν˜•

 

 

μ „μžμ •λΆ€ ν”„λ ˆμž„μ›Œν¬ μ½”λ“œ 뢄석을 ν•˜λ˜ 쀑 문득 κΆκΈˆν•΄μ Έμ„œ Serializableλ₯Ό μ°Ύμ•„λ΄€λ‹€.

 

 

 

 

 

 

 

(μ•½ 1λ…„ 전에 velog에닀 μ •λ¦¬ν•œ λ‚΄μš© γ…Žγ…Ž..)

μž‘λ…„μ— μˆ˜μ—…μ„ λ“€μœΌλ©΄μ„œ μ •λ¦¬ν–ˆλŠ”λ°, μ΄λ•Œμ—λ„ μ™„λ²½νžˆ μ΄ν•΄ν•˜κ³  λ„˜μ–΄κ°€μ§€ λͺ»ν–ˆλ˜ 것 κ°™λ‹€.

μ΄ν•΄λŠ” λ˜μ§€λ§Œ, μ™œ μ¨μ•Όν•˜λŠ”μ§€ μ–Έμ œ μ¨μ•Όν•˜λŠ” μ§€ 등에 λŒ€ν•΄ 이해가 μ•ˆ 됐닀.

 

 

 

 

 

 

 

 

직렬화 ν•˜λŠ” 이유

일단 직렬화에 λŒ€ν•΄ 근본적으둜 μ΄ν•΄ν•˜κΈ° μ‰½κ²Œ 객체λ₯Ό μƒμžλ‘œ λΉ„μœ λ₯Ό ν•˜κ² λ‹€.

μ—¬λŸ¬ 개의 μƒμžκ°€ μžˆμ„ λ•Œ, 이 μƒμžλ“€μ„ ν•œκΊΌλ²ˆμ— λ‹€λ₯Έ 곳으둜 보내기엔 양이 많고 크기가 μ»€μ„œ νž˜λ“€λ‹€.

κ·Έλž˜μ„œ 각 μƒμžλ₯Ό ν•˜λ‚˜μ”© κΊΌλ‚΄μ„œ 쀄을 μ„Έμ›Œμ„œ λ³΄λ‚΄λŠ” 방법을 μ‚¬μš©ν•  수 μžˆλ‹€.

μ΄λŸ¬ν•œ 과정을 직렬화라고 ν•œλ‹€.

 

 

 

 

 

 

 

 

 

직렬화

μ§λ ¬ν™”λŠ” 객체의 μƒνƒœλ₯Ό μœ μ§€ν•˜λ©΄μ„œ 객체λ₯Ό λ‹€λ₯Έ ν™˜κ²½μœΌλ‘œ μ „μ†‘ν•˜κ±°λ‚˜ μ €μž₯ν•˜λŠ” 데 ν•„μˆ˜μ μΈ κΈ°λŠ₯이닀.

 

 

μ»΄ν“¨ν„°λŠ” 데이터λ₯Ό λ°”μ΄νŠΈ λ‹¨μœ„λ‘œ μ²˜λ¦¬ν•œλ‹€.

κ°μ²΄λŠ” λ°”μ΄νŠΈ λ‹¨μœ„κ°€ μ•„λ‹ˆκΈ° λ•Œλ¬Έμ—, λ‹€λ₯Έ 곳으둜 μ „μ†‘ν•˜κ±°λ‚˜ μ €μž₯ν•˜λ €λ©΄ λ°”μ΄νŠΈ ν˜•νƒœλ‘œ λ³€ν™˜ν•΄μ•Ό ν•œλ‹€.

μ§λ ¬ν™”λŠ” 객체λ₯Ό λ°”μ΄νŠΈ ν˜•νƒœλ‘œ μ „ν™˜μ‹œμΌœμ£ΌλŠ”λ°, μΊ‘μŠν™”λ₯Ό μœ μ§€ν•˜λ©΄μ„œ λ³€ν™˜ν•œλ‹€.

 

예λ₯Ό λ“€μ–΄ μ„œλ²„μ—μ„œ ν΄λΌμ΄μ–ΈνŠΈλ‘œ 객체λ₯Ό 보낼 λ•ŒλŠ” λ°”μ΄νŠΈ 슀트림으둜 전솑(직렬화 ν›„) ν•˜κ³ ,

ν΄λΌμ΄μ–ΈνŠΈμ—μ„œλŠ” 받은 λ°”μ΄νŠΈ μŠ€νŠΈλ¦Όμ„ μ—­μ§λ ¬ν™”ν•˜μ—¬ μ›λž˜ 객체둜 λ³΅μ›ν•œλ‹€.

 

μΆ”κ°€μ μœΌλ‘œ, κ°μ²΄λŠ” λ©”λͺ¨λ¦¬μ— μ €μž₯λ˜λŠ”λ°, 이 λ©”λͺ¨λ¦¬λŠ” μΌμ‹œμ μ΄κ³  νœ˜λ°œμ„±μ΄λ‹€.

ν”„λ‘œκ·Έλž¨μ΄ μ’…λ£Œλ˜λ©΄ λ©”λͺ¨λ¦¬μ— μ €μž₯된 κ°μ²΄λŠ” 사라지기에, 객체λ₯Ό μ§λ ¬ν™”ν•˜μ—¬ νŒŒμΌμ— μ €μž₯ν•˜λ©΄ ν”„λ‘œκ·Έλž¨μ΄ μ’…λ£Œλœ 후에도 객체의 μƒνƒœλ₯Ό μœ μ§€ν•  수 μžˆλ‹€.

이 μ €μž₯은 둜컬 파일 μ‹œμŠ€ν…œμ— μ €μž₯ν•  μˆ˜λ„ 있고, 원격 μ„œλ²„μ— 전솑할 μˆ˜λ„ 있으며, λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯ν•˜κ±°λ‚˜ λ©”μ‹œμ§€ 큐에 넣을 μˆ˜λ„ μžˆλ‹€.

 

 

 

 

 

 

 

 

 

serialVersionUID

private static final long serialVersionUID = -8274004534207618049L;

 

각 ν΄λž˜μŠ€λ§ˆλ‹€ serialVersionUIDκ°€ μ§€μ •λœλ‹€.

IDE 도ꡬλ₯Ό μ‚¬μš©ν•˜λ©΄ serialVersionUIDλ₯Ό μžλ™μœΌλ‘œ 생성할 수 μžˆλ‹€.

클래슀의 ꡬ쑰가 변경될 λ•Œλ§ˆλ‹€ μƒˆλ‘œμš΄ serialVersionUIDκ°€ μƒμ„±λœλ‹€.

이 클래슀의 λͺ¨λ“  κ°μ²΄λŠ” λ™μΌν•œ serialVersionUIDλ₯Ό κ³΅μœ ν•œλ‹€.

 

 

 

 

 

λ°˜μ‘ν˜•

'π™Ώπš›πš˜πšπš›πšŠπš–πš–πš’πš—πš π™»πšŠπš—πšπšžπšŠπšπšŽ > π™Ήπ™°πš…π™°' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

[JAVA] Java둜 κ°„λ‹¨ν•œ 달λ ₯ ν”„λ‘œκ·Έλž¨ λ§Œλ“€κΈ° (Calendar 클래슀 ν™œμš©)  (0) 2024.11.09
JSP νŽ˜μ΄μ§€μ˜ κΈ°λ³Έ: page λ””λ ‰ν‹°λΈŒμ™€ taglib μ„ μ–Έ 방법  (0) 2024.10.30
[Java] μ œμ–΄μž - static, final, abstract  (0) 2024.05.07
[Java] package와 import  (0) 2024.05.04
[Java] μ˜€λ²„λΌμ΄λ”©(override)μ΄λž€? μ˜€λ²„λΌμ΄λ”© vs μ˜€λ²„λ‘œλ”© / μ˜€λ²„λΌμ΄λ”©μ˜ 쑰건  (0) 2024.05.03
  1. 직렬화 ν•˜λŠ” 이유
  2. 직렬화
  3. serialVersionUID
'π™Ώπš›πš˜πšπš›πšŠπš–πš–πš’πš—πš π™»πšŠπš—πšπšžπšŠπšπšŽ/π™Ήπ™°πš…π™°' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [JAVA] Java둜 κ°„λ‹¨ν•œ 달λ ₯ ν”„λ‘œκ·Έλž¨ λ§Œλ“€κΈ° (Calendar 클래슀 ν™œμš©)
  • JSP νŽ˜μ΄μ§€μ˜ κΈ°λ³Έ: page λ””λ ‰ν‹°λΈŒμ™€ taglib μ„ μ–Έ 방법
  • [Java] μ œμ–΄μž - static, final, abstract
  • [Java] package와 import
ν•΄λ²„λ‹ˆ
ν•΄λ²„λ‹ˆ
κ°œλ°œν•˜λ©΄μ„œ 배운 것듀을 κΈ°λ‘ν•©λ‹ˆλ‹€.
ν•΄λ²„λ‹ˆ
DevNight
ν•΄λ²„λ‹ˆ
전체
였늘
μ–΄μ œ
  • 전체보기 (210) N
    • πšπšŽπšπš›πš˜πšœπš™πšŽπšŒπšπš’πšŸπšŽπšœ (6) N
      • πšƒπš’πš™πšœ (2)
      • 회고 (3)
      • μ‹€μˆ˜ λͺ¨μŒμ§‘ (0)
    • π™Ώπš›πš˜πš“πšŽπšŒπš (3)
      • π™Ίπ™Ύπš‚πšƒπ™° πš†πšŽπš‹ π™Ώπš›πš˜πš“πšŽπšŒπš (2)
    • π™Ώπš›πš˜πšπš›πšŠπš–πš–πš’πš—πš π™»πšŠπš—πšπšžπšŠπšπšŽ (67)
      • π™·πšƒπ™Όπ™» (6)
      • π™²πš‚πš‚ (3)
      • π™Ήπ™°πš…π™° (47)
      • π™ΉπšŠπšŸπšŠπš‚πšŒπš›πš’πš™πš (10)
      • πšƒπš’πš™πšŽπš‚πšŒπš›πš’πš™πš (1)
    • π™±πšŠπšŒπš”πšŽπš—πš (19)
      • πš‚πš™πš›πš’πš—πš π™±πš˜πš˜πš (4)
      • πš‚πš™πš›πš’πš—πš (3)
      • 파일 처리 (1)
      • π™Ήπš‚π™Ώ (6)
      • πš†π™΄π™± (4)
    • π™΅πš›πš˜πš—πšπšŽπš—πš (9)
      • 𝚁𝚎𝚊𝚌𝚝 (4)
      • πš…πšžπšŽ.πš“πšœ (2)
      • π™·πšžπšπš˜ (3)
    • π™°πš•πšπš˜πš›πš’πšπš‘πš– (42) N
      • π™Ώπš›πš˜πšπš›πšŠπš–πš–πšŽπš›πšœ (6)
      • π™±πšŠπšŽπš”πš“πš˜πš˜πš— (34) N
    • π™³π™°πšƒπ™°π™±π™°πš‚π™΄ (19)
      • πš‚πš€π™» (1)
      • π™Ώπš˜πšœπšπšπš›πšŽπš‚πš€π™» (1)
      • π™Όπš’πš‚πš€π™» (3)
      • π™Ύπš›πšŠπšŒπš•πšŽ (1)
      • π™ΌπšŠπš›πš’πšŠπ™³π™± (1)
      • π™Ώπš›πš˜πšπš›πšŠπš–πš–πšŽπš›πšœ (1)
    • π™³πšŽπšŸπšŽπš•πš˜πš™πš–πšŽπš—πš πšƒπš˜πš˜πš•πšœ (13)
      • π™Έπš—πšπšŽπš•πš•πš’π™Ή (0)
      • π™΄πšŒπš•πš’πš™πšœπšŽ (9)
      • πš…πš‚π™²πš˜πšπšŽ (1)
      • π™±πšžπš’πš•πš πš‚πšŒπš›πš’πš™πšπšœ (1)
    • πš…πšŽπš›πšœπš’πš˜πš— π™²πš˜πš—πšπš›πš˜πš• (15)
      • π™Άπš’πš (4)
      • π™Άπš’πšπ™·πšžπš‹ (6)
      • πš‚πš…π™½ (5)
    • 배포 및 인프라 (2)
      • π™°πš†πš‚ (2)
    • π™Έπšƒ (10)
      • πš‚πš…π™½ (0)
    • ν™˜κ²½μ„€μ • (2)

λΈ”λ‘œκ·Έ 메뉴

  • ν™ˆ
  • νƒœκ·Έ
  • λ°©λͺ…둝

곡지사항

인기 κΈ€

νƒœκ·Έ

  • μžλ°”
  • html
  • BAEKJOON
  • spring
  • λ°±μ€€
  • React
  • μžλ°”μ˜μ •μ„
  • PostgreSQL
  • μžλ°”μŠ€ν¬λ¦½νŠΈ
  • 이클립슀
  • μ˜€λΈ”μ™„
  • Java
  • JavaScript
  • μ•Œκ³ λ¦¬μ¦˜
  • μ½”ν…Œ
  • ν‹°μŠ€ν† λ¦¬μ±Œλ¦°μ§€
  • μ½”λ”©ν…ŒμŠ€νŠΈ
  • php
  • ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€
  • λ°°μ—΄

졜근 λŒ“κΈ€

졜근 κΈ€

hELLO Β· Designed By μ •μƒμš°.v4.3.0
ν•΄λ²„λ‹ˆ
[Java] Serializable 직렬화
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”

단좕킀

λ‚΄ λΈ”λ‘œκ·Έ

λ‚΄ λΈ”λ‘œκ·Έ - κ΄€λ¦¬μž ν™ˆ μ „ν™˜
Q
Q
μƒˆ κΈ€ μ“°κΈ°
W
W

λΈ”λ‘œκ·Έ κ²Œμ‹œκΈ€

κΈ€ μˆ˜μ • (κΆŒν•œ μžˆλŠ” 경우)
E
E
λŒ“κΈ€ μ˜μ—­μœΌλ‘œ 이동
C
C

λͺ¨λ“  μ˜μ—­

이 νŽ˜μ΄μ§€μ˜ URL 볡사
S
S
맨 μœ„λ‘œ 이동
T
T
ν‹°μŠ€ν† λ¦¬ ν™ˆ 이동
H
H
단좕킀 μ•ˆλ‚΄
Shift + /
⇧ + /

* λ‹¨μΆ•ν‚€λŠ” ν•œκΈ€/영문 λŒ€μ†Œλ¬Έμžλ‘œ 이용 κ°€λŠ₯ν•˜λ©°, ν‹°μŠ€ν† λ¦¬ κΈ°λ³Έ λ„λ©”μΈμ—μ„œλ§Œ λ™μž‘ν•©λ‹ˆλ‹€.