1์ฅ ๊นจ๋ํ ์ฝ๋
๊นจ๋ํ ์ฝ๋๋?
์ด ๋จ์ด์ ๋ํ ๋ค์ํ ์ ์๊ฐ ์กด์ฌํ๋๋ฐ ์๋๋ ์ฐ๋ฆฌ ๋ถ์ผ์์ ์ ๋ช ํ ํ๋ก๊ทธ๋๋จธ๋ค์ด ๋งํ ์ ์์ด๋ค.
- ์ฐ์ํ๋ค: ๋ณด๋ ์ฌ๋์๊ฒ ์ฆ๊ฑฐ์์ ์ ์ฌํ๋ค.
- ํจ์จ์ ์ด๋ค: ๋จ์ํ ์๋๋ง์ ๋ปํ์ง ์๊ณ CPU ์์ ๋ฑ ๋ง์ ๊ฒ์ ๋ปํ๋ค.
- ์ฒ ์ ํ ์ค๋ฅ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ค: ๋ฉ๋ชจ๋ฆฌ ๋์, ๊ฒฝ์ ์ํ, ์ผ๊ด์ฑ ์๋ ๋ช ๋ช ๋ฒ ๋ฑ์ ์กฐ์ฌํ์.
- ํ ๊ฐ์ง๋ฅผ ์ํ๋ค: ๋์ ์ฝ๋๋ ๋๋ฌด ๋ง์ ์ผ์ ํ๋ ค๋ค ์๋๊ฐ ๋ค์์ด์ง๋ง ๊นจ๋ํ ์ฝ๋๋ ํ ๊ฐ์ง์ ์ง์คํ๋ค.
- ๊ฐ๋ ์ฑ์ด ์ข๋ค: ์ ์ด ๋ฌธ์ฅ์ฒ๋ผ ์ฝํ์ผ ํ๋ค.
- ๋ค๋ฅธ ์ฌ๋์ด ๊ณ ์น๊ธฐ ์ฝ๋ค.
- ์ฃผ์ ๊น๊ฒ ์งฐ๋ค๋ ๋๋์ ์ค๋ค.
- ์๊ฒ ์ถ์ํํ๋ค.
- ์ค๋ณต์ด ์๋ค.
2์ฅ ์๋ฏธ ์๋ ์ด๋ฆ
๋ณ์, ํจ์, ์ธ์์ ํด๋์ค, ์์ค ํ์ผ, ์์ค ํ์ผ ๋ด ๋๋ ํฐ๋ฆฌ ๋ฑ ์ํํธ์จ์ด์์ ์ด๋ฆ์ ์ด๋๋ ์ฐ์ธ๋ค.
1. ์๋๋ฅผ ๋ถ๋ช ํ ๋ฐํ๋ผ
๋ณ์๋ ํจ์, ํด๋์ค์ ์ด๋ฆ์ ๋ค์๊ณผ ๊ฐ์ ์ง๋ฌธ์ ๋ชจ๋ ๋ตํด์ผ ํ๋ค.
์กด์ฌ ์ด์ ๋? ์ํ ๊ธฐ๋ฅ์? ์ฌ์ฉ ๋ฐฉ๋ฒ์?
๋ฐ๋ก ์ฃผ์์ด ํ์ํ๋ค๋ฉด ์ด๋ฆ์ ์๋๋ฅผ ๋ถ๋ช ํ ๋๋ฌ๋ด์ง ๋ชปํ ๊ฒ์ด๋ค.
์๋๊ฐ ๋๋ฌ๋๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ฉด ์ฝ๋ ์ดํด์ ๋ณ๊ฒฝ์ด ์ฌ์์ง๋ค.
2. ๊ทธ๋ฆ๋ ์ ๋ณด๋ ํผํ๋ผ
์ฝ๋์ ๊ทธ๋ฆ๋ ๋จ์๋ฅผ ๋จ๊ฒจ์๋ ์ ๋๋ค.
๊ทธ๋ฆ๋ ๋จ์๋ ์ฝ๋ ์๋ฏธ๋ฅผ ํ๋ฆฐ๋ค.
- ๋๋ฆ๋๋ก ๋๋ฆฌ ์ฐ์ด๋ ์๋ฏธ๊ฐ ์๋ ๋จ์ด๋ฅผ ๋ค๋ฅธ ์๋ฏธ๋ก ์ฌ์ฉํด๋ ์๋๋ค. Ex) hp, aix ๋ฑ
- ์ฌ๋ฌ ๊ณ์ ์ ๊ทธ๋ฃน์ผ๋ก ๋ฌถ์ ๋ ์ค์ List๊ฐ ์๋๋ผ๋ฉด accountList๋ผ ๋ช ๋ช ํ์ง ์๋๋ค. ๊ฒ๋ค๊ฐ ์ค์ List์ธ ๊ฒฝ์ฐ๋ผ๋ ์ปจํ ์ด๋ ์ ํ์ ์ด๋ฆ์ ๋ฃ์ง ์๋ ๊ฒ์ด ๋ฐ๋์งํ๋ค.
- ์๋ก ํก์ฌํ ์ด๋ฆ์ ์ฌ์ฉํ์ง ์๋๋ก ์ฃผ์ํ๋ค.
- ์ ์ฌํ ๊ฐ๋ ์ ์ ์ฌํ ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค.
3. ์๋ฏธ ์๊ฒ ๊ตฌ๋ถํ๋ผ
์ปดํ์ผ๋ฌ๋ ์ธํฐํ๋ฆฌํฐ๋ง ํต๊ณผํ๋ ค๋ ์๊ฐ์ผ๋ก ์ฝ๋๋ฅผ ๊ตฌํํ๋ ํ๋ก๊ทธ๋๋จธ๋ ์ค์ค๋ก ๋ฌธ์ ๋ฅผ ์ผ์ผํจ๋ค.
์ฐ์๋ ์ซ์(a1, a2,...)๋ฅผ ๋ถ์ด๊ฑฐ๋ ๋ถ์ฉ์ด(Info, Data ๋ฑ)๋ฅผ ์ถ๊ฐํ๋ ๋ฐฉ์์ ์ ์ ํ์ง ์๋ค.
4. ๋ฐ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ฌ์ฉํ๋ผ
๋ฐ์ํ๊ธฐ ์ด๋ ค์ด ์ด๋ฆ์ ํ ๋ก ํ๊ธฐ๋ ์ด๋ ต๋ค.
5. ๊ฒ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ ์ฌ์ฉํ๋ผ
๊ฐ๋จํ ๋ฉ์๋์์ ๋ก์ปฌ ๋ณ์๋ง ํ ๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ฆ ๊ธธ์ด๋ ๋ฒ์ ํฌ๊ธฐ์ ๋น๋กํด์ผ ํ๋ค.
๋ณ์๋ ์์๋ฅผ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ๋ค๋ฉด ๊ฒ์ํ๊ธฐ ์ฌ์ด ์ด๋ฆ์ด ๋ฐ๋์งํ๋ค.
6. ์ธ์ฝ๋ฉ์ ํผํ๋ผ
๊ตณ์ด ๋ถ๋ด์ ๋ํ์ง ์์๋ ์ด๋ฆ์ ์ธ์ฝ๋ฉํ ์ ๋ณด๋ ๋งค์ฐ ๋ง๋ค.
์ ํ์ด๋ ๋ฒ์ ๋ฑ ๋๋ฌด ๋ง์ ์ ๋ณด๋ฅผ ์ธ์ฝ๋ฉํ๋ค๋ฉด ๊ทธ๋งํผ ์ด๋ฆ์ ํด๋ ํ๊ธฐ ์ด๋ ค์์ง๋ค.
7. ์์ ์ ๊ธฐ์ต๋ ฅ์ ์๋ํ์ง ๋ง๋ผ
๋ ์๊ฐ ์ฝ๋๋ฅผ ์ฝ์ผ๋ฉด์ ๋ณ์ ์ด๋ฆ์ ์์ ์ด ์๋ ์ด๋ฆ์ผ๋ก ๋ณํํด์ผ ํ๋ค๋ฉด ๊ทธ ๋ณ์ ์ด๋ฆ์ ๋ฐ๋์งํ์ง ๋ชปํ๋ค.
๋ฌธ์ ํ๋๋ง ์ฌ์ฉํ๋ ๋ณ์ ์ด๋ฆ์ ๋ฌธ์ ๊ฐ ์๋ค. ๋จ, ๋ฃจํ ๋ฒ์๊ฐ ์์ ๋ณ์(i, j, k)๋ ๊ด์ฐฎ๋ค.
8. ํด๋์ค ์ด๋ฆ
ํด๋์ค ์ด๋ฆ๊ณผ ๊ฐ์ฒด ์ด๋ฆ์ ๋ช ์ฌ๋ ๋ช ์ฌ๊ตฌ๊ฐ ์ ํฉํ๋ค.
Manager, Processor, Data, Info ๋ฑ๊ณผ ๊ฐ์ ๋จ์ด๋ ํผํ๊ณ ๋์ฌ๋ ์ฌ์ฉํ์ง ์๋๋ค.
9. ๋ฉ์๋ ์ด๋ฆ
- ๋ฉ์๋๋ ๋์ฌ๋ ๋์ฌ๊ตฌ๊ฐ ์ ํฉํ๋ค.
- ์ ๊ทผ์, ๋ณ๊ฒฝ์, ์กฐ๊ฑด์๋ javabean ํ์ค์ ๋ฐ๋ผ get, set, is๋ฅผ ๋ถ์ธ๋ค.
- ์์ฑ์๋ฅผ ์ค๋ณต ์ ์ํ ๋๋ ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ค. ๋ฉ์๋๋ ์ธ์๋ฅผ ์ค๋ช ํ๋ ์ด๋ฆ์ ์ฌ์ฉํ๋ค.
Complex fulcrumPoint = new Complex(23.0);
Complex fulcrumPoint = Complex.FromRealNumber(23.0); // ์ ์ ํฉํ ๋ฆฌ ๋ฉ์๋
10. ํ ๊ฐ๋ ์ ํ ๋จ์ด๋ฅผ ์ฌ์ฉํ๋ผ
์ถ์์ ์ธ ๊ฐ๋ ํ๋์ ๋จ์ด ํ๋๋ฅผ ์ ํํด ์ด๋ฅผ ๊ณ ์ํ๋ค. Ex) get์ fetch, manager์ controller ๋ฑ
11. ํด๋ฒ ์์ญ์์ ๊ฐ์ ธ์จ ์ด๋ฆ์ ์ฌ์ฉํ๋ผ
์ ์ฐ ์ฉ์ด, ์๊ณ ๋ฆฌ์ฆ ์ด๋ฆ, ํจํด ์ด๋ฆ, ์ํ ์ฉ์ด ๋ฑ์ ์ฌ์ฉํด๋ ๊ด์ฐฎ๋ค.