์คํฐ๋45 [์ค๋ธ์ ํธ] 13์ฅ '์๋ธํด๋์ฑ๊ณผ ์๋ธํ์ดํ' 13์ฅ์์๋ ์ํผํ์ ๊ณผ ์๋ธํ์ ์ ๊ฐ๋ ์ ์ค๋ช ํ๊ณ ํ์ ๊ณ์ธต์ ๋ง์กฑ์ํค๊ธฐ ์ํด ์ ์ฉํ ์ ์๋ ์ค๊ณ ์์น์ ์ค๋ช ํ๋ค. ์ฌ๋ฐ๋ฅธ ํ์ ๊ณ์ธต์ ๊ตฌ์ฑํ๊ธฐ ์ํด์๋ ํด๋ผ์ด์ธํธ์ ๊ด์ ์์ ์ํผํ์ ๊ณผ ์๋ธํ์ ์ฌ์ด์ ํ๋์ด ํธํ๋๋๋ก ๋ง๋ค์ด์ผ ํ๋ค. ์์์ ์ฉ๋๋ ๋๊ฐ์ง๋ก ๋๋ ์ ์๋ค. ์ฒซ ๋ฒ์งธ๋ ํ์ ๊ณ์ธต ๊ตฌํ์ด๊ณ ๋๋ฒ์งธ๋ ์ฝ๋ ์ฌ์ฌ์ฉ์ด๋ค. ๋์ผํ ๋ฉ์์ง์ ๋ํด ์๋ก ๋ค๋ฅด๊ฒ ํ๋ํ ์ ์๋ ๋คํ์ ์ธ ๊ฐ์ฒด๋ฅผ ๊ตฌํํ๊ธฐ ์ํด ๊ฐ์ฒด์ ํ๋์ ๊ธฐ๋ฐ์ผ๋ก ํ์ ๊ณ์ธต์ ๊ตฌ์ฑํด์ผ ํ๋ค. ๊ทธ๋ฆฌ๊ณ ์์์ ์ด ํ์ ๊ณ์ธต์ ๊ตฌํํ ์ ์๊ฒ ํด ์ค๋ค. ๊ทธ๋ผ ํ์ ๊ณ์ธต์์ ํ์ ์ ๋ฌด์์ ๋งํ๋ ๊ฑธ๊น? ๊ฐ์ฒด์งํฅ ํจ๋ฌ๋ค์์ ๊ด์ ์์์ ํ์ ์ ๋์ผํ ์คํผ๋ ์ด์ ์ ์ ์ฉํ ์ ์๋ ์ธ์คํด์ค์ ์งํฉ์ด๋ค. ์ฆ, ๋์ผํ ํผ๋ธ๋ฆญ ์ธํฐํ์ด์ค๋ฅผ ๊ฐ์ง๋ ๊ฐ์ฒด๋.. 2023. 1. 6. [์ค๋ธ์ ํธ] 12์ฅ '๋คํ์ฑ' 12์ฅ์์๋ ๊ฐ์ฒด์งํฅ์ ํต์ฌ ๋ฉ์ปค๋์ฆ ์ค ํ๋์ธ ๋คํ์ฑ์ ๋ํด ์ค๋ช ํ๋ค. ํนํ, ๋คํ์ฑ ์ค์์ ์๋ธํ์ ๋คํ์ฑ์ ๋ํด ์์๋ณด๊ณ ๋ฐํ์์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ ์ ์ ํ ๋ฉ์๋๋ฅผ ์ฐพ์ ๋ ์ฌ์ฉํ๋ ๋์ ๋ฉ์๋ ํ์ ๊ธฐ๋ฒ์ ๋ํด ์ ์ ์๋ค. ๋คํ์ฑ์ ๋ฐํ์์ ๋ฉ์์ง๋ฅผ ์ฒ๋ฆฌํ๊ธฐ์ ์ ํฉํ ๋ฉ์๋๋ฅผ ๋์ ์ผ๋ก ํ์ํ๋ ๊ณผ์ ์ ํตํด ๊ตฌํ๋๋ฉฐ, ์์์ ์ด๋ฐ ๋ฉ์๋๋ฅผ ์ฐพ๊ธฐ ์ํ ์ผ์ข ์ ํ์ ๊ฒฝ๋ก๋ฅผ ํด๋์ค ๊ณ์ธต์ ํํ๋ก ๊ตฌํํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ด๋ค(p.390) ๋คํ์ฑ(Polymorphism)์ด๋ ํ๋์ ์ถ์ ์ธํฐํ์ด์ค์ ๋ํด ์๋ก ๋ค๋ฅธ ๊ตฌํ์ ์ฐ๊ฒฐํ ์ ์๋ ๋ฅ๋ ฅ์ด๋ค. ์ฆ, ์ฌ๋ฌ ํ์ ์ ๋์์ผ๋ก ๋์ํ ์ ์๋ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค. ๋คํ์ฑ์ ์ ๋๋ฒ์ค ๋คํ์ฑ, ์์ ๋คํ์ฑ์ผ๋ก ๋ถ๋ฅ๋๋ฉฐ, ์ ๋๋ฒ์ค ๋คํ์ฑ์ ๋งค๊ฐ๋ณ์, ํฌํจ ๋ค.. 2022. 12. 30. [์ค๋ธ์ ํธ] 11์ฅ 'ํฉ์ฑ๊ณผ ์ ์ฐํ ์ค๊ณ' 11์ฅ์์๋ ์ฝ๋ ์ฌ์ฌ์ฉ์ ๋ฐฉ๋ฒ์ผ๋ก ํฉ์ฑ์ ๋ํด ์๊ฐํ๋ค. ์์์ด ๊ตฌํ์ ๋ํ ๋์ ๊ฒฐํฉ๋๋ฅผ ์ ๋ฐํ๋ ๋ฐ ๋ฐํด ํฉ์ฑ์ ์ฌ์ฉํ๋ฉด ํผ๋ธ๋ฆญ ์ธํฐํ์ด์ค์ ๋ํด ๋์จํ ๊ฒฐํฉ๋๋ฅผ ์ ์งํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค๊ณ๋ฅผ ์ ์ฐํ๊ฒ ๋ง๋ค ์ ์๋ค๋ ์ฌ์ค์ ์ค๋ช ํ๋ค. ๊ตฌ๋ถ ์์ (class inheritance) ํฉ์ฑ (object composition) ์ฝ๋ ์ฌ์ฌ์ฉ ๋ฐฉ๋ฒ ๋ถ๋ชจ ํด๋์ค์ ์์ ํด๋์ค ์ฐ๊ฒฐ ์ ์ฒด๋ฅผ ํํํ๋ ๊ฐ์ฒด๊ฐ ๋ถ๋ถ์ ํํํ๋ ๊ฐ์ฒด ํฌํจ -> ๋ถ๋ถ ๊ฐ์ฒด ์ฝ๋ ์ฌ์ฌ์ฉ ์์กด์ฑ ์ปดํ์ผํ์์ ํด๊ฒฐ๋จ -> ์ปดํ์ผํ์์ ๊ฒฐ์ ๋ ์์ ํด๋์ค์ ๋ถ๋ชจ ํด๋์ค ์ฌ์ด์ ๊ด๊ณ๋ ๋ณ๊ฒฝ ๋ ์ ์์ -> ์์ ํด๋์ค์ ๋ถ๋ชจ ํด๋์ค์ ๋ค์ํ ์กฐํฉ์ด ํ์ํ ๊ฒฝ์ฐ ์กฐํฉ์ ์๋งํผ ์๋ก์ด ํด๋์ค๋ฅผ ์ถ๊ฐํด์ผ ํจ -> ํด๋์ค ํญ๋ฐ/์กฐํฉ์ ํญ๋ฐ ๋ฌธ์ ์ผ.. 2022. 12. 23. [์ค๋ธ์ ํธ] 10์ฅ '์์๊ณผ ์ฝ๋ ์ฌ์ฌ์ฉ' 10์ฅ์์๋ ๊ฐ์ฒด์งํฅ์ ๋ํ์ ์ธ ์ฌ์ฌ์ฉ ๊ธฐ๋ฒ์ธ ์์์ ๊ดํด ์ค๋ช ํ๋ฉฐ ์ฝ๋์ ์ฌ์ฌ์ฉ์ ์ํด ์์์ ์ฌ์ฉํ์ง ๋ง๋ผ๊ณ ์กฐ์ธํ๋ค. ๋์ 11์ฅ์ ์ค๋ช ํ ํฉ์ฑ์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. ๊ฐ๋ฐ์๋ DRY(Don't Repeat Yourself) ์์น์ ๋ฐ๋ผ ์ฝ๋ ์์ ์ค๋ณต์ด ๋ฐ์ํ์ง ์๋๋ก ํด์ผ ํ๋ค. ๋ ํด๋์ค ์ฌ์ด์ ์ค๋ณต ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์? 1. ํด๋์ค๋ฅผ ํ๋๋ก ํฉ์น๊ณ ํ์ ์ฝ๋๋ฅผ ์ถ๊ฐํ ๋ค ๋ก์ง์ ํ์ ์ฝ๋์ ๋ฐ๋ผ ๋ถ๊ธฐํ๋ ๊ฒ์ด๋ค. -> ๋จ, ์ด ๋ฐฉ๋ฒ์ ๊ฒฝ์ฐ ํ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ๋ ํด๋์ค๋ ๋ฎ์ ์์ง๋์ ๋์ ๊ฒฐํฉ๋ ๋ฌธ์ ์ ์๋ฌ๋ฆฌ๊ฒ ๋จ 2. ๋๋ฒ์งธ ๋ฐฉ๋ฒ์ ํ์ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์ค๋ณต ์ฝ๋๋ฅผ ๊ด๋ฆฌํ ์ ์๋ ์์์ด๋ค. ์์์ด๋? - ํด๋์ค๋ฅผ ์ฌ์ฌ์ฉํ๊ธฐ ์ํด ์๋ก์ด ํด๋์ค๋ฅผ ์ถ๊ฐํ๋ ๊ฐ์ฅ ๋ํ์ ์ธ ๋ฐฉ๋ฒ - ํด๋.. 2022. 12. 16. [์ค๋ธ์ ํธ] 9์ฅ '์ ์ฐํ ์ค๊ณ' 9์ฅ์์๋ ์ด์ ์ ์ค๋ช ํ ์์กด์ฑ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ์๋ ์ค๊ณ ์์น์ ๊ทผ๊ฑฐํด ๋ค์ ์ค๋ช ํ๋ค. ์ ๋ฒ์ฃผ์ ๋์์ธ ํจํด์์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ฅผ ๊ณต๋ถํ ๋ ์ดํด๊ฐ ์ ์ ๋์๋๋ฐ, ์ด๋ฒ ์ค๋ธ์ ํธ 9์ฅ์ ์ฝ์ผ๋ฉด์ ์ ์์ฑํ๋ ๋ถ๋ถ์ ๋ถ๋ฆฌํ๋ ํด๋์ค๋ฅผ ๋ง๋ค์ด์ผ ํ๋์ง์ ๋ํ ์ด์ ๋ฅผ ์๊ฒ ๋์๋ค. ์ด๊ฒ๋ ์ญ์ ๊ฐ์ฒด์งํฅ์ ์ธ ์ค๊ณ, ์ฆ ๊ฒฐํฉ๋๋ฅผ ๋ฎ์ถ๊ณ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ธฐ ์ํด์์ธ๋ฐ ์์กด์ฑ ๋ณ๊ฒฝ์ ์ํฅ์ ์ต์ํ ํ๊ธฐ์ํด ์ถ์ํ์๋ง ์์กดํ๊ฒ ๋ง๋ค๋ ค๋ฉด ๊ฐ์ฒด๊ฐ ๊ตฌ์ฒด ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๋ฉด ์ ๋๋ค. ๊ทธ๋์ ๋๋ฉ์ธ ๊ฐ๋ ์ ํ ๋น๋ผ ์๋ ๊ฐ์ฒด ์์ฑ ์ฑ ์์ ๋๋ฉ์ธ ๊ฐ๋ ๊ณผ ์๋ฌด ์๊ด์ด ์๋ ๊ฐ๊ณต์ ๊ฐ์ฒด, factory๋ก ์ฎ๊ธด ๊ฒ์ด๋ค. ๊ฐ๋ฐฉ ํ์ ์์น (Open-Closed Principle, OCP) - ํ์ฅ์๋ ์ด๋ ค์๊ณ , ์์ ์๋ ๋ซ.. 2022. 12. 9. [์ค๋ธ์ ํธ] 8์ฅ '์์กด์ฑ ๊ด๋ฆฌํ๊ธฐ' 8์ฅ์์๋ ์์กด์ฑ์ ๊ด๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด์ ๋ค๋ฃฌ๋ค. ์์กด์ฑ์ ๋ฐํ์ ์์กด์ฑ๊ณผ ์ปดํ์ผํ์ ์์กด์ฑ์ผ๋ก ๋๋ ์ ์๋ค. ๋ฐํ์ ์์กด์ฑ(run-time dependency) - ๊ฐ์ฒด ์ฌ์ด์ ์์กด์ฑ ์ปดํ์ผํ์ ์์กด์ฑ(compile-time dependency) - ํด๋์ค ์ฌ์ด์ ์์กด์ฑ ์ ์ฐํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ค๊ณ๋ฅผ ๋ง๋ค๊ธฐ ์ํด์๋ ์ปดํ์ผํ์ ์์กด์ฑ๊ณผ ๋ฐํ์ ์์กด์ฑ์ด ๋ฌ๋ผ์ผ ํ๋ค(p.260) ๊ทธ๋ผ ์ด๋ป๊ฒ ์ปดํ์ผํ์ ์์กด์ฑ๊ณผ ๋ฐํ์ ์์กด์ฑ์ ๋ค๋ฅด๊ฒ ํ ์ ์์๊น? ์์กด์ฑ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด 3๊ฐ์ง๊ฐ ์๋ค. 1. ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ์์ ์ ์์ฑ์๋ฅผ ํตํด ์์กด์ฑ ํด๊ฒฐ 2. ๊ฐ์ฒด ์์ฑ ํ setter ๋ฉ์๋๋ฅผ ํตํด ์์กด์ฑ ํด๊ฒฐ 3. ๋ฉ์๋ ์คํ ์ ์ธ์๋ฅผ ์ด์ฉํด ์์กด์ฑ ํด๊ฒฐ ์ฌ๊ธฐ์ 2๋ฒ setter ๋ฉ์๋๋ง ์ฌ์ฉํ๋.. 2022. 12. 2. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 ๋ค์