๐๊ถ๊ธ์ฆ?
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ DTO, VO ํด๋์ค ๋ช ๋์
implements Serializable
์ด๋ ๊ฒ ๋ถ์ด๋ ๊ฒฝ์ฐ๋ฅผ ๋ง์ด ๋ดค๋ค.
๋น์ฅ ๋์ ๋ณด์ด๋ ํจ๊ณผ๋ ์๋ ๊ฒ ๊ฐ์๋ฐ ์ ์ง๋ ฌํ๋ฅผ ํด์ฃผ์ด์ผ ํ๋์ง ์๋ฌธ์ด ์๊ฒผ๋ค.
์์ง 100% ์ดํดํ ๊ฒ์ ์๋์ง๋ง, ์์๋ณธ ๋ฐ ๋๋ก ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค.
โ๏ธprivate static final long serialVersionUID ๋ ์ ์ฌ์ฉํ๋?
๋๋ฉ์ธ ๊ฐ์ฒด์ private static final long serialVersionUID = 8999559983943337176L; ์ด๋ฐ ์์ผ๋ก ๋ฉค๋ฒ๋ณ์๊ฐ ๋ค์ด ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
์ด๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ type safety ๋๋ฌธ์ด๋ค. ์๋ฅผ๋ค์ด ์ง๋ ฌํํ ๊ฐ์ฒด๋ฅผ ์๊ฒฉ์ง์ ์ ์ก์ ํ๋ค๊ณ ํ์ ๊ฒฝ์ฐ์ ์ ์ก๋ ๊ฐ์ฒด์ ํด๋์ค์ ์๊ฒฉ์ง์ ํด๋์ค์ ๋์ผํ์ง ์ฌ๋ถ ์ฒดํฌ๋ฅผ ํด์ฃผ๋ ๊ฒ์ด๋ค. serialVersionUID ๋ค๋ฅผ๊ฒฝ์ฐ java.io.InvalidClassException ์ด ๋ฐ์ํ๋ค.
โ๏ธ๋ฐ์ดํฐ ์ง๋ ฌํ(serialization) ์ ํ์ํ๊ฐ?
๋จผ์ ๋ฐ์ดํฐ ์ง๋ ฌํ๋, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋์คํฌ์ ์ ์ฅํ๊ฑฐ๋ ๋คํธ์ํฌ ํต์ ์ ์ฌ์ฉํ๊ธฐ ์ํ ํ์์ผ๋ก ๋ณํํ๋ ๊ฒ์ ๋งํ๋ค.
(์ญ์ง๋ ฌํ desrialization๋ ๊ทธ ๋ฐ๋)
๊ทธ๋ ๋ค๋ฉด, ์ ๋ฐ์ดํฐ๋ฅผ ์๋ ๊ทธ๋๋ก ๊ทธ๋ฅ ์ฌ์ฉํ๋ฉด ์๋๊ณ ์ง๋ ฌํ๋ฅผ ํด์ฃผ์ด์ผ ํ ๊น?
๋ฐ๋ก ๋์คํฌ์ ์ ์ฅํ๊ฑฐ๋ ํต์ ์ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ ๐๊ฐ ํ์ ๋ฐ์ดํฐ๋ง ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ฐธ๊ณ ๋ก ๋ฐ์ดํฐ๋ค์ ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ๋ ํฌ๊ฒ 2๊ฐ์ง๋ก ๋๋๋ค.
1. ๊ฐ ํ์ ๋ฐ์ดํฐ(Value Type) : ์ฐ๋ฆฌ๊ฐ ํํ ์ ์ธํด์ ์ฌ์ฉํ๋ int, float, char ๋ฑ, ๊ฐ ํ์ ๋ฐ์ดํฐ๋ค์ ์คํ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์์ด๊ณ ์ง์ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
2. ์ฐธ์กฐ ํ์ ๋ฐ์ดํฐ(Reference Type) : ์๋ฐ์์ byte, short, char, int, long, boolean, float, double ์ด๋ ๊ฒ 8๊ฐ์ง ํ์ ์ ์ ์ธํ๊ณ ๋ ๋ชจ๋ ์ฐธ์กฐ ํ์ ๋ฐ์ดํฐ์ ํด๋นํ๋ค. ์ฐธ์กฐ ๋ณ์๋ฅผ ์ ์ธํ๋ฉด ํ์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ํ ๋น๋๊ณ ์คํ์์๋ ์ด ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฐธ์กฐํ๋(ํ์ ๋ฉ๋ชจ๋ฆฌ ๋ฒ์ง ์ฃผ์๋ฅผ ๊ฐ์ง๊ณ ์์) ๊ตฌ์กฐ๋ก ๋์ด์๋ค.
์ ๊ฐ ํ์ ๋ฐ์ดํฐ๋ง ํต์ ์ด ๊ฐ๋ฅํ ๊น?
์ฐธ์กฐํ์ ๋ฐ์ดํฐ๋ฅผ ํต์ ์ ์ฌ์ฉํ ์ ์๋ ์ด์ ๋ ๊ฐ pc ๋ง๋ค ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์ฃผ์๊ฐ ๋ชจ๋ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ง์ฝ ๋ด๊ฐ A๊ฐ์ฒด(0x00016413) ๋ฅผ ๋ค๋ฅธ pc๋ก ์ ์กํ๋ค๋ฉด ์ด ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ pc์ 0x00016413 ์ฃผ์์๋ ์ ํ ๋ค๋ฅธ ๊ฐ์ด
์กด์ฌํ๋ค.
๊ทธ๋ฐ๋ฐ, ์ง๋ ฌํ๋ฅผ ํ๋ฉด ๊ฐ ์ฃผ์๊ฐ์ด ๊ฐ์ง๋ ๋ฐ์ดํฐ๋ค์ ๋ชจ๋ ๊ฐ ํ์์ผ๋ก ๋ฐ๊พธ์ด์ค๋ค.
๊ทธ๋ฆฌ๊ณ ์ง๋ ฌํ๋ ๋ฐ์ดํฐ๋ค์ ํต์ ์์ ํ์ฑ์ด ๊ฐ๋ฅํ ์ ์๋ฏธํ ๋ฐ์ดํฐ๊ฐ ๋๋ค.
'Back > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA] ํ์ผ ๊ด๋ จ Stream, I/O ์ฑ๋ฅ ๊ฐ์ (File ๋ณต์ฌ ๊ธฐ๋ฅ) (2) | 2024.07.24 |
---|---|
[JAVA] Stream Collectors.groupingBy ๋(null) ์ฌ์ฉํ๊ธฐ (0) | 2023.04.07 |
[Java] Stream ์คํธ๋ฆผ์ผ๋ก ์ค๋ณต ๊ฐ ์ฐพ๊ธฐ (0) | 2023.02.22 |
[Java] Optional ๊ฐ๋ , ์ฌ์ฉ๋ฒ (1) | 2023.02.21 |
[JAVA] Reflection ์ด์ฉํด์ ํ๋๊ฐ set ํ๊ธฐ (0) | 2022.04.11 |
๋๊ธ