๐Ÿ”ฅ EffectiveJAVA-Study

header


  • JAVA์— ๋Œ€ํ•ด ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž
  • Referenced book : Effective Java 3/E by Joshua J. Bloch

ํ•™์Šต ๋ชฉ์ 

  • ๊พธ์ค€ํ•œ ๊ณต๋ถ€๊ฐ€ ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๋ฐ ๋งŽ์€ ์–‘์˜ ์•„์ดํ…œ์„ ํ˜ผ์ž ์ง€์†์ ์œผ๋กœ ํ•™์Šตํ•˜๊ธฐ๋Š” ์‰ฝ์ง€ ์•Š๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ํ•จ๊ป˜ํ•˜๋Š” ์Šคํ„ฐ๋””๊ฐ€ ๊ฐ€์žฅ ํšจ์œจ์ ์ด๋ผ ์ƒ๊ฐํ•˜๊ธฐ์— ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ๋‚จ์—๊ฒŒ ์„ค๋ช…ํ•˜๊ฑฐ๋‚˜ ๊ฐ€๋ฅด์น  ์ˆ˜ ์žˆ์„๋•Œ ์ œ์ผ ์ž˜ ์ดํ•ดํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœํ‘œ ์ค‘์‹ฌ์˜ ์Šคํ„ฐ๋””๋ฅผ ๊ธฐํšํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์งˆ๋ฌธ์„ ํ•จ์œผ๋กœ์„œ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์„ ์ปค๋ฒ„ํ•˜๋ฉฐ ๋ฐœํ‘œ๋ฅผ ํ•˜๋ฉด์„œ ์ž˜๋ชป ์ดํ•ดํ•œ ๋ถ€๋ถ„๋“ค๊นŒ์ง€ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ ์œ„ํ•œ ํ† ๋ก  ๋ฐฉ์‹๋„ ์ฑ„ํƒํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์ง„ํ–‰ ๋ฐฉ์‹

๋งค์ฃผ ์Šคํ„ฐ๋”” ์ „๊นŒ์ง€ ํ• ์ผ
๊ฐ ์•„์ดํ…œ ๋ณ„๋กœ ๊ฐ์ž ์˜ˆ์ œ ์ฝ”๋“œ ์ž‘์„ฑํ•ด๋ณด๊ธฐ โœ…
๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์„œ PR ๋ณด๋‚ด๊ธฐ โœ…
๊ณต๋ถ€ ์ค‘ ์งˆ๋ฌธ์ด๋‚˜ ์ดํ•ด๋˜์ง€ ์•Š๋Š” ๋‚ด์šฉ์€ issues์— ๋‚จ๊ธฐ๊ธฐ โœ…

๋งค ์Šคํ„ฐ๋”” ๋‹น์ผ ํ• ์ผ
๋žœ๋ค์œผ๋กœ ์ •ํ•ด์„œ ๋ฐœํ‘œ ์ง„ํ–‰ โœ…
๋ฐœํ‘œ์ž์˜ ์ •๋ฆฌ ๋‚ด์šฉ์„ main์— ์˜ฌ๋ฆฐ๋‹ค โœ…
ํ•œ์ฃผ ๋™์•ˆ ์ƒ๊ธด issue๋“ค review โœ…
  • Q&A ๊ธฐ๊ฐ„
    • Q&A๋ž€? :์Šคํ„ฐ๋”” ์ค‘ ์ƒ๊ธด ์งˆ๋ฌธ์ด๋‚˜ review๋ฅผ ํ†ตํ•ด์„œ ํ•ด๊ฒฐ ์•ˆ๋œ ์งˆ๋ฌธ๋“ค์€ ๊ทธ ๋ฐœํ‘œ์ž๊ฐ€ ํ•ด๊ฒฐ ํ›„ ํŒ€์›๋“ค์—๊ฒŒ ์•Œ๋ ค์ฃผ๋Š”๊ฒƒ
    • ๊ทธ ๋‹ค์Œ์ฃผ ์›”์š”์ผ๊นŒ์ง€๋กœ ํ•œ๋‹ค.

์Šคํ„ฐ๋”” ๊ทœ์น™

  • ๋งค์ฃผ ๊ธˆ์š”์ผ 19์‹œ์— ์Šคํ„ฐ๋”” ์ง„ํ–‰
  • ์Šคํ„ฐ๋”” ์ „๊นŒ์ง€ PR ๋‚จ๊ธฐ๊ธฐ
  • ์˜ˆ์ œ ์ฝ”๋“œ๋Š” ๊ฐ€๋Šฅํ•œ ์Šค์Šค๋กœ ์ƒˆ๋กญ๊ฒŒ ๋งŒ๋“ค์–ด๋ณธ๋‹ค
  • ๋ฐœํ‘œ ์ž๋ฃŒ ๊ฒฝ๋กœ
    • ex) ์ฑ•ํ„ฐ01/์•„์ดํ…œ01/ ์ƒ์„ฑ์ž ๋Œ€์‹  ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ๊ณ ๋ คํ•˜๋ผ
    • chap01/item01/์ƒ์„ฑ์ž_๋Œ€์‹ _์ •์ _ํŒฉํ„ฐ๋ฆฌ_๋ฉ”์„œ๋“œ๋ฅผ_๊ณ ๋ คํ•˜๋ผ.md

2์žฅ. ๊ฐ์ฒด ์ƒ์„ฑ๊ณผ ํŒŒ๊ดด

์•„์ดํ…œ ๋ฒˆํ˜ธ ํƒ€์ดํ‹€ ์„œ๋ธŒ ํƒ€์ดํ‹€ ๋ฐœํ‘œ์ž
์•„์ดํ…œ 1 [์ƒ์„ฑ์ž ๋Œ€์‹  ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ๊ณ ๋ คํ•˜๋ผ]
์•„์ดํ…œ 2 [์ƒ์„ฑ์ž์— ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋งŽ๋‹ค๋ฉด ๋นŒ๋”๋ฅผ ๊ณ ๋ คํ•˜๋ผ]
์•„์ดํ…œ 3 [private ์ƒ์„ฑ์ž๋‚˜ ์—ด๊ฑฐ ํƒ€์ž…์œผ๋กœ ์‹ฑ๊ธ€ํ„ด์ž„์„ ๋ณด์ฆํ•˜๋ผ]
์•„์ดํ…œ 4 [์ธ์Šคํ„ด์Šคํ™”๋ฅผ ๋ง‰์œผ๋ ค๊ฑฐ๋“  private ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ผ]
์•„์ดํ…œ 5 [์ž์›์„ ์ง์ ‘ ๋ช…์‹œํ•˜์ง€ ๋ง๊ณ  ์˜์กด ๊ฐ์ฒด ์ฃผ์ž…์„ ์‚ฌ์šฉํ•˜๋ผ]
์•„์ดํ…œ 6 [๋ถˆํ•„์š”ํ•œ ๊ฐ์ฒด ์ƒ์„ฑ์„ ํ”ผํ•˜๋ผ]
์•„์ดํ…œ 7 [๋‹ค ์“ด ๊ฐ์ฒด ์ฐธ์กฐ๋ฅผ ํ•ด์ œํ•˜๋ผ]
์•„์ดํ…œ 8 [finalizer์™€ cleaner ์‚ฌ์šฉ์„ ํ”ผํ•˜๋ผ]
์•„์ดํ…œ 9 [try-finally๋ณด๋‹ค๋Š” try-with-resources๋ฅผ ์‚ฌ์šฉํ•˜๋ผ]

์ฐธ๊ณ ๋งํฌ