์ต๊ณ ์ ๋ฆฌํฉํ ๋ง ์์
๊ฐ๋ฐ์๊ฐ ์ฝ๋ฉ ๊ธฐ์ ๊ณผ ๋์์ธ ํจํด์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋๋ ์ต๊ณ ์ ๋ฆฌํฉํ ๋ง ๋์๋ฅผ ์ฐพ์๋ณด์ธ์.

๋ฆฌํฉํ ๋ง์ ์ฝ๋์ ํ์ง, ๋์์ธ ๋ฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ์ ๋์ด๋ ๋ฐ ๋์์ด ๋๋ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ ์ค์ํ ๊ธฐ์ ์ ๋๋ค. ์ธ๋ถ ๋์์ด๋ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ธฐ์กด ์ฝ๋๋ฅผ ์ฌ๊ตฌ์ฑํ๊ณ ๊ฐ์ ํ๋ ํ๋ก์ธ์ค์ ๋๋ค. ์ํํธ์จ์ด ๊ฐ๋ฐ ๋ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๊ธ์ํ ์ฑ์ฅ์ผ๋ก ์ธํด ๋ฆฌํฉํ ๋ง์ ์๋ฆฌ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ๊ทธ ์ด๋ ๋๋ณด๋ค ์ค์ํด์ก์ต๋๋ค.
์๋ จ๋ ๊ฐ๋ฐ์๋ผ๋ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ์ ์ฒ ์ ํ๊ฒ ์ดํดํ๋ฉด ์ด์ ์ ์ป์ ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ์ ์ ์ฌ๋ฌ ์ธ์ด์ ํ๋ซํผ์ ๊ฑธ์ณ ์ ์ฉ๋ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ฆฌํฉํ ๋ง ์ฑ ์ ์ด ํ์ ์ํํธ์จ์ด ๊ฐ๋ฐ ์ฌ๋ก์ ๊ด๋ จ๋ ๊ธฐ์ ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ดํดํ ์ ์๋๋ก ํด์ฃผ๋ ๊ท์คํ ํต์ฐฐ๋ ฅ, ์ค์ ์ฌ๋ก ๋ฐ ์ ์ฆ๋ ๋ฐฉ๋ฒ๋ก ์ ์ ๊ณตํฉ๋๋ค. ๋ค์ ์น์ ์์๋ ๋ค์ํ ์ ๋ฌธ ์ง์๊ณผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ค๋ฃจ๋ ์ต๊ณ ์ ๋ฆฌํฉํ ๋ง ์ฑ ์ ์๊ฐํฉ๋๋ค.
๊ธฐ์ด ๋ฆฌํฉํ ๋ง ์์
๋ฆฌํฉํ ๋ง์ ๊ดํ ์ด ๊ธฐ์ด ์์ ์ ๋ฆฌํฉํ ๋ง์ ํ์ ์ฌํญ์ ์์ํ๋ ค๋ ๊ฐ๋ฐ์์๊ฒ ์ด์์ ์ ๋๋ค. ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ ์ฉ๋๋ ๊ธฐ๋ณธ ๊ธฐ์ , ๋์์ธ ํจํด ๋ฐ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ค๋ฃจ๋ฉฐ ๊น๋ํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋ ๋ค์ ์จ์ ์์น์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
-
๋ฆฌํฉํ ๋ง: ๊ธฐ์กด ์ฝ๋์ ๋์์ธ ๊ฐ์ (2ํ) - Kent Beck ๋ฐ Martin Fowler
์ด ์ฑ ์ ๋ฆฌํฉํ ๋ง์ ๊ด์ฌ์ด ์๋ ์ฌ๋์ด๋ผ๋ฉด ๋ฐ๋์ ์ฝ์ด์ผ ํ ๊ณ ์ ์ด์ ํ๋ ์์ ๋๋ค. Kent Beck๊ณผ Martin Fowler๋ ๋ฆฌํฉํ ๋ง์ ์์น, ํ ์คํธ์ ์ญํ , ์ํํธ์จ์ด ๋์์ธ ํ์ง์ ์ค์์ฑ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์ฑ ์๋ ๋ค์ํ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ์ ๋ณด์ฌ์ฃผ๋ ์ค์ฉ์ ์ธ ์์ ๊ฐ ํฌํจ๋์ด ์์ด ๋ ์๊ฐ ๊ฐ๋ ์ ์ฝ๊ฒ ํ์ ํ๊ณ ์ฝ๋์ ์ ์ฉํ ์ ์์ต๋๋ค.
-
Michael Feathers์ ๋ ๊ฑฐ์ ์ฝ๋๋ก ํจ๊ณผ์ ์ผ๋ก ์์ ํ๊ธฐ
๋ ๊ฑฐ์ ์ฝ๋๋ก ์์ ํ๋ ๊ฒ์ ์ด๋ ต๊ณ ์ข์ ์ค๋ฌ์ธ ์ ์์ต๋๋ค. Michael Feathers์ ์ฑ ์ ์ด๋ฌํ ์ฝ๋๋ฅผ ๋ค๋ฃฐ ๋์ ๋ฌธ์ ์ ์ ๋ค๋ฃจ๊ณ ์ด๋ฅผ ๊ฐ์ ํ ์ ์๋ ์ค์ฉ์ ์ธ ๊ธฐ์ ์ ์ ๊ณตํฉ๋๋ค. ์ด ์ฑ ์ ๋ ๊ฑฐ์ ์์คํ ์ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ , ํ ์คํธ๋ฅผ ์์ฑํ๊ณ , ๋ฆฌํฉํ ๋ง ์ ๋ต์ ์ ์ฉํ์ฌ ์ฝ๋ ์ ์ง ๊ด๋ฆฌ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ ๋์ด๋ ๋ฐ ์ค์ ์ ๋ก๋๋ค. ๋ณต์กํ ๋ ๊ฑฐ์ ์์คํ ์ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์์๊ฒ ๊ท์คํ ๋ฆฌ์์ค์ ๋๋ค.
-
ํด๋ฆฐ ์ฝ๋: ์ ์์ผ ์ํํธ์จ์ด ์ฅ์ธ์ ์ ํธ๋๋ถ - Robert C. Martin
๋ก๋ฒํธ C. ๋งํด(Robert C. Martin)์ ํด๋ฆฐ ์ฝ๋(Clean Code)๋ ์ฐ์ํ๊ณ ์ฝ๊ธฐ ์ฝ๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ฌ์ด ์ฝ๋ ์์ฑ์ ๋ํ ํฌ๊ด์ ์ธ ๊ฐ์ด๋์ ๋๋ค. ์๋ฐํ ๋งํ๋ฉด ๋ฆฌํฉํ ๋ง ์ฑ ์ ์๋์ง๋ง ๊ฐ๋ฐ์๊ฐ ์ฝ๋ ํ์ง์ ํฅ์ํ๊ธฐ ์ํด ๋ฐ๋ผ์ผ ํ๋ ํ์ ์ง์๊ณผ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด ์ฑ ์์๋ ๊นจ๋ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ์์น, ํจํด ๋ฐ ์ฌ๋ก๋ฟ๋ง ์๋๋ผ ์ฝ๋๋ฒ ์ด์ค์์ ๋ฌธ์ ๊ฐ ์๋ ์์ญ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์๋ ์ฝ๋ ๋์ ๋ฐ ๊ฒฝํ์ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ฝ๋ฉ ๊ธฐ์ ์ ํฅ์ํ๊ณ ๊นจ๋ํ๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์ํํธ์จ์ด๋ฅผ ๊ฐ๋ฐํ๋ ๋ฐ ๊ด์ฌ์ด ์๋ ์ฌ๋์ด๋ผ๋ฉด ๋ฐ๋์ ์ฝ์ด์ผ ํ ์ฑ ์ ๋๋ค.

