Awesome
๐ป๐ hacker-laws
๊ฐ๋ฐ์์๊ฒ ์ ์ฉํ ๋ฒ์น, ์ด๋ก , ์์น, ๊ทธ๋ฆฌ๊ณ ํจํด๋ค
<br> <!-- vim-markdown-toc GFM -->-
- ์๋ฌ์ ๋ฒ์น
- ๊นจ์ง ์ ๋ฆฌ์ฐฝ ์ด๋ก
- ๋ธ๋ฃฉ์ค์ ๋ฒ์น
- ์ฝ์จ์ด์ ๋ฒ์น
- ์ปค๋ํ์ ๋ฒ์น
- ๋๋ฐ์ ์ซ์
- ๊ฐ์ ๋ฒ์น
- ๊ตฟํํธ์ ๋ฒ์น
- ํธ๋ฐ์ ๋ฉด๋๋
- ํธํ์คํํฐ์ ๋ฒ์น
- ํํธ๋ฒ์ ๋ฒ์น
- ํ์ดํ ์ฌ์ดํด & ์๋ง๋ผ์ ๋ฒ์น
- ํ์ด๋ผ์ ๋ฒ์น (์์์ ์ธํฐํ์ด์ค์ ๋ฒ์น)
- ์ปค๋ํธ์ ๋ฒ์น
- ๋ฉ์นผํ์ ๋ฒ์น
- ๋ฌด์ด์ ๋ฒ์น
- ๋จธํผ์ ๋ฒ์น / ์๋์ ๋ฒ์น
- ์ค์ปด์ ๋ฉด๋๋
- ํํจ์จ์ ๋ฒ์น
- ์ฑ๊ธํ ์ต์ ํ์ ๋ฒ์น
- ํธํธ์ ๋ฒ์น
- ๋ฆฌ๋์ ๋ฒ์น
- ๋ณต์ก์ฑ ๋ณด์กด์ ๋ฒ์น (ํ ์ฌ๋ฌ์ ๋ฒ์น)
- ํ์ ํ ์ถ์ํ์ ๋ฒ์น
- ์ฌ์ํจ์ ๋ฒ์น
- ์ ๋์ค ์ฒ ํ
- ์คํฌํฐํ์ด ๋ชจ๋ธ
- ์๋ค๋ฌ์ ๋ฒ์น
- ํํด์ ๋ฒ์น
-
- ๋๋ฒํธ์ ๋ฒ์น
- ํ๋ ํ ์ ์๋ฆฌ (80 : 20์ ๋ฒ์น)
- ํผํฐ์ ์๋ฆฌ
- ๊ฒฌ๊ณ ํจ์ ์์น (ํฌ์คํ ์ ๋ฒ์น)
- ์๋ฆฌ๋
- ๋จ์ผ ์ฑ ์ ์์น
- ๊ฐ๋ฐฉ-ํ์ ์์น
- ๋ฆฌ์ค์ฝํ ์นํ ์์น
- ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น
- ์์กด ๊ด๊ณ ์ญ์ ์์น
- DRY ์์น
- KISS ์์น
- YAGNI
- ๋ถ์ฐ ์ปดํจํ ์ ์ค๋ฅ
์๋ก
๊ฐ๋ฐ์ ์ด์ผ๊ธฐํ ๋ ํํ ๋ ผํ๋ ๋ฒ์น๋ค์ด ์์ต๋๋ค. ์ด ์ ์ฅ์๋ ๊ทธ ์ค ๊ฐ์ฅ ๋ณดํธ์ ์ธ ๊ฒ๋ค์ ๋ํ ์ฐธ์กฐ์ ๊ฐ์์ ๋๋ค. ๊ณต์ ์ PR ์ ์ถ ๋ถํ๋๋ ค์!
โ: ์ด ์ ์ฅ์๋ ์ฌ๋ฌ ๋ฒ์น, ์์น, ๊ทธ๋ฆฌ๊ณ ํจํด์ ๊ดํ ์ค๋ช ์ ํฌํจํ๊ณ ์์ง๋ง, ๊ทธ ์ค ์ด๋ค ๊ฒ๋ ์ง์ง ํ๊ณ ์์ง ์์ต๋๋ค. ๊ทธ๊ฒ๋ค์ ์ ์ฉํ์ฌ์ผ ํ ์ง์ ๋ง์ง์ ๋ํด์๋ ์ธ์ ๋ ๋ ผ์์ ์ฌ์ง๊ฐ ์์ผ๋ฉฐ, ๋ํ ๋น์ ์ด ์ด๋ค ์์ ์ ํ๋๋์ ๋ฐ๋ผ์๋ ํฌ๊ฒ ๋ฌ๋ผ์ง๋๋ค.
<br>(์ด ๊ธ์ https://github.com/dwmkerr/hacker-laws ์ ๋ฒ์ญ์ ๋๋ค.)
<br>๋ฒ์น
์๋ฌ์ ๋ฒ์น
์ํคํผ๋์์ ์๋ฌ์ ๋ฒ์น
์๋ฌ์ ๋ฒ์น์ ์์คํ ์ ๋ฆฌ์์ค๋ฅผ ์ถ๊ฐํจ์ผ๋ก์จ ์ป์ ์ ์๋ ์ปดํจํฐ ์์ ์ฑ๋ฅ ํฅ์์ ์ต๋ ํญ์ ๋ํ๋ด์ฃผ๋ ๊ณต์์ด๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ณ๋ ฌ ์ปดํจํ ์์ ์ด๋ฅผ ์ด์ฉํ์ฌ, ํ๋ก์ธ์ ๊ฐ์์ ์ฆ๊ฐ๊ฐ ํ๋ก๊ทธ๋จ ์์ฒด์ ๊ตฌ์กฐ์ ์ธ ๋ณ๋ ฌํ ์ ํ์ ๋ง์ ์ค์ ์ ์ผ๋ก ๊ฐ์ ธ๋ค์ฃผ๋ ์ด๋์ ์์ธกํ ์ ์๋ค.
์์๋ฅผ ์ดํด๋ณด์. ์ด๋ ํ ํ๋ก๊ทธ๋จ์ด ๋จ์ผ ํ๋ก์ธ์๋ก ๊ตฌ๋๋์ด์ผ ํ๋ ๋ถ๋ถ A์ ๋ณ๋ ฌํ๋ ์ ์๋ ๋ถ๋ถ B๋ก ์ด๋ฃจ์ด์ ธ์๋ค๊ณ ํ ๋, ์ฐ๋ฆฌ๋ ํ๋ก์ธ์์ ์ถ๊ฐ์ ์ธ ํฌ์ ์ด ์ ํ๋ ์ด๋๋ง์ ๊ฐ์ ธ๋ค์ค์ ์ ์ ์๋ค. B ๋ถ๋ถ์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ง๋ง, A ๋ถ๋ถ์ ์๋๋ ๊ทธ๋๋ก ๋จ์ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
์๋์ ๊ทธ๋ํ๋ ์ฑ๋ฅ ํฅ์ ๊ฐ๋ฅ์ฑ์ ์์๋ฅผ ๋ณด์ฌ์ค๋ค.
(์ด๋ฏธ์ง ์ถ์ฒ: Daniels220 @์์ด Wikipedia, Creative Commons Attribution-Share Alike 3.0 Unported, https://en.wikipedia.org/wiki/File:AmdahlsLaw.svg)
<br>๋ณด๋ค์ํผ 50%๋ ๋ณ๋ ฌํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์์๋ 10๊ฐ ํ๋ก์ธ์ ์ดํ์๋ ๊ฑฐ์ ์ด๋์ด ์๋ ๋ฐ๋ฉด, 95% ๋ณ๋ ฌํ ๊ฐ๋ฅํ ํ๋ก๊ทธ๋จ์ ์์ฒ ๊ฐ๊ฐ ์ถ๊ฐ๋ ๋๊น์ง๋ ์ ์๋ฏธํ ์ฑ๋ฅ ํฅ์์ ๋ณด์ฌ์ฃผ๊ณ ์๋ค.
๋ฌด์ด์ ๋ฒ์น๊ณผ ๊ฐ๋ณ ํ๋ก์ธ์์ ์ฑ๋ฅ ์ฆ๊ฐ ์๋๊ฐ ์ํ๋๋ฉด์, ๋ณ๋ ฌํ๋ ์ต์ ํ์ ํต์ฌ์ด ๋์๋ค. ๊ทธ๋ํฝ์ค ํ๋ก๊ทธ๋๋ฐ์ด ์ด์ ๋ํ ๊ฐ์ฅ ์๋ง์ ์์์ด๋ค. ์ ฐ์ด๋ ๊ธฐ๋ฐ์ ์ต์ ์ปดํจํ ์์๋ ๊ฐ๋ณ ํฝ์ ํน์ ํ๋๊ทธ๋จผํธ๋ฅผ ๋ณ๋ ฌ๋ก ๋ ๋๋งํ ์ ์๋๋ฐ, ์ด๊ฒ์ด ์ต์ ๊ทธ๋ํฝ ์นด๋๋ค์ด ๋๊ฐ ์์ฒ ๊ฐ์ ์ฝ์ด(GPU ๋๋ ์ ฐ์ด๋ ์ ๋)๋ก ๊ตฌ์ฑ๋ ์ด์ ์ด๋ค.
<br>์ฐธ๊ณ :
<br>๊นจ์ง ์ ๋ฆฌ์ฐฝ ์ด๋ก
์ํคํผ๋์์ ๊นจ์ง ์ ๋ฆฌ์ฐฝ ์ด๋ก
๊นจ์ง ์ ๋ฆฌ์ฐฝ ์ด๋ก ์ ๋ฐ๋ฅด๋ฉด, ๋์ ๋ ๋ ๋ฒ์ฃ์ ํ์ ํน์ ํ๊ฒฝ์ ๋ํ ์ํํจ์ ๋์ฑ ์ฌ๊ฐํ ๋ฒ์ฃ์ ์์ค์ ๊ฐ๊ฐ๋ก ์ด์ด์ง๋ค.
์ด ์ด๋ก ์ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ ์ฉํด๋ณด๋ฉด, ์ง ๋ฎ์ ์ฝ๋(ํน์ ๊ธฐ์ ๋ถ์ฑ)๋ ํ์ง์ ํฅ์ํ๋ ค๋ ๋ ธ๋ ฅ์ด ๋ฌด์๋๊ฑฐ๋ ํ๊ฐ์ ํ๋๋ค๋ ์ธ์์ ์ค ์ ์๊ฒ ๋๊ณ , ๊ฒฐ๊ตญ ๋์ฑ ์กฐ์ ํ ํ์ง์ ์ฝ๋๋ฅผ ๋ณ๊ฒ ๋๋ค. ์ด ํจ๊ณผ๊ฐ ํผ์ง๋ฉฐ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋์ฑ ํฐ ์ง์ ์ ํ๊ฐ ๋ํ๋๊ฒ ๋๋ค.
<br>์ฐธ๊ณ :
<br>์์ :
- The Pragmatic Programming: Software Entropy
- Coding Horror: The Broken Window Theory
- OpenSource: Joy of Programming - The Broken Window Theory
๋ธ๋ฃฉ์ค์ ๋ฒ์น
์ํคํผ๋์์ ๋ธ๋ฃฉ์ค์ ๋ฒ์น
์ง์ฒด๋๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ํ๋ก์ ํธ์ ์ธ๋ ฅ์ ๋ํ๋ ๊ฒ์ ๊ฐ๋ฐ์ ๋ฆ์ถ ๋ฟ์ด๋ค.
์ด ๋ฒ์น์ ์ด๋ฏธ ๋ฆ์ด์ง๊ณ ์๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ๋นจ๋ฆฌํ๊ธฐ ์ํด ์ฌ๋์ ๋ ํฌ์ ํ๋ ๊ฒ์ ๋๋ฆฌ์ด ์์ฑ์ ๋ฆ์ถ ๋ฟ์ด๋ผ๊ณ ๋งํ๋ค. ๋ธ๋ฃฉ์ค๋ ์ด๊ฒ์ ๋น๋ก ๊ทน๋๋ก ๋จ์ํํ ์ด์ผ๊ธฐ์์ ๋ถ๋ช ํ ํ์ผ๋, ๋ค๋ง ์ผ๋ฐ์ ์ผ๋ก ๋ณด์์ ๋ ์์ ํฌ์ ์๊ฐ๊ณผ ์์ฌ์ํต ๋น์ฉ์ผ๋ก ์ธํด ๋จ๊ธฐ์ ์ผ๋ก ์๋๊ฐ ์ค์ด๋ค ์ ์๋ค๊ณ ํ์๋ค. ๋ํ ๋ง์ ์์ ๋ค์ ๋ถํ ํ ์ ์๊ธฐ ๋๋ฌธ์, ์ฆ ์ธ๋ ฅ์ด ๋์ด๋๋ค๊ณ ํ์ฌ ์ฝ๊ฒ ๋ถ๋ฐฐํ ์ ์๊ธฐ ๋๋ฌธ์, ๊ธฐ๋ํ ์ ์๋ ์๋ ์ฆ๊ฐ ์ญ์ ๋ฎ๋ค.
ํํ ๋งํ๋ "์์ฐ๋ถ 9๋ช ์ด ๋ชจ์ฌ๋ ์๊ธฐ๋ฅผ ํ ๋ฌ๋ง์ ๋ณ์ ์๋ ์๋ค"๋ ๊ตฌ์ ์ ๋ธ๋ฃฉ์ค์ ๋ฒ์น ์ค์์๋, ํน์ ์์ ์ ๋๋๊ฑฐ๋ ๋ณ๋ ฌํํ ์ ์์์ ๋น์ ์ ์ผ๋ก ๋ปํ๋ค.
์ด๊ฒ์ ๊ทธ์ ์ ์ '๋งจ๋จผ์ค ๋ฏธ์ '์ ์ฃผ์ํ ์ฃผ์ ์ด๋ค.
<br>์ฐธ๊ณ :
<br>์ฝ์จ์ด์ ๋ฒ์น
์ด ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด ์์คํ ์ ๊ตฌ์กฐ๋ ์ค๊ณํ๋ ์กฐ์ง์ ๊ตฌ์กฐ๋ฅผ ๋ฐ์ํ๋ค. ์ด๊ฒ์ ์กฐ์ง ๊ฐ์ ์ ์๋ํ ๋ ์ข ์ข ์ธ์ฉ๋๊ณ ๋ ํ๋๋ฐ, ๊ฐ๋ น ์กฐ์ง์ด ์ฌ๋ฌ ๊ฐ์ ์๊ณ ๋์ด์ง ๋จ์๋ก ๊ตฌ์ฑ๋์ด ์๋ค๋ฉด ๊ฑฐ๊ธฐ์์ ๋์จ ์ํํธ์จ์ด ๋ํ ๊ทธ ๋ชจ์ต์ ๋ฎ๋๋ค๊ณ ํ๋ค. ๋ํ ๋ง์ฝ ์กฐ์ง์ด ๊ธฐ๋ฅ๊ณผ ์๋น์ค๋ฅผ ์ค์ฌ์ผ๋ก ์์ง์ ์ผ๋ก ์ง์ฌ ์๋ค๋ฉด, ์ด ์ญ์ ์ํํธ์จ์ด๊ฐ ์ด๋ฌํ ๋ชจ์ต์ ๋ฐ์ํ ๊ฒ์ด๋ ๊ฒ์ด๋ค.
<br>์ฐธ๊ณ :
<br>์ปค๋ํ์ ๋ฒ์น
์ธํฐ๋ท์์ ์ฌ๋ฐ๋ฅธ ๋ต์ ์ป๊ธฐ ์ํ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ง๋ฌธ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ์๋ชป๋ ๋ต๋ณ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด๋ค.
์คํฐ๋ธ ๋งฅ๊ธฐ๋์ ๋ฐ๋ฅด๋ฉด, ์๋ ์ปค๋ํ์ 1980๋ ๋ ์ด์ ๊ทธ์๊ฒ ์ด๋ฐ ์กฐ์ธ์ ํด์ฃผ์๋ค : '์ธํฐ๋ท์์ ์ฌ๋ฐ๋ฅธ ๋ต์ ์ป๊ธฐ ์ํ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์ง๋ฌธ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ์๋ชป๋ ๋ต๋ณ์ ์ฌ๋ฆฌ๋ ๊ฒ์ด๋ค'. ๋งฅ๊ธฐ๋๋ ์ด๊ฒ์ ์ปค๋ํ์ ๋ฒ์น์ด๋ผ ์ด๋ฆ ๋ถ์์ง๋ง, ์ ์ ๋ณธ์ธ์ ์ด๋ฅผ ์๋ชป๋ ์ธ์ฉ์ด๋ผ๋ฉฐ ๋ถ์ ํ์๋ค. ์๋๋ ์ ์ฆ๋ท์ ๊ดํ ์ด์ผ๊ธฐ์์ง๋ง ์ด ๋ฒ์น์ ๋ค๋ฅธ ์จ๋ผ์ธ ์ปค๋ฎค๋ํฐ๋ค์ด ์ด๋ป๊ฒ ์์ฉํ๋์ง๋ฅผ ์ค๋ช ํ๋ ๋ฐ์๋ ์ฐ์ด๊ฒ ๋์๋ค(์์ : ์ํคํผ๋์, ๋ ๋ง, ํธ์ํฐ, ํ์ด์ค๋ถ).
<br>์ฐธ๊ณ :
<br>๋๋ฐ์ ์ซ์
์ํคํผ๋์์ ๋๋ฐ์ ์ซ์
"๋๋ฐ์ ์ซ์๋ ํ ์ฌ๋์ด ์์ ์ ์ธ ์ฌํ์ ๊ด๊ณ(ํ ๊ฐ์ธ์ด ๋ค๋ฅธ ์ด๋ค์ ๋ํ์ฌ ๋๊ฐ ๋๊ตฐ์ง ์ ์๋ฉฐ ๊ทธ๋ค ์ฌ์ด์ ๊ด๊ณ๋ ํ์ ํ ์ ์๋ ๊ด๊ณ)๋ฅผ ์ ์งํ ์ ์๋ ์ธ์ง์ ์ต๋์น๋ก์ ์ ์๋ ์์ด๋ค." ์ ํํ ์์น์ ๋ํด์๋ ์๊ฒฌ์ด ๋ถ๋ถํ๋ค. "โฆ(๋๋ฐ๋) ์ธ๊ฐ์ ์ค์ง 150๋ช ๊น์ง์ ์์ ์ ์ธ ๊ด๊ณ๋ง์ ํธ์ํ ์ ์งํ ์ ์๋ค"๊ณ ์ฃผ์ฅํ์๋ค. ๊ทธ๋ ์ข ๋ ์ฌํ์ ์ธ ๋งฅ๋ฝ์์ ๋งํ๊ธธ, "๋ฐ์์ ์ฐ์ฐํ ๋ง๋ฌ์ ๋ ์ด์ํ์ง ์๊ฒ ๊ฐ์ด ์ ์ ๋ง์ค ์ ์๋ ์ฌ๋์ ์"๋ผ๊ณ ํ์๋ค. ์ผ๋ฐ์ ์ผ๋ก 100์์ 250 ์ฌ์ด๋ผ๊ณ ์ถ์ ํ๋ค.
๊ฐ๊ฐ์ธ ๊ฐ์ ์์ ์ ์ธ ๊ด๊ณ์ฒ๋ผ, ๊ฐ๋ฐ์์ ์ฝ๋๋ฒ ์ด์ค์ ๊ด๊ณ๋ ์ ์งํ๋ ค๋ฉด ๋ ธ๋ ฅ์ด ๋ ๋ค. ํฌ๊ณ ๋ณต์กํ ํ๋ก์ ํธ ํน์ ์ฌ๋ฌ ํ๋ก์ ํธ๋ฅผ ๋ง์ฃผํ ๋, ์ฐ๋ฆฌ๋ ๊ท๋ชจ๋ฅผ ํ์ฅํ๊ธฐ ์ํด ๊ด๋ก, ์ ์ฑ , ๊ทธ๋ฆฌ๊ณ ๋ง๋ค์ด์ง ์ ์ฐจ๋ฅผ ๋ฐ๋ฅธ๋ค. ๋๋ฐ์ ์ซ์๋ ์ฌ๋ฌด์ค์ด ์ปค์ง ๋๋ง ์ผ๋ํด๋ ๊ฒ์ด ์๋๋ผ ํ์ด ๋ค์ผ ๋ ธ๋ ฅ์ ๋ฒ์๋ฅผ ์ผ๋ง๋๋ก ํ ์ง, ์ธ์ ๋ชจ๋ธ๋ง๊ณผ ๊ณํ ์๋ํ ํด์ ํฌ์ํ ์ง ๋ฑ์ ์ ํ๋ ๋ฐ์๋ ์ค์ํ๋ค. ์์ง๋์ด๋ง ์ธก๋ฉด์์ ๋ณด๋ฉด, ์ด ์ซ์๋ ๋น์ง(On-call : ์์คํ ์ฅ์ ๋ฐ์์ ๋๋นํ์ฌ ๋๊ธฐํจ)์ผ๋ก ์ค ์ ์๋ ํ๋ก์ ํธ์ ์์ด๋ค.
<br>์ฐธ๊ณ :
<br>๊ฐ์ ๋ฒ์น
์ ์๋ํ๋ ๋ณต์กํ ์ฒด๊ณ๋ ํญ์ ์ ์๋ํ๋ ๊ฐ๋จํ ์ฒด๊ณ์์ ๋ฐ์ ํ๋ค. ์ฒ์๋ถํฐ ๋ณต์กํ๊ฒ ์ค๊ณ๋ ์ฒด๊ณ๋ ์ ๋๋ก ์๋ํ์ง ์์ผ๋ฉฐ ์ ๋์๊ฐ๋๋ก ๋ง๋ค ์๋ ์๋ค. ์ธ์ ๋ ์๋ํ๋ ๊ฐ๋จํ ์์คํ ์์ ์ถ๋ฐํด์ผ ํ๋ค.
(์กด ๊ฐ)
๊ฐ์ ๋ฒ์น์ ๊ณ ๋๋ก ๋ณต์กํ ์์คํ ์ ์ค๊ณ ํ๋ ค๋ ์๋๋ ๋๊ฐ ์คํจํจ ์์ํ๋ค. ๊ณ ๋๋ก ๋ณต์กํ ์ฒด๊ณ๋ ํ๋ฃจ์์นจ์ ์ด๋ฃจ์ด์ง ๊ฒ์ด ์๋๋ผ, ๋ ๊ฐ๋จํ ์ฒด๊ณ๋ก๋ถํฐ ์งํํ ๊ฒ์ด๋ค.
๊ณ ์ ์ ์ธ ์์๋ ์๋ ์์ด๋ ์น์ด๋ค. ํ์ฌ์ ์น์ ์ํ๋ ๊ต์ฅํ ๋ณต์กํ๋ค. ๊ทธ๋ฌ๋ ์ฒ์์๋ ๊ทธ์ ํ์ ๊ธฐ๊ด ๊ฐ์ ๊ฐํธํ ์ปจํ ํธ ๊ณต์ ์์คํ ์ผ๋ก์ ์์ํ์ ๋ฟ์ด๋ค. ์ด๋ฌํ ๋ชฉ์ ์ ์ฑ๊ณต์ ์ผ๋ก ๋ฌ์ฑํ์๊ธฐ ๋๋ฌธ์ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๋ณต์กํ ์์คํ ์ผ๋ก ์งํํ ์ ์์๋ค.
<br>์ฐธ๊ณ :
<br>๊ตฟํํธ์ ๋ฒ์น
The Goodhart's Law on Wikipedia
๊ด์ธก๋ ํต๊ณ์ ๊ท์น์ฑ์ ๊ทธ๊ฒ์ ์กฐ์ข ํ ๋ชฉ์ ์ผ๋ก ๊ฐ์ ํ ๊ฒฝ์ฐ ์ฌ๋ผ์ ธ๋ฒ๋ฆฌ๋ ๊ฒฝํฅ์ด ์๋ค.
์ฐฐ์ค ๊ตฟํํธ
์ข ์ข ์ด๋ ๊ฒ๋ ์ธ์ฉ๋๊ณ ๋ ํ๋ค :
์งํ๊ฐ ๋ชฉํ๊ฐ ๋๋ฉด, ๋ ์ด์ ์ข์ ์งํ๊ฐ ์๋๊ฒ ๋๋ค.
๋ง๋ฆด๋ฆฐ ์คํธ๋๋
์ด ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด ์งํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ์ต์ ํ๋ ์ธก์ ๋ ๊ฒฐ๊ณผ ์์ฒด์ ํ๊ฐ ์ ํ๋ก ์ด์ด์ง๋ค. ๊ณผ๋ํ๊ฒ ์ ์ ๋ ํ๋ณธ ์งํ(ํต์ฌ ์ฑ๊ณผ ์งํ)๋ฅผ ๋ฌด์์ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ์ ์ ์ฉํ๋ ๊ฒ์ ์๊ณก๋ ํจ๊ณผ๋ฅผ ๋ณ๋๋ค. ์ฌ๋๋ค์ ํ์๋ก ์ธํ ์ ์ฒด์ ์ธ ๊ฒฐ๊ณผ์ ์ฃผ๋ชฉํ๋ ๋์ , ํน์ ์์น๋ฅผ ๋ง์กฑ์ํค๊ธฐ ์ํด ์์คํ ์ "๊ฒ์ํ"ํจ์ผ๋ก์จ ๊ตญ์์ ์ผ๋ก๋ง ์ต์ ํํ๋ ๊ฒฝํฅ์ด ์๋ค.
<br>์ค์ ์ฌ๋ก :
-
Assert๊ฐ ์๋ ํ ์คํธ๋ ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง๋ ๋์ง๋ง, ์ ํ ์คํธ๋ ์ํํธ์จ์ด์ ์์ฑ์ด๋ผ๋ ๋ชฉ์ ์ ๋ฒ์ด๋๋ค.
-
์์ฑํ ๋ผ์ธ ์๋ก ๊ฐ๋ฐ์ ํผํฌ๋จผ์ค๋ฅผ ์ธก์ ํ ๊ฒฝ์ฐ, ์ฝ๋๋ฒ ์ด์ค๋ ๋ฐ์๋ค์ผ ์ ์๋ ์์ค์ผ๋ก ๋ถ์ด๋๋ค.
<br>
์ฐธ๊ณ :
ํธ๋ฐ์ ๋ฉด๋๋
์ํคํผ๋์์ ํธ๋ฐ์ ๋ฉด๋๋
์ด๋ฆฌ์์์ผ๋ก ์ถฉ๋ถํ ์ค๋ช ์ด ๋๋ ์ผ์ ์ ์์ ํ์ผ๋ก ๋๋ฆฌ์ง ๋ง๋ผ.
โ ๋ก๋ฒํธ J. ํธ๋ฐ
์ด ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด ๋ถ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ๋ณ๋ ํ๋์ ์ ์๋ก๋ถํฐ ๋น๋กฏ๋ ๊ฒ์ด๋ผ๊ธฐ๋ณด๋ค๋, ํ๋๊ณผ ๊ทธ๊ฒ์ด ๋ถ๋ฌ์ฌ ํ์ฅ์ ๋ํ ๋ชฐ์ดํด ๋๋ฌธ์ด๋ค.
<br>ํธํ์คํํฐ์ ๋ฒ์น
์ค๋ น ํธํ์คํํฐ์ ๋ฒ์น์ ๊ณ ๋ คํ๋๋ผ๋, ์ผ์ ๋ง์น๋ ๊ฑด ์ธ์ ๋ ์์๋ณด๋ค ์ค๋ ๊ฑธ๋ฆฐ๋ค.
โ ๋๊ธ๋ผ์ค ํธํ์คํํฐ
๋ฌด์ธ๊ฐ๊ฐ ์ผ๋ง๋ ๊ฑธ๋ฆด์ง ์ง์ํ ๋ ์ด ๋ฒ์น์ ์ธ์ฉํ๋ ๊ฒ์ ๋ค์ ์ ์์์ง ๋ชจ๋ฅธ๋ค. ๋ปํ ๋ง ๊ฐ์ง๋ง, ์ฐ๋ฆฌ๋ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํจ์ ์์ด ๊ฒฐ๊ณผ๋ฅผ ๋ด๋๊ธฐ๊น์ง์ ๊ธฐ๊ฐ์ ์์ํ๋ ๊ฒ์ ๊ทธ๋ค์ง ๋ฅํ์ง ์๋ค.
์ด๋ '๊ดด๋ธ, ์์ , ๋ฐํ : ์์ํ ํฉ๊ธ ๋ ธ๋'์์ ๋์จ ๋ง์ด๋ค.
<br>์ฐธ๊ณ :
<br>ํํธ๋ฒ์ ๋ฒ์น
๊ฐ์ ์ ์ ํ๋ฅผ ์๋ฏธํ๋ค.
์ด ๋ฒ์น์ ์ฃผ์ฅ์ ๋ฐ๋ฅด๋ฉด ์์คํ ์ ๊ฐ์ ์ ๋ค๋ฅธ ๋ถ๋ถ์ ์ ํ๋ก ์ด์ด์ง๊ฑฐ๋ ๋ค๋ฅธ ์ ํ๋ฅผ ์จ๊ฒจ, ํ ์ํ๋ก๋ถํฐ ์ ์ฒด์ ์ธ ์ง์ ์ ํ๋ฅผ ๋ถ๋ฌ์ค๊ฒ ๋๋ค.
์๋ฅผ ๋ค์ด ํน์ ์๋ ํฌ์ธํธ์ ์๋ต ์๊ฐ ๊ฐ์๋ก ์ธํด ์์ฒญ ํ๋ฆ์ ์์ด์ ์ค๋ฃจํ๊ณผ ์ฉ๋ ์ด์๊ฐ ๋์ด๋ ์ ์๊ณ , ์ด๋ ์ ํ ๋ค๋ฅธ ๋ถ๋ถ์ ์ํฅ์ ๋ผ์น ์ ์๋ค.
<br>ํ์ดํ ์ฌ์ดํด & ์๋ง๋ผ์ ๋ฒ์น
์ํคํผ๋์์ ํ์ดํ ์ฌ์ดํด
์ฐ๋ฆฌ๋ ์๋ก์ด ๊ธฐ์ ์ ํจ๊ณผ๋ฅผ ๋จ๊ธฐ์ ์ผ๋ก๋ ๊ณผ๋ํ๊ฐํ๊ณ , ์ฅ๊ธฐ์ ์ผ๋ก๋ ๊ณผ์ํ๊ฐํ๋ ๊ฒฝํฅ์ด ์๋ค.
โ ๋ก์ด ์๋ง๋ผ
ํ์ดํ ์ฌ์ดํด์ ๋ฏธ๊ตญ์ ์ ๋ณด ๊ธฐ์ ์ฐ๊ตฌ ๋ฐ ์๋ฌธ ํ์ฌ์ธ ๊ฐํธ๋์์ ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ฅธ ๊ธฐ์ ์ ๋ํ ๊ธฐ๋์ ์ฑ์๋๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ํ๋ธ ๊ฒ์ด๋ค.
<br>(์ด๋ฏธ์น ์ถ์ฒ: Jeremykemp @์์ด Wikipedia, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=10547051)
<br>์ฆ, ์ด ์ฌ์ดํด์ ๋ฐ๋ฅด๋ฉด ๋๊ฐ ์ ๊ธฐ์ ๊ณผ ๊ทธ ์ ๋ง์ ๋ํ์ฌ ๊ฑฐํ์ด ์ด๋ฐ๋๋ค. ์ด๋ ๋ง์ ํ๋ค์ ๋๋ฌด ๋น ๋ฅด๊ฒ ๋ฐ์ด๋ค์๋ค๊ฐ ๊ฒฐ๊ณผ๋ฌผ์ ์ข ์ข ์ค๋งํ๊ณ ๋ ํ๋ค. ์ด๊ฒ์ ์ด์ฉ๋ฉด ๊ธฐ์ ์ด ์์ง ๋ ์ฑ์ํ๊ธฐ ๋๋ฌธ์ด๊ฑฐ๋, ํน์ ์ค์ ์ธ๊ณ์์ ์ ์ฉ์ด ๋ ์ด๋ฃจ์ด์ก๊ธฐ ๋๋ฌธ์ผ ๊ฒ์ด๋ค.
ํน์ ์์ ์ด ์ง๋๊ณ ๋๋ฉด ๊ธฐ์ ์์ฒด์ ์ญ๋๊ณผ ์ค์ ์ ์ธ ์ ์ฉ์ ๊ธฐํ๊ฐ ๋์ด๋๊ณ , ๋ง์นจ๋ด ์์ฐ์ฑ์ ์ป์ ์ ์๊ฒ ๋๋ค. ๋ก์ด ์๋ง๋ผ๋ ์ด๋ฅผ ๊ฐ์ฅ ๊ฐ๊ฒฐํ ๋ฌธ์ฅ์ผ๋ก ์ ๋ฆฌํ์๋ค. "์ฐ๋ฆฌ๋ ์๋ก์ด ๊ธฐ์ ์ ํจ๊ณผ๋ฅผ ๋จ๊ธฐ์ ์ผ๋ก๋ ๊ณผ๋ํ๊ฐํ๊ณ , ์ฅ๊ธฐ์ ์ผ๋ก๋ ๊ณผ์ํ๊ฐํ๋ ๊ฒฝํฅ์ด ์๋ค".
<br>ํ์ด๋ผ์ ๋ฒ์น (์์์ ์ธํฐํ์ด์ค์ ๋ฒ์น)
API์ ์ถฉ๋ถํ ์์ ์ ์ ๊ฐ ์๋ค๋ฉด,
๋ช ์ธ์์ ์ง์ ๋ ๊ฒ์ ์๋ฌด๋ฐ ์๊ด์ด ์๋ค:
์์คํ ์์ ๊ด์ธก๋ ์ ์๋ ๋ชจ๋ ํ๋ ์์์
๋ค๋ฅธ ์ด๋ค์๊ฒ ๋ฌ๋ ค์์ ๊ฒ์ด๋ค.
โ ํ์ด๋ผ ๋ผ์ดํธ
ํ์ด๋ผ์ ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด API์ ์ถฉ๋ถํ ๋ง์ ์์ ์๋น์๊ฐ ์์ ๋, API์ ๋ชจ๋ ํ๋ ์์์ ๊ถ๊ทน์ ์ผ๋ก ๋ช ์ธ์ ์๋ ์ ์๊ฐ ์๋ ์๋ ๋ค๋ฅธ ๋๊ตฐ๊ฐ์๊ฒ ๋ฌ๋ ค์๊ฒ ๋๋ค. ๊ฐ๋จํ ์์๋ฅผ ๋ค์๋ฉด ๊ฐ๋ น API์ ์๋ต ์๊ฐ๊ณผ๋ ๊ฐ์ ๋นํจ์์ ์์๋ค์ด๋ค. ์ข ๋ ๊ตฌ์ฒด์ ์ธ ์์๋ ์๋ฌ ๋ฉ์ธ์ง์ ์ ๊ท ํํ์์ ์ด์ฉํ์ฌ API์ ์๋ฌ์ ํ์ ์ ์์๋ด๋ ์๋น์๋ค์ ๋ค ์ ์๋ค. API์ ๊ณต๊ฐ ๋ช ์ธ์์๋ ๋ฉ์ธ์ง์ ๋ด์ฉ์ ๊ดํ์ฌ์ ์๋ฌด ๊ฒ๋ ์๋ ค์ฃผ์ง ์์ผ๋ฉฐ ๋์ ์๋ฌ ์ฝ๋๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค๊ณ ํ๊ณ ์๋๋ผ๋, ์ด๋ค ์ ์ ๋ค์ ๋ฉ์ธ์ง๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ฉ์ธ์ง์ ๋ด์ฉ์ ๋ณ๊ฒฝํ์ฌ API๋ฅผ ์ฌ์ค์ ๋ถ๊ดด์ํฌ ์ ์๋ค.
<br>์ฐธ๊ณ :
<br>์ปค๋ํธ์ ๋ฒ์น
์ ์ด์ ๋๋ฒ๊น ์ด๋ ์ฝ๋ ์์ฑ๋ณด๋ค ๋ ๋ฐฐ๋ ๋ ์ด๋ ต๋ค. ๊ทธ๋ฌ๋ฏ๋ก ๋ง์ฝ ์ฝ๋๋ฅผ ๊ฐ๋ฅํํ ์๋ฆฌํ๊ฒ ์์ฑํ๋ค๋ฉด, ๋น์ ์ ๋๋ฒ๊ทธ๋ฅผ ํ๊ธฐ์๋ ์ญ๋ถ์กฑ์ด๋ค.
(๋ธ๋ผ์ด์ธ ์ปค๋ํธ)
์ปค๋ํธ์ ๋ฒ์น์ ๋ธ๋ผ์ด์ธ ์ปค๋ํธ์ ์ด๋ฆ์ ๋ฐ๋ผ ์ง์์ผ๋ฉฐ, ๊ทธ์ ํ๋ผ์ฐ๊ฑฐ์ ์ ์ The Elements of Programming Style์์ ์ ๋ํ์๋ค :
๋๋ฒ๊น ์ด ํ๋ก๊ทธ๋จ ์์ฑ๋ณด๋ค ๋ ๋ฐฐ๋ ์ด๋ ต๋ค๋ ๊ฒ์ ๋ชจ๋๋ค ์๋ค. ๋ฐ๋ผ์ ๋ง์ฝ ๋น์ ์ด ์ต๋ํ ์๋ฆฌํ๊ฒ ์ฝ๋๋ฅผ ์ด๋ค๋ฉด ๋๋ฒ๊ทธ๋ ์ด๋ป๊ฒ ํ ๊ฒ์ธ๊ฐ?
๊ณผ์ฅ๋๊ธด ํ์ง๋ง, ์ปค๋ํธ์ ๋ฒ์น์ ์ฃผ์ฅ์ ๋ณต์กํ ์ฝ๋์์ ์ผ์ด๋๋ ๋ฌธ์ ๋ค์ ๊ณ ์น๊ธฐ ๋งค์ฐ ์ด๋ ต๊ฑฐ๋ ์ฌ์ง์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ๋จ์ํ ์ฝ๋๊ฐ ๋ซ๋ค๋ ๊ฒ์ด๋ค.
<br>์ฐธ๊ณ :
<br>๋ฉ์นผํ์ ๋ฒ์น
์ํคํผ๋์์ ๋ฉ์นผํ์ ๋ฒ์น
๋คํธ์ํฌ ์ด๋ก ์์, ๋ง์ ๊ฐ์น๋ ๋๋ต ์ฌ์ฉ์ ์์ ์ ๊ณฑ์ ๋น๋กํ๋ค.
์ด ๋ฒ์น์ ์์คํ ์์ ๊ฐ๋ฅํ ์ฐ๊ฒฐ์์ ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์์ผ๋ฉฐ [๋ฆฌ๋์ ๋ฒ์น](#๋ฆฌ๋์ ๋ฒ์น)๊ณผ ๋ง์ ๊ด๋ จ์ด ์๋ค. ๊ทธ๋ฌ๋ ์ค๋ค๋ฆฌ์ฆ์ฝ๋ฅผ ๋น๋กฏํ ๋ค๋ฅธ ์ด๋ค์, [๋ฆฌ๋์ ๋ฒ์น](#๋ฆฌ๋์ ๋ฒ์น)๊ณผ ๋ฉ์นผํ์ ๋ฒ์น ๋ ๋ชจ๋ ๋คํธ์ํฌ ํจ๊ณผ์ ์์ด ์ธ๊ฐ์ ์ธ์ง๋ฅผ ๊ณ ๋ คํ์ง ์์์ผ๋ก์จ ๊ฐ์น๋ฅผ ๋๋ฌด ๋๊ฒ ์ก์๋ค๊ณ ๋ฐ๋ฐํ์๋ค. ๋๋ฐ์-์ซ์ ์ฐธ๊ณ .
<br>์ฐธ๊ณ :
<br>๋ฌด์ด์ ๋ฒ์น
์ํคํผ๋์์ ๋ฌด์ด์ ๋ฒ์น
์ง์ ํ๋ก์ ํธ๋์ง์คํฐ ์๋ ๋๋ต 2๋ ๋ง๋ค 2๋ฐฐ๊ฐ ๋๋ค.
๋ฐ๋์ฒด์ ๊ธฐํ ๊ธฐ์ ์ ๊ฐํ๋ฅธ ์ฑ์ฅ ์๋๋ฅผ ์ค๋ช ํ๊ธฐ ์ํ ๋ฌด์ด์ ์์ธก์ 1970๋ ๋๋ถํฐ 2000๋ ๋ ํ๋ฐ๊น์ง ๊ต์ฅํ ์ ํํ ๊ฒ์ผ๋ก ๋๋ฌ๋ฌ๋ค. ์ต๊ทผ์๋ ๋ถํ ์ํํ์ ๋ฌผ๋ฆฌ์ ํ๊ณ๋ก ์ธํ์ฌ ์ฝ๊ฐ ๋ํ๋๊ธด ํ์์ง๋ง ๋ง์ด๋ค. ํ์ง๋ง ๋ณ๋ ฌํ์ ๋ฐ๋์ฒด ๊ธฐ์ ์ ํ์ ์ ๋ณํ์ ๋ํ ๊ฐ๋ฅ์ฑ, ๊ทธ๋ฆฌ๊ณ ์์ ์ปดํจํ ์ ๋ฌด์ด์ ๋ฒ์น์ด ํฅํ ๋ช ์ญ ๋ ๊ฐ์๋ ๋ค์ด๋ง์ ์ ์์์ ์๋ฏธํ ์๋ ์๋ค.
<br>๋จธํผ์ ๋ฒ์น / ์๋์ ๋ฒ์น
์ํคํผ๋์์ ๋จธํผ์ ๋ฒ์น
์๋ชป๋ ์ ์๋ ์ผ์ ์๋ชป๋ ๊ฒ์ด๋ค.
์๋์๋ A. ๋จธํผ, Jr์ ๋จธํผ์ ๋ฒ์น ์ ๋ฐ๋ฅด๋ฉด ๋ฌด์ธ๊ฐ๊ฐ ์๋ชป๋ ์ ์๋ค๋ฉด, ๊ทธ๊ฒ์ ์๋ชป๋ ๊ฒ์ด๋ค.
์ด๋ ๊ฐ๋ฐ์๋ค ์ฌ์ด์์ ํํ ๊ฒฉ์ธ์ด๋ค. ๋๋ก๋ ๊ฐ๋ฐ ์, ํ ์คํ ๋, ์ฌ์ง์ด ํ๋ก๋์ ๋จ๊ณ์์ ์์์น ๋ชปํ ์ผ์ด ๋ฐ์ํ๋ค. ์ด๋ (์๊ตญ์์๋ ๋ ํํ) ์๋์ ๋ฒ์น ๊ณผ ๊ด๋ จ์ด ์๋ค:
๋ง์ฝ ๋ฌด์ธ๊ฐ๊ฐ ์๋ชป๋ ์ ์๋ค๋ฉด, ๊ทธ๊ฒ์ ๊ฐ์ฅ ์ ์ข์ ๋์, ์๋ชป๋ ๊ฒ์ด๋ค.
์ด '๋ฒ์น'๋ค์ ๋๊ฐ ๋๋ด์ฒ๋ผ ์ด์ผ๊ธฐ๋๋ค. ๊ทธ๋ฌ๋, ํ์ฆํธํฅ ์ด๋ ์ ํํธํฅ ๊ณผ๋ ๊ฐ์ ํ์๋ค์ ์ด ๋ฒ์น๋ค์ ๊ณผ๋ํ๊ฒ ๋ฏฟ๊ฒ ๋ง๋ค ์ ์๋ค(์ ๋๋ ๋๋ถ๋ถ์ ๊ฒฝ์ฐ๋ ์ธ์งํ์ง ๋ชปํ๋ ์คํจ๋ ์๊ธฐ ์ฝ๊ณ ๋์ฑ ๋์ ๋ ๊ธฐ ๋๋ฌธ์).
<br>์ฐธ๊ณ :
<br>์ค์ปด์ ๋ฉด๋๋
์ํคํผ๋์์ ์ค์ปด์ ๋ฉด๋๋
์ค์ฒด๊ฐ ํ์ ์ด์์ผ๋ก ๋์ด๋๋ฉด ์ ๋๋ค.
์ค์ปด์ ์๋ฆฌ์
์ค์ปด์ ๋ฉด๋๋ ์ ์ฌ๋ฌ ๊ฐ๋ฅํ ํด๊ฒฐ์ฑ ์ค์์, ๊ฐ์ฅ ๊ทธ๋ด ๋ฏํ ๊ฒ์ ๊ฐ์ฅ ์ ์ ๊ฐ๋ ๊ณผ ๊ฐ์ ์ด ํ์ํ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ค. ๊ทธ ํด๊ฒฐ์ฑ ์ด ๊ฐ์ฅ ๋จ์ํ๋ฉฐ ์ค์ง ์ฃผ์ด์ง ๋ฌธ์ ๋ง์ ํด๊ฒฐํ๊ณ , ๋ณต์ก์ฑ์ ์ผ๊ธฐํ๊ฑฐ๋ ๋ถ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ์ง ์๋๋ค.
<br>์ฐธ๊ณ :
<br>์์ :
<br>ํํจ์จ์ ๋ฒ์น
์์ ์ ๋จ์ ๊ธฐํ์ ์ฑ์ธ ๋๊น์ง ๋์ด๋๋ค.
์๋ ๋งฅ๋ฝ์์ ์ด ๋ฒ์น์ ๊ด๋ฃ์ ์ ๋ํ ์ฐ๊ตฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๊ณ ์๋ค. ์ํํธ์จ์ด ๊ฐ๋ฐ ๊ณํ์์๋ ๋น๊ด์ ์ผ๋ก ์ ์ฉ๋ ์ ์๋๋ฐ, ๊ฐ๋ฐ์๋ค์ ๊ธฐํ์ด ๋ค๊ฐ์ค๊ธฐ ์ ์๋ ํจ์จ์ ์ด์ง ๋ชปํ๋ค๊ฐ ๊ธฐํ์ด ๊ฐ๊น์์ง๋ฉด ๊ธํ๊ฒ ์ผ์ ํ๊ฒ ๋๋ฏ๋ก ๊ฒฐ๊ตญ ์ค์ ์ ์ธ ๋ฐ๋๋ผ์ธ์ ํ๋ฆฟํ๊ฒ ํ๋ค.
๋ง์ผ ์ด ๋ฒ์น์ด ํธํ์คํํฐ์ ๋ฒ์น๊ณผ ๊ฒฐํฉ๋๋ค๋ฉด, ๋์ฑ ๋น๊ด์ ์ธ ๊ด์ ์ ๋๋ฌํ ์ ์๋ค. ์์ ์ ๋จ์ ์๊ฐ์ ์ฑ์ฐ๊ธฐ ์ํด ๋์ด๋๋ฉด์๋ ์์ ๋ ์๊ฐ๋ณด๋ค ๊ธธ์ด์ง๊ธฐ๊น์ง ํ ๊ฒ์ด๋ค.
<br>์ฐธ๊ณ :
<br>์ฑ๊ธํ ์ต์ ํ์ ๋ฒ์น
Premature Optimization on WikiWikiWeb
์ฑ๊ธํ ์ต์ ํ๋ ๋ชจ๋ ์ ์ ๊ทผ์์ด๋ค.
๋๋๋ ์ปค๋์ค์ ๋ ผ๋ฌธ Goto๋ฌธ์ ์ด์ฉํ ๊ตฌ์กฐ์ ํ๋ก๊ทธ๋๋ฐ์ ๋ฐ๋ฅด๋ฉด, "ํ๋ก๊ทธ๋๋จธ๋ค์ ํ๋ก๊ทธ๋จ์์ ์ค์ํ์ง ์์ ๋ถ๋ถ์ ์ต์ ํํ๋ ๊ฒ์ ์๊ฐํ๊ณ ๋ ๊ฑฑ์ ํจ์ผ๋ก์จ ์ด๋ง์ด๋งํ ์๊ฐ์ ๋ญ๋นํ๋๋ฐ, ์ด๋ฐ ์๋๋ ๋๋ฒ๊น ์ด๋ ์ ์ง๋ณด์๋ฅผ ๊ณ ๋ คํ๋ฉด ์คํ๋ ค ํจ์จ์ฑ์ ๋ง๋ํ๊ฒ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ผ์น๋ค. ์ฐ๋ฆฌ๋ ๊ฐ๋ น 97% ์ ๋์ ๊ฒฝ์ฐ์, ์์ ๋ถ๋ถ์ ํจ์จ์ฑ์ ๊ดํ์ฌ ์๊ฐํ์ง ์์์ผ ํ๋ค : ์ฑ๊ธํ ์ต์ ํ๋ ๋ชจ๋ ์ ์ ๊ทผ์์ด๋ค. ๊ทธ๋ฌ๋ ๋๋จธ์ง ๊ฒฐ์ ์ ์ธ 3%์ ๊ฒฝ์ฐ์๊น์ง ๊ธฐํ๋ฅผ ์ ๋ฒ๋ฆฌ๋ฉด ์ ๋๋ค."
์ฑ๊ธํ ์ต์ ํ ๋ (์ข์ ์๋ฏธ๋ก) ๊ทธ๊ฒ์ด ๊ผญ ํ์ํ์ง ์๊ธฐ ์ ์ ํํด์ง๋ ์ต์ ํ๋ผ๊ณ ํ ์ ์๋ค.
<br>ํธํธ์ ๋ฒ์น
๊ธฐ์ ์, ์์ ์ด ๊ด๋ฆฌํ์ง ์๋ ๊ฒ๋ค์ ์ดํดํ๋ ์๋ค๊ณผ, ์์ ์ด ๊ด๋ฆฌํ๋ ๊ฒ๋ค์ ์ดํดํ์ง ๋ชปํ๋ ์๋ค ๋ ๊ฐ์ง ๋ถ๋ฅ์ ์ฌ๋๋ค์ ์ํด ์ง๋ฐฐ๋๋ค.
ํธํธ์ ๋ฒ์น์๋ ์ข ์ข ๋ค์ ํธํธ์ ๊ท๊ฒฐ์ด ๋ฐ๋ผ๋ถ๋๋ค:
๋ชจ๋ ๊ธฐ์ ์กฐ์ง์ ๊ณ๊ธ์์๋ ์๊ฐ์ด ํ๋ฅด๋ฉด์ ์ญ๋์ ์ญ์ ์ด ์ผ์ด๋๋ค.
์ด ๋ฌธ๊ตฌ์ ๋ฐ๋ฅด๋ฉด ์กฐ์ง ๊ตฌ์ฑ๋ก ์ ๋ํ ์ฌ๋ฌ ๊ฐ์ง ์ ํ ๊ธฐ์ค๊ณผ ์ ํ ๋ณํ์ ๋ฐ๋ผ์, ์กฐ์ง์๋ ์ฌ๋ฌ ๋ช ์ ์๋ จ๋ ๋ ธ๋ ๊ณ์ธต๊ณผ ์์ ๋ค์ด ๊ด๋ฆฌํ๋ ์ผ์ ๋ณต์ก๋์ ์ด๋ ค์์ ๋ชจ๋ฅด๋ ์ฌ๋ฌ ๋ช ์ ๊ด๋ฆฌ์ง์ด ์๊ธฐ๊ฒ ๋๋ค. ์ด๊ฒ์ ํผํฐ์ ์๋ฆฌ ํน์ ๋๋ฒํธ์ ๋ฒ์น๊ณผ๋ ๊ฐ์ ํ์ ๋๋ฌธ์ด๋ค.
๋ค๋ง ์ด๋ฐ ๋ฅ์ ๋ฒ์น์์ ์์ง ๋ง์์ผ ํ ์ ์ ์ด๋ฌํ ๋ชจํธํ ์ผ๋ฐํ๋ ์ผ๋ถ ์กฐ์ง์๋ ์ ์ฉ๋ ์๋ ์์ผ๋, ๋๋จธ์ง์๋ ์๋๋ผ๋ ์ ์ด๋ค.
<br>์ฐธ๊ณ :
<br>๋ฆฌ๋์ ๋ฒ์น
๊ฑฐ๋ํ ๋คํธ์ํฌ, ํนํ ์์ ๋คํธ์ํฌ์ ํจ์ฉ์ ๋ง์ ํฌ๊ธฐ์ ๋ํด ์ง์์ ์ผ๋ก ์ฆ๊ฐํ๋ค.
์ด ๋ฒ์น์ ๊ทธ๋ํ ์ด๋ก ์ ๊ธฐ๋ฐํ๋๋ฐ, ์ด์ ๋ฐ๋ฅด๋ฉด ๋ง์ ํจ์ฉ์ ์ฐธ์ฌ์ ๊ตฐ์ ๋ถ๋ถ์งํฉ์ ์์ ๋น๋กํ๋ค. ์ด๊ฒ์ ๋ง์ ์ฐธ์ฌ์์ ์ ํน์ ๊ฐ๋ฅํ ์ฐ๊ฒฐ์์ ์๋ณด๋ค ๋งค์ฐ ๋น ๋ฅธ ์๋๋ก ์ฆ๊ฐํ๋ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์ค๋ค๋ฆฌ์ฆ์ฝ๋ฅผ ๋น๋กฏํ ๋ค๋ฅธ ์ด๋ค์ ์ด ๋ฒ์น์ด ๋คํธ์ํฌ ํจ๊ณผ์ ์์ด ์ธ๊ฐ์ ์ธ์ง๋ฅผ ๊ณ ๋ คํ์ง ์์์ผ๋ก์จ ๊ฐ์น๋ฅผ ๋๋ฌด ๋๊ฒ ์ก์๋ค๊ณ ๋ฐ๋ฐํ์๋ค. ๋๋ฐ์-์ซ์ ์ฐธ๊ณ .
<br>์ฐธ๊ณ :
<br>๋ณต์ก์ฑ ๋ณด์กด์ ๋ฒ์น (ํ ์ฌ๋ฌ์ ๋ฒ์น)
The Law of Conservation of Complexity on Wikipedia
์ด ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด ์์คํ ์๋ ๋ ์ด์ ์ค์ผ ์ ์๋ ํน์ ํ ์ ๋์ ๋ณต์ก์ฑ์ด ์กด์ฌํ๋ค.
์์คํ ์ ์์ด ์ด๋ค ์ข ๋ฅ์ ๋ณต์ก์ฑ์ '์๋๋์ง ์์ ๊ฒ'์ด๋ค. ๊ทธ๊ฒ์ ๋น์ฝํ ๊ตฌ์กฐ, ์ค์, ํน์ ๋ฌธ์ ์ ๋ํ ๊ทธ๋ฆ๋ ๋ชจ๋ธ๋ง์ ๋๊ฐ์ด๋ค. ์ด๋ฌํ ์๋๋์ง ์์ ๋ณต์ก์ฑ์ ์ค์ด๊ฑฐ๋ ์์จ ์ ์๋ค. ๋ฐ๋ฉด์, ํ์ด์ผ ํ ๋ฌธ์ ์ ๋ํ์ฌ '๋ด์ฌ์ '์ผ๋ก ์๋ฆฌํ๋ ๋ณต์ก์ฑ์ด ์๋ค. ์ด๋ฌํ ๋ณต์ก์ฑ์ ์ฎ๊ฒจ์ง ์๋ ์์ผ๋ ์์จ ์๋ ์๋ค.
์ด ๋ฒ์น์ด ์์ฌํ๋ ํฅ๋ฏธ๋ก๋ ์ ์, ์ค๋ น ์ ์ฒด ์์คํ ์ ๋จ์ํํ๋๋ผ๋ ๋ด์ฌ์ ์ธ ๋ณต์ก์ฑ์ ์ค์ด๋๋ ๊ฒ์ด ์๋๋ผ ์ฌ์ฉ์์๊ฒ ์ ์ด๋์ด์, ์ด์ฉ์ ๋์ฑ ๋ณต์กํ๊ฒ ๋ง๋ ๋ค.
<br>ํ์ ํ ์ถ์ํ์ ๋ฒ์น
The Law of Leaky Abstractions on Joel on Software
๋ชจ๋ ์ฌ์ํ์ง ์์ ์ถ์ํ๋, ์ด๋ ์ ๋, ํ์ ํ๋ค.
โ์กฐ์ ์คํด์คํค
์ด ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด ์ปดํจํ ์์ ๋ณต์กํ ์์คํ ๊ณผ ์์ ํ๊ธฐ ์ํด ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ ์ถ์ํ์์๋ ๋์ ๋ฐ๋ผ ํ๋จ ์์์ '๋์'๊ฐ ์ผ์ด๋ ์ ์๊ณ , ์ด๋ ์ถ์ํ๊ฐ ์์์น ๋ชปํ ๋ฐฉํฅ์ผ๋ก ์ ๊ฐ๋๊ฒ ํ๋ค.
ํ์ผ์ ๋ถ๋ฌ์ ๋ด์ฉ์ ์ฝ๋ ์ํฉ์ ์ดํด๋ณด์. ํ์ผ ์์คํ API๋ ๋ก์ฐ ๋ ๋ฒจ ์ปค๋ ์์คํ ์ ์ถ์ํ ์ธ๋ฐ, ์ด ์์คํ ๋ํ ์๊ธฐ ํ๋ํฐ(ํน์ ํ๋์ ๋ฉ๋ชจ๋ฆฌ๋ SSD)์ ๋ฐ์ดํฐ๋ฅผ ๋ฌผ๋ฆฌ์ ์ผ๋ก ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ถ์ํ์ด๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ํ์ผ์ ์ด์ง ๋ฐ์ดํฐ์ ์คํธ๋ฆผ์ผ๋ก์ ์ถ์ํํ๋ ๊ฒ์ ๋ฌธ์ ๊ฐ ์์ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์๊ธฐ ๋์คํฌ์์๋ ๋ฐ์ดํฐ๋ฅผ ์์๋๋ก ์ฝ๋ ๊ฒ์ด ์์ ์ ๊ทผ๋ณด๋ค ๋น๊ตํ ์ ์์ ๋งํผ ๋น ๋ฅธ ๋ฐ๋ฉด์(ํ์ด์ง ํดํธ ๋น์ฉ ๋๋ฌธ์), SSD์์๋ ์ ํ ์๊ด์ด ์๋ค. ๋ด๋ถ ๊ตฌํ์ ์์ธํ ์ดํดํ์ฌ์ผ ์ด๋ฐ ๊ฒฝ์ฐ์ ๋์ฒํ ์ ์๋๋ฐ(๊ฐ๋ น, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ธ๋ฑ์ค ํ์ผ์ ์์ ์ ๊ทผ์ ๋น์ฉ์ ์ค์ด๋๋ก ๊ตฌ์กฐ๊ฐ ์ง์ฌ์ ธ ์๋ค), ์ด๋ ๋ฏ ์ถ์ํ๋ ๊ฐ๋ฐ์๊ฐ ๋ชจ๋ฅด๋ฉด ๊ณค๋ํ๋๋ก ๋ด๋ถ ๊ตฌํ ์์ธ๋ฅผ '๋์ถ'ํ๋ค.
์์ ์์๋ ๋ ๋ง์ ์ถ์ํ๊ฐ ๋์ ๋๋ฉด ๋์ฑ ๋ณต์กํด์ง ์ ์๋ค. ๋ฆฌ๋ ์ค ์ด์์ฒด์ ๋ ๋คํธ์ํฌ๋ฅผ ๊ฒฝ์ ํ์ฌ ํ์ผ์ ์ ๊ทผํ ์ ์๋๋ก ํ๋ฉด์๋ ๋ก์ปฌ์์๋ '์ผ๋ฐ' ํ์ผ๋ก ์ทจ๊ธํ๋ค. ์ด๋ฐ ์ถ์ํ๋ ๋คํธ์ํฌ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด 'ํ์ ํด์ง' ๊ฒ์ด๋ค. ๋ง์ฝ ๊ฐ๋ฐ์๊ฐ ์ด๋ฐ ํ์ผ๋ค์ ๋คํธ์ํฌ ์ง์ฐ์ด๋ ์ค๋ฅ์ ๋ํ ๊ณ ๋ ค ์์ด '์ผ๋ฐ' ํ์ผ๋ก ์ทจ๊ธํ๋ค๋ฉด, ๋ฒ๊ทธ๊ฐ ์๊ธธ ๊ฒ์ด๋ค.
์ด ๋ฒ์น์ ์ค๋ช ํ๋ ๊ธ์ ๋ฐ๋ฅด๋ฉด ํ๋ถ ๊ตฌ๋ ์๋ฆฌ๋ฅผ ๋ชจ๋ฅธ ์ฑ๋ก ์ถ์ํ์ ๊ณผ๋ํ๊ฒ ์์กดํ ๊ฒฝ์ฐ, ๋๋ฆฌ์ด ๋ฌธ์ ํด๊ฒฐ์ ๋ณต์กํ๊ฒ ๋ง๋ค ์ ์๋ค๊ณ ํ๊ณ ์๋ค.
<br>์ฐธ๊ณ :
<br>์ค์ ์ฌ๋ก :
- ํฌํ ์ต์ ๋๋ฆฐ ์ด๊ธฐ ๋ก๋ฉ - ๊ณผ๊ฑฐ์ ๋ง์ฃผํ ๋ฌธ์ ์ด๋ค. ํฌํ ์ต์ ์ข ์ข ์ผ๋ ๋ฐ์ ๋ช ๋ถ์ฉ์ด๋ ๊ฑธ๋ฆฌ๊ธฐ๋ ํ๋๋ฐ, ์ด ๋ฌธ์ ๋ ๊ตฌ๋ ์์์์ ํ์ฌ ๊ธฐ๋ณธ์ผ๋ก ์ค์ ๋ ํ๋ฆฐํฐ์ ์ ๋ณด๋ฅผ ์ฝ์ด์ค๋ ๊ฒ์์ ๋ฐ์ํ์๋ค. ๋ง์ฝ ๊ทธ ํ๋ฆฐํฐ๊ฐ ๋คํธ์ํฌ ํ๋ฆฐํฐ๋ผ๋ฉด ๊ทน๋๋ก ์ค๋ ์๊ฐ์ด ๊ฑธ๋ฆฌ๊ฒ ๋๋ ๊ฒ์ด๋ค. ์์คํ ์ ๋คํธ์ํฌ ํ๋ฆฐํฐ์ ์ถ์ํ ๊ฐ ๋ก์ปฌ ํ๋ฆฐํฐ์ ์ ์ฌํ๊ฒ ์ ๊ณต๋ ์ ์ ์ฐ๊ฒฐ ์ํ๊ฐ ์ข์ง ๋ชปํ ์ํฉ์ ์ฌ์ฉ์์๊ฒ ๋ฌธ์ ๋ฅผ ์ผ์ผ์ผฐ๋ค.
์ฌ์ํจ์ ๋ฒ์น
The Law of Triviality on Wikipedia
์ด ๋ฒ์น์ ์ ์ ์ฌ๊ฐํ ํน์ ์ค์ํ ๊ฒ๋ค๋ณด๋ค ์ฌ์ํ ์ด์๋ค ํน์ ์ธ์์ ํจ์ฌ ๋ ๋ง์ ์๊ฐ์ ์๊ฒ ๋จ์ ์์ฌํ๋ค.
๊ฐ์์ ์์๋ก์, ์์ํ๊ฐ ์์๋ ฅ ๋ฐ์ ์์ ๊ฑด์ค ๊ณํ์ ํ๊ฐํ๋ ๊ณผ์ ์์ ํจ์ฌ ์ค์ํ ๋ฐ์ ์ ์์ฒด์ ์ค๊ณ๋ ๋๋๊ณ ์์ ๊ฑฐ ๋ณด๊ด์ ์๊ธฐ๋ ํ๋ ๋ฐ์ ์๊ฐ์ ์๋ ๊ฒ์ ๋ค ์ ์๋ค. ๊ฑฐ๋ํ๊ณ ๋ณต์กํ ์ฃผ์ ์ ๋ ผ์์์ ๊ทธ ๋ถ์ผ์ ์ ๋ฌธ ์ง์์ด๋ ์ฌ์ ์ค๋น ์์ด ๋ญ๊ฐ ์ ์ฉํ ์ด์ผ๊ธฐ๋ฅผ ํ ์๋ ์์ ๊ฒ์ด๋ค. ๊ทธ๋ฌ๋ ์ฌ๋๋ค์ ์์ ์ด ๊ธฐ์ฌํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ฌ์ง๊ณ ์ถ์ดํ๊ณ , ๋ฐ๋ผ์ ์ฝ๊ฒ ํด๊ฒฐ๋ ์ ์์ผ๋ฉฐ ๊ทธ๋ค์ง ์ค์ํ ๊ฒ์ ์๋ ์์ ๋ํ ์ผ์ ๋๋ฌด ๋ง์ ์๊ฐ์ ์๋ ๊ฒฝํฅ์ด ์๊ฒจ๋๋ค.
์ด ๊ฐ์์ ์ผํ๋ ์ฌ์ํ ๋ํ ์ผ์ ์๊ฐ ๋ฒ๋ฆฌ๋ ๊ฒ์ '์์ ๊ฑฐ๋ณด๊ด์ํ๋ค'๊ณ ํํํ๋๋ก ๋ง๋ค์๋ค.
<br>์ ๋์ค ์ฒ ํ
์ํคํผ๋์์ ์ ๋์ค ์ฒ ํ
์ ๋์ค ์ฒ ํ์ ์ํํธ์จ์ด์ ๊ตฌ์ฑ ์์๋ ์์์ผ ํ๋ฉฐ, ํ๋์ ํน์ ํ ์์ ์ ์ํ๋๋ก ํด์ผ ํ๋ค๋ ๊ฒ์ด๋ค. ์๊ณ ๋จ์ํ๋ฉฐ ์ ์ ์๋ ๋จ์๋ค์ ์กฐํฉํจ์ผ๋ก์จ, ๊ฑฐ๋ํ๊ณ ๋ณต์กํ๋ฉฐ ๋ค๋ชฉ์ ์ธ ํ๋ก๊ทธ๋จ์ ์ด์ฉํ๋ ๊ฒ๋ณด๋ค ์ฝ๊ฒ ์์คํ ์ ์ค๊ณํ ์ ์๋ค.
์๋น์ค๊ฐ ์๊ณ , ํ๋์ ํน์ ํ ์์ ์ ๋งก์ผ๋ฉฐ, ๋ณต์กํ ํ๋์ ๋จ์ํ ๋ธ๋ก์ ์กฐํฉ์ผ๋ก ๊ตฌ์ฑํ ์ ์๋ '๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ณ' ๊ฐ์ ๊ทผ๋์ ๊ดํ ๋ํ ์ด ๋ฒ์น์ ์ ์ฉ์ผ๋ก ์๊ฐํ ์ ์๋ค.
<br>์คํฌํฐํ์ด ๋ชจ๋ธ
The Spotify Model on Spotify Labs
์คํฌํฐํ์ด ๋ชจ๋ธ์ '์คํฌํฐํ์ด'์ ์ํด ์ ๋ช ํด์ง ํ๊ณผ ์กฐ์ง ๊ตฌ์กฐ์ ๋ํ ์ ๊ทผ๋ฒ์ด๋ค. ์ด ๋ชจ๋ธ์์ ํ์ ๊ธฐ์ ๋ณด๋จ ๊ธฐ๋ฅ์ ์ค์ฌ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
์คํฌํฐํ์ด ๋ชจ๋ธ์ ๋ถ์กฑ, ๊ธธ๋, ์ง๋ถ์ ๊ฐ์ ๊ทธ๋ค ์กฐ์ง ๊ตฌ์กฐ์ ์์ ๋ํ ์ ๋ช ํ๊ฒ ๋ง๋ค์๋ค.
<br>(์ด๋ฏธ์ง ์ถ์ฒ: https://medium.com/@media_75624/exploring-key-elements-of-spotifys-agile-scaling-model-471d2a23d7ea)
<br>์๋ค๋ฌ์ ๋ฒ์น
Wadler's Law on wiki.haskell.org
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ค๊ณํ ๋, ์ด ๊ธฐ๋ฅ ๋ชฉ๋ก์ ๋์จ ํญ๋ชฉ๋ค์ ๋ ผ์ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์ด ์๊ฐ์ 2์ ํญ๋ชฉ์ ๋ฒํธ ์ ๊ณฑ์ ๋น๋กํ๋ค.
- ์๋ฏธ๋ก
- ๊ตฌ๋ฌธ๋ก
- ์ดํ
- ์ฃผ์๋ค๋ ๋ฒ
(์ฆ, ์๋ฏธ๋ก ์ 1์๊ฐ์ ์ธ ๋๋ง๋ค ์ฃผ์๋ค๋ ๋ฒ์ 1 ๊ณฑํ๊ธฐ 2์ ์ธ์ ๊ณฑ์ธ 8์๊ฐ์ ์ด๋ค๋ ๋ป์ด๋ค.)
์ฌ์ํจ์ ๋ฒ์น์ฒ๋ผ, ์๋ค๋ฌ์ ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด ์ธ์ด ๊ตฌ์กฐ๋ฅผ ์ค๊ณํ ๋ ์ฐ์ด๋ ์๊ฐ์ ๊ฐ ๊ธฐ๋ฅ์ ์ค์๋์ ๋ฐ๋น๋กํ๋ค.
<br>์ฐธ๊ณ :
<br>ํํด์ ๋ฒ์น
์ข๊ฐ์ด ๊ตด์ง ๋ง๋ผ.
์ ํํด
์ ํํด(์คํ ํธ๋ : ๋ ๋ฅ์คํธ ์ ๋๋ ์ด์ , ๋น ๋ฑ ์ด๋ก ๋ฑ์ ์ถ์ฐํ ๋ฐฐ์ฐ)์ด ๋ง๋ ์ด ๋จ์๋ช ๋ฃํ๊ณ ๊ฐ๋ ฅํ ๋ฒ์น์ ์ ๋ฌธ์ ์ธ ์กฐ์ง์์์ ์กฐํ์ ์กด์ค์ ์ฆ๋๋ฅผ ์งํฅํ๋ค. ์ด๊ฒ์ ๋๋ฃ๋ค๊ณผ ์ด์ผ๊ธฐํ ๋, ์ฝ๋ ๋ฆฌ๋ทฐ๋ฅผ ํ ๋, ๋ค๋ฅธ ๊ด์ ์ ์ง๋ฉดํ์ ๋, ๋นํํ ๋, ๊ทธ๋ฆฌ๊ณ ์ผ๋ฐ์ ์ธ ๋๋ถ๋ถ์ ์ฌ๋๋ค ๊ฐ์ ์ง์ ์ ์ธ ์ํธ ์์ฉ์ ์ ์ฉํ ์ ์๋ค.
<br>์์น
์์น๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์ค๊ณ์ ๊ฐ์ด๋๋ผ์ธ๊ณผ๋ ๊ฐ๋ค.
<br>๋๋ฒํธ์ ๋ฒ์น
The Dilbert Principle on Wikipedia
๊ธฐ์ ๋ค์ ์์คํ ์ ์ผ๋ก ๋ฌด๋ฅ๋ ฅํ ์ง์๋ค์ ๊ด๋ฆฌ์ง์ผ๋ก ์น์ง์์ผ ์ ๋ฌด ํ๋ฆ์์ ๋ฐฐ์ ํ๋ ๊ฒฝํฅ์ด ์๋ค.
์ค์บ ์๋ด์ค
์ค์บ ์๋ด์ค(๋๋ฒํธ ๋งํ์ ์๊ฐ)์ ์ํด ๋ง๋ค์ด์ง ๊ฒฝ์ ๊ฐ๋ ์ธ ๋๋ฒํธ์ ๋ฒ์น์ ํผํฐ์ ์๋ฆฌ๋ก๋ถํฐ ์ํฅ์ ๋ฐ์๋ค. ๋๋ฒํธ์ ๋ฒ์น์ ๋ฐ๋ฅด๋ฉด, ๋ฌด๋ฅํ ์ง์๋ค์ ๊ทธ๋ค์ด ์ ํ ์ ์๋ ํผํด๋ฅผ ์ต์ํํ๊ธฐ ์ํด ๊ด๋ฆฌ์ง์ผ๋ก ์น์ง๋๋ค. ์๋ด์ค๋ 1995๋ ์ ์คํธ๋ฆฌํธ ์ ๋์ ๊ธฐ์ฌ์์ ์ด๋ฅผ ์ฒ์ ์ค๋ช ํ๊ณ , ์ด๋ฅผ 1996๋ ๊ทธ์ ๊ฒฝ์ํ ์์ ๋๋ฒํธ์ ๋ฒ์น์์ ํ์ฅํ์๋ค.
<br>์ฐธ๊ณ :
<br>ํ๋ ํ ์ ์๋ฆฌ (80 : 20์ ๋ฒ์น)
์ํคํผ๋์์ ํ๋ ํ ๋ฒ์น
์ธ์ ๋๋ถ๋ถ์ ๊ฒ๋ค์ ๊ท ๋ฑํ๊ฒ ๋ถ๋ฐฐ๋์ง ์์๋ค.
ํ๋ ํ ์ ์๋ฆฌ์ ์ํ๋ฉด, ๊ฒฝ์ฐ์ ๋ฐ๋ผ ๋๋ถ๋ถ์ ๊ฒฐ๊ณผ๋ ์์๋ก๋ถํฐ ๋น๋กฏ๋๋ค:
- ์ด๋ค ์ํํธ์จ์ด์ 80%๋ ์ด ์๊ฐ ์ค 20%๋ง์ ์ฐ์ผ ์ ์๋ค(๋ฐ๋๋ก, ๊ฐ์ฅ ์ด๋ ค์ด 20%๋ฅผ ๋ง๋๋ ๊ฒ์ 80%์ ์๊ฐ์ด ๋ ๋ค).
- 20%์ ๋ ธ๋ ฅ์ด 80%์ ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด๋ธ๋ค.
- 20%์ ์ผ์ด 80%์ ์์ ์ ์ฐฝ์ถํ๋ค.
- 20%์ ๋ฒ๊ทธ๊ฐ 80%์ ํฌ๋์ฌ๋ฅผ ์ผ์ผํจ๋ค.
- 20%์ ๊ธฐ๋ฅ์ด ์ฌ์ฉ๋ ์ค 80%๋ฅผ ์ฐจ์งํ๋ค.
1940๋ ๋์ ํ์ง ๊ด๋ฆฌ์ ์๋ฒ์ง๋ก ๋๋ฆฌ ์๋ ค์ง ๋ฏธ๊ตญ๊ณ ๋ฃจ๋ง๋์์ธ ๊ณตํ์ ์กฐ์ ์ฃผ๋ ๋ฐ์ฌ๋, ํ์ง ๋ฌธ์ ์ ํ๋ ํ ์ ์๋ฆฌ๋ฅผ ์ ์ฉํ๊ธฐ ์์ํ๋ค.
์ด ์๋ฆฌ๋ ๋ํ 80 : 20์ ๋ฒ์น, ์ค์ํ ์์์ ๋ฒ์น, ํน์ ํฌ์ ์ธ์์ ์๋ฆฌ๋ผ๊ณ ๋ ๋ถ๋ฆฌ์ด๋ค.
<br>์ค์ ์ฌ๋ก:
- 2002๋ ๋น์ ๋ง์ดํฌ๋ก์ํํธ๋ 20%์ ๊ฐ์ฅ ๋ง์ด ๋ณด๊ณ ๋ ๋ฒ๊ทธ๋ฅผ ๊ณ ์นจ์ผ๋ก์จ, ์๋์ฐ์ฆ์ ์คํผ์ค์์ 80%์ ๊ด๋ จ ์๋ฌ์ ํฌ๋์ฌ๊ฐ ์ฌ๋ผ์ก๋ค๊ณ ํ์๋ค(์ถ์ฒ).
ํผํฐ์ ์๋ฆฌ
The Peter Principle on Wikipedia
์ฌ๋๋ค์ ์กฐ์ง ๋ด์์ ์์ ์ด "๋ฌด๋ฅ๋ ฅํด์ง๋ ๊ณ์ธต"๊น์ง ์ฌ๋ผ๊ฐ๋ ค๋ ๊ฒฝํฅ์ด ์๋ค.
๋ก๋ ์ค J. ํผํฐ
๋ก๋ ์ค J. ํผํฐ์ ์ํด ๊ณ ์๋ ๊ฒฝ์ ๊ฐ๋ ์ธ ํผํฐ์ ์๋ฆฌ์์, ์ผ์ ์ํ๋ ์ฌ๋๋ค์ ๊ทธ๋ค์ด ๋ ์ด์ ์ฑ๊ณต์ ์ด์ง ๋ชปํ ์์ค("๋ฌด๋ฅ๋ ฅํ ์ ๋")๊น์ง ์น์งํ๋ค. ์ด ์ง์ ์์ ๊ทธ๋ค์ ์ฌ๊ฐํ ์ ๋๋ก ์ฑ๊ณผ๊ฐ ์์ง ์๋ ์ด์ ์๊ธ์๊ฐ ๋ ์๋ก ์กฐ์ง์์ ์ซ๊ฒจ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ฑ ๋ฎ์์ง๋ฉฐ, ์์ ๊ณผ ๋ณ๋ก ๊ด๋ จ๋ ๋ฅ๋ ฅ์ด ์๋ ์ญํ ์ ๊ณ์ ๋จ๊ฒ ๋ ๊ฒ์ด๋ค. ๊ทธ๋ค์ ์ฑ๊ณต์ ์ผ๋ก ์ด๋์๋ ์๋ ๊ฐ์ง ๋ฅ๋ ฅ์ ์๋ก์ด ์ผ์ ๊ทธ๋ค์ง ํ์ํ์ง ์๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๊ฒ์ ํนํ ์์ง๋์ด์๊ฒ ์์ด ํฅ๋ฏธ๋ก์ด๋ฐ, ์ฒ์์ ๊ธฐ์ ๋ ฅ์ด ๊น์ด ์๊ตฌ๋๋ ๋ถ์ผ์์ ์์ํ๋ ๋๊ฐ ๊ฒฝ๋ ฅ์ด ๊ทผ๋ณธ์ ์ผ๋ก ๋ค๋ฅธ ๋ฅ๋ ฅ์ด ํ์ํ ๊ด๋ฆฌ์ง ์ผ๋ก ์ด์ด์ง๊ธฐ ๋๋ฌธ์ด๋ค.
<br>์ฐธ๊ณ :
<br>๊ฒฌ๊ณ ํจ์ ์์น (ํฌ์คํ ์ ๋ฒ์น)
์ํคํผ๋์์ ๊ฒฌ๊ณ ํจ์ ์์น
๋น์ ์ด ํ๋ ์ผ์ ์ํ๊ฒ, ๋จ์ ๊ฒ์ ๋ฐ์๋ค์ผ ๋๋ ๋๊ทธ๋ฝ๊ฒ.
์ข ์ข ์๋ฒ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์์ด, ์ด ์์น์ ๋ฐ๋ฅด๋ฉด ๋ณด๋ด๋ ๊ฒ์ ์ต๋ํ ๊ฐ๋ตํ๋ฉด์๋ ๋ช ์ธ๋ฅผ ์ฒ ์ ํ ๋ฐ๋ฅด๋๋ก ํ๋, ๋ฐ๋ ๊ฒ์ ์ค๋ น ๋ช ์ธ๋ฅผ ๋ฐ๋ฅด์ง ์๋๋ผ๋ ์ฒ๋ฆฌํ ์ ์๋ ํ ๋ฐ์๋ค์ด๋ ๊ฒ์ ์งํฅํด์ผ ํ๋ค๊ณ ํ๋ค.
์ด ์์น์ ๋ชฉ์ ์ ์๋ฏธ๊ฐ ๋ถ๋ช ํ ์ ๋ ฅ์ ๊ฒฝ์ฐ ๋น๋ก ํ์์ ์ผ๋ก๋ ๋น์ฝํ๋๋ผ๋ ์ดํด๋ ํ ์ ์์ผ๋ฏ๋ก ์ด๋ฅผ ์์ฉํจ์ผ๋ก์จ ๊ฒฌ๊ณ ํ ์์คํ ์ ์ค๊ณํ๋ ๊ฒ์ด๋ค. ๋ค๋ง ๊ทธ๋ฌํ ๊ธฐํ์ ์ ๋ ฅ์ ๋ฐ์๋ค์์ ์์ด ํนํ ์ ๋ ฅ์ ์ ๋๋ก ํ ์คํธํ์ง ์์ ๊ฒฝ์ฐ, ๋ณด์ ์ํ์ ๊ฐ๋ฅ์ฑ์ด ์๊ธธ ์ ์๋ค.
<br>์๋ฆฌ๋
์ด๋ ๋ค์์ ๋ํ ์ฝ์์ด๋ค:
- S: The Single Responsibility Principle (๋จ์ผ ์ฑ ์ ์์น)
- O: The Open/Closed Principle (๊ฐ๋ฐฉ-ํ์ ์์น)
- L: The Liskov Substitution Principle (๋ฆฌ์ค์ฝํ ์นํ ์์น)
- I: The Interface Segregation Principle (์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น)
- D: The Dependency Inversion Principle (์์กด ๊ด๊ณ ์ญ์ ์์น)
์ด๊ฒ์ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ ์์น์ด๋ค. ์ด๋ฌํ ์ค๊ณ ์์น๋ค์ ๊ฐ๋ฐ์๋ค์ด ์ ์ง๋ณด์ ๊ฐ๋ฅํ ์์คํ ์ ์ง๋ ๊ฒ์ ๋์ธ ์ ์๋ค.
<br>๋จ์ผ ์ฑ ์ ์์น
์ํคํผ๋์์ ๋จ์ผ ์ฑ ์ ์์น
๋ชจ๋ ๋ชจ๋๊ณผ ํด๋์ค๋ ๋จ์ผํ ์ฑ ์๋ง์ ์ง๋ ์ผ ํ๋ค.
'์๋ฆฌ๋' ์์น์ ์ฒซ ๋ฒ์งธ์ด๋ค. ์ด ์์น์ ๋ฐ๋ฅด๋ฉด ๋ชจ๋์ด๋ ํด๋์ค๋ ๋ฐ๋์ ์ค์ง ํ๋์ ์ผ๋ง์ ํด์ผ ํ๋ค. ์ข ๋ ์ค์ฉ์ ์ผ๋ก ๋งํ์๋ฉด, ํ๋ก๊ทธ๋จ ๊ธฐ๋ฅ์ ์์ด์ ํ๋์ ์์ ๋ณํ๋ ์ค๋ก์ง ํ ๊ตฌ์ฑ ์์๋ง์ ๋ฐ๊ฟ์ผ ํจ์ ๋ปํ๋ค. ๊ฐ๋ น, ํจ์ค์๋ ๋ณต์ก๋ ๊ฒ์ฆ์ ์ด๋ป๊ฒ ์ฒ๋ฆฌํ ์ง ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ค์ง ํ๋ก๊ทธ๋จ์ ํ ๊ณณ๋ง์ ๋ฐ๊ฟ์ผ ํ๋ค.
์ด๋ก ์ ์ผ๋ก ์ด๊ฒ์ ์ฝ๋๋ฅผ ๋์ฑ ๊ฒฌ๊ณ ํ๊ฒ ๋ง๋ค๊ณ ์์ ์ ์ฉ์ดํ๊ฒ ํ๋ค. ๋ฐ๋ ๊ตฌ์ฑ ์์๊ฐ ๋จ์ผ ์ฑ ์๋ง์ ์ง๊ณ ์๋ค๋ ๊ฒ์ ์๋ค๋ฉด ๊ทธ ๋ณํ์ ๋ํ ํ ์คํ ๋ํ ๋์ฑ ์ฝ๊ธฐ ๋๋ฌธ์ด๋ค. ์์ ๋งํ ์์์์, ํจ์ค์๋ ๋ณต์ก๋ ๊ด๋ จ ๊ตฌ์ฑ ์์๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒ์ ์ค์ง ํจ์ค์๋ ๋ณต์ก๋ ๊ด๋ จ ๊ธฐ๋ฅ์๋ง ์ํฅ์ ๋ผ์น๋ค. ์ฌ๋ฌ ์ฑ ์์ ์ง๊ณ ์๋ ๊ตฌ์ฑ ์์๋ฅผ ๋ฐ๊ฟ ๋์ ์ด๋ ํ ์ผ์ด ์ผ์ด๋ ์ง ์์ธกํ๋ ๊ฒ์ ํจ์ฌ ๋ ์ด๋ ต๋ค.
<br>์ฐธ๊ณ :
<br>๊ฐ๋ฐฉ-ํ์ ์์น
์ํคํผ๋์์ ๊ฐ๋ฐฉ-ํ์ ์์น
๊ฐ์ฒด๋ ํ์ฅ์ ๋ํด์๋ ์ด๋ ค ์์ด์ผ ํ๊ณ , ์์ ์ ๋ํด์๋ ๋ซํ ์์ด์ผ ํ๋ค.
'์๋ฆฌ๋' ์์น์ ๋ ๋ฒ์งธ์ด๋ค. ์ด ์์น์ ๋ฐ๋ฅด๋ฉด ๊ฐ์ฒด(ํด๋์ค, ๋ชจ๋, ํจ์ ๋ฑ)๋ ํ๋์ ํ์ฅ ํ ์ ์์ด์ผ ํ์ง๋ง, ๊ธฐ์กด์ ํ๋์ ๊ณ ์น ์ ์์ด์ผ ํ๋ค.
๊ฐ์์ ์์๋ก์ ๋งํฌ๋ค์ด ๋ฌธ์๋ฅผ HTML๋ก ๋ณํํ ์ ์๋ ๋ชจ๋์ ์์ํด๋ณด์. ๋ชจ๋์ด ๋ด๋ถ์ ์ธ ๋ณ๊ฒฝ ์์ด๋ ์๋ก์ด ์ ์๋ ๋งํฌ๋ค์ด ๊ธฐ๋ฅ์ ๋ค๋ฃฐ ์ ์๋๋ก ํ์ฅ ๊ฐ๋ฅํ๋ค๋ฉด, ํ์ฅ์ ๋ํด ์ด๋ ค ์๋ ๊ฒ์ด๋ค. ๋ง์ฝ ๋ชจ๋์ด ์๋น์์ ์ํด์ ๊ธฐ์กด์ ๋งํฌ๋ค์ด ๊ธฐ๋ฅ ์ฒ๋ฆฌ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋๋ก ์์ ๋ ์ ์๋ค๋ฉด, ์์ ์ ๋ํด ๋ซํ ์๋ ๊ฒ์ด๋ค.
์ด ์์น์ ํนํ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ด๋ จ์ด ์๋๋ฐ, ์ฐ๋ฆฌ๋ ๊ฐ์ฒด๋ฅผ ์ฝ๊ฒ ํ์ฅํ๊ณ ์ถ์ ๋ฐ๋ฉด ์์์น ๋ชปํ ๋ฐฉํฅ์ผ๋ก ์์ ๋๋ ๊ฒ์ ํผํ๊ณ ์ถ๊ธฐ ๋๋ฌธ์ด๋ค.
<br>์ฐธ๊ณ :
<br>๋ฆฌ์ค์ฝํ ์นํ ์์น
์์คํ ์ ํ๊ดดํ์ง ์์ผ๋ฉด์๋ ์๋ฃํ์ ํ์ ์๋ฃํ์ผ๋ก ๋์ฒดํ ์ ์์ด์ผ ํ๋ค.
'์๋ฆฌ๋' ์์น์ ์ธ ๋ฒ์งธ์ด๋ค. ์ด ์์น์ ๋ง์ผ ์ด๋ ํ ๊ตฌ์ฑ ์์๊ฐ ์๋ฃํ์ ์์กดํ๋ค๋ฉด, ์์คํ ์คํจ๋ ํ์ ์๋ฃํ์ด ๋ฌด์์ธ์ง์ ๋ํ ์ ๋ณด ์์ด๋ ํ์ํ์ ๋์ ์ฌ์ฉํ ์ ์์ด์ผ ํ๋ค๊ณ ๋งํ๋ค.
๊ฐ๋ น, ํ์ผ์ ๋ํ๋ด๋ ๊ตฌ์กฐ๋ก๋ถํฐ XML ๋ฌธ์๋ฅผ ์ฝ์ด๋ค์ด๋ ๋ฉ์๋๊ฐ ์๋ค๊ณ ํ์. ๋ง์ฝ ๋ฉ์๋๊ฐ 'ํ์ผ' ๊ธฐ๋ฐํ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด, 'ํ์ผ'์์ ํ์๋ ๋ชจ๋ ๊ฒ์ ํด๋น ํจ์์์ ์ฐ์ผ ์ ์๋ค. 'ํ์ผ'์ด ์ญ๋ฐฉํฅ ํ์์ ์ง์ํ๊ณ XML ํ์๊ฐ ๊ทธ ๊ธฐ๋ฅ์ ์ด์ฉํ๋ค๊ณ ํ ๋ ๋ง์ฝ ํ์ ์๋ฃํ์ธ '๋คํธ์ํฌ ํ์ผ'์ ๋ํ ์ญ๋ฐฉํฅ ํ์ ์๋ ์ ์คํจํ๋ค๋ฉด, '๋คํธ์ํฌ ํ์ผ'์ ๊ท์จ์ ์๋ฐํ๊ณ ์๋ ๊ฒ์ด๋ค.
์ด ์์น์ ํนํ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ๊ณผ ๊ด๋ จ์ด ์๋๋ฐ, ์๋ฃํ์ ๊ณ์ธต ๊ด๊ณ๋ฅผ ์ธ์ฌํ ๋ชจ๋ธ๋งํด์ผ ์์คํ ์ฌ์ฉ์๋ค์ ํผ๋์ ๋ง์ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค.
<br>์ฐธ๊ณ :
<br>์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น
์ํคํผ๋์์ ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น
์ด๋ ํ ํด๋ผ์ด์ธํธ๋ ์์ ์ด ์ฌ์ฉํ์ง ์๋ ๋ฉ์๋์ ์์กดํ๋๋ก ๊ฐ์๋นํ๋ฉด ์ ๋๋ค.
'์๋ฆฌ๋' ์์น์ ๋ค ๋ฒ์งธ์ด๋ค. ์ด ์์น์ ๋ฐ๋ฅด๋ฉด ๊ตฌ์ฑ ์์์ ์๋น์๋ ๊ตฌ์ฑ ์์๊ฐ ๊ฐ์ง ํจ์๋ค ์ค์์ ์ค์ ๋ก ์ฌ์ฉํ์ง ์๋ ๊ฒ๋ค์ ์์กดํ๋ฉด ์ ๋๋ค.
์๋ฅผ ๋ค๋ฉด, ํ์ผ์ ๋ํ๋ด๋ ๊ตฌ์กฐ๋ก๋ถํฐ XML ๋ฌธ์๋ฅผ ์ฝ์ด๋ค์ด๋ ๋ฉ์๋๊ฐ ์๋ค๊ณ ํ์. ๊ทธ ๋ฉ์๋๋ ์ค์ง ํ์ผ์์์ ๋ฐ์ดํธ ์ฝ๊ธฐ, ์ ์ง, ๊ทธ๋ฆฌ๊ณ ํ์ง ๊ธฐ๋ฅ๋ง์ด ํ์ํ๋ค. ๋ง์ฝ ์ด ๋ฉ์๋๊ฐ ํ์ผ ๊ตฌ์กฐ์ ์ฐ๊ด ์๋ ๊ธฐ๋ฅ(ํ์ผ ๋ณด์์ ์ํ ๊ถํ ์ ๋ฐ์ดํธ์๋ ๊ฐ์)์ด ๋ณํ์๋ค๊ณ ํด์ ์ ๋ฐ์ดํธ๊ฐ ํ์ํ๋ค๋ฉด, ์ด ์์น์ ๋ฌดํจ๊ฐ ๋ ๊ฒ์ด๋ค. ํ์ผ์ด 'ํ์ ๊ฐ๋ฅ ์คํธ๋ฆผ' ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๊ณ , XML ๋ฆฌ๋๊ธฐ๊ฐ ์ฌ์ฉํ๋๋ก ํ๋ ํธ์ด ๋์ ๊ฒ์ด๋ค.
์ด ์์น์ ํนํ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์์ ์ ์ฉ๋์ด, ์ธํฐํ์ด์ค, ๊ณ์ธต ๊ตฌ์กฐ, ๊ทธ๋ฆฌ๊ณ ์ถ์ ์๋ฃํ์ ํตํด ๊ตฌ์ฑ ์์ ๊ฐ์ ๊ฒฐํฉ๋์ ์ต์ํ๋ฅผ ์ด๋ฃจ๋ ค๊ณ ํ๋ค. ๋ ํ์ดํ์ ๋ช ์์ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ ์ด ์์น์ ๊ฐ์ ํ๋ค.
<br>์ฐธ๊ณ :
<br>์์กด ๊ด๊ณ ์ญ์ ์์น
์ํคํผ๋์์ ์์กด ๊ด๊ณ ์ญ์ ์์น
๊ณ ์์ค ๋ชจ๋์ ์ ์์ค ๊ตฌํ์ ์์กดํด์๋ ์ ๋๋ค.
'์๋ฆฌ๋' ์์น์ ๋ค์ฏ ๋ฒ์งธ์ด๋ค. ๊ณ ์์ค์์ ์งํํ๋ ๊ตฌ์ฑ ์์๋ ์์กด ๊ด๊ณ๋ฅผ ์ ํ์๊ฐ ์๋ค๋ ์์น์ด๋ค.
์์๋ก์, ์น์ฌ์ดํธ์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ํ๋ก๊ทธ๋จ์ด ์๋ค๊ณ ํ์. ์ฐ๋ฆฌ๋ ์ค์ฌ ๊ตฌ์ฑ ์์๊ฐ ์นํ์ด์ง ๋ด์ฉ์ ๋ค์ด๋ก๋ํ๋ ๊ตฌ์ฑ ์์์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๋ ๊ตฌ์ฑ ์์๋ฅผ ์์์ผ๋ง ํ๋ค๊ณ ์๊ฐํ ์ ์๋ค. ๋ง์ฝ ์์กด ๊ด๊ณ ์ญ์ ์์น์ ๊ณ ๋ คํ๋ค๋ฉด, ์ค์ฌ ๊ตฌ์ฑ ์์๋ ์ค๋ก์ง ๋ฐ์ดํธ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ ์ถ์ ๊ตฌ์ฑ ์์์ ๋ฐ์ดํธ ์คํธ๋ฆผ์์ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ์ ์ ์๋ ์ถ์ ๊ตฌ์ฑ ์์์๋ง ์์กดํ๋ฉด ๋๋ค. TCP/IP, HTTP, HTML ๋ฑ์ ๋ํด์๋ ์ ํ์๊ฐ ์๋ค.
์ด ์์น์ ๋ง์น ์์๋๋ ์์กด ๊ด๊ณ๋ฅผ '์ญ์ 'ํ๋ ๊ฒ์ฒ๋ผ ๋ณด์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋ณต์กํ๋ค(๊ทธ๋์ ์ด๋ฌํ ์ด๋ฆ์ด ๋ถ์๋ค). ์ค์ ๋ก๋, ๊ฐ๋ณ ์งํ์ฒด๊ฐ ์ฌ๋ฐ๋ฅธ ๊ตฌํ์ ์ถ์ ์๋ฃํ์ด ์ฌ์ฉ๋์๋์ง๋ ํ์ค์ ํด์ผ ํจ์ ๋ปํ๋ค(์์ ์์์์ ๋ฌด์ธ๊ฐ ๊ฐ ์ฌ์ ํ ๋ฉํ๋ฐ์ดํฐ๋ฅผ ์ฝ๋ ์ถ์ ๊ตฌ์ฑ ์์์ HTTP ํ์ผ ๋ค์ด๋ก๋์ HTML ๋ฉํ ํ๊ทธ ๋ฆฌ๋๊ธฐ๋ฅผ ์ ๊ณตํด์ผ ํ๋ค). ์ด๊ฒ์ ์ ์ด ๋ฐ์ ์ด๋ ์์กด์ฑ ์ฃผ์ ๊ณผ ๊ฐ์ ํจํด์ผ๋ก ์ด์ด์ง๋ค.
<br>์ฐธ๊ณ :
<br>DRY ์์น
The DRY Principle on Wikipedia
๋ชจ๋ ์ง์์ ์์คํ ๋ด์์ ๋ฐ๋์ ๋จ์ผํ๊ณ , ๋ชจํธํ์ง ์์ผ๋ฉฐ, ๊ถ์์ ์ธ ํํ์ผ๋ก ๋ํ๋์ผ ํ๋ค.
DRY๋ Don't Repeat Yourself๋ฐ๋ณตํ์ง ๋ง๋ผ ์ ์ฝ์์ด๋ค. ์ด ์์น์ ๊ฐ๋ฐ์๋ค์๊ฒ ์์ด ์ฝ๋์ ๋ฐ๋ณต์ ์ค์ด๊ณ ์ ๋ณด๋ฅผ ํ ๊ณณ์ ๋ชจ์ ์ ์๋๋ก ๋๊ธฐ ์ํด ๊ณ ์๋์์ผ๋ฉฐ, 1999๋ ์ค๋๋ฅ ํํธ์ ๋ฐ์ด๋ธ ํ ๋ง์ค์ ์ ์ ์ค์ฉ์ฃผ์ ํ๋ก๊ทธ๋๋จธ์ ๋์ ์๋ค.
DRY์ ๋ฐ๋๋ WET (Write Everything Twice๋ชจ๋ ๊ฒ์ ๋ ๋ฒ ์จ๋ผ, ํน์ We Enjoy Typing์ ํฌ๋ ํ์์น๋ ๊ฒ ์ข์์)์ด๋ผ ํ ์ ์๊ฒ ๋ค.
๋ง์ผ ๊ฐ์ ์ ๋ณด๊ฐ ๋ ํน์ ๊ทธ ์ด์ ๊ณณ์ ํฉ์ด์ ธ ์๋ค๋ฉด, DRY ์์น์ ์ ์ฉํ์ฌ ํ๋๋ก ํฉ์น ํ ์ํ๋/ํ์ํ ๊ณณ์์ ์ฌ์ฌ์ฉํ ์ ์๋ค.
<br>์ฐธ๊ณ :
<br>KISS ์์น
์ํคํผ๋์์ KISS ์์น
Keep it simple, stupid
๊ฐ๋จํ๊ฒ ๋๋ฌ, ๋ฐ๋ณด์ผ
ํค์ค ์์น์ ๋ฐ๋ฅด๋ฉด ๋๋ถ๋ถ์ ์์คํ ์ ๋ณต์กํ๊ธฐ๋ณด๋ค๋ ๋จ์ํ ๋ ๊ฐ์ฅ ์ ์๋ํ๋ค๊ณ ํ๋ค. ์ฆ, ๊ฐ๋จํจ์ ์ค๊ณ์ ํต์ฌ ๋ชฉํ์ฌ์ผ ํ๋ฉฐ ๋ถํ์ํ ๋ณต์ก์ฑ์ ํผํด์ผํ๋ ๊ฒ์ด๋ค. 1960๋ ๋ ๋ฏธ ํด๊ตฐ์์ ์ ๋ํ ์ด ์ด๊ตฌ๋ ํญ๊ณต ๊ธฐ์ ์ ์ผ๋ฆฌ ์กด์จ๊ณผ ๊ด๋ จ ์๋ค.
์ด ์์น์ ์ค๋ช ํ๊ธฐ ์ข์ ์์๋ก ์กด์จ์ ์ด์ผ๊ธฐ๊ฐ ์๋ค. ์กด์จ์ ์ ํธ๊ธฐ ๊ธฐ์ ์๋ค์๊ฒ ๋ช ๊ฐ์ง์ ์ฅ๋น๋ฅผ ๋๋์ด์ฃผ์๋๋ฐ, ๊ต์ ์ค์๋ ํ๊ท ์ ์ธ ์์ค์ ์ ๋น๊ณต๋ค์ด ์ค์ง ์ด ์ฅ๋น๋ง์ ์ฌ์ฉํด์ ์๋ฆฌํ ์ ์๋๋ก ํ๋ ์ ์ฝ์ ์งํค๋ฉด์ ํญ๊ณต๊ธฐ๋ฅผ ์ค๊ณํ๋ค. ์ฆ, '๋ฐ๋ณด'๋ผ๋ ๊ฒ์ ์์ง๋์ด๋ค์ ์์ค์ ๋งํ๋ ๊ฒ์ด ์๋, ์ด๋ป๊ฒ ๊ธฐ์ฒด๋ฅผ ๋ถํดํ ๊ฒ์ธ๊ฐ์ ์๋ฆฌ๋ฅผ ์ํด ๊ฐ์ฉํ ๋๊ตฌ๋ค ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ปํ๋ ๊ฒ์ด๋ค.
<br>์ฐธ๊ณ :
<br>YAGNI
์ด๊ฒ์ You Aren't Gonna Need It๋ ํ์ ์์ ๊ฑฐ๋ค ์ ์ฝ์ด์ด๋ค.
์ธ์ ๋ ์ค์ ๋ก ํ์ํ ๋๋ง ๊ตฌํํ๊ณ , ์ ๋ ํน์ ๋์ค์ ์ธ์ง๋ ๋ชจ๋ฅด๋ ๋ง๋ค์ง ๋ง์๋ผ.
(๋ก ์ ํ๋ฆฌ์ฆ) (XP์ ๊ณต๋ ์ค๋ฆฝ์์ด์ "Extreme Programming Installed : XP ๋์ ์ ์ํ ์ค์ ์ ๋ฌธ"์ ์ ์)
์ด ์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ (XP) ์์น์ ๊ฐ๋ฐ์๋ค์ด ์ค์ง ๋น์ฅ ์๊ตฌ๋ ๋์๋ง ๊ธฐ๋ฅ์ ๊ฐ๋ฐํ๊ณ , ๋ฏธ๋๋ฅผ ์์ธกํ์ฌ ํน์ ์ถํ์ ํ์ํ ์ง ๋ชจ๋ฅด๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ค๋ ์๋๋ฅผ ํผํ๋ผ๊ณ ๋งํ๋ค.
์ด ์์น์ ๊ณ ์ํ๋ค๋ฉด ์ฝ๋๋ฒ ์ด์ค์์ ์ฌ์ฉ๋์ง ์๋ ์ฝ๋์ ์์ ์ค์ผ ์ ์์ ๊ฒ์ด๊ณ , ์๋ฏธ ์๋ ๊ธฐ๋ฅ ๊ตฌํ์ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ์์ง ์์๋ ๋ ๊ฒ์ด๋ค.
<br>์ฐธ๊ณ :
<br>๋ถ์ฐ ์ปดํจํ ์ ์ค๋ฅ
The Fallacies of Distributed Computing on Wikipedia
๋คํธ์ํฌ ์ปดํจํ ์ ์ค๋ฅ๋ผ๊ณ ๋ ์๋ ค์ง ์ด๊ฒ์, ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์์ด ์คํจ๋ก ์ด์ด์ง ์ ์๋ ๋ถ์ฐ ์ปดํจํ ๊ด๋ จ ๊ฐ์ค์ ๋ชฉ๋ก์ด๋ค.
<br>์ด๋ ๋ค์๊ณผ ๊ฐ๋ค :
-
๋คํธ์ํฌ๋ ์ ๋ขฐํ ์ ์๋ค.
-
์ง์ฐ์ 0์ด๋ค.
-
๋์ญํญ์ ๋ฌดํํ๋ค.
-
๋คํธ์ํฌ๋ ์์ ํ๋ค.
-
์์์ ๋ณํํ์ง ์๋๋ค.
-
์ค์ง ํ๋์ ๊ด๋ฆฌ์๋ง์ด ์กด์ฌํ๋ค.
-
์ ์ก ๋น์ฉ์ ์๋ค.
-
๋คํธ์ํฌ๋ ๋ชจ๋ ๊ท ์ผํ๋ค.
<br>
์ฒซ ๋ค ๊ฐ์ง๋ ๋น ์กฐ์ด์ ํฐ ๋ฆฌ์จ์ ์ํด 1991๋ ๊ฒฝ ์ ๊ธฐ๋์์ผ๋ฉฐ ์ ์์ค ๊ณ ์ฌ๋ง์ ์ํด ์ฒ์์ผ๋ก '๋ถ์ฐ ์ปดํจํ ์ ์ค๋ฅ'๋ก์ ๋ถ๋ฅ๋์๋ค. L. ํผํฐ ๋์ด์น๊ฐ 5 ~ 7๋ฒ์งธ ์ค๋ฅ๋ฅผ ์ถ๊ฐํ์๊ณ 90๋ ๋ ๋ง ๊ณ ์ฌ๋ง์ 8๋ฒ์งธ ์ค๋ฅ๋ฅผ ์ถ๊ฐํ์๋ค.
๊ทธ๋ค์ ๋น์ ์ฌ ๋ง์ดํฌ๋ก์์คํ ์ฆ๋ด์์ ์ผ์ด๋๋ ์ผ๋ก๋ถํฐ ์ํฅ์ ๋ฐ์๋ค.
ํ๋ณต์ฑ์ด ๋์ ์ฝ๋๋ฅผ ์ค๊ณํ ๋, ์ด ์ค๋ฅ๋ค์ ์ํด ์๋ชป๋ ๋ก์ง์ ์์ฑํ์ฌ ์ค์ ์ธ๊ณ์ ๋ถ์ฐ ์ปดํจํ ์ ๋ณต์ก์ฑ์ ๋ค๋ฃจ๋ ๋ฐ์ ์คํจํ ์ ์์ผ๋ฏ๋ก ์ ์ํด์ผํ๋ค.
<br>์ฐธ๊ณ :
- Foraging for the Fallacies of Distributed Computing (Part 1) - Vaidehi Joshi on Medium
- Deutsch's Fallacies, 10 Years After
์ถ์ฒ ๋์
์ด ๊ฐ๋ ๋ค์ด ํฅ๋ฏธ๋กญ๋ค๋ฉด, ๋ค์ ์ฑ ๋ค๋ ์ฆ๊ธธ ์ ์์ ๊ฒ์ ๋๋ค.
- Extreme Programming Installed : XP ๋์ ์ ์ํ ์ค์ ์ ๋ฌธ - ๋ก ์ ํ๋ฆฌ์ฆ, ์ค ์ค๋์จ, ์ฒดํธ ํธ๋๋ฆญ์จ - ์ต์คํธ๋ฆผ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ ์๋ฆฌ๋ฅผ ๋ค๋ฃฌ๋ค.
- ๋งจ๋จผ์ค ๋ฏธ์ - ํ๋ ๋๋ฆญ P. ๋ธ๋ฃฉ์ค Jr. - ์ํํธ์จ์ด ๊ณตํ์ ๊ณ ์ . ๋ธ๋ฃฉ์ค์ ๋ฒ์น์ ์ด ์ฑ ์ ์ฃผ์ํ ์ฃผ์ ์ด๋ค.
- ๊ดด๋ธ, ์์ , ๋ฐํ : ์์ํ ํฉ๊ธ ๋ ธ๋ - ๋๊ธ๋ผ์ค R. ํธํ์คํํฐ - ์ด ์ฑ ์ ๋ถ๋ฅํ๊ธฐ ์ด๋ ต๋ค. ํธํ์คํํฐ์ ๋ฒ์น์ ์ด ์ฑ ์ผ๋ก๋ถํฐ ๋น๋กฏ๋์๋ค.
- ๋๋ฒํธ์ ๋ฒ์น - ์ค์บ ์๋ด์ค - ๋๋ฒํธ์ ๋ฒ์น์ ๋ง๋ ์ ์์ ๋ฏธ๊ตญ ์ ๊ณ์ ๋ํ ํ์์ ์ธ ๋งํ.
- ํผํฐ์ ์๋ฆฌ - ๋ก๋ ์ค J. ํผํฐ - ๊ฑฐ๋ ์กฐ์ง๊ณผ ์ธ์ ๊ฒฝ์์ ์์ด์์ ๋์ ์ ๊ดํ ๋ ๋ค๋ฅธ ํดํ์ ๊ด์ ์ ๋ณด์ฌ์ฃผ๋, ํผํฐ์ ์๋ฆฌ์ ์ถ์ฒ.
TODO
Hi! If you land here, you've clicked on a link to a topic I've not written up yet, sorry about this - this is work in progress!
Feel free to Raise an Issue requesting more details, or Open a Pull Request to submit your proposed definition of the topic.