////
Search
โ˜•

Java

์‹ฑ๊ธ€ํ„ด ํŒจํ„ด

๊ฐœ๋…
โ€ข
ํด๋ž˜์Šค ํ•˜๋‚˜๋‹น ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๊ฐ€์ง€๊ฒŒ ํ•˜๋Š” ํŒจํ„ด
โ€ข
Java์—์„œ๋Š” ๋ณดํ†ต ์ƒ์„ฑ์ž๋ฅผ private์œผ๋กœ ์„ ์–ธํ•˜๊ณ  ํ•ด๋‹น Classํƒ€์ž…์˜ instance๋ฅผ ๋‚ด๋ถ€์— ๋งŒ๋“ค๊ณ  getInstance๋กœ ์‹ฑ๊ธ€ํ„ด ๊ฐ์ฒด๋ฅผ ์–ป์–ด๋‚ด๋Š” ๋ฐฉ์‹์„ ์ž์ฃผ ์“ด๋‹ค.
โ€ข
DBCP(DataBase ConnectionPool), ์“ฐ๋ ˆ๋“œํ’€์ฒ˜๋Ÿผ ๊ณตํ†ต๋œ ๊ฐ์ฒด๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์ƒ์„ฑํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ
โ€ข
Spring ์ปจํ…Œ์ด๋„ˆ์˜ ์‹ฑ๊ธ€ํ†ค ๋นˆ์€ ๋™๊ธฐํ™” ์ฒ˜๋ฆฌ๊ฐ€ ๋˜์–ด ์žˆ๋‹ค. Java ํด๋ž˜์Šค ๋กœ๋”์˜ ์‹ฑ๊ธ€ํ†ค ๊ฐ์ฒด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋™๊ธฐํ™”๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•œ๋‹ค.
public class Something { private Something() { } private static class LazyHolder { public static final Something INSTANCE = new Something(); } public static Something getInstance() { return LazyHolder.INSTANCE; } }
Java
๋ณต์‚ฌ
โ€ข
์žฅ์ 
โ—ฆ
๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ๋‹ค.
โ—ฆ
์ „์—ญ ์ธ์Šคํ„ด์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋“ค์ด ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ํ•˜๊ธฐ ์‰ฝ๋‹ค.
โ€ข
๋‹จ์ 
โ—ฆ
์‹ฑ๊ธ€ํ†ค ์ธ์Šคํ„ด์Šค๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ์ผ์„ ํ•˜๊ฑฐ๋‚˜ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณต์œ ์‹œํ‚ฌ ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋“ค ๊ฐ„์— ๊ฒนํ•ฉ๋„๊ฐ€ ๋†’์•„์ ธ OCP์›์น™์„ ์œ„๋ฐฐํ•˜๊ฒŒ ๋œ๋‹ค.
โ—ฆ
์ž๊ธฐ ์ž์‹ ์˜ ์ธ์Šคํ„ด์Šค๋ฅผ new๋กœ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ธฐ ๋•Œ๋ฌธ์— DIP ์›์น™์—๋„ ์–ด๊ธ‹๋‚œ๋‹ค.
โ—ฆ
์ด๋Š” ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„ ์›์น™์— ์–ด๊ธ‹๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •์ด ์–ด๋ ค์›Œ์ง€๊ณ  ์œ ์ง€๋ณด์ˆ˜์˜ ๋น„์šฉ์ด ๋†’์•„์งˆ ์ˆ˜ ์žˆ๋‹ค.
โ—ฆ
๋˜ํ•œ, ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ๋™๊ธฐํ™” ์ฒ˜๋ฆฌ๋ฅผ ์•ˆํ•˜๋ฉด ์ธ์Šคํ„ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ ์ƒ์„ฑ ๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์ƒ๊ธฐ๊ฒŒ ๋œ๋‹ค.
์ฑ•ํ„ฐ 38 : ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด ๋

ํŒฉํ„ฐ๋ฆฌ ํŒจํ„ด

๊ฐœ๋…
โ€ข
๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ๋ถ„๋ฆฌํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ์™€ ๊ฒฐํ•ฉ๋„(์˜์กด์„ฑ)๋ฅผ ๋‚ฎ์ถ”๊ณ  ์ฝ”๋“œ๋ฅผ ๊ฑด๋“œ๋ฆฌ๋Š” ํšŸ์ˆ˜๋ฅผ ์ตœ์†Œํ™” ํ•˜๊ธฐ ์œ„ํ•œ ํŒจํ„ด์ด๋‹ค.
โ€ข
๋งŒ์•ฝ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ์— ํŠน์ • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ/์ˆ˜์ •ํ•œ๋‹ค๊ณ  ํ•˜๋ฉด 1000๊ฐœ๋ฅผ ์ž‘์„ฑํ–ˆ์œผ๋ฉด 1000๊ฐœ๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ๋˜๋Š”๋ฐ ํŒฉํ„ฐ๋ฆฌ ํŒจํ„ด์„ ์ด์šฉํ•˜๋ฉด ํŒฉํ„ฐ๋ฆฌ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— 1๋ฒˆ๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋œ๋‹ค.
โ€ข
๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ํŒฉํ„ฐ๋ฆฌ์—์„œ ๋‚ด์šฉ์„ ๋ณ€๊ฒฝํ•ด์•ผ ๋˜๋ฉด ํŒฉํ„ฐ๋ฆฌ ์ „์ฒด๋ฅผ ์ˆ˜์ •ํ•ด์•ผ ๋˜๋Š” ๋ฌธ์ œ์ ์ด ์žˆ๋‹ค. ํŒฉํ„ฐ๋ฆฌ ์•ˆ์˜ ๋‹คํ˜•์„ฑ์œผ๋กœ ์ƒ์‚ฐํ•˜๋Š” ๊ฐ์ฒด๊ฐ€ 1000๊ฐœ๊ฐ€ ์žˆ๋‹ค๋ฉด 1000๊ฐœ๋ฅผ ๋‹ค ์ˆ˜์ •ํ•ด์•ผ ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋ž˜์„œ ์ถ”์ƒ ํŒฉํ„ฐ๋ฆฌ ํŒจํ„ด์„ ์จ์„œ ํŒฉํ„ฐ๋ฆฌ ํŒจํ„ด์˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ๊ฒƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ํŒฉํ„ฐ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์„ ์“ด๋‹ค.
์ฐธ๊ณ 
์ฑ•ํ„ฐ 39 : ํŒฉํ† ๋ฆฌ ํŒจํ„ด