๊ฐ์ฒด ์ง๋ ฌํ์ ๋ํด ๋ค๋ค๋ณด์. ๊ฐ์ฒด ์ง๋ ฌํ๋ ์๋ฐ๊ฐ ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก ์ธ์ฝ๋ฉํ๊ณ (์ง๋ ฌํ) ๊ทธ ๋ฐ์ดํธ ์คํธ๋ฆผ์ผ๋ก๋ถํฐ ๋ค์ ๊ฐ์ฒด๋ฅผ ์ฌ๊ตฌ์ฑ(์ญ์ง๋ ฌํ) ๋ฉ์ปค๋์ฆ์ด๋ค. ์ง๋ ฌํ๋ ๊ฐ์ฒด๋ ๋ค๋ฅธ VM์ ์ ์กํ๊ฑฐ๋ ๋์คํฌ์ ์ ์ฅํ ํ ๋์ค์ ์ญ์ง๋ ฌํํ ์ ์๋ค.
→ ์ด๋ฒ ์ฅ์์๋ ์ง๋ ฌํ๊ฐ ํ๊ณ ์๋ ์ํ๊ณผ ๊ทธ์ํ์ ์ต์ํํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์.
์์ดํ 85 : ์๋ฐ ์ง๋ ฌํ ๋์์ ์ฐพ์ผ๋ผ
์ญ์ง๋ ฌํ๋ฅผ ํจ๋ถ๋ก ์ฌ์ฉํ๋ฉด ๊ณต๊ฒฉ์ ๋ ธ์ถ๋๊ฒ ๋๋ค.
์ง๋ ฌํ ์ํ์ ํํผํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์๋ฌด๊ฒ๋ ์ญ์ง๋ ฌํํ์ง ์๋ ๊ฒ์ด๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์๋ก์ด ์์คํ ์์ ์๋ฐ ์ง๋ ฌํ๋ฅผ ์จ์ผ ํ ์ด์ ๋ ์ ํ ์๋ค. (์ํํ๋๊น)
→ ๊ฐ์ฒด์ ๋ฐ์ดํธ ์ํ์ค๋ฅผ ๋ณํํด์ฃผ๋ ๋ค๋ฅธ ๋งค์ปค๋์ฆ์ ์ฌ์ฉํ์.
- ๋ค์ํ ํ๋ซํผ ์ง์
- ์ฐ์ํ ์ฑ๋ฅ, ํ๋ถํ ์ง์ ๋๊ตฌ
- ์๋ฐ ์ง๋ ฌํ๋ณด๋ค ํจ์ฌ ๊ฐ๋จํ ๊ตฌ์กฐ
์ง/์ญ์ง๋ ฌํ๋์ ์์ฑ-๊ฐ ์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋ ๋ฐ์ดํฐ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํจ
⇒ ์ด ๋ฐ์ดํฐ ํํ์ ์ ๋์ฃผ์๋ ‘JSON’๊ณผ ํ๋กํ ์ฝ๋ฒํผ์ด๋ค.
๋ ๊ธฐ์ ๋๋ฌธ์ ์๋ฐ ์ง๋ ฌํ๋ฅผ ๋ฐฐ์ ํ ์ ์์ ๋
- ์ ๋ขฐํ ์ ์๋ ๋ฐ์ดํฐ๋ ์ ๋ ์ญ์ง๋ ฌํ ํ์ง ์๋๋ค.
- ์ญ์ง๋ ฌํ๊ฐ ์์ ํ์ง ํ์ ์ด ์๋ค๋ฉด ๊ฐ์ฒด ์ญ์ง๋ ฌํ ํํฐ๋ง(java.io.ObjectInputFilter)์ ์ฌ์ฉํด ์ํ ๊ฐ์ฒด๋ฅผ ํํฐ๋งํ์
- ๋ธ๋๋ฆฌ์คํธ๋ณด๋จ ํ์ดํธ๋ฆฌ์คํธ ๋ฐฉ์ ์ฌ์ฉํ์
-ํต์ฌ์ ๋ฆฌ-
์ง๋ ฌํ๋ ์ํํ๋ ํผํ์. ๋ฐ๋ฐ๋ฅ๋ถํฐ ์ค๊ณํ๋ค๋ฉด JSON ๊ฐ์ ๋์์ ์ฌ์ฉํ์. ์ ๋ขฐํ ์ ์๋ค๋ฉด ์ญ์ง๋ ฌํ ์์ ํ์.
์์ดํ 86 : Serailizable์ ๊ตฌํํ ์ง๋ ์ ์คํ ๊ฒฐ์ ํ๋ผ
ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ง๋ ฌํ ๊ฐ๋ฅํ๊ฒ ํ๋ ค๋ฉด ํด๋์ค ์ ์ธ์ ‘implements Serializable’๋ง ๋ถ์ด๋ฉด ๋๋ค. ์ง๋ ฌํ๋ ๊ฐ๋จํด๋ณด์ด์ง๋ง ํจ์ฌ ๋ณต์กํ๋ฉฐ, ๊ฐ๋น์ผ ๋น์ฉ์ด ์๋ชจ๋๋ค.
๋ฌธ์ ์
- Serializable์ ๊ตฌํํ๋ฉด ๋ฆด๋ฆฌ์คํ ๋ค์๋ ์์ ํ๊ธฐ ์ด๋ ต๋ค.
- ์ด๋ฅผ ๊ตฌํํ๋ฉด ‘์ง๋ ฌํ๋ ๋ฐ์ดํธ ์คํธ๋ฆผ ์ธ์ฝ๋ฉ’ ๋ํ ํ๋์ ๊ณต๊ฐ API๊ฐ ๋๋ค. (์์ํ ์ง์ํด์ผํจ)
- private๊ณผ package-private ์ธ์คํด์ค ํ๋๋ค๋ง์ API๋ก ๊ณต๊ฐ๋์ด ์ง๋ค. (์บก์ํ๊ฐ ๊นจ์ง)
์ง๋ ฌํ ๊ฐ๋ฅ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ์ ํ๋ค๋ฉด ์ฒ์๋ถํฐ ์ค๊ณ๋ฅผ ์ํด์ผํ๋ค. ํ์ง๋ง ๊ทธ๋ฌ๋๋ผ๋ ํด๋์ค๋ฅผ ๊ฐ์ ํ๋ ๋ฐ ์ ์ฝ์ด ์๋ค....
- ํด๋์ค์ ์ด๋ฆ, ์ธํฐํ์ด์ค, ๋ฉ์๋ ๋ฑ ์์ /๊ฐ์ ์ฌํญ์ด ์๊ธฐ๋ฉด ์ง๋ ฌ๋ฒ์ UID๋ ๋ณํ๋ค. ์ฆ, ์๋์์ฑ๋๋ ๊ฐ์ ์์กดํ๋ฉด ์ฝ๊ฒ ํธํ์ฑ์ด ๊นจ์ ธ๋ฒ๋ฆฐ๋ค๋ ๋ป์ด๋ค.
- Serializable์ ๊ตฌํํ๋ฉด ๋ฒ๊ทธ์ ๋ณด์ ๊ตฌ๋ฉ์ด ์๊ธธ ์ํ์ด ๋์์ง๋ค.
- ๊ฐ์ฒด๋ ์์ฑ์๋ฅผ ์ฌ์ฉํด ๋ง๋๋ ๊ฒ์ด ๊ธฐ๋ณธ์ธ๋ฐ ์ง๋ ฌํ๋ ์ด๋ฅผ ์ฐํํ๋ ๊ฐ์ฒด ์์ฑ ๊ธฐ๋ฒ์ด๋ค. ๋ฐ๋ผ์ “์์ฑ์์์ ๊ตฌ์ถํ ๋ถ๋ณ์์ ๋ชจ๋ ๋ณด์ฅํ๊ณ ์์ฑ ๋์ค ๊ณต๊ฒฉ์๊ฐ ๊ฐ์ฒด ๋ด๋ถ๋ฅผ ๋ค์ฌ๋ค ๋ณผ ์ ์๋๋ก ํด์ผํ๋ค"๋ผ๋ ๊ท์น์ ์ง์ผ์ผ ํ๋ค. ํ์ง๋ง ์ญ์ง๋ ฌํ๋ฅผ ์ฌ์ฉํ๋ฉด ์ํ์ ์ฝ๊ฒ ๋ ธ์ถ๋๋ค.
- ํด๋น ํด๋์ค์ ์ ๋ฒ์ ์ ๋ฆด๋ฆฌ์คํ ๋ ํ
์คํธํ ๊ฒ์ด ๋์ด๋๋ค.
- ๊ตฌ ์ธ์คํด์ค์ ์ ์ธ์คํด์ค๊ฐ ์ญ/์ง๋ ฌํ๊ฐ ๊ฐ๋ฅํ์ง ํ ์คํธ ํด๋ณด๊ณ ์ฑ๊ณตํด์ผ ํ๋ค.
- Serializable ๊ตฌํ ์ฌ๋ถ๋ ๊ฐ๋ณ๊ฒ ๊ฒฐ์ ํ ์ฌ์์ด ์๋๋ค.
- ๋จ, ๊ฐ์ฒด๋ฅผ ์ ์กํ๊ฑฐ๋ ์ ์ฅํ ๋ ์๋ฐ ์ง๋ ฌํ๋ฅผ ์ด์ฉํ๋ ํ๋ ์์ํฌ์ฉ์ผ๋ก ๋ง๋ ํด๋์ค๋ผ๋ฉด ์ ํ์ ์ฌ์ง๊ฐ ์๋ค.
- Serializable ๊ตฌํ์๋ ๋ง์ ๋น์ฉ์ด ์๋ชจ๋๋ฏ๋ก ํด๋์ค ์ค๊ณ ์ ์ด๋๊ณผ ๋น์ฉ์ ์ ์ ์ธ์ง ํด์ผํ๋ค.
- ์์์ฉ์ผ๋ก ์ค๊ณ๋ ํด๋์ค์ ์ธํฐํ์ด์ค ๋๋ถ๋ถ์ Serializable์ ํ์ฅ/๊ตฌํํด์๋ ์๋๋ค.
- ๋ง์ฝ, ํ์ฅ/๊ตฌํํ๊ฒ๋๋ฉด ๊ทธ ํด๋์ค์๊ฒ ๋ง์ ๋ถ๋ด์ ์ฃผ๊ฒ ๋๋ค. ํ์ง๋ง Serializable๊ตฌํํ ํด๋์ค๋ง ์ง์ํ๋ค๋ฉด ์ ํ์ ์ฌ์ง๊ฐ ์๋ค.
- ๋ด๋ถ ํด๋์ค๋ ์ง๋ ฌํ๋ฅผ ๊ตฌํํ์ง ๋ง์์ผ ํ๋ค
์์ดํ 87 : ์ปค์คํ ์ง๋ ฌํ ํํ๋ฅผ ๊ณ ๋ คํด๋ณด๋ผ
์ง๋ ฌํ๋ฅผ ๊ตฌํํ๊ฒ ๋๋ฉด ์ดํ์๋ ๋ฒ๋ฆด ์ ์๊ณ ์์ํ ๋ฐ์ด ๋ฌถ์ด๊ฒ ๋๋ค.
์ฐ์ ๊ณ ๋ฏผํด๋ณด๊ณ ๊ด์ฐฎ๋ค๊ณ ํ๋จ๋ ๋๋ง ๊ธฐ๋ณธ ์ง๋ ฌํ๋ฅผ ์ฌ์ฉํ๋ผ. (์ ์ฐ์ฑ, ์ฑ๋ฅ, ์ ํ์ฑ ์ธก๋ฉด์์ ํฉ๋นํ์ง)
- ๊ฐ์ฒด์ ๋ฌผ๋ฆฌ์ ํํ๊ณผ ๋
ผ๋ฆฌ์ ๋ด์ฉ์ด ๊ฐ๋ค๋ฉด ๊ธฐ๋ณธ ์ง๋ ฌํ ํํ๋ผ๋ ๋ฌด๋ฐฉํ๋ค
- ๊ธฐ๋ณธ ์ง๋ ฌํ๊ฐ ๊ฐ๋ฅํ ํ๋ณด์ ์ฝ๋๋ ์ด๋ฆ, ์ฑ, ์ค๊ฐ์ด๋ฆ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ฑ๋ช
์ ๋
ผ๋ฆฌ์ ๊ตฌ์ฑ์์๋ฅผ ์ ํํ ๋ฐ์ํ๋ค. (ํ๋ณด ๊ฐ๋ฅ)
- ์ ์ฝ๋์์๋ readObject๊ฐ ์ฑ๊ณผ ์ด๋ฆ์ด null์ด ์๋์ ๋ณด์ฅํด์ผ ํ๋ค.
- → ํํ๊ฐ ์ ํฉํด๋ ‘๋ถ๋ณ์ ๋ณด์ฅ'๊ณผ ๋ณด์์ ์ํด readObject ๋ฉ์๋๋ฅผ ์ ๊ณตํด์ผ ํ ๋๊ฐ ๋ง๋ค.
- public class Name implements Serializable { /** * ์ฑ. null์ด ์๋์ด์ผ ํจ. * @Serial */ private final String lastName; /** * ์ด๋ฆ. null์ด ์๋์ด์ผ ํจ. * @Serial */ private final String firstName; /** * ์ค๊ฐ์ด๋ฆ. ์ค๊ฐ์ด๋ฆ์ด ์๋ค๋ฉด null๊ฐ๋ฅ. * @Serial */ private final String middleName; }
- ๊ธฐ๋ณธ ์ง๋ ฌํ๊ฐ ๊ฐ๋ฅํ ํ๋ณด์ ์ฝ๋๋ ์ด๋ฆ, ์ฑ, ์ค๊ฐ์ด๋ฆ์ผ๋ก ๊ตฌ์ฑ๋๋ฉฐ ์ฑ๋ช
์ ๋
ผ๋ฆฌ์ ๊ตฌ์ฑ์์๋ฅผ ์ ํํ ๋ฐ์ํ๋ค. (ํ๋ณด ๊ฐ๋ฅ)
๊ฐ์ฒด์ ๋ฌผ๋ฆฌ์ ํํ๊ณผ ๋ ผ๋ฆฌ์ ํํ์ ์ฐจ์ด๊ฐ ํด ๋ ๊ธฐ๋ณธ ์ง๋ ฌํ ํํ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค๊ฐ์ง ๋ฉด์์ ๋ฌธ์ ๊ฐ ์๊ธด๋ค.
- ๊ณต๊ฐ API๊ฐ ํ์ฌ์ ๋ด๋ถ ํํ ๋ฐฉ์์ ์๊ตฌํ ๋ฌถ์ธ๋ค. (์ด์ ํ๋๋ฅผ ํ์ฌ ์ฌ์ฉํ์ง ์๋๋ผ๋ ์ง์ํด์ผํจ)
- ๋๋ฌด ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํ ์ ์๋ค. (์ง๋ ฌํ ํํ๊ฐ ์ปค์ ธ์ ์ ์ก/์ ์ฅ ์๋๊ฐ ๋๋ ค์ง๋ค)
- ์๊ฐ์ด ๋๋ฌด ๋ง์ด ๊ฑธ๋ฆด ์ ์๋ค.
- ์คํ ์ค๋ฒํ๋ก๋ฅผ ์ผ์ผํฌ ์ ์๋ค. (๊ธฐ๋ณธ ์ง๋ ฌํ ๊ณผ์ ์ ๊ฐ์ฒด๋ฅผ ์ฌ๊ท ์ํํ๋๋ฐ ์ด๋ ๊ท๋ชจ๊ฐ ์๋ ๊ฐ์ฒด ๊ทธ๋ํ์์ ์คํ ์ค๋ฒํ๋ก์ฐ๋ฅผ ์ผ์ผํฌ ์ ์๋ค)
ํฉ๋ฆฌ์ ์ธ ์ง๋ ฌํ ํํ ๊ฐ์ถ ํด๋์ค
// ์ฝ๋ 87-3 ํฉ๋ฆฌ์ ์ธ ์ปค์คํ
์ง๋ ฌํ ํํ๋ฅผ ๊ฐ์ถ StringList (462-463์ชฝ)
public final class StringList implements Serializable {
private transient int size = 0;
private transient Entry head = null;
// ์ด์ ๋ ์ง๋ ฌํ๋์ง ์๋๋ค.
private static class Entry {
String data;
Entry next;
Entry previous;
}
// ์ง์ ํ ๋ฌธ์์ด์ ์ด ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋ค.
public final void add(String s) { }
/**
* ์ด {@code StringList} ์ธ์คํด์ค๋ฅผ ์ง๋ ฌํํ๋ค.
*
* @serialData ์ด ๋ฆฌ์คํธ์ ํฌ๊ธฐ(ํฌํจ๋ ๋ฌธ์์ด์ ๊ฐ์)๋ฅผ ๊ธฐ๋กํ ํ
* ({@code int}), ์ด์ด์ ๋ชจ๋ ์์๋ฅผ(๊ฐ๊ฐ์ {@code String})
* ์์๋๋ก ๊ธฐ๋กํ๋ค.
*/
private void writeObject(ObjectOutputStream s)
throws IOException {
s.defaultWriteObject();
s.writeInt(size);
// ๋ชจ๋ ์์๋ฅผ ์ฌ๋ฐ๋ฅธ ์์๋ก ๊ธฐ๋กํ๋ค.
for (Entry e = head; e != null; e = e.next)
s.writeObject(e.data);
}
private void readObject(ObjectInputStream s)
throws IOException, ClassNotFoundException {
s.defaultReadObject();
int numElements = s.readInt();
// ๋ชจ๋ ์์๋ฅผ ์ฝ์ด ์ด ๋ฆฌ์คํธ์ ์ฝ์
ํ๋ค.
for (int i = 0; i < numElements; i++)
add((String) s.readObject());
}
// ๋๋จธ์ง ์ฝ๋๋ ์๋ต
}
- transient : ์ง๋ ฌํ์์ ์ ์ธ
๊ฐ์ฒด์ ๋ ผ๋ฆฌ์ ์ํ์ ๋ฌด๊ดํ ํ๋๋ผ๊ณ ํ์ ํ ๋๋ง transient ํ์ ์๋ฅผ ์๋ตํด์ผ ํ๋ค
์ด๋ค ์ง๋ ฌํ ํํ๋ฅผ ํํ๋ ์ง๋ ฌํ ๊ฐ๋ฅ ํด๋์ค ๋ชจ๋์ ์ง๋ ฌ ๋ฒ์ UID๋ฅผ ๋ช ์์ ์ผ๋ก ๋ถ์ฌํ์
- ๋ช ์์ ์ผ๋ก ๋ถ์ฌํ๋ฉด ์ง๋ ฌ ๋ฒ์ UID๊ฐ ์ผ์ผํค๋ ์ ์ฌ์ ์ธ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์ฌ๋ผ์ง๋ค. (ํ๋์ ๋ฐ๋ผ ๋ฐ๋์ง ์์ผ๋ฏ๋ก)
์์ดํ 88 : readObject ๋ฉ์๋๋ ๋ฐฉ์ด์ ์ ์์ฑํ๋ผ
readObject ๋ฉ์๋๋ public ์์ฑ์๋ผ๊ณ ์๊ฐํ๊ณ ์์ฑํ์.
์ด ๋ฉ์๋๋ ์ด๋ค ๋ฐ์ดํธ์คํธ๋ฆผ์ด๋ผ๋ ์ ํจํ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ๋ด์ผํ๋ค.
readObject ์์ฑ ์ง์นจ
- private์ด์ด์ผ ํ๋ ๊ฐ์ฒด ์ฐธ์กฐ ํ๋๋ ๊ฐ ํ๋๊ฐ ๊ฐ๋ฆฌํค๋ ๊ฐ์ฒด๋ฅผ ๋ฐฉ์ด์ ์ ๋ณต์ฌํ๋ผ. (๋ถ๋ณ ํด๋์ค ๋ด ๊ฐ๋ณ ์์)
- ๋ฐฉ์ด์ ๋ณต์ฌ ํ์๋ ๋ถ๋ณ์ ๊ฒ์ฌ๊ฐ ๋ค๋ฐ๋ฅด๋ฉฐ ์ด๋ฅผ ํต๊ณผํด์ผํ๋ค.
- ์ง/๊ฐ์ ์ ์ผ๋ก ์ฌ์ ์ํ ์ ์๋ ๋ฉ์๋๋ ํธ์ถํ์ง ๋ง์
์์ดํ 89 : ์ธ์คํด์ค ์๋ฅผ ํต์ ํด์ผ ํ๋ค๋ฉด readResolve๋ณด๋ค๋ ์ด๊ฑฐ ํ์ ์ ์ฌ์ฉํ๋ผ
- readResolve ๊ธฐ๋ฅ์ ์ด์ฉํ๋ฉด readObject ๊ฐ ๋ง๋ค์ด๋ธ ์ธ์คํด์ค๋ฅผ ๋ค๋ฅธ ๊ฒ์ผ๋ก ๋์ฒดํ ์ ์๋ค.
- ํ์ง๋ง, ์ญ์ง๋ ฌํํ ๊ฐ์ฒด๋ ๋ฌด์ํ๊ณ ํด๋์ค ์ด๊ธฐํ ์ ๋ง๋ค์ด์ง ์ธ์คํด์ค๋ฅผ ๋ฐํํ๋ ๊ฒ์ด๋ค.
- ์ด๊ธฐํ ์ ๋ง๋ค์ด์ง ์ธ์คํด์ค๋ฅผ ๊ฐ์ ธ์ค๋ฏ๋ก ์ง๋ ฌํ ์ ์ค ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง ์ด์ ๊ฐ ์๋ค (์ด์ฐจํผ ์์). ๋ชจ๋ ์ธ์คํด์ค ํ๋๋ฅผ transient๋ก ์ ์ธํ ๊ฒ
- transient๋ฅผ ์์ฐ๋ฉด readResolver ์คํ ์ ์ญ์ง๋ ฌํ๋ ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ ๊ณต๊ฒฉ๋นํ ์ ์๋ค. (์ฑ๊ธํด ํ๊ดด ๊ฐ๋ฅํ ์ ์์)
๋ถ๋ณ์์ ์งํค๊ธฐ ์ํด ์ธ์คํด์ค๋ฅผ ํต์ ํด์ผํ๋ค๋ฉด ์ด๊ฑฐ ํ์ ์ ์ฌ์ฉํ์.
์ฌ์์น ์์ ์ํฉ์์ ์ง๋ ฌํ, ์ธ์คํด์ค ํต์ ๊ฐ ๋ชจ๋ ํ์ํ๋ค๋ฉด readResolve๋ฉ์๋๋ฅผ ์์ฑํ๊ณ ๋ชจ๋ ์ฐธ์กฐ ํ์ ์ธ์คํด์ค ํ๋๋ฅผ transient๋ก ์ ์ธํ์.
์์ดํ 90 : ์ง๋ ฌํ๋ ์ธ์คํด์ค ๋์ ์ง๋ ฌํ ํ๋ก์ ์ฌ์ฉ์ ๊ฒํ ํ๋ผ
Serializable ๊ตฌํ ๊ฒฐ์ ์ดํ ๋ถํฐ ์ ์ ์์ฑ์ ์ด์ธ์ ๋ฐฉ๋ฒ์ผ๋ก ์ธ์คํด์ค๋ฅผ ์์ฑํ ์ ์๊ฒ ๋๋ค. ๋ฒ๊ทธ ๋ณด์์ฑ ํผ.
๋ฒ๊ทธ ๋ณด์์ฑ ์ํ์ ์ค์ด๊ธฐ ์ํด ‘์ง๋ ฌํ ํ๋ก์ ํจํด'์ ์ฌ์ฉํ๋ค.
๋ฐ๊นฅ ํด๋์ค์ ๋ ผ๋ฆฌ์ ์ํ๋ฅผ ์ ๋ฐํ๊ฒ ํํํ๋ ์ค์ฒฉ ํด๋์ค๋ฅผ ์ค๊ณํด private static์ผ๋ก ์ ์ธํ๋ค.
์ด ํจํด์ด ์ค์ํ ๋ถ๋ณ์์ ์์ ์ ์ผ๋ก ์ง๋ ฌํํด์ฃผ๋ ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ด๋ค.
'๐์ฝ์ ์ฑ ์ ๋ฆฌ > ์ดํํฐ๋ธ์๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ดํํฐ๋ธ ์๋ฐ] 11์ฅ : ๋์์ฑ (0) | 2022.04.04 |
---|---|
[์ดํํฐ๋ธ ์๋ฐ] 10์ฅ : ์์ธ (0) | 2022.03.29 |
[์ดํํฐ๋ธ ์๋ฐ] 9์ฅ : ์ผ๋ฐ์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์์น (0) | 2022.03.27 |
[์ดํํฐ๋ธ ์๋ฐ] 8์ฅ : ๋ฉ์๋ (1) | 2022.03.27 |
[์ดํํฐ๋ธ ์๋ฐ] 7์ฅ : ๋๋ค์ ์คํธ๋ฆผ (0) | 2022.03.23 |