You Can Become A
๋ฆ๊ฒ ์์ํด๋ ๋๊ตฌ๋ ์ง ๋ ธ๋ ฅํ๋ฉด ๊ฐ๋ฐ์๊ฐ ๋ ์ ์์ด์ !
๊ฐ์ฒด ์งํฅ
๐ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น - S.O.L.I.D
๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5์์น S.O.L.I.D ๋ชจ๋ ์ฝ๋์์ LSP๋ฅผ ์งํค๊ธฐ์๋ ์ด๋ ค์. ๋ฆฌ์ค์ฝํ ์นํ ์์น์ ๋ฐ๋ฅด๋ฉด ์์ ํด๋์ค์ ์ธ์คํด์ค๊ฐ ๋ถ๋ชจ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ๋์ ํ๋๋ผ๋ ์๋์ ๋ง๊ฒ ์๋๋์ด์ผ ๋๋ค๊ณ ํ์ต๋๋ค. SOLID ์์น์ด๋ ๊ฐ์ฒด์งํฅ ์ค๊ณ์์ ์ง์ผ์ค์ผ ํ 5๊ฐ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ์์น( SRP, OCP, LSP, ISP, DIP )์ ๋งํ๋ค. SRP(Single Responsibility Principle): ๋จ์ผ ์ฑ ์ ์์น OCP(Open Closed Priciple): ๊ฐ๋ฐฉ ํ์ ์์น LSP(Listov Substitution Priciple): ๋ฆฌ์ค์ฝํ ์นํ ์์น ISP(Interface Segregation Principle): ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น DIP(Dependency Inver..
๐ ๊ฐ์ฒด์ ๊ฒฐํฉ๋ & ์์ง๋ ์๋ฏธ์ ๋จ๊ณ ๐ฏ ์ด์ ๋ฆฌ
์ํํธ์จ์ด์ ๋ชจ๋ ๋ ๋ฆฝ์ฑ ์๊ณ ๋ก ํ๋ก๊ทธ๋๋ฐ์ด๋ ๋ฌธ์ ๋ฅผ ์ ์ํ๊ณ ํ๋์ฉ ํด๊ฒฐํด๋๊ฐ๋ ๊ณผ์ ์ ๋งํ๋ค. ๋ง์ฝ ๋ฌธ์ ๊ฐ ๋ณต์กํ๊ณ ํฐ ๋ฌธ์ ๋ผ๋ฉด, ์ผ๋ฐ์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ์์ ๋ถ๋ถ์ผ๋ก ์ชผ๊ฐ์ด์ ํ๋์ฉ ํ์ด๋๊ฐ๊ฒ ๋ ๊ฒ์ธ๋ฐ, ์ด ๋ ๋ฌธ์ ๋ฅผ ์์ ๋ถ๋ถ์ผ๋ก ์ชผ๊ฐ๋๊ฐ๋ ๊ฒ์ ๋ชจ๋ํ๋ผ๊ณ ํ๋ค. ๋ชจ๋์ ์ํํธ์จ์ด๋ฅผ ๊ฐ ๊ธฐ๋ฅ๋ณ๋ก ๋๋์ด์ง ์์ค ๋จ์๋ฅผ ๋งํ๋ค. ๋ ๋ฆฝ์ ์ผ๋ก ์ปดํ์ผ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ ํน์ ํ๋์ ํจ์๋ ํด๋์ค๋ ๋ชจ๋์ด ๋๋ค. ๋ณดํต ์ข์ ์ํํธ์จ์ด ์ผ์๋ก ๋ชจ๋์ ๋ ๋ฆฝ์ฑ์ด ๋๋ค๊ณ ํ๋ค. ์ข์ ๋ชจ๋ํ๋ ๋ชฉ์ ์ ๋ง๋ ๊ธฐ๋ฅ๋ง์ผ๋ก ๋ชจ๋์ ๋๋๊ฒ ๋๋๋ฐ, ๊ฐ๊ฐ์ ๋ชจ๋์ ์ฃผ์ด์ง ๊ธฐ๋ฅ๋ง์ ๋ ๋ฆฝ์ ์ผ๋ก ์ํํ๊ธฐ ๋๋ฌธ์ ์ฌ์ฌ์ฉ์ฑ์ด ๋๊ณ ์ฝ๋์ ์ดํด/์์ ์ด ์ฉ์ดํ๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ฅผ๋ค์ด ํด๋น ๋ชจ๋์ ์์ ํ๋๋ผ๋ ๋ค๋ฅธ ๋ชจ๋์ ๋ผ์น๋ ์ํฅ์ด ์ ๊ฒ ๋๋ฉฐ,..
โ ์๋ฐ ๊ฐ์ฒด ์งํฅ(OOP) ํด๋์ค ๋ฌธ๋ฒ - ํ๋ฐฉ ๊ฐ์ด๋
ํด๋์ค(class) ๊ตฌ์ฑ ์๋ฐ์์ ํด๋์ค(class)๋ ๊ฐ์ฒด๋ฅผ ์ ์ํ๋ ํ ๋๋ ์ค๊ณ๋์ ๊ฐ์ ์๋ฏธ๋ก ์ฌ์ฉ๋๋ค. ์๋ฐ์์๋ ์ด๋ฌํ ์ค๊ณ๋๋ฅผ ๊ฐ์ง๊ณ , ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉํ๋ ์์ผ๋ก ํ๋ก๊ทธ๋๋ฐ์ ์ด์ด๋๊ฐ๋ค. ํด๋์ค๋ ๊ฐ์ฒด์ ์์ฑ ๋ณ์๋ฅผ ๋ํ๋ด๋ ํ๋(field)์ ๊ฐ์ฒด์ ํจ์๋ฅผ ๋ํ๋ด๋ ๋ฉ์๋(method)๋ก ๊ตฌ์ฑ๋์ด์๋ค. ํด๋์ค, ๊ฐ์ฒด, ์ธ์คํด์ค, ๋ฉ์๋, ํ๋ ๋ฑ ์๋ฐ ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐฐ์ฐ๋ค ๋ณด๋ฉด ์ ๋ง ๋ง์ ์ฉ์ด๋ค์ด ๋์จ๋ค. ํนํ ํด๋์ค๋, ๊ฐ์ฒด, ์ธ์คํด์ค ๋ถ๋ถ์ ๋น์ทํ๋ฉด์๋ ๊ตฌ๋ถ์ด ๋์ด ์์ด ๋ง์ด ํผ๋ํ๋ ํธ์ด๋ค. ๋๊ตฐ๊ฐ์๊ฒ ์ค๋ช ํ๊ธฐ ์ํด์๋ ์ฉ์ด๋ฅผ ์ ํํ ๊ตฌ๋ถํด์ ์ฌ์ฉํด์ผํ๊ธฐ ๋๋ฌธ์ ํ์คํ ์ ๋ฆฌํ๊ณ ๋์ด๊ฐ์. ํด๋์ค : ๊ฐ์ฒด ๋ฐ์ดํฐ๋ฅผ ๋ง๋๋ ํ ํ๋ฆฟ(์ค๊ณ๋) ๊ฐ์ฒด : ํด๋์ค(ํ ํ๋ฆฟ)๊ณผ n..