๐ท๐ผ๋ชจ์ฌ๋ด์ ๊ฐ๋ฐ์์ฒ๐ท๐ผ
[๋ ธ๋ง๋๋ถํด๋ฝ] 2์ฅ. ์๋ฏธ์๋ ์ด๋ฆ ๋ณธ๋ฌธ
[๋ ธ๋ง๋๋ถํด๋ฝ] 2์ฅ. ์๋ฏธ์๋ ์ด๋ฆ
์์ผ์ด 2022. 2. 21. 00:32TIL (Today I Learned)
- 2022.02.20
์ค๋ ์ฝ์ ๋ฒ์
- 2์ฅ. ์๋ฏธ์๋ ์ด๋ฆ
์ฑ ์์ ๊ธฐ์ตํ๊ณ ์ถ์ ๋ด์ฉ์ ์จ๋ณด์ธ์.
- ์๋๋ฅผ ๋ถ๋ช ํ ๋ฐํ๋ผ
- ๋ฌธ์ ๋ ์ฝ๋์ ๋จ์์ฑ์ด ์๋๋ผ ์ฝ๋์ ํจ์ถ์ฑ์ด๋ค. ๋ค์ ๋งํด, ์ฝ๋ ๋งฅ๋ฝ์ด ์ฝ๋ ์์ฒด์ ๋ช ์์ ์ผ๋ก ๋๋ฌ๋์ง ์๋๋ค.
- ๋จ์ํ ์ด๋ฆ๋ง ๊ณ ์ณค๋๋ฐ๋ ํจ์๊ฐ ํ๋ ์ผ์ ์ดํดํ๊ธฐ ์ฌ์์ก๋ค. ๋ฐ๋ก ์ด๊ฒ์ด ์ข์ ์ด๋ฆ์ ์ฃผ๋ ์๋ ฅ์ด๋ค.
- ๊ทธ๋ฆ๋ ์ ๋ณด๋ฅผ ํผํ๋ผ
- ์๋ก ํก์ฌํ ์ด๋ฆ์ ์ฌ์ฉํ์ง ์๋๋ก ์ฃผ์ํ๋ค. ์ ์ฌํ ๊ฐ๋ ์ ์ ์ฌํ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. ์ด๊ฒ๋ ์ ๋ณด๋ค. ์ผ๊ด์ฑ์ด ๋จ์ด์ง๋ํ๊ธฐ๋ฒ์ ๊ทธ๋ฆ๋ ์ ๋ณด๋ค
- ์๋ฏธ ์๊ฒ ๊ตฌ๋ถํ๋ผ
- ์ฝ๋ ์ฌ๋์ด ์ฐจ์ด๋ฅผ ์๋๋ก ์ด๋ฆ์ ์ง์ด๋ผ.
- ๋ฐ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ฌ์ฉํ๋ผ
- ๋ฐ์ํ๊ธฐ ์ด๋ ค์ด ์ด๋ฆ์ ํ ๋ก ํ๊ธฐ๋ ์ด๋ ต๋ค. ๋ฐ๋ณด์ฒ๋ผ ๋ค๋ฆฌ๊ธฐ ์ฝ์์ด๋ค ๋ฐ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ค์ํ๋ค. ํ๋ก๊ทธ๋๋ฐ์ ์ฌํ ํ๋์ด๊ธฐ ๋๋ฌธ์ด๋ค.
- ๊ฒ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ฌ์ฉํ๋ผ
- ๊ธด ์ด๋ฆ์ด ์งง์ ์ด๋ฆ๋ณด๋ค ์ข๋ค. ๊ฒ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ด ์์๋ณด๋ค ์ข๋ค.
- ๊ฐ์ธ์ ์ผ๋ก๋ ๊ฐ๋จํ ๋ฉ์๋์์ ๋ก์ปฌ ๋ณ์๋ง ํ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ฆ ๊ธธ์ด๋ ๋ฒ์ ํฌ๊ธฐ์ ๋น๋กํด์ผ ํ๋ค.
- ์ธ์ฝ๋ฉ์ ํผํ๋ผ
- ํ๊ฐ๋ฆฌ์ ํ๊ธฐ๋ฒ์ด๋ ๊ธฐํ ์ธ์ฝ๋ฉ ๋ฐฉ์์ด ์คํ๋ ค ๋ฐฉํด๊ฐ ๋ ๋ฟ์ด๋ค. ๋ณ์, ํจ์, ํด๋์ค ์ด๋ฆ์ด๋ ํ์ ์ ๋ฐ๊พธ๊ธฐ๊ฐ ์ด๋ ค์์ง๋ฉฐ, ์ฝ๊ธฐ๋ ์ด๋ ค์์ง๋ค. ๋ ์๋ฅผ ์ค๋ํ ๊ฐ๋ฅ์ฑ๋ ์ปค์ง๋ค.
- ๋ฉค๋ฒ ๋ณ์ ์ ๋์ด
- ์ด์ ๋ ๋ฉค๋ฒ ๋ณ์์ m_์ด๋ผ๋ ์ ๋์ด๋ฅผ ๋ถ์ผ ํ์๋ ์๋ค. ํด๋์ค์ ํจ์๋ ์ ๋์ด๊ฐ ํ์์์ ์ ๋๋ก ์์์ผ ๋ง๋ ํ๋ค. ๋ํ ๋ฉค๋ฒ ๋ณ์๋ฅผ ๋ค๋ฅธ ์์์ผ๋ก ํ์ํ๊ฑฐ๋ ๋์ ๋๊ฒ ๋ณด์ฌ์ฃผ๋ IDE๋ฅผ ์ฌ์ฉํด์ผ ๋ง๋ ํ๋ค.
- ์ธํฐํ์ด์ค ํด๋์ค์ ๊ตฌํ ํด๋์ค
- ์ธํฐํ์ด์ค ํด๋์ค ์ด๋ฆ๊ณผ ๊ตฌํ ํด๋์ค ์ด๋ฆ ์ค ํ๋๋ฅผ ์ธ์ฝ๋ฉ ํด์ผํ๋ค๋ฉด ๊ตฌํํด๋์ค ์ด๋ฆ์ ํํ๊ฒ ๋ค. ShapeFactoryImp๋ ์ฌ์ง์ด CShapeFactory๊ฐ IShapeFactory๋ณด๋ค ์ข๋ค.
์์ ์ ๊ธฐ์ต๋ ฅ์ ์๋ํ์ง ๋ง๋ผ-์ ๋ฌธ๊ฐ ํ๋ก๊ทธ๋๋จธ๋ ๋ช ๋ฃํจ์ด ์ต๊ณ ๋ผ๋ ์ฌ์ค์ ์ดํดํ๋ค. ์ ๋ฌธ๊ฐ ํ๋ก๊ทธ๋๋จธ๋ ์์ ์ ๋ฅ๋ ฅ์ ์ข์ ๋ฐฉํฅ์ผ๋ก ์ฌ์ฉํด ๋จ๋ค์ด ์ดํดํ๋ ์ฝ๋๋ฅผ ๋ด๋๋๋ค.
- ๋ ์๊ฐ ์ฝ๋๋ฅผ ์ฝ์ผ๋ฉด์ ๋ณ์ ์ด๋ฆ์ ์์ ์ด ์๋ ์ด๋ฆ์ผ๋ก ๋ณํํด์ผ ํ๋ค๋ฉด ๊ทธ ๋ณ์ ์ด๋ฆ์ ๋ฐ๋์งํ์ง ๋ชปํ๋ค.
- ํด๋์ค ์ด๋ฆ๊ณผ ๊ฐ์ฒด ์ด๋ฆ์ ๋ช ์ฌ๋ ๋ช ์ฌ๊ตฌ๊ฐ ์ ํฉํ๋ค. ๋์ฌ๋ ์ฌ์ฉํ์ง ์๋๋ค.
- ๋ฉ์๋ ์ด๋ฆ์ ๋์ฌ๋ ๋์ฌ๊ตฌ๊ฐ ์ ํฉํ๋ค.
- ์์ฑ์๋ฅผ ์ค๋ณต์ ์ํ ๋๋ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. ๋ฉ์๋๋ ์ธ์๋ฅผ ์ค๋ช ํ๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ค. ์๋ฅผ๋ค์ด, ๋ค์ ๋ ์์ ๋ฅผ ์ดํด๋ณด์.
Complex fulcrumPoint = Complex.FromRealNumber(23.0);
์ ์ฝ๋๊ฐ ์๋ ์ฝ๋๋ณด๋ค ์ข๋ค.
Complex fulcrumPoint = new Complex(23.0);
์์ฑ์ ์ฌ์ฉ์ ์ ํํ๋ ค๋ฉด ํด๋น ์์ฑ์๋ฅผ private๋ก ์ ์ธํ๋ค.
- ๊ธฐ๋ฐํ ์ด๋ฆ์ ํผํ๋ผ
- ์ฌ๋ฏธ๋ ์ด๋ฆ๋ณด๋ค ๋ช ๋ฃํ ์ด๋ฆ์ ์ ํํ๋ผ.
- ํ ๊ฐ๋ ์ ํ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ผ
- ์ถ์์ ์ธ ๊ฐ๋ ํ๋์ ๋จ์ด ํ๋๋ฅผ ์ ํํด ์ด๋ฅผ ๊ณ ์ํ๋ค
- ๋ฉ์๋ ์ด๋ฆ์ ๋ ์์ ์ด๊ณ ์ผ๊ด์ ์ด์ฌ์ผ ํ๋ค. ๊ทธ๋์ผ ์ฃผ์์ ๋ค์ ธ๋ณด์ง ์๊ณ ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ฌ๋ฐ๋ฅธ ๋ฉ์๋๋ฅผ ์ ํํ๋ค.
- ๋ง์ฅ๋์ ํ์ง ๋ง๋ผ
- ํ ๋จ์ด๋ฅผ ๋ ๊ฐ์ง ๋ชฉ์ ์ผ๋ก ์ฌ์ฉํ์ง ๋ง๋ผ.
- ํ๋ก๊ทธ๋๋จธ๋ ์ฝ๋๋ฅผ ์ต๋ํ ์ดํดํ๊ธฐ ์ฝ๊ฒ ์ง์ผํ๋ค. ์ง์ค์ ์ธ ํ๊ตฌ๊ฐ ํ์ํ ์ฝ๋๊ฐ ์๋๋ผ ๋์ถฉ ํ์ด๋ด๋ ์ดํดํ ์ฝ๋ ์์ฑ์ด ๋ชฉํ๋ค. ์๋ฏธ๋ฅผ ํด๋ ํ ์ฑ ์์ด ๋ ์์๊ฒ ์๋ ๋ ผ๋ฌธ ๋ชจ๋ธ์ด ์๋๋ผ ์๋๋ฅผ ๋ฐํ ์ฑ ์์ด ์๋ ์ ์์๊ฒ ์๋ ์ก์ง ๋ชจ๋ธ์ด ๋ฐ๋์งํ๋ค.
- ํด๋ฒ ์์ญ์์ ๊ฐ์ ธ์จ ์ด๋ฆ์ ์ฌ์ฉํ๋ผ
- ์ฝ๋๋ฅผ ์ฝ์ ์ฌ๋๋ ํ๋ก๊ทธ๋๋จธ๋ผ๋ ์ฌ์ค์ ๋ช ์ฌํ๋ค. ๊ทธ๋ฌ๋ฏ๋ก ์ ์ฐ ์ฉ์ด, ์๊ณ ๋ฆฌ์ฆ ์ด๋ฆ, ํจํด ์ด๋ฆ, ์ํ ์ฉ์ด ๋ฑ์ ์ฌ์ฉํด๋ ๊ด์ฐฎ๋ค.
- ๋ฌธ์ ์์ญ์์ ๊ฐ์ ธ์จ ์ด๋ฆ์ ์ฌ์ฉํ๋ผ
- ์ฐ์ํ ํ๋ก๊ทธ๋๋จธ์ ์ค๊ณ์๋ผ๋ฉด ํด๋ฒ ์์ญ๊ณผ ๋ฌธ์ ์์ญ์ ๊ตฌ๋ถํ ์ค ์์์ผ ํ๋ค. ๋ฌธ์ ์์ญ ๊ฐ๋ ๊ณผ ๊ด๋ จ์ด ๊น์ ์ฝ๋๋ผ๋ฉด ๋ฌธ์ ์์ญ์์ ์ด๋ฆ์ ๊ฐ์ ธ์์ผ ํ๋ค.
- ์ ์ ํ 'ํ๋ก๊ทธ๋๋จธ ์ฉ์ด'๊ฐ ์๋ค๋ฉด ๋ฌธ์ ์์ญ์์ ์ด๋ฆ์ ๊ฐ์ ธ์จ๋ค.
- ์๋ฏธ ์๋ ๋งฅ๋ฝ์ ์ถ๊ฐํ๋ผ
- ๋ถํ์ํ ๋งฅ๋ฝ์ ์์ ๋ผ
- ์ผ๋ฐ์ ์ผ๋ก๋ ์งง์ ์ด๋ฆ์ด ๊ธด ์ด๋ฆ๋ณด๋ค ์ข๋ค. ๋จ, ์๋ฏธ๊ฐ ๋ถ๋ช ํ ๊ฒฝ์ฐ์ ํํด์๋ค. ์ด๋ฆ์ ๋ถํ์ํ ๋งฅ๋ฝ์ ์ถ๊ฐํ์ง ์๋๋ก ์ฃผ์ํ๋ค.
- ๋ง์น๋ฉด์
- ์ข์ ์ด๋ฆ์ ์ ํํ๋ ค๋ฉด ์ค๋ช ๋ฅ๋ ฅ์ด ๋ฐ์ด๋์ผ ํ๊ณ ๋ฌธํ์ ์ธ ๋ฐฐ๊ฒฝ์ด ๊ฐ์์ผ ํ๋ค.
- ์ฐ๋ฆฌ๋ค ๋๋ค์๋ ์์ ์ด ์ง ํด๋์ค ์ด๋ฆ๊ณผ ๋งค์๋ ์ด๋ฆ์ ๋ชจ๋ ์๊ธฐํ์ง ๋ชปํ๋ค.
์ค๋ ์ฝ์ ์๊ฐ์? ๋ ์ค๋ฅด๋ ์๊ฐ์ ๊ฐ๋ณ๊ฒ ์ ์ด๋ณด์ธ์
- ์ญ์ ๋ฐ์ด๋ธ ๊ฐ์ ์ฑ ์ด๋ค. ๋๋ ๊ฐ๋ฐํ ๋ ์ฃผ์์ด ์ ์ผ ์ค์ํ ์ค ์์๋ค. ๊ทธ๋์ ๋ณ์ ํ๋ํ๋์๋ ์ฃผ์์ ๋ฌ๊ณค ํ๋๋ฐ ์ฃผ์์ ๋ค๋ ๊ฒ ๋ณด๋ค ๋ณ์์ ์ด๋ฆ์ด๋ ๋ฉ์๋์ ์ด๋ฆ์ ์ ํํํ๋ฉด ์ฃผ์์ ๋์ ํ ์ ์๋ค๋ ๊ฒ์ ๋ฐฐ์ ๋ค.
๊ถ๊ธํ ๋ด์ฉ์ด ์๊ฑฐ๋, ์ ์ดํด๋์ง ์๋ ๋ด์ฉ์ด ์๋ค๋ฉด ์ ์ด๋ณด์ธ์.
- ์๋ฏธ ์๋ ๋งฅ๋ฝ์ ์ถ๊ฐํ๋ผ ๋ถ๋ถ์์ ์ค๋ช ํ๋ ์ด์ผ๊ธฐ๊ฐ ํน์ ํ ์ํฉ์์ ๋ณ์๋ค์ ๊ฐ์ ๋ด์ ๋ ์๋ฏธ๊ฐ ๋ด๊ธด ์ด๋ฆ์ ๋ฉ์๋๋ฅผ ๋ง๋ค์ด ํํํจ์ผ๋ก์จ ํด๋น ์ํฉ์ ์ค๋ช ํ๋ค? ๋ผ๊ณ ํด์ํ๋๋ฐ ์ ๋ชจ๋ฅด๊ฒ ๋ค.
'๊ฐ๋ฐ > ๊ฐ๋ฐ๊ด๋ จ ์์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ ธ๋ง๋๋ถํด๋ฝ] 3์ฅ. ํจ์ (0) | 2022.02.22 |
---|---|
[๋ ธ๋ง๋๋ถํด๋ฝ] Clean Code ์์ (0) | 2022.02.20 |