- ์ํํธ์จ์ด ์๋ช
์ฃผ๊ธฐ (Software Development Life Cycle, SDLC)
- ํ๋ก์ ํธ ๊ณํ : ์ด๋ค ํ๋ก์ ํธ๋ฅผ ๋ง๋ค ๊ฒ์ธ์ง?
- ์๊ตฌ๋ถ์ : ํด๋น ํ๋ก์ ํธ์์ ํ์๋ก ํ๋ ๊ธฐ๋ฅ, ๊ธฐ์ , ์ง์ ๋ฑ์ด ์ด๋ป๊ฒ ๋ ๊ฒ ์ธ์ง?
- ์ค๊ณ : ๋ถ์ํ ์ฌํญ์ ๋ฐํ์ผ๋ก ์ํคํ ์ณ, ๋์์ธ, DB ๋ฑ์ ์ค๊ณ
- ๊ตฌํ : ์ค๊ณํ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ์ค์ ๊ตฌํ
- ํ ์คํธ : ๊ธฐ๋ฅ ๋จ์ ํน์ ์ ์ฒด ํ๋ก์ ํธ๋ฅผ ํ ์คํธ
- ์ ์ง ๋ณด์ : ๋ค๋ฅธ ๊ธฐ์ ์ ๋์ , ํจ์จ์ฑ ์ธก๋ฉด, ๊ธฐ๋ฅ ์ถ๊ฐ, ํผ๋๋ฐฑ ๋ฑ์ ์ ์ง๋ณด์
- ํญํฌ์ ๋ชจ๋ธ (Waterfall Model)
- ๋๊ท๋ชจ์ ์ฌ์ฉ๋๋ ๊ณ ์ ์ ์ธ SDLC ๋ชจ๋ธ์ด๋ค.
- SDLC์ ํ๋ก์ธ์ค๋ฅผ ์ ํ์ ์ผ๋ก ์ฒ๋ฆฌํ๋ค.
- SW ํ๋ก์ธ์ค๋ ์ ํ์ ์ผ ์ ์๋ค. ์์ ์ฌํญ์ด ์๊ธธ ๊ฒฝ์ฐ ์ด์ ๋ด์ญ์ด ์ฌ๋ผ์ง ์ ์๋ค.
- ํ๋กํ ํ์
๋ชจ๋ธ (Prototype Model)
- ์ธํฐํ์ด์ค๋ฅผ ๋ง๋ค์ด๋๋ค.
- ์ธํฐํ์ด์ค์ ๋ช ์๋ ๊ธฐ๋ฅ์ ๊ฒฌ๋ณธ/์์ ํ์ผ๋ก ๊ฐ ๊ตฌํํ๋ค.
- ํ๋กํ ํ์ (๊ฒฌ๋ณธ)์ ์ ์ถํ๋ฉด์ ๋ณ๊ฒฝ๋์ด์ผ ํ ์๊ตฌ์ฌํญ์ ๋น ๋ฅด๊ฒ ์์ ํ ์ ์๋ค.
- Dev Class์ Release Class
- ๋์ ํ ๋ชจ๋ธ (Spiral Model)
- ํญํฌ์ ๋ชจ๋ธ, ํ๋กํ ํ์ ๋ชจ๋ธ์ ์ด์ ์ ์ํ ๋ถ์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๋ฐฉ๋ฒ์ด๋ค.
- ๊ณํ ์๋ฆฝ : ํ๋ก์ ํธ ๊ณํ + ์๊ตฌ์ฌํญ ๋ถ์
- ์ํ ๋ถ์ : ์ํ์๋ณ, ์ ๋์ /์ ์ฑ์ ํ๊ฐ, ๊ทธ์ ๋ฐ๋ฅธ ๊ฒฐ๊ณผ + ์ค๊ณ
- ๊ฐ๋ฐ ๋ฐ ๊ฒ์ฆ : ๊ตฌํ + ํ ์คํธ
- ๊ณ ๊ฐ ํ๊ฐ : ์ ์ง๋ณด์
- ์ ์์ผ (Agile)
- ์ผ์ ํ ์งง์ ์ฃผ๊ธฐ(Sprint or Iteration)๋งํผ ๋ฐ๋ณตํด์ ๊ฐ๋ฐ์ ์งํํ๋ค.
- ๊ณ ๊ฐ๊ณผ์ ์ํต์ ์ค์ํด์ ๊ณ ๊ฐ ์๊ตฌ์ฌํญ์ ์ ์ฐํ๊ฒ ๋์ํ ์ ์๋ค.
- XP, Scrum, Function Driven Design, Lean, Dynamic System Development Method ๋ฑ์ด ์๋ค.
- XP(eXtream Programming)
- 5๊ฐ์ง์ ๊ฐ์น์ 12๊ฐ์ ์ค์ฒ ํญ๋ชฉ์ด ์๊ณ ์์ฌ์ํต์ ๊ฐ์ ํ๊ณ ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ํ๊ธฐ์ํ ์ค๊ณ ๋ฐฉ๋ฒ๋ก
- ์ฆ, ๊ณ ๊ฐ ์๊ตฌ์ฌํญ์ ์ ์ฐํ๊ฒ ๋์ํ๊ธฐ ์ํด 24์๊ฐ ์์ฃผํ ์ ์๋ ๊ณ ๊ฐ๊ณผ ํจ๊ป ์ ์ํ ๊ฐ๋ฐ์ ํ๋ค.
- 5๊ฐ์ง ํต์ฌ ๊ฐ์น
- ์ฉ๊ธฐ (Courage)
- ๋จ์์ฑ (Simplicty)
- ์์ฌ์ํต (Commnuication)
- ํผ๋๋ฐฑ (Feedback)
- ์กด์ค (Respect)
- 12๊ฐ์ง ๊ธฐ๋ณธ ์๋ฆฌ
- Planning Process
- Pair Programming
- CI
- Refactoring
- On Suit Customer
- Coding standard
- TDD
- Simple Design
- Small Release
- Metaphore
- Collective Ownership
- ํํฅ์ ์ค๊ณ (Top-down)
- ์ ์ฐจ ์งํฅ์ ์์ฐจ์ ์ค๊ณ๋ฒ
- ์ต์์ ์ปดํฌ๋ํธ -> ํ์ ๊ธฐ๋ฅ ๋ถ์ฌ -> ํ ์คํธ ์ด๊ธฐ๋ถํฐ ์ฌ์ฉ์์๊ฒ ๊ตฌ์กฐ ์ ์ ๊ฐ๋ฅ
- main ๋๋ ๊ฐ์ฒด์์ ํ์ํ ๊ฒ๋ค์ ์์๋๋ก ์ฝ๋๋ก ์์ฑํ๋ ๊ฒ
- ์ํฅ์ ์ค๊ณ (Bottom-up)
- ๊ฐ์ฒด ์งํฅ์ ์ค๊ณ
- ์ตํ์ ๋ชจ๋ ์ค๊ณ -> ๊ฒฐํฉ ๋ฐ ๊ฒ์ฌ -> ์ธํฐํ์ด์ค ๊ตฌ์กฐ ๋ณ๊ฒฝ ์ ์์ ๋ชจ๋๋ ๊ฐ์ด ๋ณ๊ฒฝ์ด ํ์
- ์ฌ์น์ฐ์ฐ์ ํ๋ ํ๋ก๊ทธ๋จ์ ์ซ์ 2๊ฐ์ ์ ๋ ฅ์ ํ์๋ก ํ๋ค. ์ ๊ณฑ๊ทผ์ ๊ตฌํ๋ ๋ชจ๋์ ์ถ๊ฐํ๋ค๋ฉด ์ซ์ 1๊ฐ์ ์ ๋ ฅ์ ํ์๋ก ํ๋ค. ์ด๋ก ์ธํด ์ธํฐํ์ด์ค์ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋๊ณ ์ด๋ฅผ ์ฌ์ฉํ๋ ์์ ๋ชจ๋ ๋ํ ๋ณ๊ฒฝํด์ค์ผ ํ๋ค.
# command ์ ๋ฐ๋ผ ์ฌ์น์ฐ์ฐ
def inputNum():
a = int(input());
b = int(input());
return a, b;
command = input();
a, b = inputNum();
print(cal(a, b, command));
# ์ ์ฝ๋์์ command ์ ๊ณฑ๊ทผ์ ์ถ๊ฐํ์ ๊ฒฝ์ฐ
def inputNum(command):
a = int(input());
if (command == 'sqrt') return a;
b = int(input());
return a, b;
if command == 'sqrt':
num = inputNum(command);
print(cal(num, 0, command));
else:
a, b = inputNum(command);
print(cal(a, b, command));
์ด๋ฐ์์ผ๋ก ๋ง ์ธ๋ฐ ์๋ ์ฝ๋๋ ์ถ๊ฐ ๋๋ค. ์ด๋ฐ ๋ถ๋ถ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋ํ๋๊ฒ ๋์์ธ ํจํด์ด๋ค.
'์๊ฒฉ์ฆ > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ค๊ธฐ] ์ํํธ์จ์ด ๊ตฌ์ถ - ์๊ตฌ์ฌํญ ๋ถ์ (0) | 2024.07.25 |
---|---|
[์ค๊ธฐ] ์ํํธ์จ์ด ๊ตฌ์ถ - ํ๋ก์ ํธ ๊ณํ (0) | 2024.07.25 |
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ ํฉ๊ฒฉ (0) | 2024.02.22 |
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ - 2021๋ 08์ 14์ผ ๊ธฐ์ถ๋ฌธ์ (1) | 2024.02.12 |
์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ํ๊ธฐ - 2021๋ 05์ 15์ผ ๊ธฐ์ถ๋ฌธ์ (0) | 2024.02.02 |