"์•ˆ๋…•ํ•˜์„ธ์š”, ์•„๋ฏธ๊ณ ! ์—ฐ์žฌ์— ๋Œ€ํ•ด ์กฐ๊ธˆ ๋” ์ž์„ธํžˆ ๋ง์”€๋“œ๋ฆฌ๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค."

ํด๋ž˜์Šค์— ์ผ๋ถ€ InputStream ์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค . ๊ทธ๋Ÿผ ์—ฐ์žฌํ•  ์ˆ˜ ์—†๊ฒ ์ฃ ?

"๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์ŠคํŠธ๋ฆผ์€ ์ง๋ ฌํ™”ํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ์ง์ ‘ ๋ง์”€ํ•˜์…จ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ง๋ ฌํ™”ํ•  ์ˆ˜ ์—†๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ๊ฐœ์ฒด๋ฅผ ์ง๋ ฌํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."

"๋งž์•„. ๊ทธ๋ƒฅ ๊ทธ๋ž˜. ํ•˜์ง€๋งŒ ํด๋ž˜์Šค๊ฐ€ ์ƒํƒœ์—์„œ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ์œผ๋ฉด์„œ ์ง๋ ฌํ™” ๊ฐ€๋Šฅํ•œ ํด๋ž˜์Šค๋กœ ๊ฐ„์ฃผ๋˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š”๋‹ค๋ฉด? ํด๋ž˜์Šค๊ฐ€ ๋ถˆํ•„์š”ํ•œ ๊ฒƒ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์€ ์‹ ๊ฒฝ์“ฐ์ง€ ๋งˆ๋ผ. ์ด๊ฒƒ์„ ๋˜์งˆ ์ˆ˜ ์žˆ๋‹ค. ๋ฐ์ดํ„ฐ๋Š” ํ•ญ์ƒ ์กด์žฌํ•˜๋ฉฐ ์–ด์ฉŒ๋ฉด ๊ทธ๋Ÿด ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค."

์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ์— Java ์ œ์ž‘์ž๋Š” transient ํ‚ค์›Œ๋“œ๋ฅผ ์ƒ๊ฐํ•ด ๋ƒˆ์Šต๋‹ˆ๋‹ค . ๋ฉค๋ฒ„ ๋ณ€์ˆ˜ ์•ž์— ์ด ํ‚ค์›Œ๋“œ๋ฅผ ์“ฐ๋ฉด ์ง๋ ฌํ™” ์ค‘์— ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. ํ•ด๋‹น ์ƒํƒœ๋Š” ์ €์žฅ๋˜๊ฑฐ๋‚˜ ์žฌ๊ตฌ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋งˆ์น˜ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ฒ˜๋Ÿผ. ์ด๊ฒƒ์€ ์šฐ๋ฆฌ๊ฐ€ ๋ฐฉ๊ธˆ ๊ณ ๋ คํ•œ ์ƒํ™ฉ์— ๋Œ€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์บ์‹ฑ๊ณผ ํœ˜๋ฐœ์„ฑ ์ˆ˜์ •์ž๋ฅผ ๊ธฐ์–ตํ•˜์‹ญ๋‹ˆ๊นŒ? ์˜ˆ์™ธ ์—†๋Š” ๊ทœ์น™์€ ์—†์Šต๋‹ˆ๋‹ค .

๋‹ค์Œ์€ ์ด๋Ÿฌํ•œ ํ–‰๋ณต์— ๋Œ€ํ•œ ํ•œ ๊ฐ€์ง€ ์˜ˆ์ž…๋‹ˆ๋‹ค.

์ง๋ ฌํ™”์— ๋ณด์ด์ง€ ์•Š๋Š” ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ยซcatยป ์˜ˆ:

์•”ํ˜ธ
class Cat implements Serializable
{
 public String name;
 public int age;
 public int weight;

 transient public InputStream in = System.in; 
}