์ด์ง์ ์๋๊ณ ๋ฉด์ ์ ํฉ๊ฒฉํด์ผ ํ ์ํฉ์ด ์๊ฒผ์ ๋, ๊ฐ์ฅ ๋จผ์ โ๋ฉด์ ์ ์ค๋นํด์ผ ํ๋คโ๋ ์๊ฐ์ด ๋๋ ๊ฒ์ด ์ด์ํ์ง ์๋์? HackerRank์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ์ฝ๋ฉ ์ธํฐ๋ทฐ ํฌ๋์ ์ฝ๊ณ , ArrayList์ ์๋ ๋ฐฉ์๊ณผ LinkedList์์ ์ฐจ์ด์ ์ ๊ธฐ์ตํ์ธ์. ์, ๊ทธ๋ ์ต๋๋ค. ๊ทธ๋ค์ ์ ๋ ฌ์ ๊ดํด ์ง๋ฌธํ ์๋ ์์ผ๋ฉฐ, ๋น ๋ฅธ ์ ๋ ฌ์ด ์ต์ ์ ์ ํ์ผ ๊ฒ์ด๋ผ๊ณ ๋งํ๋ ๊ฒ์ ๋ถ๋ช
ํ ๋น์ ๋ฌธ์ ์ผ ๊ฒ์
๋๋ค.
ํ์ง๋ง ์ ๊น๋ง์, ํ๋ฃจ์ 8์๊ฐ์ฉ ํ๋ก๊ทธ๋๋ฐํ๊ณ , ํฅ๋ฏธ๋กญ๊ณ ์ฌ์ํ์ง ์์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ์ ์ง์ฅ์์๋ ํ๋ฌ์ค ๋ง์ด๋์ค ๋ง์ด๋์ค ๊ฐ์ ์ผ์ ํ๊ฒ ๋ ๊ฒ์
๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ธํฐ๋ทฐ์ ํฉ๊ฒฉํ๋ ค๋ฉด ์ผ์์ ์ธ ๊ธฐ์ ์ ์ฐ๋งํ๋ ๊ฒ์กฐ์ฐจ ์๋๋ผ ์ด๋ป๊ฒ ๋ ์ถ๊ฐ๋ก ์ค๋นํด์ผํ์ง๋ง ํ์ฌ ์ง์ฅ์์ ํ์ํ์ง ์์๊ณ ๋ค์ ์ง์ฅ์์๋ ํ์ํ์ง ์์ ๊ฒ ๊ฐ์ ๊ฒ์ ๋ฐฐ์์ผํฉ๋๋ค. ์ปดํจํฐ ๊ณผํ์ด ์ฐ๋ฆฌ์ ํผ ์์ ์๋ค๋ ๋น์ ์ ๋ฐ๋์ ๋ํด, ํ๋ฐค์ค์ ์ฐ๋ฆฌ๋ฅผ ๊นจ์ฐ๋ฉด ์ฐ๋ฆฌ๋ ๋์ ๊ฐ๊ณ ๋ฒ ๊ฐฏ์์ ์์์ ํ๋ณตํ์ง ๋ชปํ ์ฑ ๋๋ฌด ๋๋น ์ฃผ์๋ฅผ ์ฐ์ฑ
ํ๋ผ๋ ๊ธ์ ์จ์ผ ํฉ๋๋ค. ๋ด๊ฐ ์์ปค์ค์ ์ทจ์งํ๋ฉด ๋์ ๊ฐ์ฅ ์ค์ํ ๋น๊ฒฐ์ ๋ฐ๋ก ์ด๊ฒ์ผ ๊ฒ์ด๋ผ๊ณ ๋๋ตํ ๊ฒ์
๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์๋ง๋ ์, ๋์ํฉ๋๋ค. ์ด ๊ธฐ์ ์ ํ
์คํธ๋ฅผ ๊ฑฐ์ณ์ผ ํฉ๋๋ค.
๊ทธ๋ฐ๋ฐ ์ ํ์ฌ ์ง์
๊ณผ ๊ด๋ จ ์๋ ๊ธฐ์ ์ ํ
์คํธํฉ๋๊น? ๋จ์ง ์ ํ์ด ๋์๊ธฐ ๋๋ฌธ์? ๊ตฌ๊ธ์ด ์ด๋ฐ ์ผ์ ํ๊ธฐ ๋๋ฌธ์? ๋๋ ๋ฏธ๋์ ํ ๋ฆฌ๋๊ฐ ์ธํฐ๋ทฐ ์ ์ ๋ชจ๋ ์ ๋ ฌ ๋ฐฉ๋ฒ์ ๋ฐฐ์์ผ ํ๊ณ ์ด์ ๊ทธ๋ "๋ชจ๋ ํ๋ฅญํ ํ๋ก๊ทธ๋๋จธ๋ ๋ฌธ์์ด์์ ํ๋ฌธ์ ์ฐพ๋ ๊ตฌํ์ ์๊ธฐํด์ผ ํ๋ค"๊ณ ๋ฏฟ๊ธฐ ๋๋ฌธ์
๋๋ค.
๊ธ์, ๋น์ ์ Google์ด ์๋๋๋ค (c). Google์ด ๊ฐ๋นํ ์ ์๋ ๊ฒ์ ์ผ๋ฐ ๊ธฐ์
์ ๊ฐ๋นํ ์ ์์ต๋๋ค. ์ง์์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ํ Google์ ์ฌ๋ฆผํผ์๋ ๋ฐฐ๊ฒฝ์ ๊ฐ์ง ์์ง๋์ด๊ฐ ํน์ ์์
์ ์ ์ฒ๋ฆฌํ๋ค๋ ๊ฒฐ๋ก ์ ๋๋ฌํ์ต๋๋ค. ๋์ฑ์ด, ์ ํ ํ๋ก์ธ์ค๋ฅผ ์ค๊ณํจ์ผ๋ก์จ ์ํ ๋ฌธ์ ๋ฅผ ์ฝ๊ฒ ํ ์ ์๊ธฐ ๋๋ฌธ์ ์ข์ ์์ง๋์ด ๋ช ๋ช
์ ๊ณ ์ฉํ์ง ๋ชปํ ์๋ ์๋ ์ํ์ ๊ฐ์ํ ์ฌ์ ๊ฐ ์์ต๋๋ค. ํ์ง๋ง ์ด๊ฒ์ ๊ทธ๋ค์๊ฒ๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. Google์์ ์ผํ๊ณ ์ถ์ดํ๋ ์ฌ๋๋ค์ด ๋ง๊ธฐ ๋๋ฌธ์ ํด๋น ์ง์๋ ์ข
๋ฃ๋ ๊ฒ์
๋๋ค.
์ด์ ์ฐฝ๋ฐ์ ๋ด๋ค๋ด
์๋ค. ์ฌ๋ฌด์ค ์์ ๋น์ ์ ์ํด ์ผํ๊ณ ์ถ์ ์์ง๋์ด๊ฐ ์์ง ํ
ํธ ์บ ํ๋ฅผ ์ค์นํ์ง ์์๊ณ ๊ฐ๋ฐ์๊ฐ ๋ค์ Spring ์ฃผ์์ ์ค์นํด์ผ ํ ๊ฒ์ด ๋ฌด์์ธ์ง stackoverflow์์ ๋ ์์ฃผ ์ฐพ๊ณ ์๋ค๋ฉด, ์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์กํจ๋ณด๋ค๋ ๊ทธ๋ ๋ค๋ฉด ์ด์ Google์ ๋ณต์ฌํด์ผ ํ๋์ง ์๊ฐํด ๋ณผ ๋์
๋๋ค.
๊ธ์, ์ด๋ฒ์ ๊ตฌ๊ธ์ด ์คํจํ๊ณ ๋ต๋ณ์ ์ ๊ณตํ์ง ๋ชปํ๋ค๋ฉด ์ด๋ป๊ฒ ํด์ผ ํ ๊น์? ๊ฐ๋ฐ์๊ฐ ์ง์ฅ์์ ๋ฌด์์ ํ ์ง ์ ํํ ํ์ธํ์ธ์. ๊ฐ๋ฐ์์๊ฒ ๋ฌด์์ ์ค์ํ๊ฒ ์๊ฐํ์๋์?
์ฑ์ฉํ๋ ค๋ ์ฌ๋์ ๋ํ ๊ธฐ์ค์ ๋ง๋ค๊ณ ์ด๋ฌํ ๊ธฐ์ ์ ์ ํํ๊ฒ ํ
์คํธํ๋ ํ
์คํธ๋ฅผ ๊ฐ๋ฐํ์ญ์์ค.
ThoughtWorks
ThoughtWorks๋ ์ด๊ฒ๊ณผ ์ด๋ค ๊ด๋ จ์ด ์์ต๋๊น? ์ฌ๊ธฐ์์ ์ ๊ฐ ์ง์ ๋ชจ๋ธ ์ธํฐ๋ทฐ์ ์๋ฅผ ์ฐพ์์ต๋๋ค. ThoughtWorks๋ ๋๊ตฌ์ธ๊ฐ์? ํ๋ง๋๋ก ์ค๊ตญ, ์ฑ๊ฐํด๋ถํฐ ๋ฏธ์ฃผ๋๋ฅ๊น์ง ์ ์ธ๊ณ์ ์ง์ฌ๋ฅผ ๋๊ณ ์๋ ํ์ด์๋ ์ปจ์คํ
ํ์ฌ๋ก, ์ฝ 25๋
๋์ ๊ฐ๋ฐ ๋ถ์ผ ์ปจ์คํ
์ ์งํํด ์์ผ๋ฉฐ, ๋งํด์ ํ๋๋ก ํ๋ ์์ฒด ์ฌ์ด์ธ์ค ์ฌ์
๋ถ๋ฅผ ๋๊ณ ์์ต๋๋ค. ํ์ธ๋ฌ. ์ํํธ์จ์ด ์์ง๋์ด๊ฐ ๊ผญ ์ฝ์ด์ผ ํ 10๊ถ์ ์ฑ
๋ชฉ๋ก์ ์ฐพ๋๋ค๋ฉด ์๋ง๋ ๊ทธ ์ค 2~3๊ถ์ ThoughtWorks ์ง์์ด ์ด ๊ฒ์
๋๋ค(์: Martin Fowler์ Refactoring ๋ฐ Sam์ Building Microservices: Designing Fine-Grained Systems) ๋ด๋จผ ๋๋ ํ์ ์ ์ธ ์ํคํ
์ฒ ๊ตฌ์ถ
ํจํธ๋ฆญ ์ฟ ์, ๋ ๋ฒ ์นด ํ์จ์ค, ๋ ํฌ๋ ์ง์.
ํ์ฌ์ ๋น์ฆ๋์ค๋ ์๋นํ ๋น์ผ ์๋น์ค ์ ๊ณต์ ๊ธฐ๋ฐ์ผ๋ก ํ์ง๋ง ๊ณ ๊ฐ์ ์ ๋ฌธ ์ง์, ๋ด๋ถ ํ์ค ๋ฐ ์ธ๋ ฅ์ผ๋ก ๊ตฌ์ฑ๋ ๊ฒฝ์ด๋ก์ด ํ์ง์ ๋ํ ๋น์ฉ์ ์ง๋ถํฉ๋๋ค. ๋ฐ๋ผ์ ์ฌ๊ธฐ์๋ ์ ํฉํ ์ฌ๋์ ๊ณ ์ฉํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ด๋ค ์ฌ๋๋ค์ด ์ณ์ต๋๊น? ๋ฌผ๋ก ์ฌ๋๋ง๋ค ๋ค๋ฅธ ๊ฒ์ด ์์ต๋๋ค. ThoughtWorks๋ ๊ฐ๋ฐ์ ๋น์ฆ๋์ค ๋ชจ๋ธ์ ๊ฐ์ฅ ์ค์ํ ๊ธฐ์ค์ ๋ค์๊ณผ ๊ฐ์ด ๊ฒฐ์ ํ์ต๋๋ค.
- ์์ผ๋ก ๋ฐ์ ํ๋ ๋ฅ๋ ฅ. ๊ฒฝํ์ด๋ ๊ธฐ์ ์ด ์๋๋ผ ๋ฅ๋ ฅ์ด๋ค. 5๋ ๋์ ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ํด์จ ์ฌ๋์ด ์ฌ ๊ฑฐ๋ผ๊ณ ๋ ๋๊ตฌ๋ ์์ํ์ง ๋ชปํ์ง๋ง, ๋ค๋ฅธ ์ฌ๋์ ์๊ฒฌ์ ์์ฉํ๊ณ ๊ฒฝ์ฒญํ๋ ๋ฅ๋ ฅ์ ๊ผญ ํ์ํ ๋ฅ๋ ฅ์ด๋ค.
- ํ ์คํธ๋ฅผ ์์ฑํ๊ณ TDD๋ฅผ ์ด์์ ์ผ๋ก ์ฐ์ตํ ์ ์๋ ๋ฅ๋ ฅ
- SOLID์ OOP๋ฅผ ์ดํดํ๊ณ ์ ์ฉํ ์ ์๋ค.
- ๊ทํ์ ์๊ฒฌ์ ์ ์ํ์ญ์์ค. ์ปจ์คํดํธ๋ก์ ํด๋ผ์ด์ธํธ์ ๊ฐ๋ฐ์, ๋ค๋ฅธ ์ปจ์คํดํธ์ ํจ๊ป ์ผํด์ผ ํ๋๋ฐ, ์ด๋ค ์ฌ๋์ด ์ด๋ค ์ผ์ ์ํ๋ ๋ฐฉ๋ฒ์ ์๊ณ ์์ง๋ง ๊ทธ๊ฒ์ ๋๋จธ์ง ํ์๋ค์๊ฒ ์ ํ ์ ๋ฌํ ์ ์๋ค๋ฉด ๋ณ๋ก ์ด์ต์ด ๋์ง ์์ต๋๋ค.
์ด์ ํ๋ณด์์ ์ด๋ฌํ ํน์ ๊ธฐ์ ์ ํ๊ฐํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ฌ๊ธฐ์ ์ ๋ ThoughtWorks์์์ ์ธํฐ๋ทฐ ๊ฒฝํ์ ๋ํด ์ด์ผ๊ธฐํ๊ณ ์ถ์ต๋๋ค. ๋ฐ๋ก ๋ง์๋๋ฆฌ์๋ฉด ์ฑ๊ฐํด์ ๊ฐ์ ํฉ๊ฒฉํ๋๋ฐ ์ฑ์ฉ์ ์ฐจ๊ฐ ํต์ผ๋์ด ์์ด์ ๊ตญ๊ฐ๋ณ๋ก ํฌ๊ฒ ๋ค๋ฅด์ง๋ ์์ ๊ฒ ๊ฐ์์.
0๋จ๊ณ. HR
ํํ ๊ทธ๋ ๋ฏ์ด HR๊ณผ์ 20๋ถ ์ธํฐ๋ทฐ์ ๋๋ค. ๋ ์ด์ ๊น์ด ์๊ฐํ์ง ์๊ณ ํ์ฌ์ ๊ฐ๋ฐ ๋ฌธํ, ์ TDD๋ฅผ ์ฌ์ฉํ๋์ง, ์ ์ ํ๋ก๊ทธ๋๋ฐ์ ์ฌ์ฉํ๋์ง์ ๋ํด 15๋ถ ๋์ ์ด์ผ๊ธฐํ ์ ์๋ HR ๋ด๋น์๋ฅผ ๋ง๋ ์ ์ด ์๋ค๋ ์ ๋ง ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก HR์ ์ด ์ง๋ฌธ์ ์๋ค๊ณ ๊ฐ๋ฐ์๊ฐ ๊ฐ๋ฐํ๊ณ , ํ ์คํฐ๊ฐ ํ ์คํธํ๊ณ , ๊ด๋ฆฌ์๊ฐ ์ด์ ํ๋ ํ๋ก์ธ์ค๊ฐ ์ ์์ด๋ผ๊ณ ๋งํฉ๋๋ค.
1๋จ๊ณ. OOP, TDD์ ์ผ๋ง๋ ๋ฅ์ํฉ๋๊น?
์ธํฐ๋ทฐ ์์ 1.5์๊ฐ XNUMX๋ถ ์ ์ ํ์ฑํ์ฌ์ฐจ ์๋ฎฌ๋ ์ดํฐ๋ฅผ ๋ง๋๋ ์๋ฌด๋ฅผ ๋งก๊ฒ ๋๋ค.
ํ์ฑ ํ์ฌ์ ์๋ฌดNASA๋ ๋ก๋ด ๋ก๋ฒ ํ์ ํ์ฑ ๊ณ ์์ ์ฐฉ๋ฅ์ํฌ ์์ ์
๋๋ค. ๋ฌํ๊ฒ ์ง์ฌ๊ฐํ์ธ ์ด ๊ณ ์์ ํ์ฌ๋ ์นด๋ฉ๋ผ๊ฐ ์ฃผ๋ณ ์งํ์ ์์ ํ ๋ณผ ์ ์๋๋ก ๋ก๋ฒ๊ฐ ํ์ํ์ฌ ์ง๊ตฌ๋ก ๋ค์ ๋ณด๋ผ ์ ์๋๋ก ํด์ผ ํฉ๋๋ค. ๋ก๋ฒ์ ์์น์ ์์น๋ x ๋ฐ y ์ขํ์ ์กฐํฉ๊ณผ ๋ค ๊ฐ์ ๊ธฐ๋ณธ ๋์นจ๋ฐ ์ง์ ์ค ํ๋๋ฅผ ๋ํ๋ด๋ ๋ฌธ์๋ก ํ์๋ฉ๋๋ค. ๊ณ ์์ ํ์์ ๋จ์ํํ๊ธฐ ์ํด ๊ทธ๋ฆฌ๋๋ก ๋๋์ด์ ธ ์์ต๋๋ค. ์์ ์์น๋ 0, 0, N์ผ ์ ์์ต๋๋ค. ์ด๋ ๋ก๋ฒ๊ฐ ์ผ์ชฝ ํ๋จ์ ์๊ณ ๋ถ์ชฝ์ ํฅํ๊ณ ์์์ ์๋ฏธํฉ๋๋ค. NASA๋ ๋ก๋ฒ๋ฅผ ์ ์ดํ๊ธฐ ์ํด ๊ฐ๋จํ ๋ฌธ์ ๋ฌธ์์ด์ ๋ณด๋
๋๋ค. ๊ฐ๋ฅํ ๋ฌธ์๋ 'L', 'R', 'M'์
๋๋ค. 'L'๊ณผ 'R'์ ๋ก๋ฒ๋ฅผ ํ์ฌ ์ง์ ์์ ์์ง์ด์ง ์๊ณ ๊ฐ๊ฐ ์ผ์ชฝ์ด๋ ์ค๋ฅธ์ชฝ์ผ๋ก 90๋ ํ์ ์ํต๋๋ค. 'M'์ ํ ๊ทธ๋ฆฌ๋ ํฌ์ธํธ ์์ผ๋ก ์ด๋ํ๊ณ ๋์ผํ ๋ฐฉํฅ์ ์ ์งํ๋ค๋ ์๋ฏธ์
๋๋ค.
(x, y)์์ ๋ฐ๋ก ๋ถ์ชฝ์ ์๋ ์ ์ฌ๊ฐํ์ด (x, y+1)์ด๋ผ๊ณ ๊ฐ์ ํฉ๋๋ค.
์
๋ ฅ:
์
๋ ฅ์ ์ฒซ ๋ฒ์งธ ์ค์ ๊ณ ์์ ์ค๋ฅธ์ชฝ ์ ์ขํ์ด๊ณ , ์ผ์ชฝ ์๋ ์ขํ๋ 0,0์ผ๋ก ๊ฐ์ ๋ฉ๋๋ค.
์
๋ ฅ์ ๋๋จธ์ง ๋ถ๋ถ์ ๋ฐฐ์น๋ ๋ก๋ฒ์ ๊ด๋ จ๋ ์ ๋ณด์
๋๋ค. ๊ฐ ๋ก๋ฒ์๋ ๋ ๊ฐ์ ์
๋ ฅ ๋ผ์ธ์ด ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ค์ ํ์ฌ์ ์ ์์น๋ฅผ โโ์๋ ค์ฃผ๊ณ , ๋ ๋ฒ์งธ ์ค์ ํ์ฌ์ ์๊ฒ ๊ณ ์์ ํ์ํ๋ ๋ฐฉ๋ฒ์ ์๋ ค์ฃผ๋ ์ผ๋ จ์ ์ง์นจ์
๋๋ค. ์์น๋ x ๋ฐ y ์ขํ์ ๋ก๋ฒ์ ๋ฐฉํฅ์ ํด๋นํ๋ ๋ ๊ฐ์ ์ ์์ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ๋ฌธ์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
๊ฐ ๋ก๋ฒ๋ ์์ฐจ์ ์ผ๋ก ์๋ฃ๋ฉ๋๋ค. ์ฆ, ์ฒซ ๋ฒ์งธ ๋ก๋ฒ๊ฐ ์ด๋์ ์๋ฃํ ๋๊น์ง ๋ ๋ฒ์งธ ๋ก๋ฒ๋ ์ด๋์ ์์ํ์ง ์์ต๋๋ค.
์ฐ์ถ:
๊ฐ ๋ก๋ฒ์ ์ถ๋ ฅ์ ์ต์ข
์ขํ์ ๋ฐฉํฅ์ด์ด์ผ ํฉ๋๋ค.
์ฐธ๊ณ ์ฌํญ :
์์ ์๊ตฌ ์ฌํญ์ ๊ตฌํํ๊ณ ๋จ์ ํ
์คํธ๋ฅผ ์์ฑํ์ฌ ์ง๊ณต ์ฒญ์๊ธฐ๊ฐ ์๋ํ๋์ง ์ฆ๋ช
ํ์ธ์.
์ด๋ค ํํ๋ก๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๋ง๋๋ ๊ฒ์ ๋ฒ์๋ฅผ ๋ฒ์ด๋ฉ๋๋ค.
TDD(Test Driven Development) ์ ๊ทผ ๋ฐฉ์์ ๋ฐ๋ผ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์งง์ ์๊ฐ์ ์์ฑ๋๋ณด๋ค๋ ํ์ง์ ๋ ์ค์ํ๊ฒ ์๊ฐํฉ๋๋ค.
*์ ์๊ฒ ๋ณด๋ด์ฃผ์ ๊ณผ์ ๋ ๊ฒ์ํ ์ ์์ต๋๋ค. ๋ช ๋
์ ์ ๋ฐ์ ์ค๋๋ ๊ณผ์ ์
๋๋ค. ํ์ง๋ง ์ ๋ฅผ ๋ฏฟ์ผ์ธ์. ๊ธฐ๋ณธ์ ์ผ๋ก ๋ชจ๋ ๊ฒ์ด ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค.
ํนํ ํ๊ฐ๊ธฐ์ค์ ์ฃผ๋ชฉํ๊ณ ์ถ์ต๋๋ค. ํ๋ณด์์๊ฒ ์ค์ํ ์ฌํญ์ด ๊ฐ์ฌ ์ค์ ์ ํ ์ค์ํ์ง ์๊ฑฐ๋ ๊ทธ ๋ฐ๋์ ๊ฒฝ์ฐ๊ฐ ๋ช ๋ฒ์ด๋ ๋ฐ์ํ์ต๋๊น? ๋ชจ๋ ์ฌ๋์ด ๋น์ ๊ณผ ๊ฐ์ ๋ฐฉ์์ผ๋ก ์๊ฐํ๋ ๊ฒ์ ์๋์ง๋ง, ๋น์ ์ ๊ฐ์น๊ด์ด ๋ช ํํ๊ฒ ๋ช ์๋์ด ์๋ค๋ฉด ๋ง์ ์ฌ๋๋ค์ด ์ด๋ฅผ ๋ฐ์๋ค์ด๊ณ ๋ฐ๋ฅผ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ๊ฐ ๊ธฐ์ค์ ๋ณด๋ฉด ์ด ๋จ๊ณ์์ ๊ฐ์ฅ ์ค์ํ ๊ธฐ์ ์ ๋ค์๊ณผ ๊ฐ๋ค๋ ๊ฒ์ด ์ฆ์ ๋ช ๋ฐฑํด์ง๋๋ค.
- TDD;
- OOP๋ฅผ ์ฌ์ฉํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฅ๋ ฅ
- ํ์ด ํ๋ก๊ทธ๋๋ฐ ๋ฅ๋ ฅ
๊ทธ๋์ ์ ๋ ๊ทธ 1.5์๊ฐ ๋์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ๋ณด๋ค ์์ ์ ์ด๋ป๊ฒ ์ํํ ๊ฒ์ธ์ง ์๊ฐํ๋ ๋ฐ ์๊ฐ์ ๋ณด๋ด๋ผ๋ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ์์ต๋๋ค. ์ฝ๋๋ฅผ ํจ๊ป ์์ฑํ๊ฒ ์ต๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ ํ๋ฅผ ๋ฐ์์ ๋ ์ฌ๋๋ค์ ์์ ์ด ๋๊ตฌ์ธ์ง, ๋ฌด์์ ํ๋์ง ๊ฐ๋ตํ๊ฒ ์ค๋ช ํ๊ณ ๊ฐ๋ฐ์ ์์ํ๊ฒ ๋ค๊ณ ์ ์ํ์ต๋๋ค.
์ธํฐ๋ทฐ ๋ด๋ด ์ ๋ ๋จ ํ ๋ฒ๋ ์ ๊ฐ ์ธํฐ๋ทฐ๋ฅผ ๋ฐ๊ณ ์๋ค๋ ๋๋์ ๋ฐ์ ์ ์ด ์์ต๋๋ค. ํ์ผ๋ก ์ฝ๋๋ฅผ ๊ฐ๋ฐํ๋ค๋ ๋๋์ด ๋ญ๋๋ค. ์ด๋๊ฐ์ ๋งํ๋ฉด โโ์ต์ ์ ๋ฐฉ๋ฒ์ ๋ํด ์๋ก ๋์์ฃผ๊ณ , ์กฐ์ธํ๊ณ , ํ ๋ก ํ๊ณ , ์ฌ์ง์ด ๋ ผ์๊น์ง ๋ฒ์ ๋๋ค. ์ธํฐ๋ทฐ์์ JUnit 5์์ ๋ฉ์๋๊ฐ ์์ธ๋ฅผ ๋ฐ์์ํค๋์ง ํ์ธํ๋ ๋ฐฉ๋ฒ์ ์์ด๋ฒ๋ ธ์ต๋๋ค. ๊ทธ๋ค์ ํ ์คํธ ์์ฑ์ ๊ณ์ํ๊ฒ ๋ค๊ณ ์ ์ํ์ง๋ง ๊ทธ ์ค ํ ๋ช ์ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ๊ฒ์ํ๊ณ ์์์ต๋๋ค.
์ธํฐ๋ทฐ ํ ๋ง ๊ทธ๋๋ก ๋ช ์๊ฐ ํ์ ๋๋ ๋ด๊ฐ ์ข์ํ๋ ๊ฒ๊ณผ ๊ทธ๋ ์ง ์์ ๊ฒ์ ๋ํ ๊ฑด์ค์ ์ธ ํผ๋๋ฐฑ์ ๋ฐ์์ต๋๋ค. ๋ด ๊ฒฝ์ฐ์๋ null ๊ฐ์ฒด์ ๋์์ผ๋ก Sealed ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ค๋ ์ ์์ ์นญ์ฐฌ์ ๋ฐ์์ต๋๋ค. ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ๋ก๋ฒ๋ฅผ ์ ์ดํ๋ โโ๋ฐฉ๋ฒ์ ์์ฌ ์ฝ๋๋ก ์์ฑํ์ฌ ์ ์ด๋ ๋ก๋ด์ API์ ๊ด๋ จ๋ ํด๋์ค์ ์ค์ผ์น๋ฅผ ๋ฐ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
2๋จ๊ณ: ์๋ ค์ฃผ์ธ์
์ธํฐ๋ทฐ ์ผ์ฃผ์ผ ์ ์ ๋๋ ๊ด์ฌ ์๋ ์ฃผ์ ์ ๋ํ ํ๋ ์ ํ
์ด์
์ ์ค๋นํ๋ผ๋ ์์ฒญ์ ๋ฐ์์ต๋๋ค. ํ์์ ๊ฐ๋จํ๊ณ ์น์ํฉ๋๋ค. ํ๋ ์ ํ
์ด์
15๋ถ, ์ง๋ฌธ ๋ต๋ณ 15๋ถ์
๋๋ค.
์ ๋ Bob ์ผ์ด์ Clean Architecture๋ฅผ ์ ํํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ค์ ํ๋ ๋ช
๊ณผ ์ธํฐ๋ทฐ๋ฅผ ํ์ต๋๋ค. ์ด๊ฒ์ด ๋์ ์ฒซ ์์ด ๋ฐํ ๊ฒฝํ์ด์๊ณ , ์๋ง๋ ์คํธ๋ ์ค๊ฐ ๋ง์ ์ํฉ์ ์์๋ค๋ฉด ๋์ฒํ์ง ๋ชปํ์ ๊ฒ์
๋๋ค. ๊ทธ๋ฐ๋ฐ ๋ ํ ๋ฒ๋ ๋ฉด์ ์ ์ ์๋ค๋ ๋๋์ ๋ฐ์ ์ ์ด ์์ด์. ๋ชจ๋ ๊ฒ์ด ํ์์ ๊ฐ์ต๋๋ค. ๋ด๊ฐ ๊ทธ๋ค์๊ฒ ๋งํ๋ฉด ๊ทธ๋ค์์ฃผ์ ๊น๊ฒ ๋ฃ์ต๋๋ค. ์ ํต์ ์ธ ์ง๋ฌธ ๋ฐ ๋ต๋ณ ์ธ์
์กฐ์ฐจ๋ ์ธํฐ๋ทฐ์ ๊ฐ์ง ์์์ผ๋ฉฐ ์ง๋ฌธ์ด "๊ฐ๋ผ์๋" ์ง๋ฌธ์ด ์๋๋ผ ๋ด ํ๋ ์ ํ
์ด์
์ ์ ๋ง๋ก ๊ด์ฌ์ด ์๋ ์ง๋ฌธ์ด๋ผ๋ ๊ฒ์ด ๋ถ๋ช
ํ์ต๋๋ค.
์ธํฐ๋ทฐ ํ ๋ช ์๊ฐ ํ์ ํผ๋๋ฐฑ์ ๋ฐ์์ต๋๋ค. ํ๋ ์ ํ ์ด์ ์ ๋งค์ฐ ์ ์ฉํ๊ณ ๊ทธ๋ค์ ์ ๋ง ์ฆ๊ฒ๊ฒ ๋ฃ๊ณ ์์์ต๋๋ค.
3๋จ๊ณ. ์์ฐ ํ์ง ์ฝ๋
์ด๊ฒ์ด ๊ธฐ์ ์ธํฐ๋ทฐ์ ๋ง์ง๋ง ๋จ๊ณ์์ ๊ฒฝ๊ณ ํ ํ ์ง์์ ์ฝ๋๋ฅผ ํ๋ก๋์ ์ค๋น ์ํ๋ก ๊ฐ์ ธ์จ ๋ค์ ๊ฒํ ๋ฅผ ์ํด ์ฝ๋๋ฅผ ๋ณด๋ด๊ณ ์์ ์๊ตฌ ์ฌํญ์ด ๋ณ๊ฒฝ๋๊ณ ์ฝ๋๊ฐ ๋ณ๊ฒฝ๋๋ ์ธํฐ๋ทฐ ์ผ์ ์ ์์ฝํ๋ผ๋ ์์ฒญ์ ๋ฐ์์ต๋๋ค. ์์ ์ด ํ์ํฉ๋๋ค. ์์ผ๋ก ์ฝ๋ ๋ฆฌ๋ทฐ๋ ๋งน๋ชฉ์ ์ผ๋ก ์ํ๋๊ณ ๋ฆฌ๋ทฐ์ด๋ ํ๋ณด์๊ฐ ์ง์ํ๋ ์ง์๋ฅผ ๋ชจ๋ฅด๊ณ ์ด๋ ฅ์๋ ๋ณผ ์ ์์ผ๋ฉฐ ์ด๋ฆ๋ ๋ณผ ์ ์๋ค๊ณ ๋งํ ์ ์์ต๋๋ค.
์ ํ๋ฒจ์ด ์ธ๋ ธ๊ณ , ๋ชจ๋ํฐ ๋ฐ๋ํธ์๋ ๋ ๋ ๋ช ์ ๋จ์๊ฐ ์์์ต๋๋ค. ๋ชจ๋ ๊ฒ์ด ์ฒซ ๋ฒ์งธ ์ธํฐ๋ทฐ์ ๋์ผํฉ๋๋ค. ๊ฐ์ฅ ์ค์ํ ๊ฒ์ TDD๋ฅผ ์์ง ์๊ณ ์์ ์ด ํ๋ ์ผ๊ณผ ๊ทธ ์ด์ ๋ฅผ ์ค๋ช ํ๋ ๊ฒ์ ๋๋ค. ์ด์ ์ TDD๋ฅผ ์ฐ์ตํด ๋ณธ ์ ์ด ์๋ค๋ฉด ์ฆ์ ์์ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ์ฌ์์ ํ์ํ๊ธฐ ๋๋ฌธ์ด ์๋๋ผ ์ถ์ ํฌ๊ฒ ๋จ์ํํ๊ณ ์ํ ๊ฒฝ์ฐ ์คํธ๋ ์ค ์์ค์ ์ค์ผ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด์๋ง ์ฌํํ ์ ์์ง๋ง ํ ์คํธ๋ก๋ ์ฌํํ ์ ์๋ ์ค๋ฅ๋ฅผ ๋๋ฒ๊ฑฐ๋ก ๋ฏธ์น ๋ฏ์ด ๊ฒ์ํด์ผ ํ๋ ๊ฒ์ ๊ธฐ์ตํ์ญ๋๊น? ์ด์ ์ธํฐ๋ทฐ ์ค์ ๊ทธ๋ฌํ ์ค์๋ฅผ ์ก์์ผ ํ๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. ๋ ๊ฐ์ ํ์ ๋จธ๋ฆฌ์นด๋ฝ์ด ๋ณด์ฅ๋ฉ๋๋ค. TDD๋ก ๋ฌด์์ ์ป์ ์ ์๋์? ์ฝ๋๋ฅผ ๋ณ๊ฒฝํ๊ณ ์๊ธฐ์น ์๊ฒ ์ด์ ํ ์คํธ๊ฐ ๋นจ๊ฐ์์ด๋ผ๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค. ๊ทธ๋ฐ๋ฐ ์ฒ์์ ์์๋ผ ์ ์๋ ์ค๋ฅ๋ ๋ฌด์์ ๋๊น? ์ข์์, ๋ฉด์ ๊ด์๊ฒ "์ฃ์กํฉ๋๋ค"๋ผ๊ณ ๋งํ๊ณ Ctrl-Z๋ฅผ ๋๋ฅด๊ณ ์์ ๋ฐ๊ฑธ์์ ๋ด๋๊ธฐ ์์ํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ์ต๋๋ค. ์ค์ค๋ก TDD๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐํ ์ ์๋ ๋ฅ๋ ฅ, "๋ฆฌํฉํ ๋ง์ด ๋ง์ด ํ์ํ๊ธฐ" ๋๋ฌธ์ ํ ์คํธ๊ฐ ๋ฐ๋์ ๋์ ๋นจ๊ฐ์์ด ์๋ ์๊ตฌ์ ์ผ๋ก ๋ น์์ด ๋๋๋ก ๋ชฉํ๋ฅผ ํฅํด ๋์๊ฐ ์ ์๋ ๋ฅ๋ ฅ์ ๊ฐ๋ฐํด์ผ ํฉ๋๋ค. ์ด๋ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๊ฑฐ๋ ์์ฐ์ ์ธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ๊ณผ ์ ํํ ๊ฐ์ ๊ธฐ์ ์ ๋๋ค.
๋ฐ๋ผ์ ์ฝ๋๋ฅผ ์ผ๋ง๋ ์ ๋ณ๊ฒฝํ ์ ์๋์ง๋ ์ฒ์๋ถํฐ ์ด๋ค ๋์์ธ์ ์ผ๋์ ๋๊ณ ์๋์ง, ์ผ๋ง๋ ๋จ์ํ์ง, ํ ์คํธ๊ฐ ์ผ๋ง๋ ์ข์์ง์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
์ธํฐ๋ทฐ๊ฐ ๋๋ ํ ๋ช ์๊ฐ ์์ ํผ๋๋ฐฑ์ ๋ฐ์์ต๋๋ค. ์ด ๋จ๊ณ์์ ๋๋ ๊ฑฐ์ ๋๋ฌ๊ณ "ํ์ธ๋ฌ๋ฅผ ๋ง๋๊ธฐ" ์ ๊น์ง๋ ๊ฑฐ์ ๋จ์ง ์์๋ค๋ ๊ฒ์ ๊นจ๋ฌ์์ต๋๋ค.
4๋จ๊ณ. ์ต์ข . ๊ธฐ์ ์ ์ธ ์ง๋ฌธ์ ์ถฉ๋ถํฉ๋๋ค. ์ฐ๋ฆฌ๋ ๋น์ ์ด ๋๊ตฌ์ธ์ง ์๊ณ ์ถ์ต๋๋ค!
์์งํ ๋งํด์ ๋๋ ์ด ์ง๋ฌธ์ ๊ณต์ํ์ ๋ค์ ๋นํฉํ์ต๋๋ค. ํ ์๊ฐ์ ๋ํ๋ก ๋ด๊ฐ ์ด๋ค ์ฌ๋์ธ์ง ์ด๋ป๊ฒ ์ ์ ์๋์? ๊ทธ๋ฆฌ๊ณ ๋์ฑ์ด ๋ด๊ฐ ๋ชจ๊ตญ์ด๊ฐ ์๋๊ณ ์์งํ ๋งํ๋ฉด ๋งค์ฐ ํํธ์๊ณ ํ๊ฐ ๋ฌถ์ธ ์ธ์ด๋ฅผ ๋งํ ๋ ์ด๊ฒ์ ์ด๋ป๊ฒ ์ดํดํ ์ ์์ต๋๊น? ์ด์ ์ธํฐ๋ทฐ์์๋ ๊ฐ์ธ์ ์ผ๋ก ์ง๋ฌธ์ ๋๋ตํ๋ ๊ฒ๋ณด๋ค ์ด์ผ๊ธฐํ๋ ๊ฒ์ด ๋ ์ฌ์ ๊ณ , ์ต์์ด ํ์ด์๋ค. ๋ฉด์ ๊ด ์ค ์ ์ด๋ ํ ๋ช ์ ์์์์ธ์ด์๊ณ ๊ทธ๋ค์ ์ต์์ ์ ๋ฝ์ธ์ ๊ท์ ๋ค์ ํน์ดํ์ต๋๋ค. ๋ฐ๋ผ์ ์ ๋ ์ ๊ทน์ ์ธ ์ ๊ทผ ๋ฐฉ์์ ์ทจํ๊ธฐ๋ก ๊ฒฐ์ ํ์ต๋๋ค. ๋ ์์ ์ ๋ํ ํ๋ ์ ํ ์ด์ ์ ์ค๋นํ๊ณ ์ธํฐ๋ทฐ๊ฐ ์์๋ ๋ ์ด ํ๋ ์ ํ ์ด์ ์ ํตํด ๋ ์์ ์ ๋ํด ์ด์ผ๊ธฐํ๊ฒ ๋ค๊ณ ์ ์ํ์ต๋๋ค. ๊ทธ๋ค์ด ๋์ํ๋ค๋ฉด ์ ์ด๋ ๋์ ๋ํ ์ง๋ฌธ์ ์ค์ด๋ค ๊ฒ์ด๊ณ ๊ทธ๋ค์ด ์ ์์ ๊ฑฐ๋ถํ๋ค๋ฉด ๊ธ์์, ํ๋ ์ ํ ์ด์ ์ ์๋นํ๋ ๋ด ์ธ์์ 3 ์๊ฐ์ ๊ทธ๋ค์ง ๋์ ๋๊ฐ๊ฐ ์๋๋๋ค. ๊ทธ๋ฐ๋ฐ ํ๋ ์ ํ ์ด์ ์๋ ๋ฌด์์ ์จ์ผ ํ ๊น์? ์ฝ๋ ฅ - ๋น์ ๊ทธ๊ณณ์์ ํ์ด๋ ํ๊ต์ ๋ค๋ ๊ณ , ๋ํ์ ์กธ์ ํ์ต๋๋ค. ํ์ง๋ง ๋๊ฐ ์ ๊ฒฝ์ฐ๋์?
Thoughtworks ๋ฌธํ์ ๋ํด Google์์ ์กฐ๊ธ ๊ฒ์ํ๋ฉด ์ง์ ๊ฐ๋ฅํ ๋น์ฆ๋์ค, ์ํํธ์จ์ด ์ฐ์์ฑ ๋ฐ ์ฌํ ์ ์์ 3๊ฐ์ง ์์น์ ์ค๋ช ํ๋ Martin Fowler์ ๊ธฐ์ฌ [https://martinfowler.com/bliki/ThreePillars.html]๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.
Software Excellence๊ฐ ์ด๋ฏธ ํ์ธ๋์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ง์ ๊ฐ๋ฅํ ๋น์ฆ๋์ค์ ์ฌํ ์ ์๋ฅผ ๋ณด์ฌ์ฃผ๋ ๊ฒ์ด ๋จ์ ์์ต๋๋ค.
๊ฒ๋ค๊ฐ ๋๋ ํ์์ ์ง์คํ๊ธฐ๋ก ๊ฒฐ์ ํ๋ค.
์ฐ์ ๋๋ ThoughtWorks๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฅผ ๊ทธ์๊ฒ ๋งํ์ต๋๋ค. ๋ํ ์์ Martin Fowler์ ๋ธ๋ก๊ทธ๋ฅผ ์ฝ์๊ธฐ ๋๋ฌธ์ Clean ์ฝ๋๋ฅผ ์ข์ํฉ๋๋ค.
ํ๋ก์ ํธ๋ ๋ค์ํ ๊ฐ๋์์ ๋ฐํ๋ ์๋ ์์ต๋๋ค. ๊ทธ๋ ๋ํ ํ์์ ์ถ์ ๋จ์ํํ๊ณ ์ฌ์ง์ด ํ ๋ช ์ ์๋ช ์ ๊ตฌํ๋ค๋ ์๋ฌธ์ด ์๋ ์ํ์ฉ ์ํํธ์จ์ด๋ ๊ฐ๋ฐํ์ต๋๋ค. ๋๋ ๋ํ ์๋ฏผ๋ค์ ์ถ์ ๋์ฑ ํธ๋ฆฌํ๊ฒ ํด์ฃผ๋ ์ํ์ฉ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ์ต๋๋ค. ํนํ ์ด ์ํ์ ์ ๊ตญ ์ธ๊ตฌ์ 70%๊ฐ ์ฌ์ฉํ๋ค๋ฉด ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ์ด๊ฒ์ Sberbank์ ๊ดํ ๊ฒ์ด ์๋๋ฉฐ ๋ฌ์์์ ๊ดํ ๊ฒ๋ ์๋๋๋ค.
๋์ ๋ํด ์๊ณ ์ถ๋์? ์ข์์. ์ทจ๋ฏธ๋ ์ฌ์ง์ธ๋ฐ, ์ด์ฐ๋๋ ์นด๋ฉ๋ผ๋ฅผ 10๋ ์ ๋ ์์ ์ฅ๊ณ ์๋๋ฐ, ๋ณด์ฌ์ฃผ๊ธฐ์๋ ์ฅ์ค๋ฝ์ง ์์ ์ฌ์ง์ด ์์ด์. ๋ํ ํ๋๋ ๊ณ ์์ด ๋ณดํธ์๋ฅผ ๋์์ต๋๋ค. ์๊ตฌ ์ง์ด ํ์ํ ๊ณ ์์ด์ ์ฌ์ง์ ์ฐ์์ต๋๋ค. ์ข์ ์ฌ์ง์ ์ฐ์ผ๋ฉด ๊ณ ์์ด๋ฅผ ๋ฐฐ์นํ๋ ๊ฒ์ด ํจ์ฌ ์ฌ์์ง๋๋ค. ์๋ง ๋ฐฑ ๋ง๋ฆฌ์ ๊ณ ์์ด๋ฅผ ์ฐ์์ ๊ฑฐ์์ :)
๊ฒฐ๊ตญ ๋ด ๋ฐํ์ 80%๋ ๊ณ ์์ด๋ก ์ฑ์์ก๋ค.
ํ๋ ์ ํ ์ด์ ์งํ HR์์๋ ์ธํฐ๋ทฐ ๊ฒฐ๊ณผ๋ฅผ ์์ง ์์ง ๋ชปํ์ง๋ง ์ฌ๋ฌด์ค ์ ์ฒด๊ฐ ์ด๋ฏธ ๊ณ ์์ด์ ๊น์ ์ธ์์ ๋ฐ์๋ค๊ณ ๋์๊ฒ ํธ์ง๋ฅผ ๋ณด๋์ต๋๋ค.
๊ฒฐ๊ตญ ํผ๋๋ฐฑ์ ๊ธฐ๋ค๋ ธ์ต๋๋ค. ์ธ๊ฐ์ผ๋ก์ ๋ชจ๋๋ฅผ ๋ง์กฑ์์ผฐ์ต๋๋ค.
๊ทธ๋ฌ๋ ๋ง์ง๋ง ๋ํ์์ HR์ ์ฌํ ์ ์๊ฐ ๋งค์ฐ ์ข๊ณ ํ์ํ์ง๋ง ๋ชจ๋ ํ๋ก์ ํธ๊ฐ ์ด๋ ์ง๋ ์๋ค๊ณ ์ฌ์น ์๊ฒ ๋งํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ ๊ทธ๊ฒ์ด ๋์๊ฒ ๊ฒ์ด ๋ฌ๋์ง ๋ฌผ์์ต๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋๋ ์ฌํ ์ ์์ ๋ํด ์ฝ๊ฐ ์ง๋์ณค์ต๋๋ค. :)
ํฉ๊ณ
๊ทธ ๊ฒฐ๊ณผ, ๋๋ ๋ช ๋ฌ ๋์ ์ฑ๊ฐํฌ๋ฅด์ Thoughtworks์์ ์ผํ๊ณ ์๋๋ฐ ์ฌ๊ธฐ ๋๋ฌด ๋ง์ ํ์ฌ๋ค์ด Spring๋ณด๋ค ๋ ๋ง์ ์ง์์ ๊ฐ๊ณ ์์์๋ ๋ถ๊ตฌํ๊ณ ์ฝ๋ฉ์ ์ํด Leave์ Whiteboard๋ฅผ ์ฌ์ฉํ๋ Google์ "๋ชจ๋ฒ ๋ฉด์ ๊ดํ"์ ์ฑํํ๊ณ ์์์ ํ์ธํ์ต๋๋ค. Symfony, RubyOnRails(ํ์ํ ๋ถ๋ถ์ ๋ฐ์ค ํ์)๋ ์์ ์ ํ์ํ์ง ์์ต๋๋ค. ์์ง๋์ด๋ค์ ์ธํฐ๋ทฐ๋ฅผ ํ๊ธฐ ์ ์ ์ผ์ฃผ์ผ ๋์ '์ค๋น'๋ฅผ ํฉ๋๋ค.
Thoughtworks์์๋ ํ๋ณด์์ ๋ํ ์ ์ ํ ์๊ตฌ ์ฌํญ ์ธ์๋ ๋ค์ ์์น์ด ์ต์ฐ์ ์
๋๋ค.
์ธํฐ๋ทฐ์ ์ฆ๊ฑฐ์. ๊ฒ๋ค๊ฐ ์์ธก ๋ชจ๋์๊ฒ. ์ค์ ๋ก ์ต๊ณ ์ ์ธ๋ ฅ์ ํ๋ณดํ๊ณ ์ถ๋ค๋ฉด (๋๊ฐ ๊ทธ๋ ์ง ์์ต๋๊น?) ์ธํฐ๋ทฐ๋ ๋
ธ์๋ฅผ ์ ํํ๋ ์์ฅ์ด ์๋๋ผ ๊ณ ์ฉ์ฃผ์ ํ๋ณด์๊ฐ ์๋ก๋ฅผ ํ๊ฐํ๋ ์ผ์
๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ๋ณด์๊ฐ ํ์ฌ์ ๋ํด ์ ์พํ ๊ฐ์ ์ ์ฐ๊ด์ํจ๋ค๋ฉด ๊ทธ๋ ์ด ํน์ ํ์ฌ๋ฅผ ์ ํํ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
ํธ๊ฒฌ์ ์ํํ๊ธฐ ์ํด ์ฌ๋ฌ ๋ฉด์ ๊ด. Thoughtworks์์๋ ํ์ด ํ๋ก๊ทธ๋๋ฐ์ด ์ฌ์ค์์ ํ์ค์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ๊ดํ์ด ๋ค๋ฅธ ๋ถ์ผ์๋ ์ ์ฉ๋ ์ ์๋ค๋ฉด TW๋ ๊ทธ๋ ๊ฒ ํ๋ ค๊ณ ๋ ธ๋ ฅํฉ๋๋ค. ๊ฐ ๋จ๊ณ๋ง๋ค 2๋ช ์ด ๋ฉด์ ์ ์งํํฉ๋๋ค. ๋ฐ๋ผ์ ํ ์ฌ๋๋น ์ต์ 8๋ช ์ด ํ๊ฐํ๋ฉฐ, TW๋ ๋ค์ํ ๋ฐฐ๊ฒฝ, ๋ค์ํ ๋ฐฉํฅ(๊ธฐ์ ์๋ฟ๋ง ์๋๋ผ), ์ฑ๋ณ์ ๊ฐ์ง ๋ฉด์ ๊ด์ ์ ๋ฐํ๋ ค๊ณ ํฉ๋๋ค.
์ต์ข ์ ์ผ๋ก ์ฑ์ฉ ๊ฒฐ์ ์ ์ต์ 8๋ช ์ด์์ ์๊ฒฌ์ ๋ฐํ์ผ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ, ๋๊ตฌ๋ ์บ์คํ ํฌํ๊ถ์ ๊ฐ์ง ์์ต๋๋ค.
์์ฑ ๊ธฐ๋ฐ ์ฑ์ฉ ํ๋ณด์๊ฐ ์ข์ํ๋ ๊ฒ๊ณผ ์ซ์ดํ๋ ๊ฒ์ ๋ฐ๋ผ ๊ฒฐ์ ์ ๋ด๋ฆฌ๋ ๋์ ํ๊ฐ๋๋ ์์ฑ์ ํฌํจํ๋ ๊ฐ ์ญํ ๊ณผ ๊ฐ ๋จ๊ณ์ ๋ํ ์์์ด ๊ฐ๋ฐ๋ฉ๋๋ค. ๋์์ ํ๊ฐํ ๋๋ ํน์ ๊ธฐ์ ์ ๋ํ ๊ฒฝํ์ด ์๋ ์ ์ฉ ๋ฅ๋ ฅ์ ํ๊ฐํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ๋ฐ๋ผ์ ํ๋ณด์๊ฐ TDD์ ๊ฐ์ ๊ธฐ์ ์ ์ ์ฉํ ์ ์์์ง๋ง ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ ์ ์ฉํ๋ ค๊ณ ์๋ํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํ ์กฐ์ธ์ ๋ค์ผ๋ฉด ์ธํฐ๋ทฐ์ ํฉ๊ฒฉํ ์ ์๋ ๋ชจ๋ ๊ธฐํ๊ฐ ์์ต๋๋ค.
๊ต์ก ์๋ฃ์ฆ์ด ํ์ํ์ง ์์ต๋๋ค. TW๋ ์ปดํจํฐ ๊ณผํ์ ๋ํ ์๊ฒฉ์ฆ์ด๋ ๊ต์ก์ ์๊ตฌํ์ง ์์ต๋๋ค. ์ค๋ ฅ๋ง ํ๊ฐ๋ฉ๋๋ค.
๋ฐ๋ก ์ค๋นํ์ง ์๊ณ ๋ ์ธ๊ตญ๊ณ ๊ธฐ์ ๊ณผ ๋ฉด์ ์ ๋ณธ ๊ฒ์ ์ด๋ฒ์ด ์ฒ์์ด๋ค. ๊ฐ ๋จ๊ณ๊ฐ ๋๋ ๋๋ง๋ค ํผ๊ณคํจ์ ๋๋ผ์ง๋ ์์์ง๋ง ์คํ๋ ค ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ์ฉํ ์ ์์ด์ ๋ชจ๋ํฐ ๋ฐ๋ํธ์ ์๋ ์ฌ๋๋ค์ด ๊ทธ๊ฒ์ ํ๊ฐํ๊ณ ๋งค์ผ ์ ์ฉํ๊ณ ์๋ค๋ ์ฌ์ค์ด ๊ธฐ๋ปค์ต๋๋ค.
๋ช ๋ฌ์ด ์ง๋์ ๋ด ๊ธฐ๋๊ฐ ์์ ํ ์ถฉ์กฑ๋์๋ค๊ณ ๋งํ ์ ์๊ฒ ๋์์ต๋๋ค. ThoughtWorks๋ ์ผ๋ฐ ํ์ฌ์ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ์? ์ผ๋ฐ ํ์ฌ์์๋ ์ข์ ๊ฐ๋ฐ์์ ์ข์ ์ฌ๋๋ค์ ์ฐพ์ ์ ์์ง๋ง TW์์๋ ๊ทธ๋ค์ ์ง์ค๋ ฅ์ด ์ฐจํธ์์ ๋ฒ์ด๋ฌ์ต๋๋ค.
ThoughtWorks ํฉ๋ฅ์ ๊ด์ฌ์ด ์๋ค๋ฉด ์ฑ์ฉ ๊ณต๊ณ ๋ฅผ ํ์ธํ์ธ์.
๋ํ ํฅ๋ฏธ๋ก์ด ๊ณต์์ ์ฃผ๋ชฉํ ๊ฒ์ ์ ์ํฉ๋๋ค.
์์ ์ํํธ์จ์ด ์์ง๋์ด:
์์ ์ํํธ์จ์ด ์์ง๋์ด:
์ํํธ์จ์ด ์์ง๋์ด:
์์ ๋ฐ์ดํฐ ์์ง๋์ด:
ํ์ง ๋ถ์๊ฐ:
ํ๋ถ ๊ตฌ์กฐ:
(ํด๋น ๋งํฌ๋ ์ถ์ฒ๋งํฌ์์ ์์งํ ๋ง์๋๋ฆฌ๊ณ ์ถ์ต๋๋ค. TW์ ๊ฐ์๋ฉด ์ข์ ๋ณด๋์ค๋ฅผ ๋ฐ์ผ์ค ์ ์์ต๋๋ค.) ์ํ๋ ์ฌ๋ฌด์ค์ ์ ํํ์ธ์. ์ ๋ฝ์๋ง ๊ตญํํ ํ์๋ ์์ต๋๋ค. ๊ฒฐ๊ตญ 2๋
๋ง๋ค TW๊ฐ ๊ธฐ๊บผ์ด ๊ทํ๋ฅผ ๋ค๋ฅธ ๊ตญ๊ฐ๋ก ์ด์ ํด ๋๋ฆด ๊ฒ์
๋๋ค. ์๋ํ๋ฉด... ์ด๋ ThoughtWorks ์ ์ฑ
์ ์ผ๋ถ์ด๋ฏ๋ก ๋ฌธํ๊ฐ ํ์ฐ๋๊ณ ๊ท ์งํ๋ฉ๋๋ค.
๋๊ธ๋ก ๊ถ๊ธํ ์ ์ ์ง๋ฌธํ์๊ฑฐ๋ ์ถ์ฒ์ ์์ฒญํด ์ฃผ์ธ์.
์ฃผ์ ๊ฐ ํฅ๋ฏธ๋ก์ ๋ณด์ธ๋ค๋ฉด ThoughtWorks์์ ์ผํ๋ ๊ฒ์ด ์ด๋ค ๊ฒ์ธ์ง, ์ฑ๊ฐํฌ๋ฅด์์์ ์ํ์ด ์ด๋ค ๊ฒ์ธ์ง์ ๋ํด ๊ธ์ ์ธ ๊ฒ์
๋๋ค.
์ถ์ฒ : habr.com