
OOP(Object-Oriented Programming)์ 4๋ ์์น๊ณผ SOLID 5๋ ์์น ์ ๋ฆฌ
ยท
๐จ๏ธ Language/Java
OOP์ 4๋ ์์น 1. ์บก์ํ (Encapsulation)๋ฐ์ดํฐ ๋ณดํธ๋ฅผ ์ํด ํด๋์ค์ ์์ฑ์ private์ผ๋ก ์ค์ ํ๊ณ , getter์ setter ๋ฉ์๋๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ ๊ทผํ๋๋ก ํ๋ค. ์ด๋ฅผ ํตํด ๊ฐ์ฒด์ ๋ด๋ถ ์ํ๋ฅผ ์ธ๋ถ์์ ์ง์ ๋ณ๊ฒฝํ์ง ๋ชปํ๊ฒ ํ์ฌ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ ์ ์๋ค.2. ์ถ์ํ (Abstraction)์ถ์ํ๋ ๋ณต์กํ ์์คํ
์ ์ธ๋ถ ์ฌํญ์ ์จ๊ธฐ๊ณ , ํ์ํ ๋ถ๋ถ๋ง์ ๋๋ฌ๋ด๋ ๊ฐ๋
์ด๋ค. ์ด๋ฅผ ํตํด ์ฝ๋ ์ฌ์ฌ์ฉ์ฑ์ ๋์ผ ์ ์๋ค. abstract class์ interface๋ฅผ ํ์ฉํ์ฌ ๊ณตํต์ ์ธ ๊ธฐ๋ฅ์ ์ ์ํ๊ณ , ์ด๋ฅผ ๊ตฌํํ๋ ๋ค์ํ ํด๋์ค์์ ์ฌ์ฌ์ฉํ ์ ์๋ค.3. ๋คํ์ฑ (Polymorphism)๋คํ์ฑ์ ๊ฐ์ ์ธํฐํ์ด์ค๋ ๋ถ๋ชจ ํด๋์ค์ ๋ฉ์๋๋ฅผ ๋ค์ํ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์๊ฒ ํด์ฃผ๋ ..