๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋กJava (25)

๋‹ญ๋ฐœ๊ฐœ๋ฐœ

[ํ—ค๋“œํผ์ŠคํŠธ ๋””์ž์ธํŒจํ„ด] 15์ผ์ฐจ. 205-216pg

15์ผ์ฐจ ํ—ค๋“œํผ์ŠคํŠธ ๋””์ž์ธํŒจํ„ด [3์ฃผ์ฐจ_์ˆ˜์š”์ผ] 205-216pg ์š”์•ฝ CHAPTER 05. ํ•˜๋‚˜๋ฟ์ธ ํŠน๋ณ„ํ•œ ๊ฐ์ฒด ๋งŒ๋“ค๊ธฐ (feat. ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด) ๊ฒŒ์œผ๋ฅธ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ (lazyinstantiation) : ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์ด ์˜ค๊ธฐ ์ „๊นŒ์ง€ ์•„์˜ˆ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•. ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์˜ ์ƒ์„ฑ์ž๋Š” private์œผ๋กœ ์ €์žฅ๋˜์–ด ์žˆ๋‹ค. public์œผ๋กœ ์ง€์ •๋œ ์ƒ์„ฑ์ž๋Š” ์—†์Œ ์‹ฑํดํ†ค ๊ฐ์ฒด๊ฐ€ ํ•„์š”ํ•  ๋•Œ๋Š” ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ฌ๋ผ๊ณ  ์š”์ฒญํ•œ๋‹ค. → getInstance() [ ์ดˆ์ฝœ๋ฆฟ ๋ณด์ผ๋Ÿฌ ] ๋ณด์ผ๋Ÿฌ๊ฐ€ ๊ฐ€๋“ ์ฐจ ์žˆ์„ ๋•Œ์™€ ๋น„์–ด์žˆ์„ ๋•Œ๋ฅผ ๋ถ„๋ฆฌํ•ด์„œ ์ฝ”๋”ฉ [ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด (Singleton Pattern) ] ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ํ•˜๋‚˜๋งŒ ๋งŒ๋“ค๊ณ , ๊ทธ ์ธ์Šคํ„ด์Šค๋กœ์˜ ์ „์—ญ ์ ‘๊ทผ์„ ์ œ๊ณตํ•œ๋‹ค. ์ด ํŒจํ„ด์„ ์‹ค์ œ ์ ์šฉํ•  ๋•Œ๋Š” ํด๋ž˜์Šค..

์ž๋ฐ” ์ง๋ ฌํ™”(serialize)? serialVersionUID?

์˜ค๋Š˜ ์‚ฌ์ˆ˜๋‹˜์ด intelliJ serialVersionUID ์ƒ์„ฑํ•˜๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ์žˆ๋Š”๊ฑฐ ์•Œ๊ณ ์žˆ์—ˆ๋ƒ๋Š” ๋ฉ”์‹ ์ €๊ฐ€ ์™”๋‹ค. ใ…‡ใ……ใ…‡? ๋ฐ”๋กœ ๊ตฌ๊ธ€๋ง. ์ง๋ ฌํ™”(serialize)๋ž€? ์ปดํ“จํ„ฐ์˜ ๋ฉ”๋ชจ๋ฆฌ ์ƒ์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํŒŒ์ผ๋กœ์จ ์ €์žฅํ•˜๊ฑฐ๋‚˜, ํ†ต์‹ ํ•˜๋Š” ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ์—๊ฒŒ ์•Œ๋งž์€ ํ˜•์‹์— ๋งž์ถ”์–ด ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด "๋ฐ”์ดํŠธ ์ŠคํŠธ๋ฆผ" ํ˜•ํƒœ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ. ์•Œ๋งž์€ ํ˜•์‹ ? ์ž๋ฐ”์—์„œ๋Š” "ํด๋ž˜์Šค"๋ฅผ ์˜๋ฏธํ•จ. ๊ทธ๋Ÿผ ์™œ "์ง๋ ฌํ™”"๋ผ๊ณ  ํ•ด? ํ”„๋กœ๊ทธ๋žจ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์€ ์—ฐ์†์ ์œผ๋กœ ์œ„์น˜ํ•ด ์žˆ์ง€ ์•Š๊ณ  ๋‚ด๋ถ€์ ์œผ๋กœ ํฌ์ธํ„ฐ์— ์˜ํ•ด ์ฐธ์กฐ ๋˜๊ณ  ์žˆ๋‹ค. -> ์ด๊ฑฐ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰ ์ค‘์ธ ์ปดํ“จํ„ฐ์—์„œ๋งŒ ์ธ์‹ํ•  ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ์ž„. ๋‹ค๋ฅธ ์ปดํ“จํ„ฐ๋ž‘ ํ†ต์‹ ํ•˜๋ฉด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์•Œ๋งž๊ฒŒ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํฉ๋ฟŒ๋ ค์ ธ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฐ ๋ชจ์•„ "ํฌ์ธํ„ฐ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ผ๋ จ์˜ ๋ฐ”์ดํŠธ..

JAVA 2023. 2. 24. 13:45