1์ฅ ์ํํธ์จ์ด ๊ณตํ ๊ฐ์ ์ํํธ์จ์ด์ ์ข
๋ฅ ์ฃผ๋ฌธํ, ํจํค์งํ, ์๋ฒ ๋๋ ์์คํ
์ค์๊ฐ ์ํํธ์จ์ด, ์๋ฃ์ฒ๋ฆฌ ์ํํธ์จ์ด ์ํํธ์จ์ด ๊ณตํ์ ์ ์ IEEE : ์ํํธ์จ์ด์ ๊ฐ๋ฐ, ์ด์ฉ, ์ ์ง๋ณด์ ๋ฐ ํ๊ธฐ์ ๋ํ ์ฒด๊ณ์ ์ธ ์ ๊ทผ W.Humphrey : ์ง ์ข์ ์ํํธ์จ์ด๋ฅผ ๊ฒฝ์ ์ ์ผ๋ก ์์ฐํ๊ธฐ ์ํ์ฌ ๊ณตํ, ๊ณผํ, ์ํ์ ์๋ฆฌ์ ์ํ์ฌ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํด์ผํ๋ค ์ํํธ์จ์ด ํ์ง (ํจ-์ฉ-์ -์ -์ฌ-) ํจ์จ์ฑ(efficiency) ์ฌ์ฉ์ฉ์ด์ฑ(usability) ์ ๋ขฐ์ฑ(reliability) ์ ์ง๋ณด์์ฑ(maintainability) ์ฌ์ฌ์ฉ์ฑ(reusability) ์ํํธ์จ์ด ํ๋ก์ ํธ ์์
์๊ตฌ๋ถ์๊ณผ ๋ช
์ธํ ๋๋ฉ์ธ ๋ถ์, ๋ฌธ์ ์ ์, ์๊ตฌ ์ถ์ถ, ์๊ตฌ ๋ถ์, ์๊ตฌ ๋ช
์ธํ ์ค๊ณ : ๊ฐ์ฉํ ๊ธฐ์ ๋ก ์ด๋ป๊ฒ ๊ตฌํ๋์ด์ผํ๋์ง ๊ธฐ์ ์์คํ
์์ง๋์ด๋ง, ์ํํธ์จ์ด ์ํคํ
์ณ UI ์ค๊ณ, DB ์ค๊ณ ๋ชจ๋ธ๋ง : ๋๋ฉ์ธ์ด๋ ์ํํธ์จ์ด์ ํํ์ ๋ง๋ค์ด ๋๊ฐ๋ ๊ณผ์ ์ ์ค์ผ์ด์ค ๋ชจ๋ธ๋ง ์ ์ ๋ชจ๋ธ๋ง, ๋์ ๋ชจ๋ธ๋ง, ํ์ ๋ชจ๋ธ๋ง ํ๋ก๊ทธ๋๋ฐ ํ์ง๋ณด์ฆ ๋ฆฌ๋ทฐ, ์ธ์คํ์
, ํ
์คํธ ๋ฐฐํฌ ํ๋ก์ธ์ค ๊ด๋ฆฌ 2์ฅ ์ํํธ์จ์ด ํ๋ก์ธ์ค ํญํฌ์ ๋ชจ๋ธ (Waterfall Model) ๊ฐ ๋จ๊ณ๊ฐ ๋ค์ ์์ ์ ์ ๋๋์ผ ํจ -> ๋๋ฆผ ํ๋กํ ํ์
๊ณผ ์ฌ์ฌ์ฉ์ ๊ธฐํ๊ฐ ์ค์ด๋ฆ ํ๋กํ ํ์
๋ชจ๋ธ (Prototyping Model) ์ธ๊ฐ-๊ธฐ๊ณ ์ํธ์์ฉ ํ๋กํ ํ์
ํ๋กํ ํ์
์ ๋ง๋ ๋ค - ํ๋กํ ํ์
์ ํ๊ฐํ๋ค ์ ์ฆ์ ๋ชจ๋ธ (Incremental Model) ์ ์ฆ์ ๋ฐฉ๋ฒ: ๊ธฐ๋ฅ๋ณ๋ก ๋ฆด๋ฆฌ์ฆ ๋ฐ๋ณต์ ๋ฐฉ๋ฒ: ๋ฆด๋ฆฌ์ฆ ํ ๋๋ง๋ค ๊ธฐ๋ฅ์ ์์ฑ๋๋ฅผ ๋์ธ๋ค ๊ธฐ๋ฅ์ด ๋ถ์กฑํ๋๋ผ๋ ๋นจ๋ฆฌ ๋ฆด๋ฆฌ์ฆ ๊ฐ๋ฅ ๋์ ํ ๋ชจ๋ธ (Spiral Model) ์งํ ๋จ๊ณ ๊ณํ ์๋ฆฝ ์ํ ๋ถ์ ๊ฐ๋ฐ ํ๊ฐ ๋ฐ๋ณต์ ์ธ ๊ฐ๋ฐ ๋ฐ ํ
์คํธ -> ๊ฐ์ธ์ฑ ํฅ์ ๊ด๋ฆฌ, ์ํ ๋ถ์์ด ์ค์ ์งํ์ ๋ชจ๋ธ (Evolutionary Model) ์ด๊ธฐ์ ์๊ตฌ์ฌํญ์ ํ์
ํ๊ธฐ ํ๋ค๊ณ ๊ตฌํ์ด ์ด๋ ค์ด ๊ฒฝ์ฐ, ์๊ตฌ์ฌํญ ๋ถ์์ ํ ๋ฒ์ด์ ๋ฐ๋ณต UP (Unified Process) ๋์
๋จ๊ณ : ํ๋ก์ ํธ์ ๋ฒ์๋ฅผ ์ค์ , ๋ชฉํ๋ฅผ ๋ช
ํํ ์ ๋ จ ๋จ๊ณ : ์๊ตฌ๋ฅผ ์ฐพ์๋ด์ด ์ค๊ณ๋ฅผ ์์ฑ ๊ตฌ์ถ ๋จ๊ณ : ์ ์กฐ ๋จ๊ณ, ์๊ตฌ์ ํ
์คํธ ๋ง๋ฌด๋ฆฌ ์ ํ ๋จ๊ณ : ๋ฆด๋ฆฌ์ฆ ์ ์์ผ ํ๋ก์ธ์ค (Agile Process) ํน์ง ์งง์ ๋ฆด๋ฆฌ์ฆ์ ๋ฐ๋ณต ์ ์ฆ์ ์ค๊ณ ์ฌ์ฉ์ ์ฐธ์ฌ ๋ฌธ์ ์ต์ํ ๋น๊ณต์์ ์ปค๋ฎค๋์ผ์ด์
์๊ตฌ์ ํ๊ฒฝ์ ๋ณํ๋ฅผ ๊ฐ์ ์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ (eXtreme Pragramming) ์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ค ํ๋ Planning : ์๊ตฌ์ฌํญ์ ์์ ์์๋ก ๋ถํ Analysis Design Execution : Coding, Testing Wrapping : small release, process improvement Closure : launch ์คํฌ๋ผ (Scrum) ์กฐ์ง์ ์ผ๋ก ์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ ์ ์ฉ
Sub Query ๋จ์ผ ํ ์๋ธ ์ฟผ๋ฆฌ ์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ : ๋จ์ผ ํ ๊ฒฐ๊ณผ : ๋จ์ผ ํ 1SELECT USER_ID, USER_NAME, USER_AGE 2FROM USERS 3WHERE TEAM_ID = ( 4 SELECT TEAM_ID 5 FROM USERS 6 WHERE USER_NAME='BONG' 7); ๋ค์ค ํ ์๋ธ ์ฟผ๋ฆฌ ์๋ธ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ : ๋ค์ค ํ ๊ฒฐ๊ณผ : ๋จ์ผํ ๋ค์ค ํ ๋น๊ต ์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉ (IN, ALL, ANY, SOME) 1SELECT TEAM_ID, TEAM_NAME, TEAM_LOGO_URL 2FROM TEAM 3WHERE TEAM_ID IN ( 4 SELECT TEAM_ID 5 FROM USERS 6 WHERE USER_NAME='BONG' 7) ๋ค์ค ์ปฌ๋ผ ์๋ธ ์ฟผ๋ฆฌ ์๋ธ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ: ๋ค์ค ํ ๊ฒฐ๊ณผ : ๋ค์ค ํ 1SELECT TEAM_ID, USER_NAME 2FROM USERS 3WHERE (TEAM_ID, HEIGHT) 4IN ( 5 SELECT TEAM_ID, MIN(HEIGHT) 6 FROM USERS 7 GROUP BY TEAM_ID 8) 9ORDER BY TEAM_ID, USER_NAME ์ฐ๊ด ์๋ธ ์ฟผ๋ฆฌ 1SELECT B.