๐๏ธ 99%์ Java ๊ฐ๋ฐ์๋ค์ด ์ ์ง๋ฅด๋ 5๊ฐ์ง ์ค์
๋๋ถ๋ถ์ ์ฝ๋ฉ ์ค์๋ค์ ๊ต์ฅํ ๊ณ ์ฐจ์์ ์ธ ์ง์์ ๋ชฐ๋ผ์ ์ผ์ด๋๋ ๊ฒ์ด ์๋, ์ฌ์ค์ ๊ธฐ๋ณธ์ ์ธ ์ง์๋ค์ ๊ฐ๊ณผํ๊ธฐ ๋๋ฌธ์ ์ผ์ด๋๋ ๊ฒฝ์ฐ๊ฐ ํ๋คํฉ๋๋ค. ์ด๋ฒ์๋ ๋ง์ Java ๊ฐ๋ฐ์๋ค์ด ์ฝ๋ฉ์ ํ๋ฉด์ ์ ์ง๋ฅด๋ ์ค์๋ค์ ๋ํด ๋ฒ์ญํด ๋ณด์์ต๋๋ค. ๊ณผ์ฐ ๋๋ ์ด๋ฌํ ์ค์๋ค์ ์ ์ง๋ฅธ ์ ์ด ์๋์ง ์ ์๊ฐํด ๋ด ์๋ค. 1๏ธโฃ ๊ฐ์ฒด ๋น๊ต์ Objects.equals ์ฌ์ฉ Objects.equals()๋ฅผ ์ฌ์ฉํ๋ฉด ์์ํ๋ ๊ฒ๊ณผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์์ต๋๋ค. ์ํ๋ ์๋์ ๋ง์ถ์ด ๋ฉ์๋๋ฅผ ์ฌ์ ์ ํ๋ค๋ฉด ๋ฒ๊ทธ๋ฅผ ๋ฐฉ์งํ ์ ์์ต๋๋ค. 2๏ธโฃ ์๋ชป๋ date ํฌ๋งท 'YYYY-MM-dd' ํฌ๋งท์ด ์๋ 'yyyy-MM-dd' ํฌ๋งท์ ์ฌ์ฉํฉ์๋ค. (์ค์ ์ฃผ์!) 3๏ธโฃ ThreadPool์์ ThreadLocal ์ฌ์ฉ *ThreadPool: ์ค๋ ๋๋ฅผ ์ ํ๋ ๊ฐฏ์๋งํผ ์ ํด๋๊ณ ์์ ํ์ ๋ค์ด์ค๋ ์์ ๋ค์ ํ๋์ฉ ๋งก์์ ์ฒ๋ฆฌ *ThreadLocal: ํ๋์ ์ค๋ ๋์์๋ง ์ฝ๊ณ ์ฐ์ฌ์ง ์ ์๋ ๋ณ์ ThreadPool ์์์ ThreadLocal์ ์ฌ์ฉํ๋ค๋ฉด, ์กฐ์ฌํด์ผ ํฉ๋๋ค. ์์ํ์ง ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์์ผ๋๊น์. 4๏ธโฃ ์ค๋ณต๋ ๋ฐ์ดํฐ๋ฅผ ์์ ๊ธฐ ์ํด HashSet ์ฌ์ฉ *HashSet: ๊ฐ์ฒด๋ฅผ ์ค๋ณต ํด์ ์ ์ฅํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ Set์ ๊ตฌํ์ฒด ์ฝ๋ฉ์ ํ ๋, ์ค๋ณต ์ ๊ฑฐ๋ฅผ ํด์ผ ํ ์ผ์ด ๊ฐ๋ ๋ฐ์ํฉ๋๋ค. ๋ง์ ๋ถ๋ค์ด ํด๊ฒฐ ๋ฐฉ๋ฒ์ผ๋ก HashSet์ ์ฌ์ฉํ๋๋ฐ (์ ๋ ๊ทธ๋ ๊ณ ), equals ๋ฉ์๋๋ฅผ ๋ฐ๋ก ์ฌ์ ์ ํ์ง ์๋๋ค๋ฉด ์๋ํ ๋ฐ์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ ๋ํ๋ ์ ์์ต๋๋ค. 5๏ธโฃ ThreadPool ์์์ ์์ธ ๋ฐ์ ThreadPool ์์์ ์์ธ๊ฐ ๋ฐ์ํ๋ค๋ฉด, ํด๋น ์์ธ๋ RuntimeException์ ๋ฐ์ํ์ง ์๊ณ ๋จนํ์ง๋๋ค. ๋ง์ฝ ๋์ค์ ์๋ชป๋ ๊ฒฐ๊ณผ์ ์์ธ์ ์ฐพ๊ณ ์ถ์ด๋, ํ์ธํ๊ธฐ ํ๋ค ์ ์์ต๋๋ค. ๐ฃ ์ค์๋ฅผ ํ์ง ์๋๋ก ์ฃผ์ํฉ์๋ค. ๐ฃ ๊ทธ๋ฌ๋ ๋๋ก๋ ์ง์ ๊ฒช์ผ๋ฉด ๋ ์ฝ๊ฒ ์ดํดํ ์ ์์ต๋๋ค.