728x90
๋ฐ์ํ
์ปดํ์ผ ์ธ์ด(C, C++ ๋ฑ)
- ๊ธฐ๊ณ์ด๋ก ๋ฐ๋ก ๋ณํ๋์ด ์คํ๋๊ธฐ ๋๋ฌธ์ ๊ฐ์ฅ ์๋๊ฐ ๋น ๋ฅด๊ณ ๋ณด์์ ์ ๋ฆฌ
- ๋น๋๊ณผ์ ์ด ์ค๋ ๊ฑธ๋ฆผ
- ์ ์ฒ๋ฆฌ๊ธฐ → ํ์ฑ → ๋ฒ์ญ → ์ด์ ๋ธ๋ฆฌ → ๋งํน → ๋ก๋ ์งํ
Byte Code ์ธ์ด(Java, C# ๋ฑ)
- 'class'๋ผ๋ ๋ฐ์ดํธ ์ฝ๋ ํ์ผ๋ก ์์ฑ๋๊ณ JRE, CLI์์ ํ ์ค์ฉ ์คํํ๋ ๋ฐฉ์์ผ๋ก ๋น๋
- JRE, CLI ํ๊ฒฝ์์ ์คํ๋ ๋ ๊ธฐ๊ณ์ด๋ก ๋ณํ
- ์ปดํ์ผ ์ธ์ด๋ณด๋ค ๋น๋ ๊ณผ์ ์ด ๋น ๋ฆ
์ธํฐํ๋ฆฌํฐ ์ธ์ด(JavaScript, Python, Ruby ๋ฑ)
- ํ ์ค์ฉ ๋ฒ์ญ๋์ด ์คํ
- ์ปดํ์ผํ๋ ๊ณผ์ ์์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ ๊ฒ ์๋ชจ๋๊ณ ๋น ๋ฅธ ์๊ฐ์ ์ปดํ์ผ ์งํ
์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ํ๊ฒฝ
-
์น์๋ฒ(Web Server)
์ฌ์ฉ์์ http ์์ฒญ์ ๋ฐ์ ์น ์ปดํ ์ดํฐ์ ์์ฒญ์ ์ ๋ฌํ๊ณ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐ์์ ์ฌ์ฉ์์๊ฒ ์ ์กํ๋ ์ญํ ์ ํจ
์ ์ ์ธ ๋ฆฌ์์ค ๋ฐฐํฌ, ์ ์ ๋ฆฌ์๋ฅผ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์ฒ๋ฆฌ
-
WAS(Web Applicaiton Server)
๋์ ์ธ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋ ํ๋ก๊ทธ๋จ ์คํ ๋ถ๋ถ์ ๋ฐฐํฌ
UI ๋ฐฐํฌ ์์ญ(JSP, Servlet ๋ฑ)๊ณผ Biz. ๋ฐฐํฌ ์์ญ(EJB, POJO ์๋น์ค ๋ฑ)์ผ๋ก ๊ตฌ๋ถ
์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ๋จ์
- jar(Java Archive) : ์๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋ฆฌ์์ค, property ํ์ผ๋ค์ ํฌํจ
- war(Web Archive) : ์น ์ปจํ ์ด๋์ ๋ฐฐํฌ๋๋ ํ์, Servlet, jar ํ์ผ๊ณผ WEB-INF ํด๋์ ์๋ web.xml ํ์ผ๋ก ๊ตฌ์ฑ
- ear(Enterprise Archive) : jar์ war๋ฅผ ๋ฌถ์ด์ ํ๋์ ์์ฑ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์๋น์ค๋ฅผ ์ ๊ณต
ํ์๊ด๋ฆฌ ์์คํ
- ์๋น์ค ์ ๊ณต ๋์ ํ์ํญ๋ชฉ์ ์๋ณํ์ฌ ๊ธฐ์ค์ ์ ์ค์ ํ๊ณ , ํ์ ํญ๋ชฉ ๋ณ๊ฒฝ๊ณผ์ ์์ ์ ๊ฒ, ๊ฒ์ฆ ๋ฑ์ ์ฒด๊ณ์ ์ธ ํต์ ๋ฅผ ํตํด ํ์ํญ๋ชฉ ๊ฐ์ ์ผ๊ด์ฑ๊ณผ ์ถ์ ์ฑ์ ํ๋ณดํ๊ธฐ ์ํ ์์คํ
- ํ์๊ด๋ฆฌ : ์ํํธ์จ์ด์ ์ ์ฒด ์๋ช ์ฃผ๊ธฐ, ๊ณํ๋ถํฐ ๊ฐ๋ฐ, ์ด์, ์ ์ง ๋ณด์, ํ๊ธฐ๊น์ง ๋ฐ์ํ๋ ๋ชจ๋ ํ๋์ ์ง์์ ์ผ๋ก ๊ด๋ฆฌํ๋ ๊ฒ์ ์๋ฏธ
- ํ์ํญ๋ชฉ : ํ์๊ด๋ฆฌ ๋์์ด ๋๋ ํญ๋ชฉ์ ์๋ฏธ
- ๊ธฐ์ค์ : ๊ณต์์ ์ผ๋ก ๊ฒํ ํ๊ณ ํ์๋์ด ๊ธฐ์ค์ด ๋๋ ํ์ํญ๋ชฉ์ ์งํฉ์ฒด๋ฅผ ์๋ฏธ
- ๋ง์ด๊ทธ๋ค์ด์ : ๊ฐ๋ฐ ์๋ฃ๋ ์์คํ ์ด ์ด์ ๋จ๊ณ๋ก ์ ํ๋ ๋ ๊ด๋ จ ์์ค ํ์ผ์ ์ ์ฅ ๊ณต๊ฐ์ผ๋ก ์ด๊ด์ํค๋ ์์
- ๋ฆฌํฌ์งํฐ๋ฆฌ : ๊ด๋ฆฌ ๋์์ ํ์๊ด๋ฆฌ ์์คํ ์ผ๋ก ์ผ๊ด ์ ์กํ์ฌ ์์ถ, ์ํธํํ ํ์ ์ ์ฅ, ๊ด๋ฆฌํ๋ ์ ์ฅ ๊ณต๊ฐ์ ์๋ฏธ, ์ ๋ฌด ๋๋ ๋๋ ํฐ๋ฆฌ ๋จ์๋ก ๊ตฌ์ฑ
- ์ํฌํ๋ก : ํ์๊ด๋ฆฌ ํ๋์ ์ํํ๊ธฐ ์ํด ๋ฏธ๋ฆฌ ์ ํด์ง ์ ์ฐจ๊ฐ ํ์๊ด๋ฆฌ ์์คํ ์์ ๊ตฌํ๋์ด ์๋ ๊ฒ์ ์๋ฏธ
- ๋ฐ์ถ : ํ์ํญ๋ชฉ์ ๋ณ๊ฒฝํ๊ธฐ ์ํด ํ์ ๋ฆฌํฌ์งํฐ๋ฆฌ๋ก ๋ถํฐ ์ ์ก๋ฐ๋ ๊ฒ์ ์๋ฏธ, ์ ๊ธ ์ํ ์ ์ง
- ๋ฐ์ : ๋ฐ์ถ๋ ํ์ํญ๋ชฉ์ ๋ณ๊ฒฝ ํ ๋ค์ ํ์๋ฆฌํฌ์งํฐ๋ฆฌ๋ก ์ ์กํ๋ ๊ฒ์ ์๋ฏธ, ๋ฒ์ ๊ด๋ฆฌ ์๋์ ์ผ๋ก ์ด๋ฃจ์ด์ง
๋ฐฐํฌ๊ด๊ณ์๋ค์ ์ญํ๊ณผ ์ฑ ์
- ๋ฐฐํฌ๊ด๋ฆฌ์
- ๋น๋, ๋ฐฐํฌํ๊ฒฝ ๊ตฌ์ฑ ๋ฐ ์ด์
- ๋น๋ ์คํฌ๋ฆฝํธ ์์ฑ ๋ฐ ํ ์คํธ
- ๋น๋, ๋ฐฐํฌ ๋ด์ญ ์ค๋ฅ ํ์ธ
- ๋ฐฐํฌ ์์ฒญ ๋ด์ญ ๊ฒํ ๋ฐ ์ค๋ฅ ํ์ธ
- ์ฃผ๊ธฐ์ ํตํฉ ๋น๋ ๋ฐ ๋ฐฐํฌ ์ํ
- ํ๋ก์ ํธ PM, PL
- ๋น๋, ๋ฐฐํฌ ๋ณด๊ณ ์ ํ์ธ
- ๊ฐ๋ฐ ์ง์ฒ๋ ๊ด๋ฆฌ
- ํ ์คํธ ์ผ์ด์ค ์์ฑ ๋ด์ญ ๊ฒํ
- ๊ฐ๋ฐ์
- ํ ์คํ ์ผ์ด์ค ์์ฑ ๋ฐ ๊ด๋ฆฌ
- ๊ฐ๋ณ ๋ชจ๋ ์์ ๋น๋ ๋ฐ ๋ฐฐํฌ
- ๋น๋, ๋ฐฐํฌ ๋ด์ญ ์ ์ ์ฌ๋ถ ํ์ธ
- ๋น๋, ๋ฐฐํฌ ๋ณด๊ณ ์ ๋ด ํ ์คํธ ์ค๋ฅ ๋ด์ญ, ์์ค์ฝ๋ ํ์ง ์์ ๋ด์ญ ํ์ธ ํ ์ค๋ฅ ์์
์์ค์ฝ๋ ๊ฒ์ฆ ๋๊ตฌ
- ์ ์ ํ
์คํธ ๋๊ตฌ
- ํ ์คํธํ๊ธฐ ์ ์ ์ฝ๋ฉ ์ค๋ฅ, ์ฑ๋ฅ ์ ํ, ๋ณด์ ์ทจ์ฝ์ ๋ฑ ๊ฒฐํจ์ ์กฐ๊ธฐ์ ๋ฐ๊ฒฌํ ์ ์๋๋ก ์ง์
- ์์ฐ์ฑ ํฅ์, ํ์ง ํฅ์
- ์ ๋์ ์ ํ์ง ๊ด๋ฆฌ์์คํ ์ ๊ตฌ์ถ
- ๋์ ํ
์คํธ ๋๊ตฌ
- ๋ถ๊ธฐ(๊ฒฐ์ )๋ฌธ ๋ฑ ํน์ ์ ํ์ ์ฝ๋ ๊ตฌ์กฐ๊ฐ ์ถฉ๋ถํ ํ ์คํธ ๋์๋์ง๋ฅผ ํ์ธํ์ฌ ์ถ๊ฐ์ ์ธ ํ ์คํธ๋ฅผ ์งํ
- ์์ ์ฑ ์ ๊ณ , ์์ค ํ์ง ๊ด๋ฆฌ(ํต์ ) ํ๋์ ํ ์ ์๋ ์ ๋ต์ ์ธ ํ์ง ๊ด๋ฆฌ์์คํ ์ ๊ตฌ์ถ
์ฝ๋ ์ธ์คํ์
- ์ ์ ํ ์คํธ์ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ํ
- ์ฌ์ ์ ์ ์๋ ์ฝ๋ ์์ฑ ๊ท์น๊ธฐ๋ฐ์ผ๋ก ์์ค์ฝ๋๋ฅผ ์ ๊ฒํ์ฌ ์์ฑ ๊ท์น์ ์๋ฐ๋๋ ์์ค์ฝ๋๋ฅผ ์ถ์ถํ๋ ๋ถ์ ๋๊ตฌ๋ก ์ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ ๋๋ถ๋ถ ์ฌ์ฉ
- ๋น๋ ๋๊ตฌ์ ์ฐ๊ณํด ๋น๋ ๋ฐฐํฌ ์ํ ์ ์๋์ ์ผ๋ก ์ ๊ฒ
- ์ฝ๋ ์ธ์คํ์
Rule ์ ํ
- ์ฑ๋ฅ ๊ฐ์ : ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ ์ฝ๋๋ฅผ ์ ๊ฒํ๋ Rule์, ๋ฉ๋ชจ๋ฆฌ ๋์, ๋ฏธ์ฌ์ฉ ๋ณ์, ๋ฉ์๋ ์ฌ๋ถ ๋ฑ์ ํ์ธํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ญ๋นํ๋ ์ฝ๋๋ฅผ ์๋ณํจ
- ์ฝ๋ ์์ฑ ๊ท์น : ๊ฐ๋ฐ์ธ์ด์์ ์ฌ์ ์ ์ ์๋ ์์ฑ ๊ท์น ๋๋ ํ๋ก์ ํธ ๋ด์์ ์ ์๋ ํ๋ก๊ทธ๋จ ๋ช ๋ช ๊ท์น์ ์ค์ ์ฌ๋ถ๋ฅผ ์ ๊ฒํ๋ Rule ์, ๊ฐ๋ ์ฑ ํฅ์
- ์๋ฌ ๋ฐ์ ๊ฐ๋ฅ์ฑ : ์๋ฌ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ์๋ ์ฝ๋๋ฅผ ์ ๊ฒํ๋ Rule์
- ์ฝ๋ ์์ฑ Rule ์ฌ๊ฐ๋ ๊ตฌ๋ถ
- ํ์, Blocker : ์๋ฌ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋๊ฑฐ๋ ๋ฉ๋ชจ๋ฆฌ ๋์๊ฐ ๋ฐ์๋๋ ์ฝ๋, ๋ฐ๋์ ์์ ๋์ด์ผํ๋ ์๋ฐ ์ฌํญ
- ๊ถ๊ณ ์, Critical : ์๋ฌ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋๊ฑฐ๋ ์ผ๋ฐ์ ์ผ๋ก ์์ ๋์ด์ผ ํ๋ ์ฌ๊ฐํ ์๋ฐ ์ฌํญ์ ๋งํจ
- ๊ถ๊ณ ์ค, Major : ์๋ฌ ๋ฐ์์ด ์๊ฑฐ๋ ์์ ์ ๊ถ๊ณ ํ๋ ์ค์ ์๋ฐ ์ฌํญ
- ๊ถ๊ณ ํ, Minor : ์์ค์ฝ๋์ ๊ฐ๋ ์ฑ, ์ ์ง, ๋ณด์์ฑ ํฅ์์ ์ํด ์์ ์ ๊ถ๊ณ ํ๋ ์๋ฐ ์ฌํญ
- ์ ๋ณด, info : ์ ๋ณด์ฑ์ผ๋ก ์ ๊ณต๋๋ ์๋ฐ ์ฌํญ
- ์ ๊ท ํํ์ : ํน์ ํ ๊ท์น์ ๊ฐ์ง ๋ฌธ์์ด์ ์งํฉ์ ํํํ๋ ๋ฒ์ฉ์ ์ธ ๋ฐฉ์, ์ฝ๋ ์ต์คํ์ ๋๊ตฌ์ ์ฝ๋ ์์ฑ ๊ท์น์ ์ผ๋ฐฉ์ ์ผ๋ก ์ ๊ท์์ผ๋ก ํํ
- ํ
์คํธ ํ๋ ์ ์ํฌ(๋์ ๋ถ์ ๋๊ตฌ)์ ๊ตฌ์ฑ
- ํ ์คํธ ์ผ์ด์ค๋ฅผ ๋ณ๋์ ํ ์คํธ ์ฝ๋๋ก ์์ฑํ๊ณ ๋์์ํฌ ์ ์๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ ๋๊ตฌ
- Junit ํ ์คํธ ํ๋ ์์ํฌ : Java๊ธฐ๋ฐ
์ง์์ ์ธ ํตํฉ(CI) ํ๊ฒฝ
- ๋น๋ ๋๊ตฌ
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌ ๋จ์, ํ์์ ๋ฐ๋ผ ์์ค์ฝ๋๋ฅผ ์ปดํ์ผ, ํจํค์งํ๋ฉฐ ๋ฐฐํฌํ๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๊ณตํ๊ณ ์ํํ๋ ๋๊ตฌ
- Ant, Maven ๋ฑ
- ํ
์คํธ ๋๊ตฌ
- ๊ฐ๋ฐ๋ ์์ค์ฝ๋๋ฅผ ํ ์คํธํ ์ ์๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑ, ๋์์ํฌ ์ ์๋ ๋๊ตฌ๋ก, ํตํฉ ๋น๋ ์ํ์ ์ฐ๊ฒฐ ํ ์ ์์
- Junit, DBUnit, StrutsTestCare ๋ฑ
- ์์ค์ฝ๋ ํ์ง ์ธก์ ๋๊ตฌ(์ฝ๋ ์ธ์คํ์
)
- ์ ํด์ง ์์ค์ฝ๋ ์์ฑ ๊ท์น์ ๋ฐ๋ผ ์์ค์ฝ๋๋ฅผ ์ ๊ฒํ๊ณ ๊ท์น ์๋ฐ ์ฌ๋ถ๋ฅผ ์ฒดํฌํ๋ ๋๊ตฌ๋ก ํตํฉ ๋น๋ ์ํ ์ ์ฐ๊ฒฐ ํ ์ ์์
- PMD, FindBugs ๋ฑ
- ํ
์คํธ ์ปค๋ฒ๋ฆฌ์ง ์ธก์ ๋๊ตฌ
- ์์ค์ฝ๋ ๋ด ํ ์คํธ ๊ฐ๋ฅํ ๊ฒฝ๋ก ์ค ํ ์คํธ ๋๊ตฌ๋ฅผ ํตํด์ ํ ์คํธ๋ ์ปค๋ฒ๋ฆฌ๋ฆฌ์ฆ๋ฅผ ์ธก์ ํ๋ ๋๊ตฌ
- Clover, JCoverage, ElecEmma ๋ฑ
- ๋น๋ ์ค์ผ์ค ๊ด๋ฆฌ๋๊ตฌ
- ์์ฑ๋ ๋น๋ ์คํฌ๋ฆฝํธ๋ฅผ ์ ํด์ง ์กฐ๊ฑด, ์๊ฐ์ ๊ธฐ๋ํ๊ณ ์งํ ์ํ, ์ํ ๊ฒฐ๊ณผ๋ฅผ ๊ด๋ฆฌํ๋ ๋๊ตฌ
- Anthil, CruiseControl, Hudson ๋ฑ
ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง
- ์ ์ฒด ํ๋ก๊ทธ๋จ์ ๋ฒ์ ๋๋น ํ ์คํธ ์ํ ์ ํด๋น ํ ์คํธ ์ํ์ ์ํด ๋์๋ ํ๋ก๊ทธ๋จ์ ๋น์จ์ ์๋ฏธ
- ๋ผ์ธ์ปค๋ฒ๋ฆฌ์ง(๊ตฌ๋ฌธ ์ปค๋ฒ๋ฆฌ์ง)
- ๋ถ๊ธฐ์ปค๋ฒ๋ฆฌ์ง
- ์กฐ๊ฑด์ปค๋ฒ๋ฆฌ์ง
๋น๋ ์ค์ผ์ค ๊ด๋ฆฌ ๋๊ตฌ ๊ธฐ๋ฅ
- ๋น๋ ์์ ์ค์ผ์ค๋ง
- ๋น๋ ์์ ์ํ ๋ฐ ์ด๋ ฅ ๊ด๋ฆฌ
- ๋น๋ ๋๊ตฌ ์ฐ๊ณ ๊ด๋ฆฌ
- ๋น๋ ์ํ ๊ฒฐ๊ณผ ๋ฆฌํฌํ
728x90
๋ฐ์ํ