์๋ฐ(53)
-
[Spring] OCP์ DIP ๊ณ ๋ คํ๊ธฐ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ Spring์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์์ OCP์์น๊ณผ DIP๋ฅผ ์ข ๋ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์ด ๋ด์ฉ์ ์ธํ๋ฐ - ๊น์ํ ๊ฐ์ฌ๋์ ์คํ๋ง ํต์ฌ ์๋ฆฌ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌ ํ์์ต๋๋ค. ์ด ๊ฐ์์ ๋ํ Code๋ ์ฌ๊ธฐ์ ์ค๋น ํด ๋๊ฒ์! ๐ ๋ชฉ์ฐจ 01. [Spring] ์คํ๋ง ํต์ฌ ์๋ฆฌ 02. [Spring] ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น (SOLID) 03. [Spring] ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์คํ๋ง 04. [Spring] OCP์ DIP ๊ณ ๋ คํ๊ธฐ 05. [Spring] ๊ฐ์ฒด ์งํฅ ์๋ฆฌ ์ ์ฉ - ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ 06. [Spring] AppConfig ๋ฆฌํฉํฐ๋ง 07. [Spring] Ioc, DI Container 08. [Spring] ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ ..
2021.09.18 -
[Java] ๋คํ์ฑ(polymorphism)
๐ ๋คํ์ฑ์ด๋? ์์๊ณผ ํจ๊ป ๊ฐ์ฒด์งํฅ ๊ฐ๋ ์ ์ค์ํ ํน์ง ์ค ํ๋์ธ ๋คํ์ฑ์ ์์๊ณผ ๊น์ ๊ด๊ณ๊ฐ ์๋ ๊ฒ์ด์์. ๊ฐ์ฒด์งํฅ ๊ฐ๋ ์์ ๋คํ์ฑ์ด๋ '์ฌ๋ฌ ๊ฐ์ง ํํ๋ฅผ ๊ฐ์ง ์ ์๋ ๋ฅ๋ ฅ'์ ์๋ฏธํ๊ณ , ์๋ฐ์์๋ ํ ์๋ฃํ ํ์ ์ ์ฐธ์กฐ ๋ณ์๋ก ์ฌ๋ฌ ํ์ ์ ๊ฐ์ฒด๋ฅผ ์ฐธ๊ณ ํ ์ ์๋๋ก ํจ์ผ๋ก ๋คํ์ฑ์ ํฌ๋ก๊ทธ๋จ์ ์ผ๋ก ๊ตฌํํ ๊ฒ์ด์์. ์ฆ, ์กฐ์ Class ์๋ฃํ ํ์ ์ ์ฐธ์กฐ ๋ณ์๋ก ์์ ํด๋์ค์ ์ธ์คํด์ค๋ฅผ ์ฐธ์กฐํ ์ ์๋๋ก ํ์๋ค์ธ ๊ฒ์ด์์. Tv Class์ CaptionTv Class๊ฐ ์ด์ ๊ฐ์ด ์ ์๋์ด ์๋ค๊ณ ํ ๋, ๋ Class ๊ฐ์ ๊ด๊ณ ๊ทธ๋ฆผ์ ์๋์ ๊ฐ์ ๊ฒ์ด์์. Tv Class์ CaptionTv Class๋ ์๋ก ์์ ๊ด๊ณ์ ์๊ณ , ์ด ๋ Class์ ์ธ์คํด์ค๋ฅผ ์์ฑํ๊ณ , ์ฌ์ฉํ๊ธฐ ์ํด์๋ ์๋์ ..
2021.09.18 -
[JAVA] Class Method(static Method)์ ์ธ์คํด์ค Method
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฐ์ ๊ธฐ์ด ์ค ํ๋์ธ Static์ ๋ํด์ ์ ๋ฆฌ ํด ๋ณผ ๊ฒ์ด์์. ์ด ๋ด์ฉ์ ์๋ฐ์ ์ ์์ ์ฐธ๊ณ ํ์๋ต๋๋ค! ๐ ํด๋์ค ๋ฉ์๋(static ๋ฉ์๋)์ ์ธ์คํด์ค ๋ฉ์๋ ๋ฉ์๋ ์์ static์ด ๋ถ์ ๊ฒ์ด ์๋ค๋ฉด Class ๋ฉ์๋์ด๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ์ธ์คํด์ค(๊ฐ์ฒด) ๋ฉ์๋์ธ ๊ฒ์ด์์. ํด๋์ค ๋ฉ์๋๋ ํด๋์ค ๋ณ์์ฒ๋ผ ๊ฐ์ฒด๋ฅผ ์์ฑํ์ง ์๊ณ ๋ 'ClassName.MethodName(๋งค๊ฐ ๋ณ์)' ํ์์ผ๋ก ํธ์ถ์ด ๊ฐ๋ฅํ ๊ฒ์ด์์. ํ์ง๋ง ์ธ์คํด์ค ๋ฉ์๋๋ ๋ฐ๋์ ๊ฐ์ฒด๋ฅผ ์์ฑํด์ผ๋ง ํธ์ถํ ์ ์๋ ๊ฒ์ด์์. ๊ทธ๋ ๋ค๋ฉด ์ด๋ค ๊ฒฝ์ฐ์ static์ ์ฌ์ฉํ์ฌ ํด๋์ค ๋ฉ์๋๋ก ์ ์ํ๋ ๊ฒ์ผ๊น์? ํด๋์ค๋ 'Data(๋ณ์)์ Data์ ๊ด๋ จ๋ ๋ฉ์๋์ ์งํฉ'์ด๊ธฐ ๋๋ฌธ์ ๊ฐ์ ํด๋์ค ๋ด..
2021.09.13 -
[Spring] ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น (SOLID)
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ Spring์ SOLID์ ๋ํด์ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์ด ๋ด์ฉ์ ์ธํ๋ฐ - ๊น์ํ ๊ฐ์ฌ๋์ ์คํ๋ง ํต์ฌ ์๋ฆฌ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌ ํ์์ต๋๋ค. ๐ ๋ชฉ์ฐจ 01. [Spring] ์คํ๋ง ํต์ฌ ์๋ฆฌ 02. [Spring] ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น (SOLID) 03. [Spring] ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์คํ๋ง 04. [Spring] OCP์ DIP ๊ณ ๋ คํ๊ธฐ 05. [Spring] ๊ฐ์ฒด ์งํฅ ์๋ฆฌ ์ ์ฉ - ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ 06. [Spring] AppConfig ๋ฆฌํฉํฐ๋ง 07. [Spring] Ioc, DI Container 08. [Spring] ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ 09. [Spring] ์ฑ๊ธํค ์ปจํ ์ด๋ 10. [Spring] Component ..
2021.09.11 -
[Spring] ์คํ๋ง ํต์ฌ ์๋ฆฌ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ Spring์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ๋ํด์ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์ด ๋ด์ฉ์ ์ธํ๋ฐ - ๊น์ํ ๊ฐ์ฌ๋์ ์คํ๋ง ํต์ฌ ์๋ฆฌ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌ ํ์์ต๋๋ค. ๐ ๋ชฉ์ฐจ 01. [Spring] ์คํ๋ง ํต์ฌ ์๋ฆฌ 02. [Spring] ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น (SOLID) 03. [Spring] ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์คํ๋ง 04. [Spring] OCP์ DIP ๊ณ ๋ คํ๊ธฐ 05. [Spring] ๊ฐ์ฒด ์งํฅ ์๋ฆฌ ์ ์ฉ - ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ 06. [Spring] AppConfig ๋ฆฌํฉํฐ๋ง 07. [Spring] Ioc, DI Container 08. [Spring] ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ 09. [Spring] ์ฑ๊ธํค ์ปจํ ์ด๋ 10. [Spring] Compone..
2021.09.10 -
[์๋ฃ๊ตฌ์กฐ&์๊ณ ๋ฆฌ์ฆ] ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ด๋?
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ฃผ๋ํ๋์ ์ฝ๋ฉ ํ ์ค๋ฅผ ์ํด ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ๋ํด์ ๊ณต๋ถํ๊ณ ์๋ ๊ฒ์ด์์. ํจ์คํธ์บ ํผ์ค์ ์๊ณ ๋ฆฌ์ฆ / ๊ธฐ์ ๋ฉด์ ์์ ์ ๋ณต ์ฌ์ธ์ ํจํค์ง Online.์ ๋ํด์ ๊ณต๋ถํ๋ฉด์ ํผ๋๋ฅผ ์์ฑ ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์. ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ ์์ํ๊ธฐ ์ ์ ์ฝ๋์ ๊ด๋ จํ ๋ด์ฉ์ ์ฃผ๋ํ๋์ Github์์ ํ์ธ ํ์ค ์ ์์ต๋๋ค! ๐ ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ด๋? ๐ ์๋ฃ๊ตฌ์กฐ๋? ์ฉ์ด : ์๋ฃ๊ตฌ์กฐ, ๋ฐ์ดํฐ ๊ตฌ์กฐ, data structure (์ธ์๊ธฐ๋ฅผ ํผ์ฉํ์ฌ ์ฌ์ฉ) ๋๋์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ์ ๊ตฌ์กฐ ์ฝ๋์์์ ํจ์จ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด, ๋ฐ์ดํฐ ํน์ฑ์ ๋ฐ๋ผ, ์ฒด๊ณ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๊ตฌ์กฐํํด์ผ ํ๋ค. ์ด๋ค ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋์ ๋ฐ๋ผ, ์ฝ๋ ํจ์จ์ด ๋ฌ๋ผ..
2021.08.07