[Java] Serializable ์ง๋ ฌํ
์ ์์ ๋ถ ํ๋ ์์ํฌ ์ฝ๋ ๋ถ์์ ํ๋ ์ค ๋ฌธ๋ ๊ถ๊ธํด์ ธ์ Serializable๋ฅผ ์ฐพ์๋ดค๋ค.
(์ฝ 1๋ ์ ์ velog์๋ค ์ ๋ฆฌํ ๋ด์ฉ ใ ใ ..)
์๋ ์ ์์ ์ ๋ค์ผ๋ฉด์ ์ ๋ฆฌํ๋๋ฐ, ์ด๋์๋ ์๋ฒฝํ ์ดํดํ๊ณ ๋์ด๊ฐ์ง ๋ชปํ๋ ๊ฒ ๊ฐ๋ค.
์ดํด๋ ๋์ง๋ง, ์ ์จ์ผํ๋์ง ์ธ์ ์จ์ผํ๋ ์ง ๋ฑ์ ๋ํด ์ดํด๊ฐ ์ ๋๋ค.
์ง๋ ฌํ ํ๋ ์ด์
์ผ๋จ ์ง๋ ฌํ์ ๋ํด ๊ทผ๋ณธ์ ์ผ๋ก ์ดํดํ๊ธฐ ์ฝ๊ฒ ๊ฐ์ฒด๋ฅผ ์์๋ก ๋น์ ๋ฅผ ํ๊ฒ ๋ค.
์ฌ๋ฌ ๊ฐ์ ์์๊ฐ ์์ ๋, ์ด ์์๋ค์ ํ๊บผ๋ฒ์ ๋ค๋ฅธ ๊ณณ์ผ๋ก ๋ณด๋ด๊ธฐ์ ์์ด ๋ง๊ณ ํฌ๊ธฐ๊ฐ ์ปค์ ํ๋ค๋ค.
๊ทธ๋์ ๊ฐ ์์๋ฅผ ํ๋์ฉ ๊บผ๋ด์ ์ค์ ์ธ์์ ๋ณด๋ด๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค.
์ด๋ฌํ ๊ณผ์ ์ ์ง๋ ฌํ๋ผ๊ณ ํ๋ค.
์ง๋ ฌํ
์ง๋ ฌํ๋ ๊ฐ์ฒด์ ์ํ๋ฅผ ์ ์งํ๋ฉด์ ๊ฐ์ฒด๋ฅผ ๋ค๋ฅธ ํ๊ฒฝ์ผ๋ก ์ ์กํ๊ฑฐ๋ ์ ์ฅํ๋ ๋ฐ ํ์์ ์ธ ๊ธฐ๋ฅ์ด๋ค.
์ปดํจํฐ๋ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํธ ๋จ์๋ก ์ฒ๋ฆฌํ๋ค.
๊ฐ์ฒด๋ ๋ฐ์ดํธ ๋จ์๊ฐ ์๋๊ธฐ ๋๋ฌธ์, ๋ค๋ฅธ ๊ณณ์ผ๋ก ์ ์กํ๊ฑฐ๋ ์ ์ฅํ๋ ค๋ฉด ๋ฐ์ดํธ ํํ๋ก ๋ณํํด์ผ ํ๋ค.
์ง๋ ฌํ๋ ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํธ ํํ๋ก ์ ํ์์ผ์ฃผ๋๋ฐ, ์บก์ํ๋ฅผ ์ ์งํ๋ฉด์ ๋ณํํ๋ค.
์๋ฅผ ๋ค์ด ์๋ฒ์์ ํด๋ผ์ด์ธํธ๋ก ๊ฐ์ฒด๋ฅผ ๋ณด๋ผ ๋๋ ๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ์ ์ก(์ง๋ ฌํ ํ) ํ๊ณ ,
ํด๋ผ์ด์ธํธ์์๋ ๋ฐ์ ๋ฐ์ดํธ ์คํธ๋ฆผ์ ์ญ์ง๋ ฌํํ์ฌ ์๋ ๊ฐ์ฒด๋ก ๋ณต์ํ๋ค.
์ถ๊ฐ์ ์ผ๋ก, ๊ฐ์ฒด๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋๋๋ฐ, ์ด ๋ฉ๋ชจ๋ฆฌ๋ ์ผ์์ ์ด๊ณ ํ๋ฐ์ฑ์ด๋ค.
ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋ ๊ฐ์ฒด๋ ์ฌ๋ผ์ง๊ธฐ์, ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํํ์ฌ ํ์ผ์ ์ ์ฅํ๋ฉด ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋ ํ์๋ ๊ฐ์ฒด์ ์ํ๋ฅผ ์ ์งํ ์ ์๋ค.
์ด ์ ์ฅ์ ๋ก์ปฌ ํ์ผ ์์คํ ์ ์ ์ฅํ ์๋ ์๊ณ , ์๊ฒฉ ์๋ฒ์ ์ ์กํ ์๋ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅํ๊ฑฐ๋ ๋ฉ์์ง ํ์ ๋ฃ์ ์๋ ์๋ค.
serialVersionUID
private static final long serialVersionUID = -8274004534207618049L;
๊ฐ ํด๋์ค๋ง๋ค serialVersionUID๊ฐ ์ง์ ๋๋ค.
IDE ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด serialVersionUID๋ฅผ ์๋์ผ๋ก ์์ฑํ ์ ์๋ค.
ํด๋์ค์ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง๋ค ์๋ก์ด serialVersionUID๊ฐ ์์ฑ๋๋ค.
์ด ํด๋์ค์ ๋ชจ๋ ๊ฐ์ฒด๋ ๋์ผํ serialVersionUID๋ฅผ ๊ณต์ ํ๋ค.