๋ชจ๋ ์ํํธ์จ์ด ์์คํ ์๋ ๋์ ๋ณด์ด์ง ์๋ ๊ฒฝ๊ณ ์ ํธ๊ฐ ์์ต๋๋ค. ์ด๋ฌํ ์ ํธ๊ฐ ํญ์ ์ฆ๊ฐ์ ์ธ ์ถฉ๋, ๋ฐ์ดํฐ ์์ค ๋๋ ์์คํ ์ค๋จ์ ์ ๋ฐํ๋ ๊ฒ์ ์๋๋๋ค. ์คํ๋ ค ์กฐ์ฉํ ์ ์ง๋ณด์์ฑ์ ์ ํ์ํค๊ณ , ๊ฐ๋ฐ ์๋๋ฅผ ๋ฆ์ถ๊ณ , ๊ฒฐํจ๋ฅ ์ ๋์ด๊ณ , ํ๋ํ ๋น์ฉ์ ์ฆ๊ฐ์ํต๋๋ค. ์ด๋ฌํ ์ด๊ธฐ ๊ฒฝ๊ณ ์ ํธ๋ฅผ ์ฝ๋ ๋์(code smells)๋ผ๊ณ ํฉ๋๋ค.
์ฝ๋ ๋์๋ ๋ฒ๊ทธ๊ฐ ์๋๋๋ค. ์ฝ๋ ๋์๋ ๋ ์ฌ๊ฐํ ๊ตฌ์กฐ์ ๋๋ ์ค๊ณ ๋ฌธ์ ์ ์งํ์ด๋ฉฐ, ํด๊ฒฐ๋์ง ์์ผ๋ฉด ๋ชจ๋ ๋ณ๊ฒฝ, ์ ๊ทธ๋ ์ด๋, ๋ฆฌํฉํ ๋ง์ด ๋ ์ํํ๊ณ ๋น์ฉ์ด ๋ง์ด ๋ค๊ฒ ๋ฉ๋๋ค. ์์ ์ฌ์์ฑ๋ ๊ฑฐ๋ํ ์ฌ์์ ์ผ๋ก ์ด์ด์ง๊ณ , ๋ช ํํ ํ์ ์ ๋จ๊ธฐ์ง ์๊ณ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ฆํญ์ํต๋๋ค.
๋ ๊ฑฐ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ํํ๊ฑฐ๋, ์์คํ ์ ์๋ก์ด ํ๋ซํผ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ฑฐ๋, ์ฌ์ง์ด ์ํํธ์จ์ด ์์ ์ฑ์ ํฅ์์ํค๋ ค๋ ํ์๊ฒ ์ฝ๋ ์ค๋ฉ์ ๊ฐ์งํ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฝ๋ ์ค๋ฉ์ ์กฐ๊ธฐ์ ๊ฐ์งํ๋ฉด ๋ฐฐํฌ ์ฃผ๊ธฐ ๋จ์ถ, ์ํคํ ์ฒ ๋ณต์๋ ฅ ํฅ์, ๊ทธ๋ฆฌ๊ณ ์ฅ๊ธฐ์ ์ธ ๋น์ฉ ์ ๊ฐ์ผ๋ก ์ด์ด์ง๋๋ค.
์ฝ๋ ๋์ ์ ๋ฆฌ
SMART TS XL ๋ณต์กํ ์์คํ ์ ๋ฐ์์ ์ด๋ฅผ ๋งคํํ๊ณ ์์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
๋ ๋ง์ ์ ๋ณด์ด ๊ธฐ์ฌ์์๋ ์ฝ๋ ๋์๊ฐ ์ค์ ๋ก ๋ฌด์์ธ์ง, ๋ฆฌํฉํ ๋ง ์์ ์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง ์ดํด๋ด ๋๋ค. ์ ์ ๋ถ์ ๋๊ตฌ๋ ๋ฌด์์ ๋๊น? ์ก์ ์ ์๊ณ , ์ด๋ป๊ฒ SMART TS XL ์กฐ์ง์ด ํ๋ฉด์ ์ธ ๋์๋ฟ๋ง ์๋๋ผ ์์คํ ์ ๋ฐ์ ๊ตฌ์กฐ์ ์ฝ์ ๋ ๊ฐ์งํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
์ฝ๋ ์ค๋ฉ์ด๋ ๋ฌด์์ธ๊ฐ? (๊ทธ๋ฆฌ๊ณ ์ฝ๋ ์ค๋ฉ์ด ์๋ ๊ฒ์ ๋ฌด์์ธ๊ฐ?)
๋ง์ ๊ฐ๋ฐ์๋ค์ ๋์ ์ฝ๋๋ ๋ฐ๋์ ๊ตฌ๋ฌธ ์ค๋ฅ, ์คํจํ ํ ์คํธ, ๋๋ ๋ช ๋ฐฑํ ๋ฒ๊ทธ๋ก ๊ฐ๋ ์ฐจ ์๋ค๊ณ ์๊ฐํฉ๋๋ค. ํ์ง๋ง ์ค์ ๋ก๋ ๊ฐ์ฅ ์ํํ ์ฝ๋๋ฒ ์ด์ค์กฐ์ฐจ๋ ๋ณ๊ฒฝํ๊ธฐ ์ ๊น์ง๋ "์๋ฒฝํ๊ฒ ์" ์๋ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ฝ๋ ๋์๊ฐ ๊ทธ ์ด์ ๋ฅผ ์ค๋ช ํด ์ค๋๋ค.
์ ์: ๋ฒ๊ทธ๊ฐ ์๋ ๋ ์ฌ๊ฐํ ๋ฌธ์ ์ ์ฆ์
A ์ฝ๋ ๋์ ์ผ๋ฐ์ ์ผ๋ก ์์คํ
์ค๊ณ๋ ๊ตฌ์ฑ์ ์์ด์ ๋ ๊น์ ๋ฌธ์ ์ ํด๋นํ๋ ํ๋ฉด์ ํ์์
๋๋ค.
์ฝ๋๊ฐ ์ปดํ์ผ๋ ์๋ ์๊ณ , ๋ชจ๋ ๋จ์ ํ
์คํธ๋ฅผ ํต๊ณผํ ์๋ ์์ต๋๋ค. ํ์ง๋ง ๋ญ๊ฐ ์ด์ํ๋ค๋ ๋๋์ด ๋ญ๋๋ค.
- ๋ฐฉ๋ฒ์ด ๋๋ฌด ๊ธธ์ด์
- ์์ ์ด ๋๋ฌด ๋ง์์
- ํจ์๋ ํน์ ๋ฐ์ดํฐ ์ธํธ๋ ๋ชจ๋๊ณผ ๋ฐ์ ํ๊ฒ ๊ฒฐํฉ๋ฉ๋๋ค.
- ์ค๋ฅ ์ฒ๋ฆฌ๊ฐ ์ผ๊ด๋์ง ์๊ณ ๋ถ์ฐ๋์ด ์์ต๋๋ค.
์ฝ๋ ๋์๊ฐ ์ ์ํฉ๋๋ค ์ทจ์ฝ์ฑ ๋ณํ์ ๋ํ ์ ํญ๋น์ฅ์ ์คํจ๊ฐ ๋์ ๋์ง ์๋๋ผ๋, ์ด๋ ๋์ ๋ ๊ธฐ์ ๋ถ์ฑ์ ์ฒซ ๋ฒ์งธ ๊ฐ์์ ์ธ ์งํ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์ด ์ฉ์ด๋ฅผ ๋์คํํ ๋งํด ํ์ธ๋ฌ๋ ์ฝ๋ ๋์๋ฅผ "์ด๋๊ฐ์ ๋ญ๊ฐ ์๋ชป๋์์ ๊ฐ๋ฅ์ฑ์ด ๋๋ค"๋ ์งํ๋ก ์ค๋ช ํ์ง๋ง, ๊ทธ ์์ฒด๋ก ์ฆ๊ฑฐ๋ ๋ ์ ์๋ค๊ณ ํ์ต๋๋ค.
์ฝ๋ ๋์๊ฐ ๊ตฌ๋ฌธ ์ค๋ฅ๋ ๊ธฐ๋ฅ์ ๊ฒฐํจ๊ณผ ์ด๋ป๊ฒ ๋ค๋ฅธ๊ฐ
๊ตฌ๋ฌธ ์ค๋ฅ๋ ๋ช ํํ ๋ฌธ์ ์ ๋๋ค. ์ปดํ์ผ๋ฌ๊ฐ ์ฝ๋ ๋น๋๋ฅผ ๊ฑฐ๋ถํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ๊ธฐ๋ฅ์ ๊ฒฐํจ ๋ํ ๋ ๋ค๋ฅธ ๋ช ํํ ์ ํธ์ ๋๋ค. ์ฝ๋๋ ์คํ๋์ง๋ง ์๋ชป๋ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํฉ๋๋ค.
์ฝ๋ ๋์๋ ๋ ๋ฏธ๋ฌํฉ๋๋ค.
- ์์คํ ์ ์ถฉ๋์ํค์ง ์์ต๋๋ค
- ๋ฐ๋์ ์๋ชป๋ ์ถ๋ ฅ์ด ์์ฑ๋๋ ๊ฒ์ ์๋๋๋ค.
- ๋ชจ๋ํฐ๋ง ๋๊ตฌ์์ ์๋์ ํธ๋ฆฌ๊ฑฐํ์ง ์์ต๋๋ค.
๋์ , ํ์ด ๋ค์์ ์๋ํ ๋ ๋ฌธ์ ๊ฐ ๋ํ๋ฉ๋๋ค.
- ๊ธฐ๋ฅ ํ์ฅ
- ์์์น ๋ชปํ ์์ธ ์ํฉ ๋๋ฒ๊น
- ์์คํ ์ ์๋ก์ด ํ๊ฒฝ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์
- ๋ ผ๋ฆฌ๋ฅผ ์ดํดํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช๋ ์๋ก์ด ๊ฐ๋ฐ์๋ฅผ ํ์น์ํค์ธ์.
์ด๋ฐ ์๊ฐ์ ๋์๋ ๊ฐ๋ฒผ์ด ์ฑ๊ฐ์ฌ์์ ์ฌ๊ฐํ ๋ฐฉํด ์์๋ก ๋ณํฉ๋๋ค.
ํ์ฅ์ฑ, ์ ์ง ๊ด๋ฆฌ ๋ฐ ํ๋ํ๋ฅผ ์ํด ์ฝ๋ ๋์๊ฐ ์ค์ํ ์ด์
์ฝ๋ ์ ์ทจ๋ ๋์ ๋ฉ๋๋ค. ๋ช ๊ฐ์ง ๋ถ์ฐ๋ ๋ฌธ์ ๋ ์ค์ํ์ง ์์ ๋ณด์ผ ์ ์์ต๋๋ค. ํ์ง๋ง ์์คํ ์ด ์ฑ์ฅํ๊ณ ๋ฐ์ ํจ์ ๋ฐ๋ผ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐํจ์ด ๋ฐ์ํฉ๋๋ค.
- ๋ฏธ๋์ ๋ชจ๋ ๋ณํ๋ฅผ ๋ฆ์ถ์ธ์
- ์ ๋ฐ์ดํธ ํ ์คํธ ๋ฐ ๊ฒ์ฆ ๋น์ฉ ์ฆ๊ฐ
- ์ ๊ทธ๋ ์ด๋ ์ค ํ๊ท ๋ฐ์ ์ํ ์ฆ๊ฐ
- ํ๋ํ ๋ ธ๋ ฅ์ ๋ฐฉํดํ๋ ์จ๊ฒจ์ง ์ํคํ ์ฒ ์ข ์์ฑ ์์ฑ
๊ฐ๋ฐ์ด ์งํ ์ค์ผ ๋ ์ฝ๋ ๋์๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ๊ตํต์ด ๊ณ์๋๊ณ ์๋๋ฐ ๋ค๋ฆฌ์ ๊ท ์ด์ ๋ฌด์ํ๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ ์์ ์์๋ ๋ถํ์ ์คํธ๋ ์ค๊ฐ ๊ณ ํต์ค๋ฌ์ด ๋ฐฉ์์ผ๋ก ์ฝ์ ์ ๋๋ฌ๋
๋๋ค.
์ฝ๋ ๋์๋ฅผ ์ฌ์ ์ ์ฐพ์ ํด๊ฒฐํ๋ฉด ์์คํ ์ ํ์ฅ, ์งํ ๋ฐ ์ง์์ ์ธ ๋น์ฆ๋์ค ํ์ ์ง์ ๋ฅ๋ ฅ์ด ๊ฐํ๋ฉ๋๋ค.
๋ชจ๋ ํ์ด ์ธ์ํด์ผ ํ๋ ์ผ๋ฐ์ ์ธ ์ฝ๋ ๋์ ์ ํ
์ฝ๋ ์ค๋ฉ์ ํํ ์กฐ์ฉํ ๋ํ๋์ง๋ง, ์ํํธ์จ์ด ํ์ง๊ณผ ์ ์ง๋ณด์์ฑ์ ๋ฏธ์น๋ ์ฅ๊ธฐ์ ์ธ ์ํฅ์ ๋งค์ฐ ํฝ๋๋ค. ์ด๋ค ์ค๋ฉ์ ์ฌ์ํ ๋ฆฌํฉํ ๋ง์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๊ตญ์ง์ ์ธ ๋ฌธ์ ๋ฅผ ๋ํ๋ ๋๋ค. ๋ ๋ค๋ฅธ ์ค๋ฉ์ ์ ์ฒด ์์คํ ์ ํ์ฅ์ฑ, ํ ์คํธ ๊ฐ๋ฅ์ฑ, ์์ ์ฑ์ ์ํํ๋ ์ฌ๊ฐํ ์ํคํ ์ฒ ๋ฌธ์ ๋ฅผ ๋๋ฌ๋ ๋๋ค. ์ด๋ฌํ ํจํด์ ํ์ ํ๋ ๊ฒ์ ๋จ์ํ ํ๋ฌธ์ ์ฐ์ต์ด ์๋๋๋ค. ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ค์ด๊ณ , ๋ฐฐํฌ ์๋๋ฅผ ๊ฐ์ ํ๊ณ , ์์ ๊ตฌ์กฐ์ ๊ฒฐํจ์ด ์ฌ๊ฐํ ํ๋ํ ๊ฑธ๋ฆผ๋๋ก ์ด์ด์ง๋ ๊ฒ์ ๋ฐฉ์งํ๋ ค๋ ํ์๊ฒ๋ ํ์์ ์ธ ๊ดํ์ ๋๋ค.
๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ ํ์ ์ฝ๋ ๋์๋ฅผ ์ดํดํ๋ฉด ์กฐ์ง์์ ๊ธฐ์ ๋ถ์ฑ ๊ฐ์ ๋
ธ๋ ฅ์ ์ฐ์ ์์๋ฅผ ์ ํ๊ณ , ๋์ฑ ํ๋ ฅ์ ์ธ ์์คํ
์ ์ค๊ณํ๊ณ , ์ฒ์๋ถํฐ ๊นจ๋ํ๊ณ ์ง์ ๊ฐ๋ฅํ ๊ฐ๋ฐ ๊ดํ์ ์ค์ํ๋ ๋ฌธํ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
์ด ์น์
์์๋ ๊ฐ๋ฐํ์ด ์์คํ
๋ฌด๊ฒฐ์ฑ์ ์กฐ์ฉํ ์นจ์ํ๊ธฐ ์ ์ ์๋ณํ๊ณ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์์ผ ํ๋ ์ค์ํ ์ฝ๋ ๋์ ๋ฒ์ฃผ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ค๋ณต๋ ์ฝ๋์ ๋ ผ๋ฆฌ ํ์ฐ
์ค๋ณต๋ ์ฝ๋ ๋๊ท๋ชจ ์์คํ ์์ ๊ฐ์ฅ ํํ๊ณ ๊ฐ์ฅ ์ฌ๊ฐํ ์ฝ๋ ์ ์ทจ ์ค ํ๋์ ๋๋ค. ๊ฐ๋ฐ์๊ฐ ๋ก์ง์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ํจ์๋ ๋ชจ๋๋ก ์ถ์ํํ๋ ๋์ ๋ณต์ฌํ์ฌ ๋ถ์ฌ๋ฃ์ ๋ ๋ฐ์ํฉ๋๋ค. ์ฒ์์๋ ์ค๋ณต์ด ๋ฌดํดํด ๋ณด์ ๋๋ค. ๋ง๊ฐ์ผ์ ๋ง์ถ๊ณ ๋ชจ๋ ๊ฐ ์ข ์์ฑ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ํ์ง๋ง ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ฐ ๋ณต์ฌ๋ณธ์ด ๋ก์ปฌ ์๊ตฌ ์ฌํญ์ ๋ง๊ฒ ๋ ๋ฆฝ์ ์ผ๋ก ์์ ๋๋ฉด์ ์ค๋ณต๋ ๋ก์ง์ ์๋ก ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ์ ๊ฐ๋ฉ๋๋ค. ์์ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ์ฌ ์๋์ผ๋ก ์ถ์ ํ๊ธฐ ๊ฑฐ์ ๋ถ๊ฐ๋ฅํ ๋์ ์ฐจ์ด๊ฐ ๋ฐ์ํฉ๋๋ค.
์ ์ง ๊ด๋ฆฌ ๋น์ฉ์ด ์ฆ๊ฐํฉ๋๋ค. ๋ฒ๊ทธ ์์ ์ด๋ ๋น์ฆ๋์ค ๊ท์น ์ ๋ฐ์ดํธ๋ ๋ชจ๋ ์ค๋ณต ์ธ์คํด์ค์ ์๋์ผ๋ก ์ ํํด์ผ ํฉ๋๋ค. ๋ ์ฌ๊ฐํ ๊ฒ์ ์ ๋ฐ์ดํธ ์ค์ ๋ณต์ฌ๋ณธ์ด ํ๋๋ง ๋๋ฝ๋์ด๋ ์ผ๋ฐ์ ์ธ ํ ์คํธ๋ก๋ ๊ฐ์งํ๊ธฐ ์ด๋ ค์ด ํ๊ท ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค๋ ๊ฒ์ ๋๋ค. ๋ ๊ฑฐ์ ํ๊ฒฝ์์๋ ์ค๋ณต ์ฝ๋๊ฐ ์ฌ๋ฌ ๊ธฐ์ , ์์ ์ค์ผ์ค๋ฌ ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก์์ ์ ๋ถ์ฐ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๊ฐ๋จํ ์๋๋ฆฌ์ค์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์๋ฐ๋ณต์ฌํธ์ง// In ServiceA
double calculateDiscount(double amount) {
if (amount > 1000) {
return amount * 0.1;
}
return 0;
}
// Later in ServiceB
double computeDiscount(double value) {
if (value > 1000) {
return value * 0.1;
}
return 0;
}
์ธ๋ป ๋ณด๊ธฐ์๋ ๋์ผํด ๋ณด์
๋๋ค. ํ์ง๋ง ๋น์ฆ๋์ค ๋ก์ง์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ(์: ์๊ณ๊ฐ ๋๋ ๋น์จ ์กฐ์ ) ๋ ์ฌ๋ณธ์ ์ผ๊ด๋๊ฒ ์
๋ฐ์ดํธํ์ง ๋ชปํ๋ฉด ๋ฐ์ดํฐ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ์ฌ ์ฒญ๊ตฌ, ๋ณด๊ณ ๋ฐ ๊ท์ ์ค์ ์์คํ
์ ๋ฐ์ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ์งํ๋ ค๋ฉด ์ค๋ณต์ ์กฐ๊ธฐ์ ๊ฐ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๊ธด ๋ฉ์๋์ ์ ํด๋์ค
๊ฐ๋ฐ์๊ฐ ๋ช ํํ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ์ํํ์ง ๋ชปํ๋ฉด ๊ธด ๋ฉ์๋์ ๊ฐ ํด๋์ค๊ฐ ๋ฑ์ฅํฉ๋๋ค. ๊ธด ๋ฉ์๋๋ ์ฒ์์๋ ๊ฐ๋จํ ์์ ์ ์ํํ์ง๋ง, ๊ฒฝ๊ณ ์กฐ๊ฑด, ์๋ก์ด ๊ธฐ๋ฅ, ๊ทธ๋ฆฌ๊ณ ํตํฉ์ด ์ถ๊ฐ๋จ์ ๋ฐ๋ผ ์ ์ ๋ ๋ง์ ๋ก์ง์ ํก์ํ๊ฒ ๋ฉ๋๋ค. ๊ฐ ํด๋์ค๋ ๋์ฑ ์ฌ๊ฐํ ๋ณํ์ผ๋ก, ๋จ์ผ ํด๋์ค๊ฐ ์ฌ๋ฌ ๋๋ฉ์ธ์ ์ฑ ์์ ํตํฉํ์ฌ ๋ฐ์ดํฐ ์ก์ธ์ค, ๋น์ฆ๋์ค ๊ท์น, ์ ํจ์ฑ ๊ฒ์ฌ, UI ์์ ์ง์ ๋ฑ์ ๋ชจ๋ ๋์์ ์ฒ๋ฆฌํ๋ ๊ฒฝ์ฐ๋ฅผ ๋งํฉ๋๋ค.
์ด๋ฌํ ๋์๋ ์ฌ๊ฐํ ์ํ์ ์ด๋ํฉ๋๋ค. ์ธ์ง ๋ถํ๋ฅผ ์ฆ๊ฐ์์ผ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ดํดํ๊ณ ์ ์งํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. ๋ํ ์ํ์ ์ฆํญ์ํต๋๋ค. ์๋ฌด๋ฆฌ ์์ ๋ณํ๋ผ๋ ๋ฉ์๋๋ ํด๋์ค ๋ด๋ถ์ ์จ๊ฒจ์ง ๊ด๋ จ ์๋ ๋ก์ง์ ์๋์น ์๊ฒ ์์์ํฌ ์ ์์ต๋๋ค. ํน์ ๋์์ ๋ถ๋ฆฌํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์ ํ ์คํธ๊ฐ ๋์ฑ ์ด๋ ค์์ง๋๋ค. ์คํ ๊ฒฝ๋ก๊ฐ ์๋ฐฑ ์ค์ด๋ ์์ญ ๊ฐ์ ๊ด๋ จ ์๋ ์์ ์ ๊ฐ๋ก์ง๋ฅด๋ฉด ๋๋ฒ๊น ์ ์ ๋ชฝ์ด ๋ฉ๋๋ค.
๋ค์์ ๊ฐ๋จํ ์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํ์ด์ฌ๋ณต์ฌํธ์งclass OrderProcessor:
def process_order(self, order):
# Validate order
# Calculate discounts
# Update inventory
# Send notification emails
# Generate invoice
pass
์ด๋ฌํ ๊ฐ ์์
์ ๋ณ๋์ ํด๋์ค ๋๋ ์๋น์ค๋ก ๋ถ๋ฆฌ๋์ด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์์
์ ํ๋๋ก ๋ฌถ์ผ๋ฉด ํฅํ ์ก์ฅ, ์ฌ๊ณ ๋๋ ์๋ฆผ์ ๋ํ ๋ชจ๋ ์
๋ฐ์ดํธ๊ฐ ์ ์ฒด ์ฃผ๋ฌธ ์ฒ๋ฆฌ ํ๋ฆ์ ๋ถ์์ ํ๊ฒ ๋ง๋ค ์ํ์ด ์์ต๋๋ค.
์๊ฐ์ด ์ง๋๋ ๋ฏผ์ฒฉํ๊ณ ํ๋ณต๋ ฅ์ด ์๋ ์์คํ
์ ๊ตฌ์ถํ๋ ค๋ฉด ๊ธด ๋ฉ์๋์ God ํด๋์ค๋ฅผ ๋ ์๊ณ ์ง์ค์ ์ธ ๋จ์๋ก ๋ฆฌํฉํ ๋งํ๋ ๊ฒ์ด ํ์์ ์
๋๋ค.
๊ธฐ๋ฅ ๋ถ๋ฌ์๊ณผ ๋ฐ์ดํฐ ๋ฉ์ด๋ฆฌ
๊ธฐ๋ฅ ์ ๋ง์ ํ ํด๋์ค์ ๋ฉ์๋๊ฐ ์์ ์ ํด๋์ค๋ณด๋ค ๋ค๋ฅธ ํด๋์ค์ ํ๋ ๋ฐ ๋ฉ์๋์ ์ํธ์์ฉํ๋ ๋ฐ ๋ ๋ง์ ์๊ฐ์ ์๋นํ ๋ ๋ฐ์ํฉ๋๋ค. ์ด๋ ํด๋น ๋์์ด ๋ค๋ฅธ ๊ณณ์ ์ํ ๊ฐ๋ฅ์ฑ์ด ๋๋ค๋ ๊ฒ์ ๋ํ๋ ๋๋ค. ๋์์ ๋ณธ๋ ์์ญ ๋ด์ ๊น๋ํ๊ฒ ์บก์ํํ๋ ๋์ , ์ฝ๋๊ฐ ํด๋์ค ๊ฒฝ๊ณ๋ฅผ โโ๋์ด ํ์ฅ๋์ด ๊ธด๋ฐํ ๊ฒฐํฉ๊ณผ ์ทจ์ฝ์ฑ ์ฆ๊ฐ๋ก ์ด์ด์ง๋๋ค.
ํํธ, ๋ฐ์ดํฐ ๋ฉ์ด๋ฆฌ๋ ๋์ผํ ๋ฐ์ดํฐ ๊ทธ๋ฃน์ด ์๋ฏธ ์๋ ๊ตฌ์กฐ๋ก ์บก์ํ๋์ง ์์ ์ฑ ๋ฐ๋ณต์ ์ผ๋ก ์ ๋ฌ๋ ๋ ๋ฐ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, firstName, lastName, streetAddress, city๊ธ๋ ๋ฐ์ผ zipCode ์ฌ๋ฌ ๋ฉ์๋์ ๊ฑธ์ณ ํจ๊ป ์ ์ํ๋ ๋์ Address ๋ชฉ์ .
์ค๋ช ์ ์ธ ์:
์๋ฐ๋ณต์ฌํธ์ง// Instead of this
public void createCustomer(String firstName, String lastName, String street, String city, String zip) { ... }
// Prefer this
public void createCustomer(Address address) { ... }
๊ธฐ๋ฅ ์ ๋ง์ ์ ์ง ๊ด๋ฆฌ์ ๊ณจ์นซ๊ฑฐ๋ฆฌ๋ฅผ ์๊ฒจ์ค๋๋ค. ์ ๋งํ๋ ํด๋์ค์ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๋ชจ๋ ์ข
์ ์ฝ๋๋ ์
๋ฐ์ดํธํด์ผ ํฉ๋๋ค. ๋ฐ์ดํฐ ๋ญ์น๋ ๊ฐ๋
์ฑ์ ์ ํ์ํค๊ณ , ๋ฉ์๋ ์๊ทธ๋์ฒ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค๋ฉฐ, ๋งค๊ฐ๋ณ์๋ฅผ ์ค์๋ก ๋ฐ๊พธ๊ฑฐ๋ ์๋ตํ ๊ฒฝ์ฐ ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ์ฝ์ต๋๋ค.
๋ ๊ฐ์ง ๋์ ๋ชจ๋ ํ์ฅ ๊ฐ๋ฅํ๊ณ ํ
์คํธ ๊ฐ๋ฅํ ์์คํ
์ ๊ตฌ์ถํ๋ ๋ฐ ์ค์ํ ๋ ๋์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ๋ ๊น๋ํ ๋๋ฉ์ธ ๋ชจ๋ธ๋ง์ ์ํ ๊ธฐํ๋ฅผ ๋์ณค์์ ๋ํ๋
๋๋ค.
์ฐํ์ด ์์ ๊ณผ ๋ฐ์ฐ์ ๋ณํ
์ท๊ฑด ์์ ์ ํ๋์ ๋ ผ๋ฆฌ์ ๋ณ๊ฒฝ์ด ๋ค์์ ํด๋์ค, ํจ์ ๋๋ ํ์ผ์ ๊ฑธ์ณ ์์ ์ ์๊ตฌํ ๋ ๋ฐ์ํฉ๋๋ค. ์ด์ ๋์กฐ์ ์ผ๋ก, ๋ถ์ฐ ๋ณ๊ฒฝ์ ํ๋์ ํด๋์ค๋ฅผ ์ ํ ๊ด๋ จ ์๋ ์ด์ ๋ก ๋ฐ๋ณต์ ์ผ๋ก ์์ ํด์ผ ํ๋ ๊ฒฝ์ฐ์ ๋๋ค. ๋ ๊ฐ์ง ๋ชจ๋ ๋ชจ๋์ฑ์ ์ ํดํ๊ณ ๋ณ๊ฒฝ ๋น์ฉ๊ณผ ์ํ์ ๊ทน์ ์ผ๋ก ์ฆ๊ฐ์ํต๋๋ค.
์ธ๊ธ ๊ณ์ฐ ๊ท์น ์กฐ์ ๊ณผ ๊ฐ์ด ๋น์ฆ๋์ค ๋ก์ง์ ์์ ๋ณ๊ฒฝ์ด ์๋ค๊ณ ์์ํด ๋ณด์ธ์. ๋ง์ฝ ์ฐํ์ด ์์ ์ด ํ์ํ๋ค๋ฉด, ์ด๋ฌํ ๊ฐ๋จํ ์ ๋ฐ์ดํธ์๋ ํ๋ฐํธ์๋ ์ ํจ์ฑ ๊ฒ์ฌ, ๋ฐฑ์๋ ๊ณ์ฐ ๋ชจ๋, ๋ฐ์ดํฐ๋ฒ ์ด์ค ํธ๋ฆฌ๊ฑฐ, ์ผ๊ด ์ฒ๋ฆฌ ์์ ๋ฐ ๋ณด๊ณ ์คํฌ๋ฆฝํธ ์์ ์ด ํ์ํ ์ ์์ต๋๋ค. ๋จ ํ๋์ ์์น๋ผ๋ ๋๋ฝ๋๋ฉด ๋ฐ์ดํฐ ๋ถ์ผ์น ๋๋ ์ํฌํ๋ก์ฐ ์ค๋จ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
์ :
sql๋ณต์ฌํธ์ง-- Tax logic duplicated in different places
SELECT amount * 0.05 FROM invoices;
SELECT amount * 0.05 FROM payments;
์ด์ ์ธ์จ์ ๋ณ๊ฒฝํ๋ ค๋ฉด ์์ญ ๊ฐ์ ์คํฌ๋ฆฝํธ๋ฅผ ์ดํด๋ด์ผ ํ๋ฉฐ, ์ด๋ ๋ถ์ผ์น์ ์ํ์ด ์์ต๋๋ค.
๋ฐ์ฐ์ ๋ณ๊ฒฝ์ ๋น์ทํ๊ฒ "๋ณ์ฅํ ์ ์ ๊ฐ์ฒด"์ธ ํด๋์ค๋ฅผ ์์ํ๋๋ฐ, ์ด๋ ๋๋ฌด ๋ง์ ๊ด๋ จ ์๋ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๋ค๋ ์๋ฏธ์
๋๋ค.
์ด๋ฌํ ์ ์ทจ๊ฐ ๋๋ ์์คํ ์ ์ทจ์ฝํด์ง๋๋ค. ์์ ๋ณํ๋ ์ฌ๋ฌ ์์ญ์ ์์ธกํ ์ ์๊ฒ ๋ง๊ฐ๋จ๋ฆฝ๋๋ค. ๋ชจ๋ ๋ณํ๊ฐ ๊ด๋ฒ์ํ ๋ชจ๋์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ํ ์คํธ๋ ๋๋ฆฌ๊ณ ์ ๋ขฐํ ์ ์๊ฒ ๋ฉ๋๋ค. ๋ฆฌํฉํ ๋ง์ ์ํด์๋ ๋จผ์ ์ฑ ์์ ์ ์ ํ ๋ถ๋ฆฌํ์ฌ ๋ ผ๋ฆฌ์ ๋จ์ ๊ฐ์ ๊ด์ฌ์ฌ๋ฅผ ์ง์ ์ผ๋ก ๋ถ๋ฆฌํด์ผ ํฉ๋๋ค.
์์์ ๊ฐ๋ฐ๊ด๋ ๊ณผ ์ถ์ธก์ ์ผ๋ฐ์ฑ
์์์ ์ง์ฐฉ์ ๋ฌธ์์ด, ์ ์, ๋ถ๋ฆฌ์ธ๊ณผ ๊ฐ์ ๊ธฐ๋ณธ ํ์
์ ๊ณผ๋ํ๊ฒ ์ฌ์ฉํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๋ ํ๋ถํ ๋๋ฉ์ธ๋ณ ํ์
์ด ๋ ์์ ํ๊ณ ํํ๋ ฅ์ด ํ๋ถํด์ผ ํฉ๋๋ค. ๋ค์๊ณผ ๊ฐ์ ๊ฐ๋ ฅํ ํ์
์ ๋ง๋๋ ๋์ Email, CurrencyAmount๋ฐ OrderID๊ฐ๋ฐ์๋ค์ ์ ๋ค๋ฆญ ๊ธฐ๋ณธํ์ ํฌ๊ฒ ์์กดํฉ๋๋ค. ์ด๋ก ์ธํด ์๋๊ฐ ๋ถ๋ถ๋ช
ํด์ง๊ณ , ๊ฒ์ฆ ๋ก์ง์ด ์ค๋ณต๋๋ฉฐ, ์์คํ
๊ฐ ๊ฒฐํฉ๋๊ฐ ๋ฎ์์ง๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ฌ์ํ ์:
csharp๋ณต์ฌํธ์งpublic void processPayment(string accountNumber, double amount, string currency) { ... }
์ด ๊ฒฝ์ฐ ๊ณ์ข ๋ฒํธ, ๊ธ์ก, ํตํ ์ฝ๋๊ฐ ์ผ๋ฐ ํ ์คํธ์ ์ซ์๋ก ์ฒ๋ฆฌ๋๋ฏ๋ก ์๋ชป๋์๊ฑฐ๋ ํ์์ด ์ฌ๋ฐ๋ฅด์ง ์์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ๊ธฐ ์ฝ์ต๋๋ค.
๋ฐ๋ฉด, ์ถ์ธก์ ์ผ๋ฐ์ฑ์ ์คํ๋์ง ์์์ง๋ ๋ชจ๋ฅด๋ ์๊ตฌ๋ฅผ ์์ํ์ฌ ์ง๋์น๊ฒ ์ถ์์ ์ด๊ณ ์ ์ฐํ ์ฝ๋๋ฅผ ์ค๊ณํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ๊ฐ๋ฐ์๋ ํ๋ฌ๊ทธ์ธ ์ํคํ ์ฒ, ์์ ํธ๋ฆฌ ๋๋ ์ผ๋ฐ ํธ๋ค๋ฌ๋ฅผ ์ง๊ธ ํ์ํด์๊ฐ ์๋๋ผ ์ธ์ ๊ฐ ํ์ํ ์ง๋ ๋ชจ๋ฅธ๋ค๋ ์๊ฐ ๋๋ฌธ์ ๊ฐ๋ฐํฉ๋๋ค.
๋ ๊ฐ์ง ์ ์ทจ ๋ชจ๋ ์ดํดํ๊ธฐ, ํ ์คํธํ๊ธฐ, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ ํ๊ธฐ ์ด๋ ค์ด ์์คํ ์ ๋ง๋ค์ด๋ ๋๋ค. ๋ฏธ๋ ๊ฐ๋ฐ์๋ค์ ๋๋ ๋์ , ๋ถํ์ํ ๋ณต์ก์ฑ์ ์กฐ์ฑํฉ๋๋ค. ๊น๋ํ ์ฝ๋๋ ์ค์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋๋ก ๋ฐ์ ํฉ๋๋ค. ์ฑ๊ธํ ์ถ์ํ์ ๊ธฐ๋ณธ ์์์ ๊ณผ๋ํ ์ฌ์ฉ์ ์ ์ฐ์ฑ์ผ๋ก ์์ฅ๋ ์ทจ์ฝ์ฑ์ ์ผ๊ธฐํฉ๋๋ค.
์ผ๊ด๋์ง ์์ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฐ ์นจ๋ฌต์ ์คํจ
์ผ๊ด๋์ง ์์ ์ค๋ฅ ์ฒ๋ฆฌ๋ ๊ฐ์ฅ ์ํํ ๋จ๊ณ์ธ ์ฅ์ ๊ฐ์ง ๋ฐ ๋ณต๊ตฌ ๋จ๊ณ์์ ์์คํ ์ ๋ถํ์ค์ฑ์ ์ด๋ํฉ๋๋ค. ๋ชจ๋๋ง๋ค ์์ธ ์ฒ๋ฆฌ ๋ฐฉ์์ด ํฌ๊ฒ ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ด๋ค ๋ชจ๋์ ์ค๋ฅ๋ฅผ ์์ธํ ๊ธฐ๋กํ๊ณ , ์ด๋ค ๋ชจ๋์ ์ค๋ฅ๋ฅผ ์กฐ์ฉํ ์จ๊ธฐ๊ณ , ์ด๋ค ๋ชจ๋์ ๋งฅ๋ฝ ์์ด ์ค๋ฅ๋ฅผ ํ๋ํฉ๋๋ค. ์ด๋ฌํ ํ์คํ ๋ถ์กฑ์ ์์คํ ์ ์ทจ์ฝํ๊ณ ์ ๋ขฐํ ์ ์๊ฒ ๋ง๋ค๋ฉฐ ๊ฐ์ฌ๋ฅผ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค.
์กฐ์ฉํ ์ค๋ฅ๋ ํนํ ํ๊ดด์ ์ ๋๋ค. ํ๋ก์ธ์ค๋ฅผ ์ค๋จ์ํค๊ฑฐ๋ ์๋ฏธ ์๋ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์์ค์ปฌ๋ ์ด์ ํ๋ ๋์ , ์์คํ ์ ์ ํจํ์ง ์๊ฑฐ๋ ๋ถ์์ ํ ๋ฐ์ดํฐ๋ก ๊ณ์ ์คํ๋ฉ๋๋ค. ์ด๋ก ์ธํด ๋ฏธ๋ฌํ ๋ฐ์ดํฐ ์์, ์ฌ๋ฌด์ ๋ถ์ผ์น, ๊ทธ๋ฆฌ๊ณ ๋์ค์ ์ง๋จํ๊ธฐ ๋งค์ฐ ์ด๋ ค์ด ์ด์ ์ค๋จ์ด ๋ฐ์ํฉ๋๋ค.
Java ์์ ๋ฅผ ์๊ฐํด ๋ณด์ธ์.
์๋ฐ๋ณต์ฌํธ์งtry {
processTransaction();
} catch (Exception e) {
// Silent catch: no log, no notification
}
์ด ๊ฒฝ์ฐ ์์คํ ์ ๊ฑฐ๋ ์คํจ๋ฅผ ์๋์ผ๋ก ๋ฌด์ํฉ๋๋ค. ๋ค์ด์คํธ๋ฆผ ํ๋ก์ธ์ค๋ ๊ฑฐ๋๊ฐ ์ฑ๊ณตํ๋ค๋ ๊ฐ์ ํ์ ๊ณ์ ์๋ํ๋ฉฐ, ์ด๋ก ์ธํด ๊ฐ์ฌ ๋๋ ์กฐ์ ๊ณผ์ ์์ ํจ์ฌ ๋์ค์์ผ ๋๋ฌ๋๋ ์ค๋ฅ๊ฐ ๋ฐ์ํฉ๋๋ค.
์ผ๊ด๋์ง ์์ ์ค๋ฅ ์ฒ๋ฆฌ๋ ์ง์ ๋น์ฉ์ ํฌ๊ฒ ์ฆ๊ฐ์ํค๊ณ ์ฌ๊ณ ํด๊ฒฐ ์๊ฐ์ ์ง์ฐ์ํต๋๋ค. ์ค๋ฅ ๊ด๋ฆฌ ํ์คํ, ์๋ฏธ ์๋ ์์ค์ปฌ๋ ์ด์ ๋ณด์ฅ, ๊ทธ๋ฆฌ๊ณ ํ๋ซํผ ๊ฐ ์ค๋ฅ ๊ฒฝ๋ก ์๊ด๊ด๊ณ ๋ถ์์ ๋ณต์๋ ฅ ์๊ณ ์ ๋ขฐํ ์ ์๋ ์์คํ ์ ๊ตฌ์ถํ๋ ๋ฐ ํ์์ ์ธ ๋จ๊ณ์ ๋๋ค.
์ฝ๋ ๋์๊ฐ ๋ฆฌํฉํ ๋ง๊ณผ ๊ธฐ์ ๋ถ์ฑ์ ๋ฏธ์น๋ ์ํฅ
์ฝ๋ ์ค๋ฉ์ ๊ณ ๋ฆฝ๋ ๋ถํธํจ์ด ์๋๋๋ค. ์ํํธ์จ์ด ์์คํ ์๋ช ์ฃผ๊ธฐ ๋์ ์กฐ์ฉํ ๋์ ๋๋ ์จ๊ฒจ์ง ๋น์ฉ์ ๋ํ๋ด๋ ์งํ์ ๋๋ค. ๋จ์ผ ์ค๋ฉ์ ๋ฌดํดํด ๋ณด์ผ ์ ์์ง๋ง, ์ฒด๊ณ์ ์ธ ๊ฐ์ ์กฐ์น ์์ด ์ง์๋๋ฉด ์ฌ์ํ ๋นํจ์จ์ด ํฅํ ๊ฐ๋ฐ, ์ ์ง ๊ด๋ฆฌ ๋ฐ ํ๋ํ ์์ ์ ํฐ ์ฅ์ ๋ฌผ๋ก ์์ฉํ ์ ์์ต๋๋ค.
์ด ์น์ ์์๋ ์ฝ๋ ๋์๊ฐ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ฆํญ์ํค๊ณ , ์คํจ ์ํ์ ์ฆ๊ฐ์ํค๊ณ , ๋ฆฌํฉํ ๋ง ๋ฐ ๋ณํ ์ด๋์ ํฐ๋ธ๋ฅผ ํจ์ฌ ๋ ์ด๋ ต๊ณ ๋น์ฉ์ด ๋ง์ด ๋ค๊ฒ ๋ง๋๋ ๋ฐฉ์์ ์ดํด๋ด ๋๋ค.
์ Smelly Code๋ ๋ฏธ๋์ ๋ชจ๋ ๋ณํ๋ฅผ ๋ ๋น์ธ๊ฒ ๋ง๋๋๊ฐ
๊ตฌ์กฐ๊ฐ ์ ๋๋ก ๊ฐ์ถฐ์ง์ง ์์ ์ฝ๋๋ ์์ง๋ง ์ค์ง์ ์ธ ๋ถ๋ด์ ํฅํ ์์ ์ ๊ฐ์ค์ํต๋๋ค. ํด๋์ค๊ฐ ๋๋ฌด ํฌ๊ฑฐ๋, ์ค๋ณต์ด ๋ง์ฐํ๊ฑฐ๋, ๊ฒฐํฉ๋๊ฐ ๊ณผ๋ํ๋ค๋ฉด, ์๋ฌด๋ฆฌ ์์ ์์ ์ด๋ผ๋ ๊ฐ๋ฐ์๋ ๋ค์๊ณผ ๊ฐ์ ์์ ์ ์ํํด์ผ ํฉ๋๋ค.
- ์์คํ ์ ๊ด๋ จ ์๋ ๋ถ๋ถ์ ์ดํดํ๋ ๋ฐ ๋ ๋ง์ ์๊ฐ์ ํฌ์ํ์ธ์
- ์ง์ญํ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๋ํด์๋ ์ฌ๋ฌ ๊ตฌ์ฑ ์์๋ฅผ ํฐ์นํฉ๋๋ค.
- ์ ๋ฐ์ดํธ ์ค์ ์ฝ๊ฒ ๋์ด์ง ์ ์๋ ์ทจ์ฝํ ์ข ์์ฑ์ ํ์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋น์ฆ๋์ค ๊ท์น์ด ๋ค์ฏ ๊ฐ์ ์๋ก ๋ค๋ฅธ ๋ชจ๋์ ๊ฑธ์ณ ์ค๋ณต๋๋ ๊ฒฝ์ฐ, ์ด๋ฅผ ์กฐ์ ํ๋ ค๋ฉด ๋ค์ฏ ๊ฐ์ ์ธ์คํด์ค๋ฅผ ๋ชจ๋ ํธ์งํ๊ณ ํ
์คํธํด์ผ ํฉ๋๋ค. ๋ง์ฝ ๊ทธ์ค ํ๋๊ฐ ๋๋ฝ๋๋ฉด ๋ฏธ๋ฌํ ๋ถ์ผ์น๊ฐ ๋ฐ์ํ์ฌ ๋ช ๋ฌ ํ ์ด์ ํ๊ฒฝ์์์ผ ๋ฐ๊ฒฌ๋ ์ ์์ต๋๋ค.
์ด๋ฌํ ํ๊ฒฝ์์๋ ์์ ์
๋ฐ์ดํธ๊ฐ ํฐ ๋ณ๊ฒฝ ์์ฒญ์ผ๋ก ์ด์ด์ง๊ณ , ์ํฅ ๋ถ์์ด ๋ถ๋ถ๋ช
ํด์ง๋ฉด์ ์ํ ํ๊ฐ๊ฐ ๋์ฑ ์ด๋ ค์์ง๋๋ค. ๊ฐ๋ฐ์๋ค์ ํ๋์ ๋ณ๊ฒฝ ์ฌํญ์ด ๊ด๋ จ ์๋ ์์ญ์ ํ๊ธ ํจ๊ณผ๋ฅผ ๋ฏธ์น ์ ์๋ค๋ ๊ฒ์ ์๊ณ ์๊ธฐ ๋๋ฌธ์ ํ๋ก์ ํธ ์์ ๋น์ฉ์ด ์ฆ๊ฐํฉ๋๋ค.
๊นจ๋ํ ์์คํ
์ ์์ ํ๊ณ ๊ณ ๋ฆฝ๋ ๋ณํ๋ฅผ ๊ฐ๋ฅํ๊ฒ ํฉ๋๋ค. ๋์๋๋ ์์คํ
์ ๋ณต์ก์ฑ๊ณผ ์ํ์ ์ฆํญ์์ผ ์งํํ๋ ค๋ ๋ชจ๋ ์๋๋ฅผ ์ฒ๋ฒํฉ๋๋ค.
์ด๋ฐ ์์ผ๋ก ์ฝ๋ ๋์๋ ๊ธฐ์ ๋ถ์ฑ์ ๋ํ ๋ณต๋ฆฌ์ฒ๋ผ ์์ฉํฉ๋๋ค. ์ฆ, ์ฝ๋ ๋์๋ฅผ ์ค๋ซ๋์ ์ฒ๋ฆฌํ์ง ์์์๋ก ์ดํ์ ๋ชจ๋ ๋ณ๊ฒฝ ๋น์ฉ์ด ๋ ๋ง์ด ๋ญ๋๋ค.
๊ฐ์์ฑ ์์ด ๋ฆฌํฉํ ๋ง์ด ์ํํด์ง๋ ๊ฒฝ์ฐ
๋ฆฌํฉํ ๋ง ์ฝ๋ ๋์๋ฅผ ๊ฐ์งํ๋ ์์ฐ์ค๋ฌ์ด ๋ฐ์์
๋๋ค. ๊ธฐ์กด ์ฝ๋์ ์ธ๋ถ ๋์์ ๋ณ๊ฒฝํ์ง ์๊ณ ์ฌ๊ตฌ์ฑํ๋ ์ฒด๊ณ์ ์ธ ํ๋ก์ธ์ค์
๋๋ค.
๊ทธ๋ฌ๋ ๋๊ท๋ชจ์ ๋ณต์กํ ์์คํ
์์ ์ข
์์ฑ, ์ฌ์ฉ ํจํด, ๋ชจ๋ ๊ฐ ์ํฅ์ ๋ํ ์ถฉ๋ถํ ๊ฐ์์ฑ ์์ด ๋ฆฌํฉํ ๋ง์ ์ํํ๋ ๊ฒ์ ์ํํ ์์
์
๋๋ค.
๊ฐ๋ฐ์๊ฐ ๋ณผ ์ ์๋ ๊ฒฝ์ฐ:
- ํด๋์ค๊ฐ ํด๋น ํ๋ก์ ํธ ์ธ๋ถ์์ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ
- ์ค๋ณต๋ ๋ ผ๋ฆฌ๊ฐ ์ฌ์ผ๋ก ์ ์ฒด์์ ์ด๋ป๊ฒ ๋ค๋ฅด๊ฒ ์งํํ๋์ง
- ์ด๋ค ๋ชจ๋์ด ์ทจ์ฝํ ์ ํธ๋ฆฌํฐ ํจ์์ ๊ฐ์ ์ ์ผ๋ก ์์กดํฉ๋๊น?
๊ทธ๋ฌ๋ฉด ์ข์ ์๋๋ก ์ํํ ๋ฆฌํฉํฐ๋ง์กฐ์ฐจ๋ ์ฌ๊ฐํ ํด๋ณด๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค.
๊ฐ์์ฑ์ด ์์ผ๋ฉด ์ง์ญ์ ์ผ๋ก ์ ์ฉ๋๋ ๊ฒ์ฒ๋ผ ๋ณด์ด๋ ๋ณ๊ฒฝ ์ฌํญ๋ ์์
์ค์ผ์ค๋ฌ, API, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์คํฌ๋ฆฝํธ ๋๋ ๋ ๊ฑฐ์ ์ผ๊ด ์์
์ผ๋ก ํ์ฐ๋ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ํ์ ์ข ์ข ํ์ ๋ง๋น์ํต๋๋ค. ์์์น ๋ชปํ ์์์ ๋ํ ๋๋ ค์์ "๋ฆฌํฉํ ๋ง ๋ง๋น"๋ก ์ด์ด์ง๋๋ค. ๊ธฐ์ ๋ถ์ฑ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋๋ ๋น์ฉ๊ณผ ์ํ์ด ๋๋ฌด ๋๋ค๊ณ ์ธ์๋์ด ๊ธฐ์ ๋ถ์ฑ๊ฐ ๊ณ์ ์ฆ๊ฐํ๋ ์ํฉ์ ๋๋ค.
๊ตฌ์กฐ์ ๋ฆฌํฉํ ๋ง์๋ ์ฝ๋๋ฒ ์ด์ค ๋ด๋ถ์ ์ ์ ๋ถ์ ๊ทธ ์ด์์ด ํ์ํฉ๋๋ค. ๊ฐ์ ์ฌํญ์ด ์์ ํ๊ณ ์์ธก ๊ฐ๋ฅํ๋ฉฐ ์ง์ ๊ฐ๋ฅํ๋๋ก ํ๋ ค๋ฉด ๊ด๊ณ, ์ฌ์ฉ ๋ฐฉ์, ๋์์ ๋ํ ์์คํ ์์ค์ ๋งต์ด ํ์ํฉ๋๋ค.
๋ ๊ฑฐ์ ํ๋ํ๋ฅผ ์ํ ์กฐ๊ธฐ ๊ฒฝ๊ณ ๋ก์ ์ฝ๋ ๋์
๋ชจ๋๋ฆฌ์ค๋ฅผ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ์ํคํ ์ฒ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ฑฐ๋, ๋ฉ์ธํ๋ ์์ ์ฌํ๋ซํผํ๊ฑฐ๋, ๋ ๊ฑฐ์ ์์คํ ์ ์๋น์ค๋ก ๋ถํดํ๋ ๋ฑ์ ํ๋ํ ํ๋ก์ ํธ ๋งฅ๋ฝ์์ ์ฝ๋ ๋์๋ ์ค์ํ ์กฐ๊ธฐ ๊ฒฝ๊ณ ์ญํ ์ ํฉ๋๋ค.
์ค๋ณต๋ ๋ ผ๋ฆฌ, ์ฐํ์ด ์์ , ์์ด์ ์ธ ์ง์ฐฉ, ๊ทธ๋ฆฌ๊ณ ์ผ๊ด์ฑ ์๋ ์ค๋ฅ ์ฒ๋ฆฌ์ ๊ฐ์ ์ ์ทจ์ ์ฌํ๊ฒ ์ค์ผ๋ ์์คํ ์ ํ๋ํํ๊ธฐ๊ฐ ํจ์ฌ ๋ ์ํํฉ๋๋ค. ์ด๋ฌํ ์์คํ ์ ๋ชจ๋์ ์ถ์ถ์ ์ด๋ ต๊ฒ ํ๊ณ , ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์ ์ ๋ต์ ๋ณต์กํ๊ฒ ๋ง๋ค๋ฉฐ, ์ ์ง์ ์ธ ํ๋ํ ๋ฐฉ์์ ํ์ํ ๊ฐ์ ์ ํผ์ํฉ๋๋ค.
์ :
- ๋น์ฆ๋์ค ๊ท์น์ด ๋ถ์ฐ๋๊ณ ์ผ๊ด์ฑ ์์ด ๊ตฌํ๋๋ฉด ๋๋ฉ์ธ ๊ฒฝ๊ณ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๋ง์ดํฌ๋ก์๋น์ค๋ฅผ ์ถ์ถํ๋ ๊ฒ์ด ํจ์ฌ ์ด๋ ค์์ง๋๋ค.
- ๊ฑฐ๋ ์ํฌํ๋ก๊ฐ ์ฌ๋ฌ ๊ณ์ธต์ ์จ๊ฒจ์ ธ ์๊ณ ์คํจ์ ๋ํ ์ฒ๋ฆฌ๊ฐ ๋ฏธ๋นํ ๊ฒฝ์ฐ, ์๋ก์ด ํ๋ซํผ์์ ์ด์ ๋ณต์๋ ฅ์ ์ฌ๊ตฌ์ถํ๋ฉด ์์์น ๋ชปํ ์ค๋จ์ด ๋ฐ์ํ ์ํ์ด ์์ต๋๋ค.
ํ๋ํ๋ฅผ ์์ํ๊ธฐ ์ ์ ์ฝ๋ ๋์๋ฅผ ์ฌ์ ์ ์๋ณํจ์ผ๋ก์จ ์กฐ์ง์ ๋ค์์ ์ํํ ์ ์์ต๋๋ค.
- ์ค์ ์ง์ญ์ ์์ ํํ๊ธฐ ์ํ ๋ณต๊ตฌ ๋ ธ๋ ฅ์ ์ฐ์ ์์๋ฅผ ์ ํ์ญ์์ค.
- ์ค์ ์์คํ ์ํ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ๋ก์ ํธ ๋ฒ์๋ฅผ ๋ณด๋ค ์ ํํ๊ฒ ์ ์ํฉ๋๋ค.
- ์จ๊ฒจ์ง ๊ธฐ์ ๋ถ์ฑ๋ก ์ธํด ๋ฐ์ํ๋ ์์์น ๋ชปํ ์ง์ฐ ๋ฐ ์ฌ์์ ์ ์ค์ ๋๋ค.
ํ๋ํ ๊ณผ์ ์์ ์ฝ๋ ๋์๋ฅผ ๋ฌด์ํ๋ ๊ฒ์ ๋ง์น ๊ธ์ด ๊ฐ ๊ธฐ์ด ์์ ์ ๊ณ ์ธต ๋น๋ฉ์ ์ง๋ ๊ฒ๊ณผ ๊ฐ์ต๋๋ค. ๊ฑด๋ฌผ์ ์ ๊ฒ์ฒ๋ผ ๋ณด์ผ์ง ๋ชฐ๋ผ๋, ์ด์์์ ์คํธ๋ ์ค๋ก ์ธํด ์จ๊ฒจ์ง ์ฝ์ ์ด ๋๋ฌ๋ ๊ฒ์ ๋๋ค.
์ ์ ์ฝ๋ ๋ถ์์ด (์ผ๋ถ) ์ฝ๋ ๋์๋ฅผ ๊ฐ์งํ๋ ๋ฐฉ๋ฒ
์ ์ ์ฝ๋ ๋ถ์ ๋๊ตฌ๋ ์ฝ๋ ์ ์ทจ ๋์ ์ ๋ง๋ ์ต์ ์ ๋ฐฉ์ด์ ์ค ํ๋์ ๋๋ค. ์์ค ์ฝ๋๋ฅผ ์คํํ์ง ์๊ณ ๊ฒ์ฌํ์ฌ ๊ตฌ๋ฌธ ๋ถ์, ํจํด ๋งค์นญ, ํด๋ฆฌ์คํฑ ํ๊ฐ ๊ธฐ๋ฒ์ ์กฐํฉํ์ฌ ์ด์ ์งํ๋ฅผ ํ์งํฉ๋๋ค. ํ์ง๋ง ์ ์ ๋ถ์ ๋ชจ๋ ๊ฒ์ ๋ณผ ์ ์๋ ํด๊ฒฐ์ฑ ์ ์๋๋๋ค. ์ ์์ค ๋ฐ ์ค๊ฐ ์์ค์ ๋์๋ฅผ ์์ ์ ์ผ๋ก ๊ฐ์งํ์ง๋ง, ๋ ์ฌ์ธต์ ์ธ ์ํคํ ์ฒ ๋ฐ ์๋ฏธ๋ก ์ ๋์๋ ์ฌ์ ํ ํ์ง ๋ฒ์์ ํฌํจ๋์ง ์์ต๋๋ค. ํจ๊ณผ์ ์ธ ํ์ง ๊ฐ์ ์ ๋ต์ ์๋ฆฝํ๋ ค๋ฉด ์ ์ ๋ถ์์ด ํ์ํ ๋ถ๋ถ๊ณผ ๋ถ์งํ ๋ถ๋ถ์ ํ์ ํ๋ ๊ฒ์ด ํ์์ ์ ๋๋ค.
์ ์ ๋ถ์ ๋๊ตฌ๊ฐ ์์ ์ ์ผ๋ก ์ฐพ์ ์ ์๋ ๊ฒ
์ ์ ์ฝ๋ ๋ถ์์ ๋ช ํํ๊ณ ๊ธฐ๊ณ์ ์ธ ํน์ง์ ๊ฐ์ง ๊ตฌ์กฐ์ ๋ฌธ์ ๋ฅผ ํฌ์ฐฉํ๋ ๋ฐ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋๊ตฌ๋ ํ ํฐ ์ ์ฌ์ฑ์ด๋ ์ถ์ ๊ตฌ๋ฌธ ํธ๋ฆฌ ๋น๊ต๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ค๋ณต๋ ์ฝ๋ ๋ธ๋ก์ ์ฝ๊ฒ ๊ฐ์งํ ์ ์์ต๋๋ค. ์ํ ๋ณต์ก๋๋ฅผ ์ธก์ ํ์ฌ ์ง๋์น๊ฒ ๊ธด ๋ฉ์๋๋ฅผ ํ์ํ๊ณ , ๋ฉ์๋์ ์ต๋ ๋งค๊ฐ๋ณ์ ์๋ฅผ ์ ์ฉํ์ฌ ์ธํฐํ์ด์ค๊ฐ ๋๋ฌด ์ปค์ง๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค. ์ ์ ๋ถ์์ ๋ํ ๋น catch ๋ธ๋ก, ํ๋์ฝ๋ฉ๋ ์๊ฒฉ ์ฆ๋ช , ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ API ์ฌ์ฉ, ์ค๋ณต๋ ์กฐ๊ฑด ๋ ผ๋ฆฌ์ ๊ฐ์ ๊ฐ๋จํ ์ํฐํจํด์ ์์ ์ ์ผ๋ก ์๋ณํ ์ ์์ต๋๋ค.
๋ง์ ๋๊ตฌ๊ฐ ์ฝ๋ฉ ํ์ค์ ๋ฐ๋ผ ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ ๊ท์น ์ธํธ๋ฅผ ์ ๊ณตํ์ฌ ํ์ด ํน์ ์ํคํ ์ฒ ์ง์นจ์ ์ ์ฉํ ์ ์๋๋ก ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ํ์ ๋ฉ์๋๊ฐ 20๊ฐ ์ด์์ธ ํด๋์ค๋ 30์ค ์ด์์ธ ๋ฉ์๋์ ํ๋๊ทธ๋ฅผ ์ง์ ํ๋ ๊ท์น์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค. ์ด๋ฌํ ์๊ณ๊ฐ ๊ธฐ๋ฐ ๊ท์น์ ๊ฐ์ฅ ํํ ์ ์์ ์ธ ์ฝ๋๋ค์ด ์ฝ๋๋ฒ ์ด์ค์ ๋์ ๋์ง ์๊ฒ ์นจํฌํ๋ ๊ฒ์ ๋ฐฉ์งํ๋ ๋ฐ ํจ๊ณผ์ ์ ๋๋ค.
์ ์ ๋ถ์ ์์ง์ ์ฝ๋์ ๋ด๊ธด ์ฌ์ธต์ ์ธ ๋น์ฆ๋์ค ์๋ฏธ๋ฅผ ์ดํดํ์ง ์๊ณ ๋ ํจํด์ ์ ํํํ๊ณ ์์ ์ ์ผ๋ก ํ์งํ ์ ์๋ ํ๊ฒฝ์์ ํ์ํ ์ฑ๋ฅ์ ๋ฐํํฉ๋๋ค. ์ ์ ๋ถ์ ์์ง์ ๊ฐ๋ฐ์๊ฐ ์ค๋ฅ๊ฐ ํ๋ก๋์ ์์คํ ์ ๋ฐ์๋๊ธฐ ์ ์ ์กฐ๊ธฐ์ ์ค๋ฅ๋ฅผ ๋ฐ๊ฒฌํ ์ ์๋๋ก ๋น ๋ฅธ ํผ๋๋ฐฑ ๋ฃจํ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๊ฒฉ์ฐจ: ๋น์ฆ๋์ค ๋ก์ง, ํฌ๋ก์ค ๋ชจ๋ ๋ฐ ์ํคํ ์ฒ ๋์
์ ์ ๋ถ์ ๋๊ตฌ๋ ๊ทธ ์ฅ์ ์๋ ๋ถ๊ตฌํ๊ณ ์ฌ๋ฌ ๋ชจ๋์ ๊ฑธ์ณ ์๊ฑฐ๋, ๋น์ฆ๋์ค ์๋ฏธ๋ก ์ ํฌํจํ๊ฑฐ๋, ๋๊ท๋ชจ ์ํคํ ์ฒ ์ค๊ณ์ ๊ด๋ จ๋ ๋์๋ฅผ ๊ฐ์งํ๋ ๋ฐ ์ด๋ ค์์ ๊ฒช์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๊ธฐ๋ฅ ์ ๋ง(feature envy)์ ๋ฉ์๋๊ฐ ๋ค๋ฅธ ๊ฐ์ฒด์ ํ๋์ ์๊ธฐ ์์ ๋ณด๋ค ๋ ๋ง์ด ์ ๊ทผํ ๋๋ฅผ ํ์ ํด์ผ ํฉ๋๋ค. ์๋ฏธ๋ก ์ ์ธ์์ด ์๋ค๋ฉด ์ ์ ๋ถ์์ ํ์์ ์ธ ์ํธ์์ฉ๊ณผ ์๋ชป๋ ์ฑ ์์ ๊ตฌ๋ถํ์ง ๋ชปํ ์ ์์ต๋๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก, ์ท๊ฑด ์์ ๊ณผ ๋ฐ์ฐ์ ๋ณํ๋ ์ฝ๋๊ฐ ํน์ ์์ ์ ์ ์ ์ผ๋ก ์ด๋ป๊ฒ ๋ณด์ด๋์ง๋ฟ ์๋๋ผ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์ด๋ป๊ฒ ์งํํ๋์ง์ ๋ํ ๋์ ์ธ ๊ณ ๋ ค ์ฌํญ์ ํฌํจํฉ๋๋ค. ์ ์ ๋๊ตฌ๋ ํน์ ๋น์ฆ๋์ค ๊ท์น์ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด 15๊ฐ์ ์๋ก ๋ค๋ฅธ ํ์ผ์ ๋ถ์ฐ๋ ์ฝ๋๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ค๋ ๊ฒ์ ์ฝ๊ฒ ์ถ๋ก ํ ์ ์์ผ๋ฉฐ, ํนํ ํด๋น ํ์ผ์ด ๋ณ๋์ ์๋น์ค๋ ์ ์ฅ์์ ์๋ ๊ฒฝ์ฐ ๋์ฑ ๊ทธ๋ ์ต๋๋ค.
๊ณ์ธต ์๋ฐ, ์์คํ ๊ฐ ์จ๊ฒจ์ง ๊ฒฐํฉ, ์ฌ๋ฌ ๊ธฐ์ ๊ฐ์ ์ค๋ณต๋ ๋น์ฆ๋์ค ๊ท์น๊ณผ ๊ฐ์ ์ํคํ ์ฒ ๊ด๋ จ ๋ฌธ์ ๋ ๊ธฐ๋ณธ์ ์ธ ์ ์ ๋ถ์์์ ์ ์ธ๋ฉ๋๋ค. ์ด๋ฌํ ๋ฌธ์ ๋ ๊ตฌ๋ฌธ ํธ๋ฆฌ ํ์ฑ์ ๋์ด ์์คํ ๋์, ์ฌ์ฉ ๋ฐ ๋ฐ์ดํฐ ํ๋ฆ์ ๋ํ ๋ณด๋ค ์ ์ฒด์ ์ธ ๊ด์ ์ ์๊ตฌํฉ๋๋ค.
์ด๋ฌํ ์ฐจ์ด๋ฅผ ์ดํดํ๋ ๊ฒ์ด ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ ์ ๋ถ์์ ์ฝ๋ ํ์ง์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋์ง๋ง ์๋ฒฝํ ํด๊ฒฐ์ฑ ์ ์๋๋๋ค. ๊ณ ์ฐจ์์ ์ธ ์ ์ทจ๋ฅผ ์ง์ ์ผ๋ก ์๋ณํ๊ณ ํด๊ฒฐํ๋ ค๋ฉด ์ํคํ ์ฒ ๊ฒํ , ๋ฐํ์ ๊ฐ์์ฑ, ์์คํ ๋งคํ, ๊ทธ๋ฆฌ๊ณ ์ธ๊ฐ์ ์ ๋ฌธ์ฑ์ด ํจ๊ป ๋ท๋ฐ์นจ๋์ด์ผ ํฉ๋๋ค.
๋งฅ๋ฝ๊ณผ ์ ๋ต ์์ด ํ์ง๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ ์ด์
์ ์ ๋ถ์์ ํตํด ์ฝ๋ ์ค๋ฉ์ ์ฐพ์๋ด๋ ๊ฒ์ ํ์์ ์ธ ๋จ๊ณ์ด์ง๋ง, ์ด๋ ์์์ ๋ถ๊ณผํฉ๋๋ค. ๋ช ํํ ํด๊ฒฐ ์ ๋ต๊ณผ ์์คํ ๋งฅ๋ฝ์ ๋ํ ์ฌ์ธต์ ์ธ ์ดํด๊ฐ ์๋ค๋ฉด, ํ์ง ๋ ธ๋ ฅ์ ๊ณง ๊ฒฝ๋ณด ํผ๋ก๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ํ์ ์๋ฐฑ ๋๋ ์์ฒ ๊ฐ์ ๊ฒฝ๊ณ ๋ฅผ ์์ฑํ ์ ์์ง๋ง, ์ฐ์ ์์๋ฅผ ์ ํ๊ฑฐ๋ ์์ ํ๊ฒ ์กฐ์น๋ฅผ ์ทจํ ์ค์ง์ ์ธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
๋งฅ๋ฝ์ด ์ค์ํฉ๋๋ค. ๊ฑฐ์ ์ฌ์ฉ๋์ง ์๋ ๋ ๊ฑฐ์ ๋ณด๊ณ ์ ์์ฑ๊ธฐ ๋ด์ ๊ธด ๋ฉ์๋๋ ๋งค์ฃผ ๋ณ๊ฒฝ๋๋ ๊ณ ๊ฐ ์จ๋ณด๋ฉ ์๋น์ค ๋ด์ ๋ณต์กํ ๋ฉ์๋์ ๋นํด ์ต์ํ์ ์ํ๋ง ์ด๋ํ ์ ์์ต๋๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, ์ผํ์ฑ ETL ํ๋ก์ธ์ค์ ์ค๋ณต ์ฝ๋๋ ์ฆ์ ์์ ํ ๊ฐ์น๊ฐ ์๋ ๋ฐ๋ฉด, ํต์ฌ ๊ฒฐ์ ์ฒ๋ฆฌ ๋ก์ง์ ์ค๋ณต์ ๊ธด๊ธํ ํตํฉ์ ์๊ตฌํฉ๋๋ค.
์ ๋ต์ ๊ณํ์ ํ์์ ์ ๋๋ค. ํ์ ์ํ, ๋น์ฆ๋์ค ์ํฅ, ๊ทธ๋ฆฌ๊ณ ๊ธฐ์ ์ ์ค์๋๋ฅผ ๊ธฐ์ค์ผ๋ก ๋์๋ฅผ ๋ถ๋ฅํ ์ ์๋ ํ๋ ์์ํฌ๊ฐ ํ์ํฉ๋๋ค. ๋ฌธ์ ํด๊ฒฐ์ ๊ฐ๋ณ์ ์ธ ๋ฆฌํฉํ ๋ง ์คํ๋ฆฐํธ์์ ์ฒ๋ฆฌํ๊ธฐ๋ณด๋ค๋ ์คํ๋ฆฐํธ ๊ณํ, ๊ธฐ์ ๋ถ์ฑ ์์ฐ ๋๋ ํ๋ํ ๋ก๋๋งต์ ํตํฉ๋์ด์ผ ํฉ๋๋ค.
๊ถ๊ทน์ ์ผ๋ก ์์คํ ์ ์ฒด ๋งฅ๋ฝ์ ๊ณ ๋ คํ์ง ์์ ์ ์ ๋ถ์์ ํ์ง ๊ฐ์ ์ ์ฒดํฌ๋ฆฌ์คํธ ํ๋์ผ๋ก ์ ๋ฝ์ํฌ ์ํ์ด ์์ต๋๋ค. ํจ๊ณผ์ ์ธ ์ค๋ชจํฌ ๊ด๋ฆฌ๋ฅผ ์ํด์๋ ์ ์ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๊ณ ๋ฆฝ๋ ๊ฒฐํจ์ด ์๋ ๋ ํฐ ๊ท๋ชจ์ ์ง์์ ์ธ ์ํคํ ์ฒ ๋ฐ ์ ์ง๋ณด์ ์ ๋ต์ ์ผ๋ถ๋ก ๋ค๋ฃจ์ด์ผ ํฉ๋๋ค.
SMART TS XL ๋ฐ ์ฌ์ธต์ ์ธ ์์คํ ์ ์ฒด ์ฝ๋ ๋์ ๋ฐ๊ฒฌ
๊ธฐ์กด์ ์ ์ ๋ถ์ ๋๊ตฌ๋ ๋จ์ผ ์ฝ๋๋ฒ ์ด์ค ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ๊ณ ๋ด์์๋ ์ ์๋ํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ๋์ ์ํฐํ๋ผ์ด์ฆ ์์คํ ์ ๊ณ ๋ฆฝ๋ ์ํ๋ก ์ด์๋๋ ๊ฒฝ์ฐ๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ์ฌ๋ฌ ํ๋ซํผ, ์ธ์ด, ๋ฐ์ดํฐ ์ ์ฅ์ ๋ฐ ๋ฐํ์ ํ๊ฒฝ์ ๊ฑธ์ณ ์์ต๋๋ค. ์ฝ๋ ์ ์ทจ๊ฐ ์ด๋ฌํ ๊ฒฝ๊ณ๋ฅผ ๋์ด ํ์ฐ๋๋ฉด ๊ธฐ์กด์ ์ ๊ทผ ๋ฐฉ์์ ๋น ๋ฅด๊ฒ ๊ฐ์์ฑ์ ์๊ฒ ๋ฉ๋๋ค. ๋ฐ๋ก ์ด๋ฌํ ์ด์ ๋๋ฌธ์ ๋๋ค. SMART TS XL ๋จ์ํ ์ฝ๋ ์ค์บ๋์ ํจ์ฌ ๋ฐ์ด๋๋ ์ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์กฐ์ง์ด ๋ณต์กํ๊ณ ์ํธ ์ฐ๊ฒฐ๋ ํ๊ฒฝ์ ๊น์ด ๋ด์ฌ๋ ์จ๊ฒจ์ง ์ํ์ ๋ฐ๊ฒฌํ๊ณ ํด๊ฒฐํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
์์คํ ์ ๋ฐ์์ ์ค๋ณต๋ ๋ ผ๋ฆฌ ์๊ฐํ
๋๊ธฐ์ ์์๋ ์ค๋ณต์ด ๋จ์ผ ์ ์ฅ์์๋ง ๊ตญํ๋๋ ๊ฒฝ์ฐ๊ฐ ๊ฑฐ์ ์์ต๋๋ค. ๋น์ฆ๋์ค ๊ท์น, ๋ฐ์ดํฐ ๋ณํ ๋ฐ ํ๋ก์ธ์ค ๋ก์ง์ ๋ฉ์ธํ๋ ์ ๋ฐฐ์น ์์ , ๋ฏธ๋๋ ์ธ์ง ์๋น์ค, ํด๋ผ์ฐ๋ API ๋ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ๋ก์์ ์ ๋ฐ์ ๊ฑธ์ณ ๋ณต์ฌ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ ์ ๋ถ์ ๋๊ตฌ๋ ํน์ Java ํ๋ก์ ํธ ๋ด์์ ์ค๋ณต์ ๊ฐ์งํ ์ ์์ง๋ง, COBOL ํ๋ก๊ทธ๋จ๊ณผ Python ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ๋์ผํ ๋น์ฆ๋์ค ๊ท์น์ ์ฝ๊ฐ ๋ค๋ฅธ ๋ฒ์ ์ ๊ตฌํํ๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ถ์ ํ ์๋ ์์ต๋๋ค.
SMART TS XL ๊ธฐ์ ์ด๋ ํ๋ซํผ์ ๊ตฌ์ ๋ฐ์ง ์๋ ์ ์ฌ์ ์ฝ๋ ๊ด๊ณ ๋งต์ ๊ตฌ์ถํฉ๋๋ค. ํ๋ก๊ทธ๋จ, ์คํฌ๋ฆฝํธ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด ๋ฐ ์์ ์ ์ด ๊ตฌ์กฐ๋ฅผ ํตํฉ ๋ชจ๋ธ๋ก ์์ธํํฉ๋๋ค. ์ฌ์ฉ ํจํด์ ๋ถ์ํ์ฌ ๊ตฌ๋ฌธ ์์ค๋ฟ ์๋๋ผ ๋ ผ๋ฆฌ ์์ค์์๋ ์ค๋ณต์ ์๋ณํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ์ ๋น์ฆ๋์ค ๊ท์น์ด ๋ณต์ ๋๊ณ , ๋ค๋ฅด๊ฒ ์งํํ๋ฉฐ, ์ฃผ์ ํ๋ํ ์ํ ์์๊ฐ ๋๋ ๋ถ๋ถ์ ํ์ ํ ์ ์์ต๋๋ค. ์จ๊ฒจ์ง ์ค๋ณต์ ์ ๋ต์ ์ผ๋ก ๊ด๋ฆฌํ๊ณ ํตํฉํ ์ ์๋ ๊ฐ์์ ์ธ ๊ธฐ์ ๋ถ์ฑ๋ก ์ ํํฉ๋๋ค.
ํธ์ถ ์ฒด์ธ ๋งคํ, ๊ณผ๊ฒฐํฉ ๋ฐ ์ํคํ ์ฒ ๋๋ฆฌํํธ
์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ์์คํ ์ ๋ณธ๋ ์ค๊ณ์์ ์์ฐ์ค๋ฝ๊ฒ ๋ฒ์ด๋๊ฒ ๋ฉ๋๋ค. ์๋น์ค๋ ๊ธด๋ฐํ๊ฒ ๊ฒฐํฉ๋๊ณ , ๊ณ์ธต์ ์ฐํ๋๋ฉฐ, ๋ฐ์ดํฐ ์ข ์์ฑ์ ์ ์ด์ ์กด์ฌํ์ง ์์์ผ ํ ๊ณณ์ ๋ฐ์ํฉ๋๋ค. ์ด์ฒ๋ผ ๋ณํํ๋ ๊ตฌ์กฐ๋ฅผ ์ ๋๋ก ํ์ ํ์ง ๋ชปํ๋ฉด ํ์ ์์คํ ์ ์ง์ ํ ์ํ๋ฅผ ์ ์ ์๊ฒ ๋ฉ๋๋ค.
SMART TS XL ์ฌ๋ฌ ํ๊ฒฝ ๊ฐ์ ํธ์ถ ์ฒด์ธ, ์ ์ด ํ๋ฆ ๋ฐ ๋ฐ์ดํฐ ์ด๋์ ์๊ฐํํฉ๋๋ค. ๋จ์ผ ์ฅ์ ์ง์ ์ด ๋ฐ์ํ๊ณ , ๊ฒฐํฉ์ด ์ํํ ์ ๋๋ก ํฝํฝํด์ง๋ฉฐ, ๋ ผ๋ฆฌ์ ๋๋ฉ์ธ์ด ๊ต์ฐจ ๊ด์ฌ์ฌ์ ์ํด ์นจํด๋๋ ์ฌ๋ก๋ฅผ ๊ฐ์กฐํฉ๋๋ค. ์ด๋ฌํ ์ํคํ ์ฒ ๋์๋ ๋ก์ปฌ ์ฝ๋ ์ค์บ๋์์๋ ๋ณด์ด์ง ์์ง๋ง ์์คํ ๊ฒฝ๊ณ๋ฅผ ๋์ด ๋ณผ ๋๋ ๋ช ํํด์ง๋๋ค. ํ๋ก๊ทธ๋จ๊ณผ ์๋น์ค๊ฐ ์ค์ ๋ก ์ด๋ป๊ฒ ์ํธ ์ฐ๊ฒฐ๋๋์ง ์ดํดํ๋ฉด ์ํคํ ํธ๋ ํจ์ฌ ๋ ์์ ์๊ฒ ๋ชจ๋ํ, ์๋น์ค ๋ถํด ๋ฐ ํ๋ํ๋ฅผ ๊ณํํ ์ ์์ต๋๋ค.
์ํ ์ง์ค๋ ๋ฐ ๋ฆฌํฉํ ๋ง ๋์ ์๋ณ์ ์ํ ์ฌ์ฉ ๋งต
๋ชจ๋ ๋์๊ฐ ๋์ผํ ์ด์ ์ํ์ ์๋ฐํ๋ ๊ฒ์ ์๋๋๋ค. ํ ๋ฌ์ ํ ๋ฒ ์ฌ์ฉ๋๋ ๋ณด๊ณ ๋ชจ๋ ๋ด๋ถ์ ์ค๋ณต ๊ณ์ฐ์ ํต์ฌ ๊ณ ๊ฐ ์๋น์ค์ ๋ด์ฅ๋ ์ค๋ณต ์ธ์ฆ ๋ก์ง๊ณผ๋ ๋งค์ฐ ๋ค๋ฆ
๋๋ค.
SMART TS XL ๋
ผ๋ฆฌ๊ฐ ์ด๋์ ์๋์ง ๋ณด์ฌ์ค ๋ฟ๋ง ์๋๋ผ ํด๋น ๋
ผ๋ฆฌ๊ฐ ์์คํ
์ด์์ ์ผ๋ง๋ ์ค์ํ์ง๋ ๋ณด์ฌ์ฃผ๋ ์ฌ์ฉ ๋งต์ ๊ตฌ์ถํฉ๋๋ค.
ํ์ ์คํ ๋น๋, ๋น์ฆ๋์ค ์ค์๋, ๋ณ๊ฒฝ ์ด๋ ฅ, ์ข
์์ฑ ๋ฐ๋ ๋ฑ์ ์์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ ์์
์ ์ฐ์ ์์๋ฅผ ์ ํ ์ ์์ต๋๋ค. ์ถ์์ ์ธ ๋ณต์ก์ฑ ์ ์์ ๊ธฐ๋ฐํ์ฌ ๋งน๋ชฉ์ ์ผ๋ก ๋ฆฌํฉํ ๋งํ๋ ๋์ , ์กฐ์ง์ ์ค์ ํ๊ฒฝ์ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์น๋ ์
์ทจ๋ฅผ ์ ๋ฐํ๊ฒ ํ์
ํ ์ ์์ต๋๋ค.
์ด๋ฅผ ํตํด ๊ธฐ์ ๋ถ์ฑ ๊ด๋ฆฌ๊ฐ ์์ฒญ๋ ์
๋ฌด ๋ชฉ๋ก์์ ๋ฒ์ด๋ ๋น์ฆ๋์ค ์ฑ๊ณผ์ ์ง์ ์ ์ผ๋ก ์ฐ๊ณ๋ ์ง์ค์ ์ธ ์ํ ๊ฐ์ ์ ๋ต์ผ๋ก ์ ํ๋ฉ๋๋ค.
์ ์ง์ ๋ฆฌํฉํ ๋ง ๋ฐ ์์ ํ ํ๋ํ ์ง์
๊ฐ์ฅ ์ค์ํ ํน์ง ์ค ํ๋ SMART TS XL ์ ์ง์ ๋ฆฌํฉํ ๋ง์ ์ง์ํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋๊ท๋ชจ ์์คํ ์์๋ ๋๋์ ์ธ ๋ฆฌํฉํ ๋ง์ด ๋นํ์ค์ ์ ๋๋ค. ํ์ ์ด์ ์ค๋จ ์ํ ์์ด ์ ์ง์ ์ผ๋ก ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ณ , ์ทจ์ฝํ ์์ญ์ ๋ชจ๋ํํ๊ณ , ์์ ์ ์ธ ์๋น์ค๋ฅผ ์ถ์ถํ ์ ์๋ ๋ฐฉ๋ฒ์ด ํ์ํฉ๋๋ค.
๋
ผ๋ฆฌ ํ์ฐ, ์ ์ด ํ๋ฆ, ์ค๋ณต ๋ฐ ์ฌ์ฉ ํจํด์ ๋ํ ์์ธํ ๋งต์ ์ ๊ณตํจ์ผ๋ก์จ SMART TS XL ๋ฆฌํฉํ ๋ง์ ์์ ํ๊ณ ์ ์ง์ ์ผ๋ก ์ํํ ์ ์๋๋ก ํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ์ ์๋์น ์์ ๋ถ์์ฉ ์์ด ๋ฌด์์ ์ด๋, ๋ถํ , ํตํฉ ๋๋ ํ๊ธฐํ ์ ์๋์ง์ ๋ํ ํ์ ์ ๊ฐ์ง ์ ์์ต๋๋ค.
๋์ผํ ์ญ๋์ด ์ฑ๊ณต์ ์ธ ํ๋ํ ์ด๋์
ํฐ๋ธ์ ๊ธฐ๋ฐ์ด ๋๋๋ฐ, ๊ธฐ์กด์ ๋ฌด์์ด ์กด์ฌํ๊ณ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ๋ ๊ฒ์ ๋ฏธ๋๋ฅผ ์ํ ์ฌํ๋ซํผ ๋๋ ์ฌ์ํคํ
์ฒ์ ์ ์ ์กฐ๊ฑด์
๋๋ค.
SMART TS XL ๊ธฐ์ ๋ถ์ฑ๋ฅผ ๋ง์ฐํ ๊ฑฑ์ ๊ฑฐ๋ฆฌ์์ ๋งคํ๋๊ณ ์ธก์ ๊ฐ๋ฅํ๋ฉฐ ๊ด๋ฆฌ ๊ฐ๋ฅํ ์์ฐ์ผ๋ก ์ ํํ์ฌ ์์คํ ์ ๋ง๋น์ํค๋ ๊ฒ์ด ์๋๋ผ ๊ฐ์ํํฉ๋๋ค.
๋ฌธ์ ๋ฅผ ์ผ์ฐ ๊ฐ์งํ๊ณ ์์คํ ์ ๋์ฑ ๊ฐํํ์ธ์
์ฝ๋ ์ค๋ฉ์ ์ํํธ์จ์ด ์์คํ ์ ์กฐ์ฉํ ๊ฒฝ๊ณ ์ ๋๋ค. ์ฆ๊ฐ์ ์ธ ์ฅ์ ๋ฅผ ์ผ์ผํค์ง๋, ๊ธด๊ธ ์์คํ ์ค๋จ์ ์ ๋ฐํ์ง๋ ์์ต๋๋ค. ์คํ๋ ค ์กฐ์ฉํ ๊ธฐ์ ๋ถ์ฑ๋ฅผ ์ถ์ ํ๊ณ , ์ด์์์ ์ทจ์ฝ์ฑ์ ๋์ด๋ฉฐ, ํฅํ ๋ชจ๋ ๋ณ๊ฒฝ ๋น์ฉ์ ์ฆํญ์ํต๋๋ค. ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ์ ์ง ๊ด๋ฆฌ ๋น์ฉ์ด ๋๋ฌด ๋ง์ด ๋ค๊ณ , ํ๋ํํ๊ธฐ์๋ ๋๋ฌด ์ํํ๋ฉฐ, ์งํํ๊ธฐ์๋ ๋๋ฌด ๋ณต์กํ ์์คํ ์ ๋ง๋ค์ด๋ ๋๋ค.
์ ์ ์ฝ๋ ๋ถ์ ๋๊ตฌ๋ ๊ตฌ์กฐ์ ๊ฒฐํจ์ ์กฐ๊ธฐ์ ํฌ์ฐฉํ์ฌ ํ์์ ์ธ 1์ฐจ ๋ฐฉ์ด๋ง์ ์ ๊ณตํฉ๋๋ค. ์ฐ์ ์ฌ๋ก ์ ์ฉ, ์ค๋ณต ๋ฐ๊ฒฌ, ๋ณต์ก์ฑ ์ธก์ , ๊ทธ๋ฆฌ๊ณ ๊ฐ์ฅ ํํ ๊ฒฝ๊ณ ์ ํธ ํ์ ์ ๋์์ ์ค๋๋ค. ํ์ง๋ง ์ฝ๋ ์ ์ทจ๋ฅผ ๊ฐ์งํ๋ ๊ฒ๊ณผ ์ฝ๋ ์ ์ทจ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ์์ ํ ๋์ผํ์ง ์์ต๋๋ค. ํจ๊ณผ์ ์ธ ์์ ์ ์ํด์๋ ์์คํ ์ ๋ฐ์ ๊ฐ์์ฑ, ์ํคํ ์ฒ ๋งฅ๋ฝ, ๊ทธ๋ฆฌ๊ณ ์ ๋ต์ ์ฐ์ ์์ ์ค์ ์ด ํ์ํฉ๋๋ค.
๋๊ท๋ชจ ๋ถ์ฐ ํ์ด๋ธ๋ฆฌ๋ ํ๊ฒฝ์์๋ ์ง์ญํ๋ ์ค์บ๋๋ง์ผ๋ก๋ ์ถฉ๋ถํ์ง ์์ต๋๋ค. ์ฝ๋ ์ค๋ฉ์ ํ๋ก์ ํธ ๊ฒฝ๊ณ๋ ๊ธฐ์ ์คํ์ ๊ณ ๋ คํ์ง ์์ต๋๋ค. ์ฝ๋ ์ค๋ฉ์ ์์
์ค์ผ์ค๋ฌ, API, ๋ ๊ฑฐ์ ํ๋ก๊ทธ๋จ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ฐ ํด๋ผ์ฐ๋ ์๋น์ค ์ ๋ฐ์ ๊ฑธ์ณ ํ์ฐ๋ฉ๋๋ค. ๋ํ ์ฌ์ฌ์ฉ๋ ๋ก์ง, ์ค๋ณต๋ ๋น์ฆ๋์ค ๊ท์น, ๊ทธ๋ฆฌ๊ณ ์ํ์ง ํตํฉ ๊ณ์ธต์ ์จ์ด ์์ต๋๋ค.
์ค์ ๋ฒ์๋ฅผ ์ดํดํ๋ ค๋ฉด ์ฝ๋๋ฟ๋ง ์๋๋ผ ์ ์ฒด ์ํฐํ๋ผ์ด์ฆ ์์คํ
์ ์ด์์๋ ๊ตฌ์กฐ๋ฅผ ๋งคํํ ์ ์๋ ๋๊ตฌ๊ฐ ํ์ํฉ๋๋ค.
SMART TS XL ์กฐ์ง์ด ๊ณ ๋ฆฝ๋ ํ์ง๋ฅผ ๋์ด ๋์๊ฐ ์ ์๋๋ก ์ง์ํฉ๋๋ค. ๋์๊ฐ ์ด๋ป๊ฒ ํ์ฐ๋๋์ง, ์ฃผ์ ์ํฌํ๋ก์ ์ด๋ค ์ํฅ์ ๋ฏธ์น๋์ง, ๊ทธ๋ฆฌ๊ณ ํน์ ๋ฆฌํฉํ ๋ง์ ํตํด ๊ฐ์ฅ ํฐ ํจ๊ณผ๋ฅผ ์ป์ ์ ์๋ ๋ถ๋ถ์ ์๊ฐํํฉ๋๋ค. ๊ธฐ์ ๋ถ์ฑ์ ๋ํ ๋ง์ฐํ ์ฐ๋ ค๋ฅผ ์์คํ ๊ฐ์ ๋ฐ ํ๋ํ๋ฅผ ์ํ ๋ช ํํ๊ณ ์คํ ๊ฐ๋ฅํ ๋ก๋๋งต์ผ๋ก ์ ํํฉ๋๋ค.
์ฝ๋ ๋ฌธ์ ๋ฅผ ์กฐ๊ธฐ์ ํด๊ฒฐํ๋ ๊ฒ์ ๋จ์ํ ๊น๋ํ ์ฝ๋๋ฅผ ๋ง๋๋ ๊ฒ๋ง์ด ์๋๋๋ค. ๊ณผ๊ฑฐ์ ์ง๋ฆ๊ธธ์ ์ฝ๋งค์ด์ง ์๊ณ ๋ฏธ๋์ ์๊ตฌ๋ฅผ ์ถฉ์กฑํ ์ ์๋ ํ๋ ฅ์ ์ด๊ณ ์ ์๋ ฅ ์๋ ์์คํ ์ ๊ตฌ์ถํ๋ ๊ฒ์ ๋๋ค. ๋ฌธ์ ๋ฅผ ์ผ์ฐ ๋ฐ๊ฒฌํ ์๋ก ์์คํ ์ ๋์ฑ ๊ฐ๋ ฅํ๊ณ ๋ฏผ์ฒฉํด์ง๋๋ค.