SOLID๋? ํด๋ฆฐ์ฝ๋๋ก ์ ๋ช ํ ๋ก๋ฒํธ ๋งํด์ด ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น์ ์ ๋ฆฌํ ๊ฒ์ด๋ค. SRP : ๋จ์ผ ์ฑ ์ ์์น OCP : ๊ฐ๋ฐฉ-ํ์ ์์น LSP : ๋ฆฌ์ค์ฝํ ์นํ ์์น ISP : ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น DIP : ์์กด๊ด๊ณ ์ญ์ ์์น SRP(Single Responsibility Principle) ํ ํด๋์ค๋ ํ๋์ ์ฑ ์๋ง ๊ฐ์ ธ์ผ ํ๋ค. ์ค์ํ ๊ธฐ์ค์ ๋ณ๊ฒฝ, ๋ณ๊ฒฝ์ด ์์ ๋ ํ๋์ ํด๋์ค๋ง ๋ณ๊ฒฝ๋๋ฉด ๊ต์ฅํ ์ ์งํจ ๊ฒ์ด๋ค. โ ํ๋์ ํด๋์ค ์์ DB, SQL ์ฟผ๋ฆฌ๋ฌธ, View ๋ก์ง ...... ์ ์ง๋ณด์ ์ธก๋ฉด์์ ์ต์ ์ด๋ค. OCP(Open/closed principle) ์ํํธ์จ์ด ์์๋ ํ์ฅ์๋ ์ด๋ ค ์์ผ๋ ๋ณ๊ฒฝ์๋ ๋ซํ ์์ด์ผ ํ๋ค. ๋ง์ฝ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค์ด ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ ๊ตฌํ์ฒด..
Comparable ๊ฐ๋ Comparable์ด๋? Comparable์ ์ธํฐํ์ด์ค๋ก ์ปฌ๋ ์ ์ ์ ๋ ฌํ๋๋ฐ ํ์ํ ๋ฉ์๋๋ฅผ ์ ์ํ๊ณ ์์ Comparable์ ๊ตฌํํ๊ณ ์๋ ํด๋์ค๋ ๊ฐ์ ํ์ ์ ์ธ์คํด์ค๋ผ๋ฆฌ ๋น๊ตํ ์ ์๋ ํด๋์ค๋ค์ Comparable์ ๊ตฌํํ ํด๋์ค๋ค์ ์ ๋ ฌ์ด ๊ฐ๋ฅํ๋ค๋ ๊ฒ์ ์๋ฏธํจ ํ์์ ์ผ๋ก ๊ตฌํํด์ผ ํ๋ ๋ฉ์๋๋ CompareTo() Comparator ๊ฐ๋ Comparator๋? Comparable์ด ๊ฐ์ฒด๋ฅผ ์ ๋ ฌ์ด ๊ฐ๋ฅํ๋๋ก ํด์ค๋ค๋ฉด ์๋ ์ ๋ ฌ ๊ธฐ์ค์ ์ง์ ํ ์ ์์ ์ฆ, Comparable์์ ๊ตฌํํ ๊ธฐ๋ณธ ์ ๋ ฌ๊ธฐ์ค ์ธ์ ๋ค๋ฅธ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๊ณ ์ํ ๋ ์ฌ์ฉํจ Ex) ์ด๋ฏธ ๊ตฌํ๋ ์ค๋ฆ์ฐจ์์ด ์๋ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ณ ์ถ์ ๋ Comparable, Comparator์ ์ด์ฉํ Colle..
Wrapper Class ๊ฐ๋ Wrapper Class๋? Java์์๋ ๊ธฐ๋ณธํ ๋ณ์(Primitive Type)์ ์ฐธ์กฐํ ๋ณ์(Reference Type)๊ฐ ์กด์ฌํจ ๊ทธ๋ฐ๋ฐ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ๋ ๊ธฐ๋ณธํ ๋ณ์์๋ ์ ์ฅํ ์ ์์ง๋ง ๊ธฐ๋ณธํ ๋ณ์๋ฅผ ๊ฐ์ฒด๋ก ์ทจ๊ธํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์์ ์ด๋ ๊ธฐ๋ณธํ ๋ณ์๋ฅผ ๊ฐ์ฒด๋ก ํฌ์ฅํด์ฃผ๋ ํด๋์ค๋ฅผ Wrapper Class๋ผ๊ณ ํจ Wrapper ํด๋์ค๋ ์ฐ์ ์ฐ์ฐ์ ์ํด ์ ์๋ ํด๋์ค๊ฐ ์๋๋ฏ๋ก, ์ธ์คํด์ค์ ์ ์ฅ๋ ๊ฐ์ ๋ณ๊ฒฝํ ์ ์์ ๋จ์ง, ๊ฐ์ ์ฐธ์กฐํ๊ธฐ ์ํด ์๋ก์ด ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , ์์ฑ๋ ์ธ์คํด์ค์ ๊ฐ๋ง์ ์ฐธ์กฐํ ์ ์์ Ex) Integer data = new Integer(123); Wrapper Class์ ์ข ๋ฅ ๋ฐ์ฑ(Boxing)๊ณผ ์ธ๋ฐ์ฑ(UnBoxing) ๋ฐ์ฑ๊ณผ ์ธ..
์ถ์ํด๋์ค๋? ์ถ์ ๋ฉ์๋๋ฅผ ์ ์ธํ์ฌ ์์์ ํตํด์ ์์ ํด๋์ค์์ ์์ฑ์ ์ ๋ํ๋ ํด๋์ค์ด๋ค. ํ ๊ฐ ์ด์์ ์ถ์๋ฉ์๋๋ฅผ ๊ฐ์ง์ง๋ง ๊ตฌํ ๋ ๋ฉ์๋๋ ์ ์๊ฐ ๊ฐ๋ฅํ๋ค. ๋ฏธ์์ฑ ์ค๊ณ๋ ์์์ ์ํ ํด๋์ค์ด๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ ์ ์๋ค. ์ถ์๋ฉ์๋๋ ์ ์ธ๋ง๋๋ฉฐ ๊ตฌํ๋์ง ์์ ๋ถ์์ ํ ๋ฉ์๋์ด๋ฏ๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ๋ชปํ๋ค. ์ธํฐํ์ด์ค๋? ์์์ ์ถ์ ๋ฉ์๋์ ์งํฉ์ด๋ค. ์ฆ, ๋ก์ง์ ์์ฑํ ์ ์๋ค. ๊ธฐ๋ณธ ์ค๊ณ๋ ์ผ์ข ์ ์ถ์ ํด๋์ค๋ก, ์ถ์ ๋ฉ์๋๋ฅผ ๊ฐ์ง๋ง ์ถ์ ํด๋์ค๋ณด๋ค ์ถ์ํ ์ ๋๊ฐ ๋๋ค. ์ถ์ ํด๋์ค์ฒ๋ผ ๋ค๋ฅธ ํด๋์ค๋ฅผ ์์ฑํ๋๋ฐ ๋์์ ์ฃผ๋ ๋ชฉ์ ์ผ๋ก ์์ฑํ๋ค. ๋ค์ค ์์(๊ตฌํ)์ด ๊ฐ๋ฅํ๋ค. ์์ฑ์๋ฅผ ๊ฐ์ง ์ ์์ผ๋ฉฐ ๊ฐ์ฒดํ๊ฐ ๋ถ๊ฐ๋ฅํ๋ค. ์ถ์ํด๋์ค ์ธํฐํ์ด์ค ์ฐจ์ด์ ์ฌ์ฉ์๋ ์ฐจ์ด์ ์ถ์ํด๋์ค๋ IS ..
์ ์ธ ์์น์ ๋ฐ๋ฅธ ๋ณ์์ ์ข ๋ฅ 1. ์ธ์คํด์ค ๋ณ์ ํด๋์ค ์์ญ์ ์ ์ธ๋๋ฉฐ ์ธ์คํด์ค ์์ฑ์ ๋ง๋ค์ด์ง ๊ฐ ์ธ์คํด์ค๋ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ง๋ฏ๋ก ์๋ก ๋ค๋ฅธ ๊ฐ์ ๊ฐ์ง๊ณ ์์ 2. ํด๋์ค ๋ณ์ ์ธ์คํด์ค ๋ณ์ ์์ static์ ๋ถ์ด๋ฉด ์์ฑํ ์ ์์ ํด๋์ค์ ๋ชจ๋ ์ธ์คํด์ค๋ค์ด ๊ณต์ ํ๊ฒ ๋จ ์ธ์คํด์ค๋ฅผ ์์ฑํ์ง ์์๋ ์ธ์ ๋ ์ฌ์ฉ๊ฐ๋ฅํ๋ฉฐ, ํด๋์ค ๋ก๋ฉ์ ์์ฑ๋จ public์ ์์ ๋ถ์ด๋ฉด ์ ์ญ๋ณ์์ฒ๋ผ ์ฌ์ฉ ๊ฐ๋ฅ 3. ์ง์ญ ๋ณ์ ๋ฉ์๋ ๋ด์ ์ ์ธ๋๋ฉฐ, ๋ฉ์๋๊ฐ ์ฌ๋ผ์ง๋ฉด ์๋ฉธ ๋ธ๋ญ ๋ด์์๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํจ Reference JAVA์ ์ ์, ๋์ฐ์ถํ, ๋จ๊ถ ์ฑ ์ง์