Design Pattern
-
React.js Compound Component ํจํด
Compound Component ํจํด๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ ์์ฃผ ์ฌ์ฉ๋๋ ๋์์ธ ํจํด(Design Pattern) ์ค ํ๋์ธ Compound Component ํจํด์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. Compound Component ํจํด๊ฐ๋ ์๋ก ๊ด๋ จ๋ ์ฌ๋ฌ ๊ฐ์ ์ปดํฌ๋ํธ๋ฅผ ํ๋์ ๋ถ๋ชจ ์ปดํฌ๋ํธ ์์ ์บก์ํํ๋ ๋ฐฉ์์ปดํ์ด๋ ์ปดํฌ๋ํธ์ ์ฃผ์ ์์ด๋์ด๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๊ตฌ์ฑํ๋ ์ฌ๋ฌ ์์ ์ปดํฌ๋ํธ๋ฅผ ํ๋์ ์์ ์ปดํฌ๋ํธ ์์์ ์กฐํฉํ์ฌ ๋ ๋ณต์กํ UI๋ฅผ ๋ง๋๋ ๊ฒ์ด๋ค. Coompound Component ํจํด์ ์ ์ฉ ์ : - Option 1 Option 2 Option 3 Option 4 ์ฅ์ ๋์ผํ ์ปดํฌ๋ํธ๋ฅผ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ฌ์ฌ์ฉํ ์ ์๋ค.์ปดํฌ๋ํธ์ ๋ด๋ถ ๊ตฌ์กฐ๋ฅผ ๋ณ..
0 2024.08.12 -
CS ๊ฐ๋ ์ ๋ต ํจํด(Strategy Pattern)
์ ๋ต ํจํด(Strategy Pattern) ์ ์ฑ ํจํด(Policy Pattern)์ด๋ผ๊ณ ๋ ํ๋ค. ๊ฐ์ฒด์ ํ์๋ฅผ ๋ฐ๊พธ๊ณ ์ถ์ ๊ฒฝ์ฐ '์ง์ ' ์์ ํ์ง ์๊ณ , ์ ๋ต์ด๋ผ๊ณ ๋ถ๋ฅด๋ '์บก์ํํ ์๊ณ ๋ฆฌ์ฆ'์ ์ปจํ ์คํธ ์์์ ๋ฐ๊ฟ์ฃผ๋ฉด์ ์ํธ ๊ต์ฒด๊ฐ ๊ฐ๋ฅํ๊ฒ ๋ง๋๋ ํจํด ํ๋ก๊ทธ๋๋ฐ์์ ์ปจํ ์คํธ๋ ์ํฉ, ๋งฅ๋ฝ, ๋ฌธ๋งฅ์ ์๋ฏธํ๋ฉฐ, ๊ฐ๋ฐ์๊ฐ ์ด๋ ํ ์์ ์ ์๋ฃํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ๊ด๋ จ ์ ๋ณด๋ฅผ ์๋ฏธํ๋ค. ์๋ฐ์ ์ ๋ต ํจํด ์ฐ๋ฆฌ๊ฐ ์ด๋ค ๊ฒ์ ์ด ๋, ๋ค์ด๋ฒํ์ด, ์นด์นด์คํ์ด ๋ฑ ๋ค์ํ ๋ฐฉ๋ฒ์ผ๋ก ๊ฒฐ์ ํ๋ฏ์ด, ์ด๋ค ์์ดํ ์ ์ด ๋ LUNACard๋ก ์ฌ๋ ๊ฒ๊ณผ KAKAOCard๋ก ์ด ์ ์๋ค. ๋ค์์ ์ผํ ์นดํธ์ ์์ดํ ์ ๋ด์ LUNACard ๋๋ KAKAOCard๋ผ๋ 2๊ฐ์ ์ ๋ต์ผ๋ก ๊ฒฐ์ ํ๋ ์ฝ๋์ด๋ค. import ja..
0 2023.06.12 -
CS ๊ฐ๋ ํฉํ ๋ฆฌ ํจํด(Factory Pattern)
ํฉํ ๋ฆฌ ํจํด(Factory Pattern) ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ ์ฝ๋์์ ๊ฐ์ฒด ์์ฑ ๋ถ๋ถ์ ๋ผ์ด๋ด ์ถ์ํํ ํจํด ์์ ๊ด๊ณ์ ์๋ ๋ ํด๋์ค์์ ์์ ํด๋์ค๊ฐ ์ค์ํ ๋ผ๋๋ฅผ ๊ฒฐ์ ํ๊ณ , ํ์ ํด๋์ค์์ ๊ฐ์ฒด ์์ฑ์ ๊ดํ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ ๊ฒฐ์ ํ๋ ํจํด ์์ ํด๋์ค์ ํ์ ํด๋์ค๊ฐ ๋ถ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋์จํ ๊ฒฐํฉ์ ๊ฐ์ง๋ฉฐ, ์์ ํด๋์ค์์๋ ์ธ์คํด์ค ์์ฑ ๋ฐฉ์์ ๋ํด ์ ํ ์ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ๋ ๋ง์ ์ ์ฐ์ฑ์ ๊ฐ๊ฒ ๋๋ค. ๊ฐ์ฒด ์์ฑ ๋ก์ง์ด ๋ฐ๋ก ๋ผ์ด์ ธ ์๊ธฐ ๋๋ฌธ์, ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๋๋ผ๋ ํ ๊ณณ๋ง ๊ณ ์น ์ ์๊ฒ ๋๋ ์ ์ง ๋ณด์์ฑ์ด ์ฆ๊ฐ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ผ๋ผ ๋ ์ํผ์ ์๋ฉ๋ฆฌ์นด๋ ธ ๋ ์ํผ, ์ฐ์ ๋ ์ํผ๋ผ๋ ๊ตฌ์ฒด์ ์ธ ๋ด์ฉ์ด ๋ค์ด ์๋ ํ์ ํด๋์ค๊ฐ ์ปจ๋ฒ ์ด์ด ๋ฒจํธ๋ฅผ ํตํด ์ ๋ฌ๋๊ณ , ์์ ํด๋์ค์ธ ๋ฐ๋ฆฌ์คํ ๊ณต์ฅ์์ ์ด ๋ ์..
1 2023.06.11 -
CS ๊ฐ๋ ์ฑ๊ธํค ํจํด(Singletone Pattern)
์ฑ๊ธํค ํจํด(Singleton Pattern) ํ๋์ ํด๋์ค์ ์ค์ง ํ๋์ ์ธ์คํด์ค๋ง ๊ฐ์ง๋ ํจํด ํ๋์ ํด๋์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฌ๋ฌ ๊ฐ์ ๊ฐ๋ณ์ ์ธ ์ธ์คํด์ค๋ฅผ ๋ง๋ค ์ ์์ง๋ง, ๊ทธ๋ ๊ฒ ํ์ง ์๊ณ ํ๋์ ํด๋์ค๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋จ ํ๋์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ก์ง์ ๋ง๋๋ ๋ฐ ์ฐ์ธ๋ค. ๋ณดํต ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๊ฒฐ ๋ชจ๋์ ๋ง์ด ์ฌ์ฉํ๋ค. ํ๋์ ์ธ์คํด์ค๋ฅผ ๋ง๋ค์ด ๋๊ณ ํด๋น ์ธ์คํด์ค๋ฅผ ๋ค๋ฅธ ๋ชจ๋๋ค์ด ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ์ธ์คํด์ค๋ฅผ ์์ฑํ ๋ ๋๋ ๋น์ฉ์ด ์ค์ด๋๋ ์ฅ์ ์ด ์๋ค. ํ์ง๋ง, ์์กด์ฑ์ด ๋์์ง๋ค๋ ๋จ์ ์ด ์๋ค. ์๋ฐ์คํฌ๋ฆฝํธ์ ์ฑ๊ธํค ํจํด ์๋ฐ์คํฌ๋ฆฝํธ์์๋ ๋ฆฌํฐ๋ด { } ๋๋ new Object๋ก ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ฒ ๋๋ฉด, ๋ค๋ฅธ ์ด๋ค ๊ฐ์ฒด์๋ ๊ฐ์ง ์๊ธฐ ๋๋ฌธ์ ์ด ์์ฒด๋ง์ผ๋ก ์ฑ๊ธํค ํจํด์ ๊ตฌํํ ์ ์๋ค. const ..
0 2023.05.18