๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
728x90

์ธ์Šคํ„ด์Šค3

[JAVA] Singleton Pattern ๐Ÿ“ข Singleton Pattern ์‹ฑ๊ธ€ํ„ด ํŒจํ„ด: ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜๋งŒ ์ƒ์„ฑ ํ•˜๋„๋ก ํ•˜๋ฉฐ, ์ƒ์„ฑ๋œ ํ•œ ๊ฐœ์˜ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ง€๊ณ  ์–ด๋””์—์„œ๋“ ์ง€ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ํŒจํ„ด์ด๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ์„ ํด๋ž˜์Šค์•ˆ์—์„œ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์™ธ๋ถ€์—๋Š” ์ƒ์„ฑ๋œ ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ์ƒ์„ฑ์ž๋Š” private๋กœ ์„ ์–ธํ•ด์•ผํ•œ๋‹ค. public class DuckManager { private static DuckManager manager = new DuckManager(); private Duck[] ducks = new Duck[20]; private DuckManager() { makeDucks(); } public static DuckManager getDuckManager() { return manager; } } ๐ŸŽจ ์‚ฌ์šฉ๋ฒ• packag.. 2023. 12. 18.
[JAVA] ํ˜• ๋ณ€ํ™˜ ๐ŸŽŠ ๊ธฐ๋ณธํ˜•์˜ ํ˜• ๋ณ€ํ™˜ boolean์„ ์ œ์™ธํ•œ ๊ธฐ๋ณธํ˜• ๋ณ€์ˆ˜์˜ ํƒ€์ž…์„ ์ž์œ ๋กญ๊ฒŒ ํ˜• ๋ณ€ํ™˜ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๐ŸŽŠ ์ฐธ์กฐํ˜•์˜ ํ˜• ๋ณ€ํ™˜ ์„œ๋กœ ๋‹ค๋ฅธ ํด๋ž˜์Šค๊ฐ€ ํ˜ธํ™˜์ด ๊ฐ€๋Šฅํ•œ๊ฐ€? Student student = new Member(); // ??? ๊ฐ€๋Šฅํ•œ๊ฐ€? student.sname; // X ์‚ฌ์šฉ ๋ถˆ๊ฐ€ ์›์น™์ ์œผ๋กœ (์˜ˆ์™ธ์žˆ์Œ) ์ฐธ์กฐํ˜•๋ผ๋ฆฌ์˜ ํ˜• ๋ณ€ํ™˜ ์•ˆ๋œ๋‹ค. ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํ•˜์ง€๋งŒ ์ƒ์† ๊ด€๊ณ„์˜ ํด๋ž˜์Šค(์ฐธ์กฐํ˜•) ๊ฐ„์— ํ˜• ๋ณ€ํ™˜์„ ์ง€์›ํ•œ๋‹ค. ์Šˆํผํด๋ž˜์Šค์˜ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๋ชจ๋‘ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์—…์บ์ŠคํŒ…์— ํ•œํ•ด์„œ ํ˜•๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ณ„๋„์˜ ๋ช…๋ น์–ด ์—†์ด ์•”๋ฌต์ (์ž๋™)์œผ๋กœ ์ง€์›์ด ๋œ๋‹ค. Duck dk = (Duck) new RedDuck(); ์—…์บ์ŠคํŒ…์ด ๋ฐœ์ƒํ•˜๋ฉด, ์„œ๋ธŒํด๋ž˜์Šค์—์„œ ํ™•์žฅํ•œ ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ํ•˜.. 2023. 12. 16.
[JAVA] ํด๋ž˜์Šค์™€ ๋ฉ”๋ชจ๋ฆฌ ๐ŸŽ„ ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”๋ชจ๋ฆฌ ๊ด€๊ณ„ Stack: ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ํ• ๋‹น Heap: ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ์‹ค์ œ ๋ณ€์ˆ˜ ๊ฐ’๊ณผ ํ•จ์ˆ˜์˜ ์ฃผ์†Œ ๊ฐ’ Code: ํด๋ž˜์Šค ์ด ์ฝ”๋“œ, Heap์—์„œ ์ด๊ณณ์˜ ํ•จ์ˆ˜์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ๋”๋ณด๊ธฐ โœจ ์ฐธ์กฐํ˜•(์ฃผ์†Œ) Class๋ฅผ ์˜๋ฏธ(ํ•˜๋‚˜๋ฐ–์— ์—†์Œ)ํ•œ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜, ์ฆ‰ ์‚ฌ์šฉ์ž type = style, ๋”ฐ๋ผ์„œ Heap์— ์ €์žฅ๋˜๊ฒŒ ๋œ๋‹ค. โœจ ์‹œ์Šคํ…œ์˜ ๊ด€์ ์—์„œ ํด๋ž˜์Šค๋Š” ๊ฐ™์€ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ์‹œํ‚จ ์ธ์Šคํ„ด์Šค ๊ฐ„์— ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋œ ์„ ์–ธ๋ฌธ์ด๋‹ค. ๐ŸŽ„ ๋ฉ”๋ชจ๋ฆฌ 1) Stack ์Šคํƒ ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ธ”๋ก(์Šค์ฝ”ํ”„) ๋ฒ—์–ด๋‚˜๋ฉด ์†Œ๋ฉธ, Heap๋ณด๋‹ค ๋น ๋ฅด๋‹ค. 2) Heap ํž™ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌ(ํ• ๋‹น/ํ•ด์ œ)ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น(new/ํฌ์ธํ„ฐ), ์ž๋ฐ”์—์„œ๋Š” ์‚ญ์ œ๋ฅผ ์•Œ.. 2023. 12. 13.
728x90