Item 87. Custom Serialization Form
์ปค์คํ ์ง๋ ฌํ ํํ๋ฅผ ๊ณ ๋ คํด๋ณด๋ผ
์ง๋ ฌํ๋ฅผ ๊ผญ ์ฌ์ฉํด์ผํ๊ณ , ๊ธฐ๋ณธ ์ง๋ ฌํ ํํ๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ๋ค.
(๊ธฐ๋ณธ ์ง๋ ฌํ ํํ๊ฐ ์ ํฉํ๋๋ผ๋ ๋ถ๋ณ์ ๋ณด์ฅ๊ณผ ๋ณด์์ ์ํด readObject
๋ฉ์๋๋ฅผ ์ ๊ณตํ๋ ๊ฒ์ด ์ข๋ค.)
์ง์ ์ค๊ณํ์ ๋, ๊ธฐ๋ณธ ์ง๋ ฌํ ํํ์ ๊ฑฐ์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ๊ฒฝ์ฐ
๊ฐ์ฒด์ ๋ฌผ๋ฆฌ์ ํํ๊ณผ ๋ ผ๋ฆฌ์ ๋ด์ฉ์ด ๊ฐ์ ๊ฒฝ์ฐ
๋ฐ๋๋ก ๊ธฐ๋ณธ ์ง๋ ฌํ ํํ๊ฐ ์ ํฉํ์ง ์์ ํด๋์ค์ ์๋ ๋ค์๊ณผ ๊ฐ๋ค.
์ ํด๋์ค๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์๋ค.
๋ ผ๋ฆฌ์ : ์ผ๋ จ์ ๋ฌธ์์ด์ ํํ
๋ฌผ๋ฆฌ์ : ๋ฌธ์์ด๋ค์ ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ก ์ฐ๊ฒฐํ์ฌ, ๊ฐ ๋ ธ๋์ ์๋ฐฉํ ์ฐ๊ฒฐ ์ ๋ณด๊ฐ ๊ธฐ๋ก ๋จ
์ด์ฒ๋ผ ๋ฌผ๋ฆฌ์ /๋ ผ๋ฆฌ์ ํํ์ ์ฐจ์ด๊ฐ ์กด์ฌํ ๋ ๊ธฐ๋ณธ ์ง๋ ฌํ ํํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค ๊ฐ์ง ๋ฉด์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
๊ณต๊ฐ API๊ฐ ํ์ฌ ๋ด๋ถ ํํ ๋ฐฉ์์ ๋ฌถ์: ๋ด๋ถ ๊ตฌํ ๋ฐฉ์์ผ๋ก ์ฐ๊ฒฐ ๋ฆฌ์คํธ๋ฅผ ์ฌ์ฉํ์ง ์๋๋ผ๋ ํด๋น ์ฝ๋๋ฅผ ์ ๊ฑฐํ ์ ์์
๋ถํ์ํ ๊ณต๊ฐ ์ฐจ์ง: ๊ฐ ๋ฐ์ดํฐ ๋ฟ๋ง ์๋๋ผ, ๋ด๋ถ ๊ตฌํ์ธ ์ฐ๊ฒฐ ์ ๋ณด๊น์ง ์ง๋ ฌํ๋์ด ์ ์ฅ๋์ด ๋ถํ์ํ ๊ณต๊ฐ ์ฐจ์ง
๋ถํ์ํ ์๊ฐ ์๋ชจ: ๊ฐ์ฒด์ ๋ชจ๋ ํ๋๋ฅผ ์ํํ๋ฉด์ ๊ทธ ๊ฐ์ฒด๊ฐ ์ฐธ์กฐํ๋ ์๋ ๋ค๋ฅธ ๊ฐ์ฒด๋ค๋ ์ง๋ ฌํ ํ๋๋ฐ, ๊ฐ์ฒด ๊ทธ๋ํ์ ์์์ ๋ํ ์ ๋ณด๊ฐ ์์ด ์ง๋ ฌํ์ ๋ง์ ์๊ฐ์ด ์์๋จ
์คํ ์ค๋ฒํ๋ก์ฐ: ๊ธฐ๋ณธ ์ง๋ ฌํ ๊ณผ์ ์ ๊ฐ์ฒด ๊ทธ๋ํ๋ฅผ ์ฌ๊ท ์ํํ๋๋ฐ, ๊ทธ ๊ณผ์ ์์ ์คํ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํ ์ ์์
๋๋ฌธ์ ๊ธฐ๋ณธ ์ง๋ ฌํ ๋ฐฉ์์ ํผํ๋ ๊ฒ์ด ์ข์๋ฐ, ์ ์์ ํด๋์ค์ ํฉ๋ฆฌ์ ์ธ ์ง๋ ฌํ ํํ๋ ๋ค์๊ณผ ๊ฐ์ด ๊ตฌํํด ๋ณผ ์ ์๋ค.
๋ณ๊ฒฝ ๋ ์ฃผ์ ํน์ง์ ๋ค์๊ณผ ๊ฐ๋ค.
size
,head
ํ๋transient
์ ์ฉ: ์ง๋ ฌํ ๋์์์ ์ ์ธEntry
ํด๋์คSerializable
์ธํฐํ์ด์ค ์ ๊ฑฐ: ์ง๋ ฌํ ๋์์์ ์ ์ธwriteObject
,readObject
๋ฉ์๋ ๊ตฌํ: ์ง๋ ฌํ ํํ๋ฅผ ์ปค์คํ ํ์ฌ ์ง๋ ฌํ/์ญ์ง๋ ฌํ ์ํdefaultWriteObject
,defaultReadObject
๋ฉ์๋ ํธ์ถ: ํฅํ ๋ฆด๋ฆฌ์ค์์transient
ํ๋๊ฐ ์ถ๊ฐ/์ ๊ฑฐ ์ ํธํ ๊ฐ๋ฅ
๋ค๋ฅธ ์๋ฃ๊ตฌ์กฐ ์ฌ์ฉ ์
์ฌ์ค StringList
์ ๊ธฐ๋ณธ ์ง๋ ฌํ ํํ๋ ๋ฌธ์ ๊ฐ ๋ง์์ง๋ง, ๋ ๋ง์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋๋ฐ, ํด์ํ
์ด๋ธ์ ๊ฒฝ์ฐ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์๋ค.
ํด์ํ ์ด๋ธ์ ๋ฌผ๋ฆฌ์ ์ผ๋ก ํค-๊ฐ ์ํธ๋ฆฌ๋ฅผ ๋ด์ ํด์ ๋ฒํท์ ์ฐจ๋ก๋ก ๋์ดํ ํํ๋ก ์ ์ฅ
์ด๋ค ์ํธ๋ฆฌ๋ฅผ ์ด๋ค ๋ฒํท์ ๋ด์ ์ง๋ ํค์์ ๊ตฌํ ํด์์ฝ๋๋ก ๊ฒฐ์ก๋๋๋ฐ, ๊ณ์ฐํ ๋๋ง๋ค ๋ฌ๋ผ์ง๋ ๊ฒฝ์ฐ๊ฐ ์์
์ง๋ ฌํ ํ ์ญ์ง๋ ฌํํ๋ฉด ๋ค๋ฅธ ํด์์ฝ๋๊ฐ ๋์ค๊ฒ ๋์ด, ํผ์๋ ๊ฐ์ฒด๊ฐ ์์ฑ๋ ์ ์์
๊ทธ ์ธ ์ฃผ์์ฌํญ
transient
ํค์๋๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋น ํ๋๋ค์ ์ญ์ง๋ ฌํ๋ ๋ ํด๋น ํ์ ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ๋จํด๋์ค ๋ด์์ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ ์ฌ์ฉํ๋ ๋ฉ์๋ ์ฌ์ฉ ์,
writeObject
,readObject
๋ฉ์๋์์๋ ๋๊ธฐํ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํด์ผ ํจ์ง๋ ฌํ ๊ฐ๋ฅ ํด๋์ค ๋ชจ๋์ ์ง๋ ฌ ๋ฒ์ UID๋ฅผ ๋ช ์์ ์ผ๋ก ๋ถ์ฌ
์ง๋ ฌ ๋ฒ์ UID๊ฐ ์ผ์ผํค๋ ์ ์ฌ์ ์ธ ํธํ์ฑ ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ
๋ฐํ์์์ ์์ฑํ๋ ์๊ฐ ๋จ์ถ ๊ฐ๋ฅ
๊ธฐ์กด ๋ฒ์ ํด๋์ค ํธํ์ฑ ์ ์ง ์ UID ์ ์ง / ํธํ์ฑ ๋์ ์ UID ๋ณ๊ฒฝ
Last updated
Was this helpful?