์ ์์ผ๊ณผ ์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ(Agile , XP)
by JiwonDev# Agile Software Development
(Aglie: ๋ ๋ ตํ, ํ์ ์ด ๋น ๋ฅธ)
๋ค๋ฅธ ๊ณ ์ ์ ์ธ ๋ฐฉ๋ฒ๋ก , ์๋ฅผ ๋ค๋ฉด ํญํฌ์ ๋ชจ๋ธ ๋๋ ๋์ ๋ชจํ๊ณผ ๊ตฌ๋ณ๋๋ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ less document-oriented, ์ฆ ๋ฌธ์๋ฅผ ํตํ ๊ฐ๋ฐ ๋ฐฉ๋ฒ์ด ์๋๋ผ, code-oriented, ์ค์ง์ ์ธ ์ฝ๋ฉ์ ํตํ ๋ฐฉ๋ฒ๋ก ์ด๋ผ๋ ์ ์ด๋ค.
- ํ๋ก์ธ์ค์ ๋๊ตฌ๋ณด๋ค ๊ฐ์ธ ๊ฐ์ ์ํธ์์ฉ์
- ํฌ๊ด์ ์ธ ๋ฌธ์๋ณด๋ค ์๋ํ๋ ์ํํธ์จ์ด๋ฅผ (Code-Oriented)
- ๊ณ์ฝ ํ์๋ณด๋ค ๊ณ ๊ฐ๊ณผ์ ํ๋ ฅ์
- ๊ณํ์ ๋ฐ๋ฅด๊ธฐ๋ณด๋ค ๋ณํ์ ๋์ํ๊ธฐ๋ฅผ
# ๊ฐ ๋ชจ๋ธ์ ์ฐจ์ด์
- [ ํญํฌ์ ๋ชจ๋ธ ] ์ ์ ํ์ ์ธ ์ฌ์
์ ๋ชจ์ต, ์ฆ ์ ์ฒด์ ์ธ ์ฌ์
๊ณํ์ ๊ธฐ๋ฐ์ผ๋ก ์๊ตฌ์ฌํญ์ ๋ถ์ํ๊ณ , ์ค๊ณ๋ฅผ ์๋ฃ ํ ํ ๊ฐ๋ฐ์ ํ์ฌ ๋จ๊ณ๋ณ๋ก ์งํ๋์ง๋ง ํ๋ฒ ๊ฒฐ์ ๋ ์ฌํญ์ ๋๋๋ฆฌ๊ธฐ ์ด๋ ต๋ค๊ณ , ํ๋กํ ํ์
์ด ์ต์ข
๋จ๊ณ์ ๊ฐ๊น์์ ธ์ผ ๋์จ๋ค๋ ๋จ์ ์ด ์์ด์ ์๊ตฌ์ฌํญ ๋ณํ๊ฐ ์ฆ์ ๊ฐ๋ฐ์๋ ๋ง์ง ์๋ค.
- [ ๋์ ํ ๋ชจ๋ธ ] ์ ํญํฌ์ ๋ชจ๋ธ์ฒ๋ผ ํ๋, ํน์ ์ฃผ๊ธฐ(๋ณดํต 6๊ฐ์์์ 2๋
)์ ํ๋ก์ ํธ ์๋ช
์ฃผ๊ธฐ(Life Cycle) ๋ก ์ก๊ณ ์ฃผ๊ธฐ๋ง๋ค ์๊ตฌ์ฌํญ ๋ถ์, ์ํ๋ถ์, ๊ณํ, ๊ฐ๋ฐ, ์ ๋ํ
์คํธ๋ฅผ ๋ฐ๋ณตํ๋ค.
- [ ์ ์์ผ ๋ชจ๋ธ ] ์ ์ผํ ๋ค์ผ๋ฉด ๋์ ํ ๋ชจ๋ธ๊ณผ ๋น์ทํด ๋ณด์ด์ง๋ง, ๊ฐ์ฅ ํฌ๊ฒ ๋ค๋ฅธ ์ ์ ๋ถ๊ธฐ์ ์ด ‘๊ฐ๋ฐ์ฃผ๊ธฐ’ ๋ ‘ํ๋กํ ํ์ ์์ฑ’ ์ด ๊ธฐ์ค์ด ์๋๋ค. ๋ค์์ ์์ ๊ธฐ๋ฅ์ผ๋ก ๋ถํ ํ์ฌ ๊ธฐ๋ฅ ๋ณ๋ก ์งง์ ๋ฐ๋ณต ์ฃผ๊ธฐ(๋ณดํต 2~4์ฃผ)๋ฅผ ๊ฐ์ง๊ณ , ๋์ ์์ด ๊ณ ๊ฐ๊ณผ ์์ฌ์ํต, ์๊ตฌ์ฌํญ์ ์ถ๊ฐํ์ฌ ์ ์ง์ ์ผ๋ก ๋์๊ฐ๋ ๋ฐฉ์์ด๋ค.
Theme: “ํ๋ธ๋ฆฟ๊ณผ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ํตํ ๋ ์คํ ๋ ์ฃผ๋ฌธ ์์คํ .”
Epic: “๊ณ ๊ฐ์ผ๋ก์, ํ ์ด๋ธ์ ํ๋ธ๋ฆฟ์ ํตํด ์์๊ณผ ๊ด๋ จ๋ ์ผ์ ์ฒ๋ฆฌํ ์ ์๋ค.
Story: “๊ณ ๊ฐ์ผ๋ก์, ์์์ ์ฃผ๋ฌธํ๊ธฐ ์ํด, ๋ฉ๋ด๋ฅผ ๋ณผ ์ ์๋ค.”
Task: “์์ ์ฌ์ง์ด ๋ฐฐ์ด๋ ๋ฉ๋ด ํ๋ฉด์ ๊ตฌํํ๋ค.”
์ ์์ผ์ Story ์ค์ฌ์ผ๋ก ์ ์ฐํ๊ฒ ๊ฐ๋ฐ, ํญํฌ์๋ Task๋ฅผ ์ค์ฌ์ผ๋ก ๊ณํ์ ์ผ๋ก, ์ฒด๊ณ์ ์ผ๋ก ๊ฐ๋ฐํ๋ค. ์ฝ๊ฒ ๋งํด ‘์ํํธ์จ์ด ์ ํ’์ ์ด์ ์ ๋ง์ถ ๊ฒ ์๋๋ผ, ๊ณ ๊ฐ์ ์ด์ ์ ๋ง์ถ ๋ฐฉ์์ด ์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ด๋ผ๊ณ ๋ณผ ์๋ ์๊ฒ ๋ค
# ์ ์์ผ์ด ์ถ๊ตฌํ๋ ๊ฒ
์ํํธ์จ์ด ๊ฐ๋ฐ์์๋ ์ ํต์ ์ธ ํญํฌ์ ๋ชจ๋ธ์ ๋ฐ๋ผ๊ฐ๊ธฐ ํ๋ค๋ค. ๊ณ ๊ฐ์ ์๊ตฌ์ฌํญ์ ๋์์์ด ๋ณํํ๋ค. ๊ธฐ๋ฅ(๊ตฌํ)์ ์ด์ ์ ๋ง์ถ๋๊ฒ ์๋๋ผ ์๋น์ค(์ถ์ํ)์ ๊ธฐ์ค์ ๋ง์ถฐ ์๋น์ค ๋จ์์ ์งง์ ์ฃผ๊ธฐ๋ก [๊ธฐํ-๊ฐ๋ฐ-ํ ์คํธ-๋ฐฐํฌ]ํ๋ ์ ์์ผ ์ ๊ทผ๋ฒ์ด ํ์ํ๋ค.
- ์ผ์ ๋จ์
- ํญํฌ์: ๊ตฌํํด์ผ ํ ๊ธฐ๋ฅ์ ๊ธฐ์ค์ผ๋ก ์ ํ๋ค. “๋ ์คํ ๋ ๋ฉ๋ด ์ ํ ํ๋ฉด์ ๊ตฌํํ๋ค."
- ์ ์์ผ: ์ฌ์ฉ์์ ๊ฒฝํ์ ๊ธฐ์ค์ผ๋ก ์คํ ๋ฆฌ๋ฅผ ์ ํ๋ค. “์๋น ์๋์ผ๋ก์, ๋ ์คํ ๋์์ ์ฃผ๋ฌธ์ ํ๊ธฐ ์ํด, ๋ฉ๋ด์์ ์์์ ์ ํํ ์ ์๋ค.” - ๋ฐ๋๋ผ์ธ
- ํญํฌ์: ๋ฐ๋๋ผ์ธ์ ์ ํ๊ณ ๋ฐ๋๋ผ์ธ์ ๋ง์ถฐ ์์์ ํฌ์ ํ๊ฑฐ๋ ์๋ ์์์ ์ต๋ํ ํ์ฉํ๋ค.
- ์ ์์ผ: ๊ณ์ ๊ฐ์ ํ๋ฏ๋ก ๋ฐ๋๋ผ์ธ์ด ๋ณ ์๋ฏธ๊ฐ ์๋ค. ํ ํ๋ก์ ํธ ์งํ ์๋(throughput)๋ฅผ ์ธก์ ํ๋ค. - ์ธ๋ถ ์์ฒญ์ ๋ฐ์
- ํญํฌ์: ๊ณํ์ด ์ด๋ฏธ ๋๋ฌ๊ธฐ ๋๋ฌธ์ ์ธ๋ถ ์์ฒญ์ ๋ค์ ๋ฒ์ ๊น์ง ๋ฐ์ํ ์ ์๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ค๋ฉด ํฐ ๋น์ฉ์ด ๋ฐ์ํ๋ฏ๋ก ๋ฐ์์ ์ต์ํํ๋ค.
- ์ ์์ผ: ํ๋ก๋ํธ ์ฌ์ดํด(๊ธฐํ-๊ฐ๋ฐ-ํ ์คํธ-๋ฐฐํฌ)๊ฐ ์งง์ผ๋ฏ๋ก ํ๋ก๋ํธ ๋งค๋์ ๊ฐ ์์ง๋์ด๋ง ๋งค๋์ ์ ํ๋ ฅํ์ฌ ์ธ๋ถ ์์ฒญ์ ๋น ๋ฅด๊ฒ ๋ฐ์ํ๋ค. - ํ๋ก๋ํธ ๋งค๋์ (PM)์ ํ ๋ด ์ญํ
- ํญํฌ์: ๋งค๋์ ๊ฐ ํ์ ์์ฃผํ ํ์ ์๋ค. ์ฒ์ ๊ธฐํ์๊ฐ ๋ชจ๋ ๊ธฐํ์์ ๋ง๋ค์ด์ ๋๊ธฐ๋ฉด ๊ฐ๋ฐํ์์ ๋ฐ๋๋ผ์ธ์ ๋ง์ถฐ ๊ตฌํํ๋ค.
- ์ ์์ผ: ํ์ ํ๋ก์ ํธ ์งํ ์๋๋ฅผ ์ธก์ ํ์ฌ ์ด ์๋๋ก ์งํํ๋ฉด ์ธ์ ์ฏค ์์ฑ๋ ๊ฒ์ธ์ง๋ฅผ ์ธก์ ํ๋ค. ๋์์์ด ์ธ๋ถ ํ๊ณผ ์ํตํ์ฌ ์๊ตฌ๋ฅผ ๋ฐ์ํ๊ณ ํ๋ก๋ํธ ์์ฑ ์์ ๊ณผ ์ฐ์ ์์๋ฅผ ์ ๋ฐ์ดํธํ๋ค. - ์์ง๋์ด๋ง ๋งค๋์ (๊ฐ๋ฐํ์ฅ)์ ์ญํ
- ํญํฌ์: ๋ฐ๋๋ผ์ธ์ ๋ง์ถฐ ํ๋ก์ ํธ๋ฅผ ๋๋ด๋ ๊ฒ์ ๊ด๋ฆฌํ๋ค. ๋ฐ๋๋ผ์ธ์ ๋ชป ๋ง์ถ ๊ฒ ๊ฐ์ผ๋ฉด ์ธ์ฃผ๋ฅผ ์ฃผ๊ฑฐ๋ ํ์๋ค์๊ฒ ์ง์์ ์ธ ๋๊ธฐ๋ถ์ฌ(๋๋ ์ํ)๋ฅผ ํ๋ค.
- ์ ์์ผ: ํ์ด ๋งค ์คํ๋ฆฐํธ๋ง๋ค ์ผ์ ํ ์๋๋ก ํ๋ก๋ํธ๋ฅผ ๋ง๋ค๋๋ก ๊ด๋ฆฌํ๋ค. ๋ฒ๊ทธ ๋ฑ์ ๊ด๋ฆฌํ์ฌ ๊ธฐ๋ฅ์ด ํดํ๋์ง ์๋๋ก ํ๋ค.
# ์ ์์ผ ํ๋ ์์ํฌ ๋๊ตฌ
์คํฌ๋ผ(Scrum), ์นธ๋ฐ ๋ณด๋(Kanban), XP(eXtreme Programing)์ ๊ฐ์ ์ ์์ผ ์ํํธ์จ์ด ๊ฐ๋ฐ์ฉ ํ๋ ์์ํฌ๋ CI/CD์ ๊ฐ์ ๋์ค์ ์ธ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ํ์ ๋ง๋ค ์ ์๋๋ก ๋์์ค๋ค. ๋ฌด์กฐ๊ฑด ์คํฌ๋ผ์ด ์ข๋ค. ์นธ๋ฐ์ด ์ข๋ค ์ด๋ฐ๊ฑด ์๋ค. ํ๋ง๋ค ์๋ง์ ๋ฐฉ๋ฒ์ด ์๊ณ , ๊ทธ๊ฑธ ์ฌ์ฉํ๋ฉด ๋๋ ๊ฒ์ด๋ค. ํ๋ก์ธ์ค์ ๋๊ตฌ์ ์์กดํ์ง ๋ง์.
- Scrum
์คํ๋ฆฐํธ๋ผ๋ ์ผ์ ๊ธฐ๊ฐ ์์ ์๋ฃํ ์ ์๋ ์์ ์ผ๋ก ์ ๋ฌด๋ฅผ ๋ถํ ํ๋ค.
- Kanban ๋ณด๋
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ๊ฐ ์์๋ณผ ๋ง์ง๋ง ์ ์์ผ ํ๋ ์์ํฌ๊ฐ ๋ฐ๋ก XP (์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ)์ด๋ค.
# ์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ (XP, eXtreme Programing)
์ ์์ผ ๋ฐฉ๋ฒ๋ก ์ค ํ๋๋ก ๋น ๋ฅธ ๊ฐ๋ฐ ์๋๋ฅผ ์ ์งํ๋ฉฐ ๊ณ ๊ฐ์ด ์ํ๋ ์๊ตฌ๋ค์ ์ง์์ ์ผ๋ก ํผ๋๋ฐฑํ๋ ๋ฐฉ๋ฒ
- 10~12๊ฐ ์ ๋์ ๊ตฌ์ฒด์ ์ธ ์ค์ฒ ๋ฐฉ๋ฒ(Practice)์ ์ ์
- ์งง์ ์ฃผ๊ธฐ๋ก ์ฌ๋ฌ๋ฒ ๊ณ ๊ฐ์๊ฒ ๋ฉํ ๋ฐ๋ณต
- ๊ฐ๋ฐ๋ฌธ์ ๋ณด๋ค๋ ์์ค์ฝ๋๋ฅผ, ์กฐ์ง์ ์ธ ๊ฐ๋ฐ ๋ณด๋ค๋ ๊ฐ๊ฐ์ธ์ ์ฑ ์๊ณผ ์ฉ๊ธฐ๋ฅผ ์ค์
- ๋ค๋ง ๋๊ท๋ชจ ํ๋ก์ ํธ์ ์ ์ฉํ๊ธฐ ์ด๋ ต๊ณ , ๊ฐ์ธ์ ์ต๊ด-์ค๋ ฅ์ ๋ฐ๋ผ ํ๋ก์ ํธ ํ์ง์ฐจ์ด ๋ฐ์
์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ์ ์ฒ ํ
- ์ฉ๊ธฐ: ๋ฌธ์๋ก ๋ณ๋ช ํ๊ธฐ ๋ณด๋จ ์ง์ค๋๊ณ ์ฉ๊ธฐ์๊ฒ ๊ฐ๋ฐ
- ์กด์ค: ๊ฐ๋ฐ์์ ์ญ๋์ ์กด์คํ๊ณ ์ถฉ๋ถํ ๊ถํ๊ณผ ๊ถ๋ฆฌ ๋ถ์ฌ
- ์์ฌ์ํต: ์ดํด๊ด๊ณ์ ๋ชจ๋๊ฐ ํ์์ด๋ผ๋ ์๊ฐ์ผ๋ก ๋ชจ๋ ์ฌํญ ๊ณต์
- ํผ๋๋ฐฑ: ์์ฌ์ํต์ ๋ฐ๋ฅธ ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ
- ๋จ์์ฑ: ํ์ํ ๊ฒ์ ํ์ง๋ง ๋์ด์์ ํ์ง ์์
# ์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ์ ํด๋ณด์
1-1. User Stories, ์ ์ ์คํ ๋ฆฌ (์๊ตฌ์ฌํญ ์ ๋ฆฌ)
- ์ฌ์ฉ์ ์๊ตฌ์ฌํญ / UML์ ์ ์ค์ผ์ด์ค์ ๊ฐ์ ๋ชฉ์ (์๊ตฌ์ฌํญ ์์ง, ์์ฌ์ํต ๋๊ตฌ)
- ๋ฆด๋ฆฌ์ฆ ๊ณํ์ ์์ฑํ๊ธฐ ์ํ ๋จ์
- ๊ธฐ๋ฅ๋จ์๋ก ํ์ํ ๋ด์ฉ์ ๊ฐ๋จํ๊ฒ ๊ธฐ์ฌ, ํ์์ ๊ฐ๋จํ ํ ์คํธ ์ฌํญ๋ ํ๊ธฐ ๊ฐ๋ฅ
- ์์คํ ์ ์ฌ์ฉํ๋ ๊ณ ๊ฐ์ด ํ์ํ ๊ฒ์ด ๋ฌด์์ธ์ง๋ฅผ ๊ธฐ์ → ์ธ์ํ ์คํธ์ ์ฌ์ฉ
1-2. Architectural Spike, ๊ตฌ์กฐ์ ์คํ์ดํฌ(๊ธฐ์ ์ ์ธ ๋ฌธ์ )
- ์ด๋ ค์ด ์๊ตฌ์ฌํญ ํน์ ์ ์ฌ์ ์ธ ์๋ฃจ์ ๋ค์ ๊ณ ๋ คํ๊ธฐ ์ํด ์์ฑํ๋ ๊ฐ๋จํ ํ๋ก๊ทธ๋จ
- ์ฌ์ฉ์ ์คํ ๋ฆฌ์ ์ ๋ขฐ์ฑ์ ์ฆ๋์ํค๊ฑฐ๋ ๊ธฐ์ ์ ์ธ ๋ฌธ์ ์ ์ํ์ ์ค์ด๊ณ ์ ํ๋๋ฐ ๋ชฉ์
2. Release Planning, ๋ฆด๋ฆฌ์ฆ ๊ณํ ์ก๊ธฐ
- ์ ์ฒด ํ๋ก์ ํธ์ ๋ํ ๋ฐฐํฌ ๊ณํ์ ์์ฑ
3. Iteration, ๋ฐ๋ณต
- ํ๋์ ๋ฐ๋ณต์ 1์์ 3์ฃผ ์ ๋๋ก ๋๋๊ณ ๋ฐ๋ณต๋ค์ ํ๋ก์ ํธ ์ ๋ฐ์ ๊ท ์ผํ๊ฒ ์ ์ง
- XP์ ๋ฐ๋ณต์ ํ๋ก์ธ์ค์ ํ๊ฐ์ ๊ณํ์ ๋จ์ํ๊ณ ์ ๋ขฐ์ฑ ์๊ฒ ๋ง๋๋ ํต์ฌ ํญ๋ชฉ → ๋ฐ๋ณต ๊ณํ ๋ฏธํ
- ์ฌ์ฉ์ ์๊ตฌ์ฌํญ ๋ณ๊ฒฝ, ๊ธฐ์ ์ ์ธ ๋ฌธ์ ๋ฑ ์ํฉ์ ๋ฐ๋ผ ๋ฆด๋ฆฌ์ฆ ๋ฐ ๋ฐ๋ณต ๊ณํ ์์ ๊ฐ๋ฅ
4. Acceptance Test, ์ธ์ ํ ์คํธ
- ๋ฆด๋ฆฌ์ฆ ์ ์ ์ธ์ ํ ์คํธ. ๊ณ ๊ฐ์ด ์ค์ ์ฌ์ฉ์ ํ๊ฒฝ์์ ์ฌ์ฉ์์ ์ ์ฅ์ผ๋ก ํ ์คํธ๋ฅผ ์ํ
5. Small Release, ์๊ท๋ชจ ๋ฆด๋ฆฌ์ฆ
- ์์ ๋ฐฐํฌ๋ XP ์ฃผ๊ธฐ์ ๋ง์ง๋ง ๋จ๊ณ
- ์๊ท๋ชจ๋ก ๋น๋ฒํ๊ฒ ๋ฐฐํฌํ๋ฉด ๊ณ ๊ฐ์๊ฒ ์ฌ๋ฌ ๊ฐ์ง ์ด๋์ ์กฐ๊ธฐ ์ ๊ณต
- ํ๋ก๊ทธ๋จ์ ๋น ๋ฅธ ํผ๋๋ฐฑ์ ์ ๊ณต ๋ฐ์
# ์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ์ ํจ์จ์ ์ผ๋ก ํ๊ธฐ์ํ 12๊ฐ์ง ์ค์ฒ์ฌํญ(Practice)
- Fine scale feedback
- Pair Programming: ํ๋์ ์ปดํจํฐ์ 2๋ช ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋ชจ๋ ์ฝ๋๋ฅผ ์ฝ๋ฉ๊ณผ ๋ฆฌ๋ทฐ ์ญํ ์ ๋ฐ๊ฟ๊ฐ๋ฉฐ ๊ณต๋์์ ์งํ
- Planning Game: ๊ฒ์์ฒ๋ผ ์ ์์ ๊ท์น, ๋ชฉํ๋ฅผ ๋๊ณ ๊ธฐํ์ ์ํ๋ผ
- Test Driven Development: ์ค์ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ๋จ์ ํ ์คํธ๋ถํฐ ์์ฑ ๋ฐ ์ํํ๋ฉฐ, ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋ ์์ฑ
- Whole Team: ๊ฐ๋ฐ ํจ์จ์ ์ํด ๊ณ ๊ฐ์ ํ๋ก์ ํธ ํ์์ผ๋ก ์์ฃผ์ํด
- Continuous process
- Continuous Integration: ์์ ๋น๋ ๋ฐ ๋ฐฐํฌ๊ฐ ๊ฐ๋ฅํ ์ํ๋ก ์ ์ง
- Design Improvement: ๊ธฐ๋ฅ ๋ณ๊ฒฝ ์์ด ์ค๋ณต์ฑ/๋ณต์ก์ฑ ์ ๊ฑฐ, ์ปค๋ฎค๋์ผ์ด์ ํฅ์, ๋จ์ํ, ์ ์ฐ์ฑ ๋ฑ์ ์ํ ์ฌ๊ตฌ์ฑ ์ํ
- Small Releases: ์งง์ ์ฃผ๊ธฐ๋ก ์ฆ์ ๋ฆด๋ฆฌ์ฆ๋ฅผ ํจ์ผ๋ก์จ ๊ณ ๊ฐ์ด ๋ณ๊ฒฝ์ฌํญ์ ๋ณผ ์ ์๊ฒ ํจ
- Shared understanding
- Coding Standards: ์์ค ์ฝ๋ ์์ฑ ํฌ๋งท๊ณผ ๊ท์น๋ค์ ํ์คํ๋ ๊ด๋ก์ ๋ฐ๋ผ ์์ฑ
- Collective Code Ownership: ์์คํ ์ ์๋ ์์ค์ฝ๋๋ ํ์ ๋ชจ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ๋๊ตฌ๋ ์ง ์ธ์ ๋ผ๋ ์์ ๊ฐ๋ฅํจ
- Simple Design: ๊ฐ๋ฅํ ๊ฐ์ฅ ๊ฐ๊ฒฐํ ๋์์ธ ์ํ ์ ์ง
- System Metaphor: ์ต์ข ์ ์ผ๋ก ๊ฐ๋ฐ ๋์ด์ผ ํ ์์คํ ์ ๊ตฌ์กฐ๋ฅผ ๊ธฐ์
- Programmer welfare
- Sustainable Pace: ์ผ์ฃผ์ผ์ 40 ์๊ฐ ์ด์ ์์ ๊ธ์ง, 2์ฃผ ์ฐ์ ์ค๋ฒํ์ ๊ธ์ง
'๐๊ธฐ๋ณธ ์ง์ > CS ๊ธฐ๋ณธ์ง์' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DB ์ธ๋ฑ์ค์์๋ ์ HashTable์ ์ฌ์ฉํ์ง ์์๊น? (0) | 2024.01.10 |
---|---|
๋คํธ์ํฌ L4, L7 ๋ก๋๋ฐธ๋ฐ์ฑ (Load balancing) (0) | 2021.09.08 |
ํธ๋์ญ์ ๊ฒฉ๋ฆฌ์์ค(DB Isolation Level) (0) | 2021.08.10 |
Java์์์ ์๊ณ์์ญ๊ณผ ๋ฐ๋๋ฝ ํด๊ฒฐ (sync, ๋ชจ๋ํฐ) (0) | 2021.07.28 |
I/O์ Sync์ Blocking ๊ทธ๋ฆฌ๊ณ Multiplexing (0) | 2021.07.28 |
๋ธ๋ก๊ทธ์ ์ ๋ณด
JiwonDev
JiwonDev