item 51 leekyunghee - JAVA-JIKIMI/EFFECTIVE-JAVA3 GitHub Wiki
๋ฉ์๋ ์๊ทธ๋์ฒ๋ฅผ ์ ์คํ ์ค๊ณํ๋ผ
- API ์ค๊ณ ์๋ น
- ์๋ น์ ์ ํ์ฉํ๋ฉด ๋ฐฐ์ฐ๊ธฐ ์ฝ๊ณ , ์ฐ๊ธฐ ์ฝ๊ณ , ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ด ์ ์ API๋ฅผ ๋ง๋ค ์ ์์ ๊ฒ์ด๋ค.
๋ฉ์๋ ์ด๋ฆ์ ์ ์คํ ์ง์.
- ํญ์ ํ์ค ๋ช ๋ช ๊ท์น(์์ดํ 68-์ผ๋ฐ์ ์ผ๋ก ํต์ฉ๋๋ ๋ช ๋ช ๊ท์น์ ๋ฐ๋ฅด๋ผ)
- ์ฒ ์ ๊ท์น์ ํจํค์ง, ํด๋์ค, ์ธํฐํ์ด์ค, ๋ฉ์๋, ํ๋, ํ์ ๋ณ์์ ์ด๋ฆ์ผ ๋ค๋ฃฌ๋ค.
- ๋ฉ์๋์ ํ๋ ์ด๋ฆ์ ์ฒซ๊ธ์๋ ์๋ฌธ์
- ์์ ํ๋๋ ๋๋ฌธ์ (๋จ์ด ์ฌ์ด๋ ๋ฐ์ค๋ก ๊ตฌ๋ถ)
static final VALUES
- ์ง์ญ๋ณ์์๋ ๋ค๋ฅธ ๋ฉค๋ฒ์ ๋น์ทํ ๋ช ๋ช ๊ท์น, ์ฝ์ด๋ฅผ ์จ๋ ์ข๋ค. ์ฝ์ด๋ฅผ ์จ๋ ๊ทธ ๋ณ์๊ฐ ์ฌ์ฉ๋๋ ๋ฌธ๋งฅ์์ ์๋ฏธ๋ฅผ ์ฝ๊ฒ ์ ์ถํ ์ ์๊ธฐ ๋๋ฌธ
์ ๋ ฅ ๋งค๊ฐ๋ณ์๋ ์ง์ญ๋ณ์์ ํ๋๋ค. ํ์ง๋ง ๋ฉ์๋ ์ค๋ช ๋ฌธ์์๊น์ง ๋ฑ์ฅํ๋ ๋งํผ ์ง์ญ๋ณ์๋ณด๋ค๋ ์ ๊ฒฝ์ ์จ์ผํ๋ค.
- ํ์ ๋งค๊ฐ๋ณ์์ ์ด๋ฆ์ ๋ณดํต ํ ๋ฌธ์๋ก ํํํ๋ค.
์์์ ํ์ ์ T, ์ปฌ๋ ์ ์์์ ํ์ ์ E, ๋งต์ ํค์ ๊ฐ์๋ K์ V๋ฅผ ์์ธ์๋ X๋ฅผ, ๋ฉ์๋์ ๋ฐํ ํ์ ์๋ R
ํธ์ ๋ฉ์๋๋ฅผ ๋๋ฌด ๋ง์ด ๋ง๋ค์ง ๋ง์.
- ๋ชจ๋ ๋ฉ์๋๋ ๊ฐ์ ์์ ์ ์์์ ๋คํด์ผํ๋ค.
- ๋ฉ์๋๊ฐ ๋๋ฌด ๋ง์ ํด๋์ค๋ ์ตํ๊ณ ์ฌ์ฉํ๊ณ ๋ฌธ์ํํ๊ณ ํ ์คํธํ๊ณ ์ ์ง๋ณด์ํ๊ธฐ ์ด๋ ต๋ค. (์ธํฐํ์ด์ค๋ ๋ง์ฐฌ๊ฐ์ง)
๋งค๊ฐ๋ณ์ ๋ชฉ๋ก์ ์งง๊ฒ ์ ์งํ์.
- 4๊ฐ ์ดํ๊ฐ ์ข๋ค.
- ๊ฐ์ ํ์ ์ ๋งค๊ฐ๋ณ์ ์ฌ๋ฌ ๊ฐ๊ฐ ์ฐ๋ฌ์ ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ํนํ ํด๋กญ๋ค.
- ์ฌ์ฉ์๊ฐ ์์๋ฅผ ๊ธฐ์ตํ๊ธฐ ์ด๋ ค์ฐ๋ฉฐ ์ค์๋ก ์์๋ฅผ ๋ฐ๊ฟ ์ ๋ ฅํด๋ ๊ทธ๋๋ก ์ปดํ์ผ๋๊ณ ์คํ๋๋ค.
๋งค๊ฐ๋ณ์ ์๋ฅผ ์ค์ฌ์ฃผ๋ ๊ธฐ์ 3๊ฐ์ง
- ์ฌ๋ฌ ๋ฉ์๋๋ก ์ชผ๊ฐ ๋ค. ์ชผ๊ฐ์ง ๋ฉ์๋ ๊ฐ๊ฐ์ ์๋ ๋งค๊ฐ๋ณ์ ๋ชฉ๋ก์ ๋ถ๋ถ์งํฉ์ ๋ฐ๋๋ค.
- ๋งค๊ฐ๋ณ์ ์ฌ๋ฌ ๊ฐ๋ฅผ ๋ฌถ์ด์ฃผ๋ ๋์ฐ๋ฏธ ํด๋์ค๋ฅผ ๋ง๋ ๋ค.
- ์ ๋๊ฐ์ง ๊ธฐ๋ฒ์ ํผํฉํ ๊ฒ์ผ๋ก ๊ฐ์ฒด ์์ฑ์ ์ฌ์ฉํ ๋น๋ ํจํด์ ๋ฉ์๋ ํธ์ถ์ ์์ฉํ๋ค.
๋ชจ๋ ๋งค๊ฐ๋ณ์๊ฐ ๋ง์ ๋ ํนํ ๊ทธ์ค ์ผ๋ถ๋ ์๋ตํด๋ ๊ด์ฐฎ์ ๋ ๋์์ด ๋๋ค. ๋จผ์ ๋ชจ๋ ๋งค๊ฐ๋ณ์๋ฅผ ํ๋๋ก ์ถ์ํํ ๊ฐ์ฒด๋ฅผ ์ ์ํ๊ณ ํด๋ผ์ด์ธํธ์์ ์ด ๊ฐ์ฒด์ ์ธํฐ ๋ฉ์๋๋ฅผ ํธ์ถํด ํ์ฌํ ๊ฐ์ ์ค์ ํ๊ฒ ํ๋ ๊ฒ์ด๋ค.
๋งค๊ฐ๋ณ์์ ํ์ ์ผ๋ก๋ ํด๋์ค๋ณด๋ค๋ ์ธํฐํ์ด์ค๊ฐ ๋ ๋ซ๋ค.
- ๋งค๊ฐ๋ณ์๋ก ์ ํฉํ ์ธํฐํ์ด์ค๊ฐ ์๋ค๋ฉด (์ด๋ฅผ ๊ตฌํํ ํด๋์ค๊ฐ ์๋) ๊ทธ ์ธํฐํ์ด์ค๋ฅผ ์ง์ ์ฌ์ฉํ์.
์๋ฅผ๋ค์ด ๋ฉ์๋์ HashMap์ ๋๊ธธ ์ผ์ ์ ํ ์๋ค. ๋์ Map์ ์ฌ์ฉํ์.
- ์ธํฐํ์ด์ค ๋์ ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํด๋ผ์ด์ธํธ์๊ฒ ํน์ ๊ตฌํ์ฒด๋ง ์ฌ์ฉํ๋๋ก ์ ํํ๋ ๊ผด์ด๋ฉฐ ํน์๋ผ๋ ์ ๋ ฅ ๋ฐ์ดํฐ๊ฐ ๋ค๋ฅธ ํํ๋ก ์กด์ฌํ๋ค๋ฉด ๋ช ์ํ ํน์ ๊ตฌํ์ฒด์ ๊ฐ์ฒด๋ก ์ฎ๊ฒจ ๋ด๋๋ผ ๋น์ผ ๋ณต์ฌ ๋น์ฉ์ ์น๋ฌ์ผ ํ๋ค.
boolean ๋ณด๋ค๋ ์์ 2๊ฐ์ง๋ฆฌ ์ด๊ฑฐ ํ์ ์ด ๋ซ๋ค. (๋ฉ์๋ ์ด๋ฆ์ boolean์ ๋ฐ์์ผ ์๋ฏธ๊ฐ ๋ ๋ช ํํ ๋๋ ์์ธ๋ค).
- ์ด๊ฑฐ ํ์ ์ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ ์ฝ๊ณ ์ฐ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋ค.