๋์ ํ๋ก์ SRP
๋์ค์ ๊ฐ์ฌ๋์ด๋ ๋ ์ํ์๋ ๋ถ์ด ๋ต๋ณ๋ค์๊ฒ ์ง๋ง, ์ ๊ฐ ์ดํดํ ๋ฐ๋ก๋ ์ด๋ ์ต๋๋ค. ๋์ ํ๋ก์๋ฅผ ์ ์ฉํ๊ธฐ ์ ์๋, ์ด๋ค ํด๋์ค์ ๋ฉ์๋์ ์๊ฐ ์ธก์ ๊ธฐ๋ฅ์ ํ๋ก์๋ก ๊ตฌํํ๊ธฐ ์ํด์ ํด๋น ํด๋์ค์ ํ๋ก์ ํด๋์ค๋ฅผ ๋ง๋ค๊ณ ํ๋ก์ ํด๋์ค์๋ค๊ฐ ์๊ฐ ์ธก์ ๋ก์ง์ ์ถ๊ฐํ์ต๋๋ค ํ์ง๋ง ์ด๋ ๊ฒ ์ง์ ํ๋ก์ ํด๋์ค๋ฅผ ๋ง๋ค๋ฉด, ์๊ฐ ์ธก์ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ ๋๋ ํด๋์ค๊ฐ 100๊ฐ ์ด๋ฉด ํด๋น 100๊ฐ์ ํ๋ก์ ํด๋์ค๋ฅผ ์ง์ ๋ง๋ค๊ณ ์๊ฐ ์ธก์ ๊ธฐ๋ฅ์ 100๊ฐ์ ํ๋ก์ ํด๋์ค์๋ค๊ฐ ์ค๋ณต์ผ๋ก ์ถ๊ฐํด์ผ ๋ฉ๋๋ค ํ์ง๋ง ๋์ ํ๋ก์ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉด ๊ฐ์ฌ๋์ด ๋ง์ํ์
จ๋ค์ํผ, ํ๋ก์ ํด๋์ค๋ฅผ ์ ์์ด ๋ง๋ค์ด์ผ ํ๋ ๋ฌธ์ ๋ ํด๊ฒฐํ๊ณ , JDK ๋์ ํ๋ก์์ ๊ฒฝ์ฐ invocationHandler ๊ตฌํ์ฒด์๋ค๊ฐ ํ๋ก์ ํด๋์ค์ ์ ์ฉํ ๋ก์ง์ ๊ตฌํํ๋ฉด ๋ฉ๋๋ค ๊ทธ๋ฌ๋ฉด ๋์ ํ๋ก์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ ์ ์๋ 100๊ฐ์ ํ๋ก์ ํด๋์ค์ ์๋ ์๊ฐ ์ธก์ ๋ก์ง์ด ํ ๊ฐ์ invocationHandler ๊ตฌํ์ฒด์ ๋ค์ด๊ฐ์ ํฅํ ๋ณ๊ฒฝ์ด ์์ ๋ ๊ฐํธํ๊ฒ ๋ณ๊ฒฝ ๊ฐ๋ฅํฉ๋๋ค