ํน์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ํ ๋ฆฌํฉํ ๋ง ์ฑ
๋ฆฌํฉํ ๋ง ๊ธฐ์ ์ ์ฌ์ฉ๋๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค. ๋ค์ ์ฑ ์ ํน์ ์ธ์ด์ ๋ง๊ฒ ๋ง์ถคํ๋์ด ๊ฐ๋ฐ์๊ฐ ์ผ์ ์์ ์ ์ด๋ฌํ ๊ธฐ์ ์ ๋ ์ฝ๊ฒ ์ ์ฉํ ์ ์๋๋ก ํ๋ ์์ธํ ์์ ์ ์ง์นจ์ ์ ๊ณตํฉ๋๋ค. ์ด ์ฑ ๋ค์ ํน์ ์ธ์ด๋ก ๋ฆฌํฉํ ๋ง ๊ธฐ์ ์ ํฅ์์ํค๋ ค๋ ์ด๋ณด์์ ์๋ จ๋ ๊ฐ๋ฐ์์๊ฒ ์ ํฉํฉ๋๋ค.
-
Evan Burchard์ JavaScript ๋ฆฌํฉํ ๋ง
์ด ์ฑ ์ JavaScript ๊ฐ๋ฐ์๋ฅผ ์ํด ํน๋ณํ ์ค๊ณ๋์์ผ๋ฉฐ, ์ธ์ด์ ๊ด๋ จ๋ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ๊ณผ ๋ชจ๋ฒ ์ฌ๋ก์ ์ค์ ์ ๋๊ณ ์์ต๋๋ค. JavaScript์ ๋งฅ๋ฝ์์ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ, ๋ชจ๋ํ ๋ฐ ํ ์คํธ์ ๊ฐ์ ์ฃผ์ ๋ฅผ ๋ค๋ฃน๋๋ค. ๋ํ ์ด ์ฑ ์ ๊ฐ๋ฐ์๊ฐ ์ด๋ฌํ ๊ธฐ์ ์ ์ดํดํ๊ณ ์์ ์ ํ๋ก์ ํธ์ ์ ์ฉํ ์ ์๋๋ก ์ค์ ์์ ์ ์ฌ์ฉ ์ฌ๋ก๋ฅผ ์ ๊ณตํฉ๋๋ค.
-
Jay Fields, Shane Harvie, Martin Fowler ๋ฐ Kent Beck์ Ruby ์๋์ ๋ฆฌํฉํ ๋ง
์ด ์ฑ ์ ๋งํด ํ์ธ๋ฌ(Martin Fowler)์ "๋ฆฌํฉํ ๋ง"์ ํต์ฌ ๊ฐ๋ ์ Ruby ์ธ์ด์ ์ ์ฉํฉ๋๋ค. Ruby์ ๊ด๋ จ๋ ๋ค์ํ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ๊ณผ ์ด๋ฅผ ์ค์ ํ๋ก์ ํธ์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์๋ง์ ์์ ๋ฅผ ๋ค๋ฃจ๊ณ ์์ต๋๋ค. ๋ํ ์ด ์ฑ ์์๋ ๊ฐ๋ฐ์๊ฐ ๋์ฑ ๊ฐ๊ฒฐํ๊ณ ์ ์ฐํ๋ฉฐ ์ ์ง ๊ด๋ฆฌ๊ฐ ์ฌ์ด Ruby ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ด ๋๋ Ruby ๊ด์ฉ์ด, ๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ํจํด์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ด ๋ฆฌํฉํ ๋ง ์ฑ ์ ์ฝ์ผ๋ฉด ๊ธฐ์ ์ ์ฐ๋งํ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๋ฐฐ์ฐ๋ฉฐ ๋ ๋์ ๊ฐ๋ฐ์๊ฐ ๋ ์ ์์ต๋๋ค. ๋ฆฌํฉํ ๋ง์ ์ง์์ ์ธ ํ๋ก์ธ์ค์ด๋ฉฐ ๊น๋ํ๊ณ ์ฝ๊ธฐ ์ฝ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์ผ๊ด๋๊ฒ ์ ์งํ๊ธฐ ์ํด ์ผ์์ ์ธ ๊ฐ๋ฐ ๋ฃจํด์ ํตํฉ๋์ด์ผ ํ๋ค๋ ์ ์ ๊ธฐ์ตํ์ธ์.
๊ณ ๊ธ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ๋ฐ ๋์์ธ ํจํด
์ํํธ์จ์ด ๊ฐ๋ฐ ๊ฒฝ๋ ฅ์ ์๊ณ ๋ฆฌํฉํ ๋ง์ ๋ํ ์ ๋ฌธ ์ง์์ ์ป์ผ๋ฉด์ ๋์์ธ ํจํด๊ณผ ์ ๊ตํ ๋ฆฌํฉํ ๋ง ์ ๋ต์ ๋ ๊น์ด ํ๊ณ ๋๋ ๊ณ ๊ธ ์ฃผ์ ๋ฅผ ํ์ํ๊ณ ์ถ์ ์๋ ์์ต๋๋ค. ์ด ์ฑ ๋ค์ ๊นจ๋ํ๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฐ๋ ฅํ๊ณ ํจ์จ์ ์ธ ๊ธฐ์ ์ ์๋ดํฉ๋๋ค.
- ๋์์ธ ํจํด: ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ฐ์ฒด ์งํฅ ์ํํธ์จ์ด์ ์์( Erich Gamma, Richard Helm, Ralph Johnson ๋ฐ John Vlissides ์ ): 'Gang of Four'(GoF) ์ฑ ์ผ๋ก ์๋ ค์ง ์ด ๊ณ ์ ์ฐธ๊ณ ์๋ ๊ณตํต ๊ฐ์ฒด ์งํฅ ์๋ฃจ์ ์ ์ ๊ณตํ๋ 23๊ฐ์ง ๋์์ธ ํจํด์ ์๊ฐํฉ๋๋ค. ๊ฐ์ฒด์งํฅ ์ํํธ์จ์ด ์ค๊ณ์ ๋ฌธ์ ์ ์ ์๋ ์ด๋ฌํ ํจํด์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ํจ๊ณผ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ฌ๋ก ์ฐ๊ตฌ์ ์ค์ ์ฌ๋ก๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์ด ์ฑ ์ ๋์์ธ ํจํด์ ์ตํ๊ณ ์ด๋ฅผ ๋ฆฌํฉํ ๋ง์ ์ ์ฉํ๋ ค๋ ์๋ จ๋ ๊ฐ๋ฐ์์๊ฒ ๊ผญ ํ์ํ ์ฑ ์ ๋๋ค.
- Joshua Kerievsky์ ํจํด์ผ๋ก์ ๋ฆฌํฉํ ๋ง : ์ด ์ฑ ์ ๋ฆฌํฉํ ๋ง๊ณผ ๋์์ธ ํจํด ์ฌ์ด์ ๊ฒฉ์ฐจ๋ฅผ ํด์ํฉ๋๋ค. Kerievsky๋ ํ๋์ ์ธ ๋์์ธ ์์น์ ์ถฉ์กฑํ๊ธฐ ์ํด ๊ธฐ์กด ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ๋ ๋ฐ ๋ํ ์ค์ฉ์ ์ธ ์ง์นจ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ ๋ํ ์ํํธ์จ์ด ์์คํ ์ ๋์์์ด ๋ณํํ๋ ์๊ตฌ ์ฌํญ์ ์ ์ํ๊ธฐ ์ํด ์๋ชป ์ค๊ณ๋ ์ฝ๋๋ฅผ ๋ฐ์ ์ํค๋ ๋ฐฉ๋ฒ์ ๋ํด์๋ ๋ ผ์ํฉ๋๋ค. ๋์์ธ ํจํด ๊ฒฝํ์ด ์๋ ๊ฐ๋ฐ์๋ฅผ ๋์์ผ๋ก ํ๋ ์ด ์ฑ ์ ์ฝ๋๋ฒ ์ด์ค์ ์ด์์ ์ธ ์ถ์ํ ์์ค์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ํฐํ๋ผ์ด์ฆ ํตํฉ ํจํด: ๋ฉ์์ง ์๋ฃจ์ ์ค๊ณ, ๊ตฌ์ถ ๋ฐ ๋ฐฐํฌ - Gregor Hohpe ๋ฐ Bobby Woolf: ์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋์์๋ ์ํฐํ๋ผ์ด์ฆ ์์ฉ ํ๋ก๊ทธ๋จ์ ํตํฉ ํจํด์ ๋ค๋ฃจ๊ณ ๋ฉ์์ง ์์คํ ์ ์ฌ์ธต์ ์ผ๋ก ํ๊ตฌํฉ๋๋ค. ์ ์๋ ๋ฉ์์ง ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ํตํฉ ์๋ฃจ์ ์ ์ค๊ณํ๊ณ ๊ตฌํํ๊ธฐ ์ํ 60๊ฐ ์ด์์ ํจํด์ ์ ์ํฉ๋๋ค. ์ด๋ฌํ ํจํด์ ๋ง์คํฐํ๋ฉด ๋ถ์ฐ ์์คํ ๊ณผ ๊ด๋ จ๋ ๋ณต์กํ ์ฝ๋๋ฅผ ๋ฆฌํฉํฐ๋งํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ํฌ๊ธฐ์ ๋ฒ์๊ฐ ์ปค์ง์ ๋ฐ๋ผ ํ์ฅ์ฑ์ ๋ณด์ฅํ ์ ์์ต๋๋ค.
๋ฆฌํฉํ ๋ง ์ง์์ ์ค์ ๋ก ์ ์ฉํ๊ธฐ
๋ฆฌํฉํ ๋ง ์ฑ ์ ์ฝ๊ณ ๊ณ ๊ธ ๊ธฐ์ ์ ์ดํดํ๋ ๊ฒ์ ๋ฆฌํฉํ ๋ง์ ๋ฅ์ํด์ง๋ ์ฒซ ๋จ๊ณ์ผ ๋ฟ์ ๋๋ค. ์๋ก ์ต๋ํ ์ง์์ ์ค์ ๋ก ์ ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ค์ ํ๋ก์ ํธ ์์
์คํ ์์ค ํ๋ก์ ํธ, ์ง์ฅ ๊ณผ์ ๋๋ ๊ฐ์ธ ํ๋ก์ ํธ์ ์ฐธ์ฌํ์ฌ ์ฝ๋ ๋ฆฌํฉํ ๋ง์ ๋ํ ์ค๋ฌด ๊ฒฝํ์ ์์ผ์ธ์. ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํด ๋ฐฐ์ด ๊ธฐ์ ์ ์ ์ฉํ์ญ์์ค.
ํ์ด ํ๋ก๊ทธ๋๋ฐ ๋ฐ ์ฝ๋ ๊ฒํ ์ ์ฐธ์ฌ
ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ํตํด ๋๋ฃ์ ํ๋ ฅํ๊ณ ์ฝ๋ ๊ฒํ ๋ฅผ ์ํํ์ฌ ๋ฆฌํฉํ ๋ง ๋ ธ๋ ฅ์ ๋ํ ํผ๋๋ฐฑ์ ๋ฐ์ผ์ธ์. ์ด๋ฅผ ํตํด ์ฝ๋๋ฅผ ๋์ฑ ์ต์ ํํ ์ ์๋ ์์ญ์ ์๋ณํ๊ณ ๋๋ฃ๋ก๋ถํฐ ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ธ ์ ์์ต๋๋ค.
์ฝ๋ฉ ์ฑ๋ฆฐ์ง์ ์ฐธ์ฌํ์ธ์
์ฝ๋ฉ ๋ํ์ ๋ฑ๋กํ๊ณ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํด๊ฒฐ์ ์ฐธ์ฌํ์ธ์. ์๋ฃจ์ ์ ์ ์ถํ๋ฉด ์ฝ๋ ํ์ง์ ๋ํ ํต์ฐฐ๋ ฅ๊ณผ ๋ฆฌํฉํ ๋ง์ ํตํด ์ฝ๋๋ฅผ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ ์ ์๋ ๋๋ฃ ๊ฒํ ๋๋ ์๋ํ๋ ํผ๋๋ฐฑ์ ๋ฐ๊ฒ ๋ฉ๋๋ค.
๋ฆฌํฉํ ๋ง ๋๊ตฌ ์ฌ์ฉ
๋ง์ ํตํฉ ๊ฐ๋ฐ ํ๊ฒฝ(IDE)์ ๋ฆฌํฉํ ๋ง๊ณผ ๊ด๋ จ๋ ์ผ๋ถ ๋ฐ๋ณต ์์ ์ ์๋ํํ ์ ์๋ ๋ด์ฅ ๋ฆฌํฉํ ๋ง ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ฅผ ์์งํ๊ณ ์ด๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌํฉํ ๋ง ํจ์จ์ฑ์ ํฅ์์ํค์ญ์์ค.
์ง์์ ์ผ๋ก ํ์ต
์ปจํผ๋ฐ์ค, ์น ์ธ๋ฏธ๋ ๋ฐ ์ํฌ์์ ์ฐธ์ํ์ฌ ๋ฆฌํฉํ ๋ง ๋ฐ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ต์ ๊ฐ๋ฐ ๋ฐ ๋ํฅ์ ํ์ ํ์ธ์. ์ด๋ ๋์์์ด ์งํํ๋ ์ํํธ์จ์ด ์ฐ์ ์์ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ์ ์๋ฆฌํ๊ณ ์ ์ ํ๊ฒ ์ ์งํ๋ ๋ฐ ๋์์ด ๋ ๊ฒ์ ๋๋ค. AppMaster ์ ๊ฐ์ ๋ ธ์ฝ๋ ๋ฐ ๋ก์ฐ์ฝ๋ ํ๋ซํผ์ ํ์ํ๋ ๊ฒ์ ๊ฐ๋ฐ์๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋ํ ์๊ฐ์ ์ ๊ทผ ๋ฐฉ์์ด ์ด๋ป๊ฒ ๊นจ๋ํ๊ณ ์ต์ ํ๋ ์ฝ๋๋ก ์ด์ด์ง ์ ์๋์ง ๋ฐฐ์ฐ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.

