Java

[Effective Java] ์•„์ดํ…œ 51. ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ์‹ ์ค‘ํžˆ ์„ค๊ณ„ํ•˜๋ผ.

quedevel 2023. 3. 24. 09:20
728x90
๋ฐ˜์‘ํ˜•

๐ŸŽฏ ์•„์ดํ…œ 51. ๋ฉ”์„œ๋“œ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ฅผ ์‹ ์ค‘ํžˆ ์„ค๊ณ„ํ•˜๋ผ.

1. ๋ฉ”์„œ๋“œ ์ด๋ฆ„์„ ์‹ ์ค‘์ด ์ง“์ž.

ํ•ญ์ƒ ํ‘œ์ค€ ๋ช…๋ช… ๊ทœ์น™์„ ๋”ฐ๋ผ์•ผ ํ•œ๋‹ค. ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ณ , ๊ฐ™์€ ํŒจํ‚ค์ง€์— ์†ํ•œ ๋‹ค๋ฅธ ์ด๋ฆ„๋“ค๊ณผ ์ผ๊ด€๋˜๊ฒŒ ์ง“๋Š” ๊ฒŒ ์ตœ์šฐ์„  ๋ชฉํ‘œ๋‹ค.

2. ํŽธ์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๋„ˆ๋ฌด ๋งŽ์ด ๋งŒ๋“ค์ง€ ๋ง์ž.

๋ชจ๋“  ๋ฉ”์„œ๋“œ๋Š” ๊ฐ๊ฐ ์ž์‹ ์˜ ์†Œ์ž„์„ ๋‹คํ•ด์•ผ ํ•œ๋‹ค. ๋ฉ”์„œ๋“œ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ํด๋ž˜์Šค๋Š” ์ตํžˆ๊ณ , ์‚ฌ์šฉํ•˜๊ณ , ๋ฌธ์„œํ™”ํ•˜๊ณ , ํ…Œ์ŠคํŠธํ•˜๊ณ ,
์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์–ด๋ ต๋‹ค. ๋”ฐ๋ผ์„œ ํ™•์‹ ์ด ์„œ์ง€ ์•Š์œผ๋ฉด ๋งŒ๋“ค์ง€ ๋ง์ž.

3. ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก์€ ์งง๊ฒŒ ์œ ์ง€ํ•˜์ž.

4๊ฐœ ์ดํ•˜๊ฐ€ ์ข‹๋‹ค. ์ผ๋‹จ 4๊ฐœ๊ฐ€ ๋„˜์–ด๊ฐ€๋ฉด ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ „๋ถ€ ๊ธฐ์–ตํ•˜๊ธฐ๊ฐ€ ์‰ฝ์ง€์•Š๋‹ค. ๊ฐ™์€ ํƒ€์ž…์˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ์—ฌ๋Ÿฌ ๊ฐœ๊ฐ€ ์—ฐ๋‹ฌ์•„
๋‚˜์˜ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ํŠนํžˆ ํ•ด๋กญ๋‹ค. ๊ณผํ•˜๊ฒŒ ๊ธด ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก์„ ์งง๊ฒŒ ์ค„์—ฌ์ฃผ๋Š” ๊ธฐ์ˆ  ์„ธ ๊ฐ€์ง€๋ฅผ ์†Œ๊ฐœํ•˜๊ฒ ๋‹ค.

1) ์—ฌ๋Ÿฌ ๋ฉ”์„œ๋“œ๋กœ ์ชผ๊ฐ ๋‹ค. ์ชผ๊ฐœ์ง„ ๋ฉ”์„œ๋“œ ๊ฐ๊ฐ์€ ์›๋ž˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก์˜ ๋ถ€๋ถ„์ง‘ํ•ฉ์„ ๋ฐ›๋Š”๋‹ค.
2) ๋งค๊ฐœ๋ณ€์ˆ˜ ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋ฌถ์–ด์ฃผ๋Š” ๋„์šฐ๋ฏธ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค. (DTO)
3) ์•ž์„œ์˜ ๋‘ ๊ธฐ๋ฒ•์„ ํ˜ผํ•ฉํ•œ ๊ฒƒ์œผ๋กœ, ๊ฐ์ฒด ์ƒ์„ฑ์— ์‚ฌ์šฉํ•œ ๋นŒ๋” ํŒจํ„ด์„ ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์— ์‘์šฉํ•œ๋‹ค๊ณ  ๋ณด๋ฉด ๋œ๋‹ค.


์ฐธ๊ณ  ์ž๋ฃŒ

Joshua Bloch, ใ€ŽEffective Java 3/Eใ€, ๊ฐœ์•ž๋งต์‹œ ์˜ฎ๊น€, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ธ์‚ฌ์ดํŠธ(2018)
http://www.kyobobook.co.kr/product/detailViewKor.laf?ejkGb=KOR&mallGb=KOR&barcode=9788966262281&orderClick=LEa&Kc=

728x90
๋ฐ˜์‘ํ˜•