๋ค์ ํต์ฌ๋ง ๊ฐ๊ฒฐํ๊ฒ ๋ณต๊ธฐํ๊ธฐ ์ํ ๋ชฉ์ ์ผ๋ก ์ ๋ฆฌํ๊ธฐ ๋๋ฌธ์, ์์ฝํ๋ ๋ฐฉ์์ผ๋ก ๊ธ์ ์์ฑํ๋ค.
์ญ/์์์ ๋ง
- ์ ๋์ ์ด๋ผ ๋ฏฟ์ผ๋ฉด ์๋๋ค ๊ฐ์ ์ ์ฌ์ง๊ฐ ์์ ๊ฒ์ด๋ผ ์๊ฐํด์ผ ํ๋ค.
- ์ด ์์๋ค์ ์๊ฐํ๋ ์ด์ ๋ ํ/๊ณต๋์ฒด์์ ์๋ก ๋์ํ๋ ํฉ๋ฆฌ์ ์ธ ์์น์ ์ธ์ฐ๊ธฐ ์ํจ์ด๋ค. ์ฆ, ๊ต์ ์์ ์ด๋ผ ๋ณด๋ ๊ฒ์ด ๋ณด๋ค ํฉ๋นํ๋ค.
- ์ ์ง๋ณด์ ์์ ์ผ๋ก ์ ๊ฒฝ ์ ์ฝ์ ๊ฑธ๋ฆฌ๊ณ ์๋ค๋ฉด, ์ฑ ์์ ์๊ฐํ๋ ๋ด์ฉ์ด ๋ง์์ ์๋ฟ์ ๊ฒ์ด๋ค.
- ์๋ถ๋ถ์์๋ ํจํด๊ณผ ๊ท์น์ ์ตํ๊ณ , ์ค์ ์ฝ๋๋ฅผ ์ ๋ฆฌํ๋ ๋ถ๋ถ์ ํ๋ฐ๋ถ์ด๋ค. ํ๋ฐ๋ถ์ ์ง์คํ์.
- ๊ฐ๋ฐ์์๊ฒ โ์ํ์ ์ ์โ๊ณผ ๊ฐ์ ์ฑ ์ด๋ค. ๋ฐฉ์์ ์ดํดํด์ผ ์ํํ ์ ์๋ ์ฑ ์ด๋ค.
- ํญ์ ๋๋ผ๋ฉด ์ด๋ป๊ฒ ํ์๊น๋ฅผ ๊ธฐ์ตํ์.
- ์ธ์ธํจ์ ์ฃผ์๋ฅผ ๊ธฐ์ธ์ด๋ ํ๋๋ ํ์ฌ ์ ๋ฌธ๊ฐ์๊ฒ ํ์์ ์ธ ์์ง์ด๋ค. Clean code๊ฐ ์ค์ํ ์ด์ ๋ ์ฌ๊ธฐ์ ์๋ค.
- ์ํํธ์จ์ด์ ์ ์กฐ์
์์ ์ํฅ์ ๋ฐ์๋ค. ๋ค๋ง ์ ์ง๋ณด์์ ๋น์จ์ด ๊ทน๋จ์ ์ผ๋ก ๋์ ์
๊ณ์ด๋ค.
- Scrum: ์ผ๋ณธ ์๋์ฐจ ์ ์กฐ์ ์ํฅ
- Agile: ๋น ๋ฅธ Delivery๋ฅผ ์ํ ๋ฐฉ๋ฒ๋ก
- Lean: TPM(Total Productive Management: ์ ์ง๋ณด์์ ์ด์ ์ ๋ง์ถ ํ์ง ๊ด๋ฆฌ๋ก )์ ์ํฅ์ ๋ฐ์ ์์น
- ์ฑ ์์๋ ๊ฐ๋ฐ์๋ผ๋ฉด ์ ํ ์๋ช ์ฃผ๊ธฐ๊น์ง ๊ณ ๋ คํด์ผ ํ๋ค.
- ์ ์กฐ์ ์์ ์ฌ์์ ์ ๋น์ฉ์ด๋, ์ํํธ์จ์ด์์ ์ฌ์์ ์ ๊ฐ์น๋ฅผ ๊ฐ์ ธ์จ๋ค.
- ์ด๋ป๊ฒ ๋ณด๋ฉด ์ด ์ฑ ์ ๋ฐฉ๋ฒ์ ๋ํ ์ด์ผ๊ธฐ๊ฐ ์๋๋ผ, ์ถ์ ํ๋์ ๋ํด ์ง๊ฐ์ ์ ์ผ๋ก ์ ํ๊ธฐ ์ํด ๋ง๋ค์ด์ก๋์ง๋ ๋ชจ๋ฅด๊ฒ ๋ค.
Introduction
์ฝ๋ ํ์ง์ ์ธก์ ํ๋ ์ ์ผํ ์ฒ๋๋ WTF ํ์/minute ์ด๋ค.
๋๋ ์ด๋ป๊ฒ ์ฝ๋๋ฅผ ์์ฑํ๊ณ ์๋๊ฐ? ๋ฎ์ ์ฒ๋๋ฅผ ๊ฐ์ง๋๊ฐ, ๋์ ์ฒ๋๋ฅผ ๊ฐ์ง๋๊ฐ? ํ์ด๋ ํ์ฌ๋ ์ด๋ค๊ฐ. ์ด๋ป๊ฒ ๋์ ์์น๋ฅผ ๊ฐ์ง๋ ๋ง์์ ๊ฐ์ง ์ ์๋๊ฐ? ๋ต์ ์ฅ์ธ ์ ์ ์ด๋ค. ์ฅ์ธ ์ ์ ์ ์ตํ๊ธฐ ์ํ ๊ณผ์ ์ ๋ ๋จ๊ณ๋ก ๋๋๋ค.
- ์ด๋ก : ์์น, ํจํด, ๊ธฐ๋ฒ, ๊ฒฝํ์ด๋ผ๋ ์ง์์ ์ต๋ํ๋ค.
- ์ค์ : ์ง์์ ์ค์ฒํ์ฌ ์ฒด๋ํ๋ค.
์๋ ๊ฒ๊ณผ ํ๋ ๊ฒ์ ์ฐจ์์ด ๋ค๋ฅด๋ค. ์ด ์ฑ ์ ๊ณ ์ํ๋ฉด์ ์ฝ๋ ์ฑ ์์ ๋ช ์ฌํด์ผ ํ๋ค. ์ฑ ์ ๊ตฌ์ฑ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ๊นจ๋ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ์์น, ํจํด, ์ค๊ธฐ๋ฅผ ์ค๋ช ํ๋ค. ์ฌ๊ธฐ์ ๊ทธ๋ง๋๋ฉด good luck์ด๋ค.
- ์ฌ๋ฌ ์ฌ๋ก ์ฐ๊ตฌ๋ฅผ ์๊ฐํ๋ค. ์ง์ค๋ ฅ์ ์๊ตฌํ๋ ์ฅ์ด๋ค. ์ฝ๋์ ์ค๋ช ์ ๋ฒ๊ฐ์๊ฐ๋ฉฐ ๋ณด๋ฉด์ ๊ทธ ํ๋จ์ ์ด์ ๋ฅผ ์ถ์ ํด์ผ ํ๋ค.
- ๊ฒฐ๋ง์ด๋ค. ๊ท๋ฉ์ ์ผ๋ก ๋์ถ๋ ๊ฒฐ๋ก ์ ์ ๋ฆฌํ๋ค. ํด๋ฆฌ์คํฑ์ ์ผ๋ก ๋๋ผ๋ ๊ฒ๋ค์ ๋ช ๋ฃํ๊ฒ ์ ๋ฆฌํ๋ ค ์ ์ผ๋ค.
๊ฐ๊ฐ์ ์ฑํฐ๋ ์ข ์๋์ด ์๊ธฐ ๋๋ฌธ์, ์ ๋ถ๋ถ๋ถํฐ ์ ๋๋ก ์ฝ๋ ๊ฒ์ด ์ค์ํด ๋ณด์ธ๋ค. ๊ฒฐ๊ตญ์ ๋จธ๋ฆฌ์ ๋ฒ๋ฅ ์ฌ๋ก์ง์ฒ๋ผ ๊ธฐ์ตํ๊ณ ์๋ ๊ฒ์ด ์ข์๋ณด์ธ๋ค.
Clean Code
์ด ์ฑ ์ ์ ์ฝ๋๊ฐ? ํ๋ก๊ทธ๋๋จธ๋ผ์? ๋ ๋์ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋๋ ค๊ณ ? ๊ทธ๋ ๋ค๋ฉด ์ ์ฐพ์์๋ค.
ํ๋์ ์ฝ๋๋ฅผ ๋๊ณ ๋ค๊ฐ๋๋ก ๊ฒ์ฆํ๋ฉด์ ๊บ ๋ฌ์์ ๊ฐ๊ตฌํ๋ ์ฑ ์ด๋ค. ๋ํ ๊ทธ ๊ณผ์ ์์ ์ข์ ์ฝ๋, ๋์ ์ฝ๋๋ฅผ ๊ตฌ๋ถํ ์ ์์ ๊ฒ์ด๋ค. ๋ง์ง๋ง์ผ๋ก ๋์ ์ฝ๋๋ฅผ ์ข์ ์ฝ๋๋ก ๋ฐ๊พธ๋ ์ค๋ ฅ๋ ์ฑ๊ธธ ์ ์๋ค.
์ฝ๋๊ฐ ์กด์ฌํ๋ฆฌ๋ผ
๋ฏธ๋์๋ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์์ฑํด์ฃผ์ง ์์๊น? ์ด ์ฑ ์ ์ฝ๋ ์๊ธฐ ์์กฐ๊ฐ ์๋๋๊น?
๊ทธ๋ด๋ฆฌ๊ฐ ์๋ค. ์ฝ๋๋ ์๊ตฌ ์ฌํญ์ ์์ธํ ํํํ๋ ์๋จ์ด๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ ์์ค์ ์ด๋ฅด๋ฉด, ์ฝ๋์ ๋์ ์์ด ์๊ตฌ์ฌํญ์ ํํํ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค. ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ถ์ํ ์์ค์ด ๋์ด๋๊ณ , DSL(Domain-specific language)๊ฐ ๋ง์์ง์๋ ๋ถ๊ตฌํ๊ณ ๊ฒฐ๊ตญ์ ๊ธฐ๊ณ๊ฐ ์ดํดํ๊ณ ์คํํ ์ ๋๋ก ์๋ฐํ๊ณ ์ ํํ๋ฉฐ ์์ธํ ์ฝ๋๊ฐ ๋ฑ์ฅํด์ผ ํ๋ค.
์์ ๋ฐ์ธ์ ํ ์ฌ๋์, ์ฝ๋๊ฐ ๋ง๋ฒ์ด๋ผ ์๊ฐํ๋ ์ฐฉ๊ฐ ๋๋ฌธ์ ๋ฐ์ํ ์ค๋ฅ๋ก ๋ณด์ธ๋ค. ์ฝ๋๋ ์๊ตฌ์ฌํญ์ ํํํ๋ ์ธ์ด์ด๋ค. ๊ทธ ๊ณผ์ ์์ ์๊ตฌ์ฌํญ์ ๊ฐ๊น์ด ์ธ์ด๋ฅผ ๋ง๋ค ์ ์์ผ๋ ๊ฒฐ๊ตญ์ ์ ๋ฐํ ํํ์ด ํ์ํ๋ค. ์ฝ๋๋ ํญ์ ์กด์ฌํ๋ค.
๋์ ์ฝ๋
์ถ์์ ๋ฐ๋น ๋ง๊ตฌ ์ง ์ฝ๋ โ ์ถ์์ผ ์ง์ฐ โ ํ์ฌ ํ์ฐ
๋ณธ์ง์ ์ธ ์์ธ์ ๋์ ์ฝ๋ ํ์ด์๋ค. ์ ๋์ ์ฝ๋๋ฅผ ์ง๋๊ฐ? ๋ฐ๋น ์? ๊ธํด์? ์ง๊ฒจ์์? ์์ฌ์๊ฒ ์๋จน์๊น๋ด? ์ด๋ ๊ฒ ๋์ด๊ฐ๊ณ ๋์ค์ ์๋ณด๊ฒ ๋ค๊ณ ์๊ฐํ๋ฉด ๊ฒฝํ์ด ์์ ๊ฒ์ด๋ค. ์๋์๊ฐ๋ ์ฐ๋ ๊ธฐ๋ณด๋ค ๋์๊ฐ๋ ์ฐ๋ ๊ธฐ๊ฐ ์ข๋ค๊ณ ์์ํ ๊ฒฝ์ฐ๊ฐ ์์ ๊ฒ์ด๋ค. ๊ผญ ๊ณ ์น๊ฒ ๋ค๊ณ ๋ค์งํ์๋ค. ํ์ง๋ง ๊ทธ ๋๋ ์ค์ง ์๋๋ค.
๋ฅด๋ธ๋์ ๋ฒ์น(Leblancโs Law) = ๋์ค์ ๊ฒฐ์ฝ ์ค์ง ์๋๋ค. ๋์ค์ ์๋ณด๊ฒ ๋ค๊ณ ํ ์ฝ๋ + ๋์๊ฐ๋ค๋ ์ฌ์ค์ ์๋๊ฐ์ ๋๋ผ๋ฉฐ ์๋กํจ โ ๊ณ ์น์ง ์๋๋ค.
๋์ ์ฝ๋๋ก ์น๋ฅด๋ ๋๊ฐ
์ด ๊ทธ๋ฆผ์ด ์ ๋ต์ด๋ค. ์ด๊ธฐ์๋ ๊ฐ๋ฐ ์๋๊ฐ ๋น ๋ฅผ์ง ๋ชจ๋ฅธ๋ค. ํ์ง๋ง ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋์ ์ฝ๋๋ ๋ฐ๋ชฉ์ ์ก๋๋ค. side effect๊ฐ ๊ณ์ ๋ฐ์ํ๋ค. ์ด๋ฌํ ์ํฉ์ ํด๊ฒฐ์ฑ ์ผ๋ก ์ ์ํ๋ ๊ฒ์ ๊ฒฐ๊ตญ man power๋ฅผ ๋๋ฆฌ๋ ๊ฒ์ด๋ค. ํ์ง๋ง ์ ์ธ๋ ฅ์ ์์คํ ์ค๊ณ์ ๋ํด ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์๋์ ๋ง๋ ๋ณ๊ฒฝ๊ณผ ๊ทธ์ ๋ฐํ๋ ๋ณ๊ฒฝ์ ์์ง ๋ชปํ๋ค. ๊ทธ ๋ฟ์ด ์๋๋ค. ์์ฐ์ฑ์ ์๋ฐ์ ๋ฐ๊ณ ์๋ ์์ ์ ํฌ์ ๋ ์ธ๋ ฅ์ ๋ ํฐ ์๋ฐ์ ๋ฐ๋๋ค. ๊ฒฐ๊ณผ๋ ๋ ๋ง์ ๋์ ์ฝ๋์ ๋ฐ์์ผ๋ก ์ด์ด์ง๋ค.
์๋ํ ์ฌ์ค๊ณ์ ๊ฟ
๋ ์ด์ ๋ชปํ๊ฒ ์ด์.
ํ์ ์ด ์ฝ๋๋ก๋ ์ผ์ ๋ชปํ๊ฒ ๋ค๋ ๋ฐ๊ธฐ๋ฅผ ๋ ๋ค. ๊ด๋ฆฌ์ธต์ ์ด์ฉ ์ ์์ด ์ด ์ ์์ ๋ฐ์๋ค์ธ๋ค. TFํ์ด ๊ตฌ์ฑ๋๊ณ , ์๋ก์ด product๋ฅผ ๋ง๋ ๋ค. ๋๋จธ์ง๋ ์ ์ง ๋ณด์๋ฅผ ๊ณ์ํ๋ค. TFํ์ ๊ธฐ์กด ๊ธฐ๋ฅ์ ๋ชจ๋ ์ํํ๋ ์์คํ ์ ๋ด๋์์ผ ํ๋ค. ์ผ๋ง๊ฐ ๊ฑธ๋ฆด๊น? ๋๋๋ก 10๋ ์ ์๊ฐ์ด ๊ฑธ๋ฆด ์๋ ์๋ค. ๋ฌด์์ ์ ํํ๊ฒ ๋๊ฐ? ์๊ฐ์ ๋ค์ฌ Clean Code๋ฅผ ์์ฑํ๋ ๊ฒ์ ๊ถ๊ทน์ ์ผ๋ก ๋น์ฉ ์ ๊ฐ, ์ ๋ฌธ๊ฐ๋ก์ ์ด์๋จ๋ ๊ธธ์ด๋ผ๋ ๊ฒ์ ๋ช ์ฌํด์ผ ํ๋ค.
ํ๋
๋ถ๋ช 3์๊ฐ ์์ ์ด๋ผ ์๊ฐํ๋๋ฐ ๊ฑด๋๋ ์์คํ์ผ์ด 30๊ฐ๋ค? ใ ..
์ด ์น๊ตฌ๋ ์ ํ์๊ฐ์ ๋์ ์ฝ๋๋ก ์ ๋ฝํ์๊น?
- ์๋ ์ค๊ณ๋ฅผ ๋ค์ง๋ ๋ฐฉํฅ์ผ๋ก ์๊ตฌ์ฌํญ์ด ๋ณ๊ฒฝ๋์ด์
- ์ผ์ ์ด ์ด๋ฐํด์
- ๊ด๋ฆฌ์์ ํ
ํ์ง๋ง ์ด ๊ฒ์ ์ ์ ์ผ๋ก ํ๋ก๊ทธ๋๋จธ์ ์๋ชป์ด๋ค. ์ฐ๋ฆฌ๊ฐ ์ ๋ฌธ๊ฐ๋ต์ง ๋ชปํ๊ธฐ ๋๋ฌธ์ด๋ค. ์๋ชป์ด ์ฝ๋์ ์๋ค๋ฉด, ์ด๋ ํ๋ก๊ทธ๋๋จธ์ ์ฑ ์์ด๋ค. ์คํ๋ ค ์ด ์ข์ ์ฝ๋๋ฅผ ์ฌ์ํ์ง ๋ชปํ์ฌ ๋ฐ์ํ๋ ์ผ์ ์ง์ฐ์ ๊ด๋ฆฌ์์๊ฒ ์์งํ๊ฒ ๋งํ๋ ๊ฒ์ด ๋ณด๋ค ์ค์ํ๋ค. ํ์๊ฐ ์์ ์ ์ ์์ฌ๋ณด๊ณ ์์ป์ง ๋ง๋ผ๊ณ ํ๋ฉด ์ ์์ป์ ๊ฑด๊ฐ? ๊ฐ์ ์์น์ ์๋คํ๋๋ผ๋, ์ฌ์ํด์ผ ํ๋ ์์ญ์ ๋ช ํํ ๋งํด์ผ ํ๋ค. ๊ทธ๊ฒ์ด ์ ๋ฌธ๊ฐ๋ค.
์์ด์ ๋์
์ ์ฌ๊ธฐ์ ๊ทธ๋ฅ ์ด๋ ๊ฒ ํ๋ฉด ๊ธฐํ์ ๋ง์ถ๋๋ฐ ์ด๋กํ์ง..
ํ์ง๋ง ์ง์ง ์ ๋ฌธ๊ฐ๋ ์ด๊ฒ ์คํ๋ ค ๋๋ฆฐ ๋ฐฉ์์ด๋ผ๋ ๊ฒ์ ์๋ค. ๊ธฐํ์ ๋ง์ถ๋ ์ ์ผํ ๋ฐฉ๋ฒ์, ์ฆ ๋นจ๋ฆฌ๊ฐ๋ ์ ์ผํ ๋ฐฉ๋ฒ์ ์ธ์ ๋ ์ฝ๋๋ฅผ ์ต๋ํ ๊นจ๋ํ๊ฒ ์ ์งํ๋ ์ต๊ด์ ๊ฐ์ง๋ ๊ฒ์ด๋ค.
๊นจ๋ํ ์ฝ๋๋ผ๋ ์์ ?
๊ทธ๋์ ์ด๋ป๊ฒ ์ง๋๊ฑด๋ฐ?
์ด ๋ชจ๋ ์ฌ์ค์ ๋ฉ๋ํ๋ค๊ณ ํด๋ณด์. ์ด์ ์ด๋ป๊ฒ ์์ฑํ๋์ง์ ๋ํด ๊ณ ๋ฏผํ ์ฐจ๋ก๋ค. ๊ทธ๋ฐ๋ฐ ์ํ๊น๊ฒ๋ ๊นจ๋ํ ์ฝ๋๋ฅผ ๊ตฌํํ๋ ํ์๋ ๊ทธ๋ฆผ์ ๊ทธ๋ฆฌ๋ ํ์์ ๋น์ทํ๋ค. ๊ทธ๋ฆผ์ ๋ฏธ์ ์ธ ํ๋จ์ ํ๋ ๊ฒ์ ๋๋ถ๋ถ์ ์ฌ๋์ด ๊ฐ๋ฅํ์ง๋ง, ๊ทธ๋ ๋ค๊ณ ํด์ ๋ชจ๋๊ฐ ์ ๊ทธ๋ฆฌ๋ ๊ฒ์ ์๋๋ค. ์ฆ, ์ฝ๋์ ํ์ง ํ๋จ ๊ฐ๋ฅ ์ฌ๋ถ์ ํ์ง์ด ์ข์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฅ๋ ฅ์ ๋ณ๊ฐ์ด๋ค.
์ด๋ฅผ ์ํด์๋ โ์ฝ๋ ๊ฐ๊ฐโ์ ์ผ๋จ ์ป๊ณ , ์ต๊ณ ๋ฐฉ์์ผ๋ก ์ด๋ฅผ ์ ์ฉํด์ผ ํ๋ค. ์ ๋ง ์ถ์์ ์ด๊ณ ์ด๋ ต๋ค ใ
๊นจ๋ํ ์ฝ๋๋?
๊ฐ ํ๋ก๊ทธ๋๋จธ๋ค ์๊ฐ์ด ๋ค๋ฅด๊ธฐ ๋๋ฌธ์, ๋ค์ํ ๋๊ฐ๋ค๋ก๋ถํฐ ์๊ฒฌ์ ๊ตฌํ๋ค.
๋น์ผ๋ค ์คํธ๋กญ์คํธ๋ฃน
C++ ์ฐฝ์์, The C++ Programming Laungague ์ ์
- ์ฐ์ํ ์ฝ๋๊ฐ ์ข๋ค. (๋ณด๊ธฐ์ ์ฆ๊ฑฐ์ด ์ฝ๋๊ฐ ์ข๋ค.)
- ๊ฐ๋จํ ๋ ผ๋ฆฌ, ์์กด์ฑ์ ์ค์ธ๋ค. ๊ทธ๊ฒ์ด ์ ์ง๋ณด์๋ฅผ ์ฝ๊ฒ ๋ง๋ ๋ค.
- ์ค๋ฅ๋ ๋ช ๋ฐฑํ ์ ๋ต์ ์๊ฑฐํด ์ฒ ์ ํ ์ฒ๋ฆฌํ๋ค. (์ธ์ธํ ์ฌํญ๊น์ง ๊ผผ๊ผผํ๊ฒ ์ ๊ฒฝ์จ๋ผ)
- ์ฑ๋ฅ์ ์ต์ ์ผ๋ก ์ ์งํ๋ค. ๊ทธ๋์ผ ์ฌ๋๋ค์ด ํ์ง๊ฑฐ๋ฆฌ ์ํ๋ค. (์ญ์ C++ ์ฐฝ์์)
- ๊นจ๋ํ ์ฝ๋๋ฅผ ํ๋๋ฅผ ์ ๋๋ก ํ๋ค.
๊ทธ๋๋ ๋ถ์น
Object Oriented Analysis, Design with Application ์ ์
- ๋จ์ํ๊ณ ์ง์ ์ ์ธ ์ฝ๋๊ฐ ๊นจ๋ํ ์ฝ๋์ด๋ค.
- ์ ์ด ๋ฌธ์ฅ์ฒ๋ผ ์ฝํ๋ค. (๊ฐ๋ ์ฑ์ ๊ฐ์กฐ)
- ์ค๊ณ์์ ์๋๋ฅผ ์จ๊ธฐ์ง ์๋๋ค.
- ๋ช ์พํ ์ถ์ํ์ ๋จ์ํ ์ ์ด๋ฌธ์ผ๋ก ๊ฐ๋ํ๋ค. (๋ถํ์ํ ์ฌ์ค์ ์ฝ๋งค์ด์ง ์๋, ๋จํธํ๋ค๋ ์ธ์์ ์ค์ผ ํ๋ค.)
ํฐ ๋ฐ์ด๋ธ ํ ๋ง์ค
OTI ์ฐฝ๋ฆฝ์, ์ดํด๋ฆฝ์ค ์ ๋ต์ ๋๋ถ
- ์์ฑ์๊ฐ ์๋ ์ฌ๋๋ ์ฝ๊ธฐ ์ฝ๊ณ ๊ณ ์น๊ธฐ ์ฌ์์ผ ํ๋ค. (๊ฐ๋ ์ฑ ๊ฐ์กฐ, ๊ณ ์น๊ธฐ ์ฌ์ด ์ฝ๋)
- Unit Test, Acceptance Test๊ฐ ์กด์ฌํ๋ค. (ํ ์คํธ ์ฝ๋)
- ์๋ฏธ ์๋ ์ด๋ฆ์ด ๋ถ๋๋ค.
- ๋ชฉ์ ๋ฌ์ฑ ๋ฐฉ๋ฒ์ ํ๋๋ง ์ ๊ณตํ๋ค.
- ์์กด์ฑ์ ์ต์์ด๋ฉฐ ๋ช ํํ๊ฒ ์ ์ํ๋ค.
- API๋ ๋ช ํํ๋ฉฐ ์ต์๋ก ์ค์ธ๋ค.
- ์ฝ๋๋ ๋ฌธํ์ ์ด์ด์ผ ํ๋ค. (์ธ๊ฐ์ด ์ฝ๊ธฐ ์ฌ์์ผ ํ๋ค.)
๋ง์ดํด ํ๋์ค
Working Effectively with Legacy Code ์ ์
- ์ฃผ์๊น๊ฒ ์งฐ๋ค๋ ๋๋์ด ์๋ค.
- ๊ณ ์น๋ ค๊ณ ๋ด๋ ๋ฑํ ์ ๋ ๊ณณ์ด ์๋ค.
- ๋ชจ๋ ์ฌํญ์ ๊ณ ๋ คํ๊ธฐ ๋๋ฌธ์, ๊ฒฐ๊ตญ ์ ์๋ฆฌ๋ก ๋์์จ๋ค.
๋ก ์ ํ๋ฆฌ์ค
Extreme Programming Installed, Exterme Programming Adventure in C# ์ ์
์ด ๋ถ์ fortran์ผ๋ก ์์ํ์ฌ ๊ฑฐ์ ๋ชจ๋ ์ธ์ด๋ก ์ฝ๋๋ฅผ ๊ตฌํํด์๋ค. ์ฃผ์ ๊น๊ฒ ์ฝ์ด๋ณด์.
- ๋ชจ๋ ํ ์คํธ๋ฅผ ํต๊ณผํ๋ค.
- ์ค๋ณต์ด ์๋ค. (๊ฐ์ ์์ ์ด ๋ฐ๋ณต๋๋ค๋ฉด ์์ด๋์ด๋ฅผ ์ ๋๋ก ํํํ์ง ๋ชปํ๋ค๋ ์ฌ์ค์ ๋ฐ์ฆ์ด๋ค)
- ์์คํ ๋ด ๋ชจ๋ ์ค๊ณ ์์ด๋์ด๋ฅผ ํํํ๋ค.
- class, method, function์ ์ต๋ํ ์ค์ธ๋ค.
- ์๋ฏธ ์๋ ์ด๋ฆ์ ์ ๋๋ค.
- ์ฌ๋ฌ ๊ธฐ๋ฅ์ ์ํํ๋ ๊ฐ์ฒด๋ผ๋ฉด ๋๋๋ค.
- ์ถ์ ํด๋์ค๋ฅผ ๋ง๋ค์ด ๊ตฌํ์ ๊ฐ์ผ๋ค. (๊ฐ๋จํ ์ถ์ํ๋ฅผ ๊ณ ๋ คํ์ฌ ์ ์ ๋ฌธ์ ๋ฅผ ๋ฏธ๋ค๋ ์ ์๋ค. ์ฆ ํฌ๊ฒ ์ค๊ณํ๊ณ ์ธ๋ถ ์ฌํญ์ ๋์ค์ ๋ฃ๋๋ค.)
์ค๋ณต ํผํ๊ธฐ, ํ๊ธฐ๋ฅ๋ง ์ํํ๊ธฐ, ์ ๋๋ก ํํํ๊ธฐ, ์๊ฒ ์ถ์ํํ๊ธฐ.
์๋ ์ปค๋ํ
Extreme Programming ๊ณต๋ ์ฐฝ์์, ๋๋ถ
- ๊นจ๋ํ ์ฝ๋๋ ์ฝ์ผ๋ฉด์ ๋๋ ์ผ์ด ์์ด์ผ ํ๋ค.
- ์ง์๋๋ก ๋์๊ฐ๋ ์ฝ๋๊ฐ ๊นจ๋ํ ์ฝ๋๋ค. (๋จ์ํ๋ ๋ง)
์ฐ๋ฆฌ๋ค ์๊ฐ
Object ๋ฌธํ์ ๊ตํ์ ๋ฐ๋ฅธ๋ค๋ฉด ๋ง๋ฝํ ์ด์ต์ ๋๋ ๊ฐ์ง์ ์์ด!
๋ฌด์ ์ ๊ตํ์ฒ๋ผ ์ฝ๋ ์ง์๋ ๋ง์ฐฌ๊ฐ์ง๋ค. ์ด๋์ ๋์ ์ฑํฅ์ด ์๋ค. ์ด ์ฑ ์์ ์ค๋ช ํ๋ ๊ฒ๋ค์ด ๊ฒฐ๊ตญ ์ ์๋ ์ง์งํ๋ ์๊ฐ์ด๋ค. ์ด ๊ธฐ๋ฒ์ ์ตํ๋ฉด ์์ค ๋์ ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค๊ณ ์ฅ๋ดํ๋ค. ๋ฏฟ๊ณ ๊ฐ์. ํ์ง๋ง ์ ๋์ ์ผ๋ก ์ณ์ง๋ ์์ผ๋, ์ฌ๋ฌ ๊ฒฝํ์ ํ ๋๋ก ๋ฐฐ์ฐ๋ ๊ฒ์ ์ถ์ฒํ๋ค.
์ฐ๋ฆฌ๋ ์ ์๋ค
์ฝ๋๋ ์ง๋ ์๊ฐ๋ณด๋ค ์ฝ๋ ์๊ฐ์ด ๋ฐฐ๋ก ๋ง์ด ๋ ๋ค.
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ๋ ์ ์ฝํ๋ ์ฝ๋๋ฅผ ์ง๋ ๊ฒ์ ์ง์คํด์ผ ํ๋ค. ์์ ํ๋ ๊ฒ์ ์์์ผ๋ก ์ฐ๊ณ ๋น ๋ฅธ ๋ฐฐ์์ผ๋ก ๋๋ ค๋ณด๋ฉด, ์ค์ง์ ์ผ๋ก ์ฝ๋๋ฅผ ์น๋ ์๊ฐ์ ๋ง์ง ์๋ค.
๋ณด์ด์ค์นด์ฐํธ ๊ท์น
์บ ํ์ฅ์ ์ฒ์ ์์ ๋ ๋ณด๋ค ๋ ๊นจ๋ํ๊ฒ ํ๊ณ ๋ ๋๋ผ
๋จ์๋ ์ง๋๊ฐ ์๋ฆฌ๊ฐ ๋ ์๋ฆ๋ต์ต๋๋ค
์ง์ํ ๊ฐ์ ์ด์ผ๋ง๋ก ์ ๋ฌธ๊ฐ ์ ์ ์ ๋ณธ์ง์ด๋ค. ํ๋ฒ์ ๋ง์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ํฌ์ํด ์ฝ๋๋ฅผ ์ ๋ฆฌํ ํ์๊ฐ ์๋ค. ๋ณ์ ์ด๋ฆ์ ๊ฐ์ , if๋ฌธ ์ ๋ฆฌ, ๊ธด ํจ์ ๋ถํ ์ด๋ฉด ์ถฉ๋ถํ๋ค.
๊ฒฐ๋ก
๋ฐฉ๋ฒ์ ์๋ค๊ณ ๋์ฌ๊ฐ ๋๋ ๊ฑด ์๋๋ค.
์์ผ๋ก ๊ฒฝํ์ ๊ตํ๊ณผ ์ฒด๊ณ, ์ ์ฐจ, ๊ธฐ๋ฒ๋ค์ด ๋๋ฌดํ ๊ฒ์ด๋ค. ์ด๊ฑธ ์ด๋ป๊ฒ ์ฒดํํ๋๋ ๊ฑธ๊ตญ ๋ ์์ ๋ชซ์ด๋ค. โ์ฐ์ตํด, ์ฐ์ต!!โ
Summary
- ๋์ ์ฝ๋๋ฅผ ๊ฐ๋ง๋์ง ๋ง์๋ผ.
- ์ค๋ณต์ ์ ๊ฑฐํ๋ผ.
- ๋ฉ์๋์ ๊ธฐ๋ฅ์ ์๊ฐ ์ชผ๊ฐ๋ผ.
- ๋ค์ด๋ฐ์ ๋ช ํํ๊ฒ ์ง์ด๋ผ.
- ํ ์คํธ์ผ์ด์ค๋ฅผ ์์ฑํ๋ผ.
- ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ์ฒ ์ ํ๊ฒ ํ๋ผ.
- ์ฅ์ธ ์ ์ ์ ๊ฐ์ง๊ณ ์ต๊ด์ผ๋ก ๋ง๋ค์ด๋ผ