์์ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ๋ฉด์ ๊ณ ๊ธ ๊ธฐ์ ์ ๊ฐ์ ์ ์ผ๋ก ๋ฐฐ์ฐ๊ณ ๋น๋ฒํ ๋ฆฌํฉํฐ๋ง์ ํ์์ฑ์ ์ค์ผ ์ ์์ต๋๋ค. AppMaster ๋ ธ์ฝ๋ ํ๋ซํผ์ ์ฌ์ฉ์ ์นํ์ ์ธ ์๊ฐ์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ํจ์จ์ ์ด๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ค์ ์ ๋๊ณ ์์ผ๋ฉฐ, ์ด๋ ๋ ๋์ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ์ ์ฐพ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
๋ฆฌํฉํ ๋ง์ ๋ชจ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์๊ฐ ์๋ฌํด์ผ ํ๋ ์ค์ํ ๊ธฐ์ ์ ๋๋ค. ์ต๊ณ ์ ๋ฆฌํฉํ ๋ง ์์ ์์ ์ป์ ์ง์์ ์ง์์ ์ผ๋ก ๋ฐฐ์ฐ๊ณ , ์ฐ์ตํ๊ณ , ์ ์ฉํจ์ผ๋ก์จ ์ฝ๋ฉ ๊ธฐ์ ์ ํฅ์์ํค๊ณ , ์ํํธ์จ์ด์ ์์ ์ฑ์ ํฅ์์ํค๋ฉฐ, ๋ชจ๋ ๊ฐ๋ฐ ํ์๊ฒ ๊ท์คํ ์์ฐ์ด ๋ ๊ฒ์ ๋๋ค.
์์ฃผ ๋ฌป๋ ์ง๋ฌธ
๋ฆฌํฉํ ๋ง์ ์ธ๋ถ ๋์์ด๋ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๊ธฐ์กด ์ฝ๋๋ฅผ ์ฌ๊ตฌ์ฑํ๊ฑฐ๋ ์์ ํ์ฌ ๊ตฌ์กฐ, ๊ฐ๋ ์ฑ, ์ ์ง ๊ด๋ฆฌ ์ฉ์ด์ฑ ๋ฐ ์ฑ๋ฅ์ ํฅ์์ํค๋ ํ๋ก์ธ์ค์ ๋๋ค.
๋ฆฌํฉํ ๋ง์ ์ฝ๋ ํ์ง์ ํฅ์์ํค๊ณ , ๋ณต์กํ ๊ตฌ์กฐ๋ฅผ ๋จ์ํํ๊ณ , ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ดํดํ๊ณ , ๋๋ฒ๊น ์๊ฐ์ ๋จ์ถํ๊ณ , ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅ์ฑ, ์ฌ์ฌ์ฉ์ฑ ๋ฐ ํ์ฅ์ฑ์ ํฅ์์ํค๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์์๊ฒ ํ์์ ์ ๋๋ค.
๋ฆฌํฉํ ๋ง์ ์ฃผ์ ์์น์๋ ์ ์ง์ ๋ณ๊ฒฝ, ์ํํธ์จ์ด ๋์ ๋ณด์กด, ์ฝ๋ ๊ฐ๋ ์ฑ ํฅ์, ๋ณต์ก์ฑ ๊ฐ์, SOLID ์์น ์ค์, ์ฝ๋ ์ ๋ขฐ์ฑ ๋ณด์ฅ์ ์ํ ์ง์์ ์ธ ํ ์คํธ๊ฐ ํฌํจ๋ฉ๋๋ค.
๋งํด ํ์ธ๋ฌ(Martin Fowler)์ "๋ฆฌํฉํ ๋ง: ๊ธฐ์กด ์ฝ๋ ๋์์ธ ๊ฐ์ "์ ํจ๊ณผ์ ์ด๊ณ ํจ์จ์ ์ธ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ๊ณผ ์ฌ๋ก๋ฅผ ๋ฐฐ์ฐ๊ธฐ ์ํด ์ด๋ณด์์๊ฒ ์ ๊ทน ๊ถ์ฅ๋๋ ์ฑ ์ ๋๋ค.
์, JavaScript, Python, Ruby, Java ๋ฑ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ฉ์ผ๋ก ํน๋ณํ ์์ฑ๋ ๋ฆฌํฉํ ๋ง ์ฑ ์ด ์์ต๋๋ค. ๋ช ๊ฐ์ง ์๋ก Evan Burchard์ "Refactoring JavaScript"์ Joshua Kerievsky์ "Refactoring to Patterns"๊ฐ ์์ต๋๋ค.
์ฑ๋ฅ ํฅ์์ ๋์์ด ๋ ์ ์๋ ์ผ๋ถ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ์๋ ๊ธด ๋ฉ์๋ ๋ถํด, ํด๋์ค ๋๋ ๋ชจ๋ ์ถ์ถ, ์ค๋ณต ์ฝ๋ ๊ฐ์, ๋ฃจํ ์ต์ ํ, ์กฐ๊ฑด์ ๋จ์ํ, ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๋ฐ ๋ฉ์๋ ํธ์ถ ์ต์ํ ๋ฑ์ด ์์ต๋๋ค.
๋ฆฌํฉํ ๋ง ์ฑ ์ ์ฝ๋ ํ์ง๊ณผ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๊ธฐ ์ํ ์ค์ฉ์ ์ธ ์ง์นจ, ์์ , ํ, ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์๋ฅผ ๋์ต๋๋ค. ๋ํ ํน์ ๋ฆฌํฉํ ๋ง ๊ธฐ์ ์ ๊ทผ๊ฑฐ๋ฅผ ๋ ผ์ํ๊ณ ๊ฐ๋ฐ์๊ฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ๊ณ ๊น๋ํ ์ฝ๋์ ์ค์์ฑ์ ์ดํดํ๋๋ก ๋์ต๋๋ค.
์ค์ ํ๋ก์ ํธ ์์ , ํ์ด ํ๋ก๊ทธ๋๋ฐ ์ฐธ์ฌ, ์ฝ๋ ๊ฒํ ์ํ, ์ฝ๋ฉ ๊ณผ์ ์ฐธ์ฌ, ๋ฆฌํฉํ ๋ง ์ฑ ๋ฐ ๊ธฐํ ๋ฆฌ์์ค์์ ๋ฐฐ์ด ๊ธฐ์ ์ ์ฉ์ ํตํด ๋ฆฌํฉํ ๋ง ๊ธฐ์ ์ ์ฐ์ตํ ์ ์์ต๋๋ค.
AppMaster ๋ ์๊ฐ์ ๋น์ฆ๋์ค ํ๋ก์ธ์ค์ ๋์์ธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋๋ ๋ฐ ์ค์ ์ ๋ no-code ํ๋ซํผ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊น๋ํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ ํ๊ณ ๊ด๋ฒ์ํ ๋ฆฌํฉํ ๋ง์ ํ์์ฑ์ ์ต์ํํ๋ ๋ฐ ๊ฐ์ ์ ์ผ๋ก ๋์์ด ๋ฉ๋๋ค.


