ํด๋ฆฐ ์ฝ๋๋ ์ฝ๊ธฐ, ์ ์ง ๊ด๋ฆฌ ๋ฐ ๊ฐ์ ํ๊ธฐ ์ฌ์ด ์ํํธ์จ์ด๋ฅผ ์์ฑํ๋ ์ฝ๋ฉ ์คํ์ผ์ ์ค๋ช ํ๋ ๋ฐ ์์ฃผ ์ฌ์ฉ๋๋ ์ฉ์ด์ ๋๋ค. ์ด ๊ฐ๋ ์ "Uncle Bob"์ผ๋ก๋ ์๋ ค์ง Robert C. Martin์ด ๊ทธ์ ์ฑ ์์ ๋์คํํ์ต๋๋ค. ์ฝ๋ : ๋ฏผ์ฒฉํ ์ํํธ์จ์ด ์ฅ์ธ ์ ์ ์๋ด์. Martin์ ๋ฐ๋ฅด๋ฉด, ๊นจ๋ํ ์ฝ๋๋ "๊ฐ๋จํ๊ณ ์ง์ ์ ์ด๋ฉฐ ๋ค๋ฅธ ์ฌ๋๋ค์ด ์ฝ๊ฒ ์ฝ๊ณ ์ดํดํ ์ ์๋" ์ฝ๋๋ก ์ ์ํ ์ ์์ต๋๋ค.
๊นจ๋ํ ์ฝ๋๋ ๋ช ํ์ฑ๊ณผ ๋จ์์ฑ์ ๊ฐ์กฐํฉ๋๋ค. ๋จ์ํ ์๋ํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์๋๋ผ ์ ์ํตํ๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋๋ค. ๊นจ๋ํ ์ฝ๋๋ฒ ์ด์ค๋ ์ ์ฐ์ฌ์ง ์ฑ ๊ณผ ๊ฐ์ต๋๋ค. ๋ช ํํ ์คํ ๋ฆฌ๋ฅผ ์ ๋ฌํ๊ณ ๋ถํ์ํ ๋ณต์ก์ฑ๊ทธ๋ฆฌ๊ณ ์ดํ ๊ฐ๋ฐ์๋ค์ด ์๋ ์์ฑ์์ ์๋๋ฅผ ํด๋ ํ์ง ์๊ณ ๋ ๊ธฐ์ฌํ ์ ์๊ฒ ํด์ค๋๋ค.
ํด๋ฆฐ ์ฝ๋ ์์น
์ฌ๋ฌ ์์น์ด ๊นจ๋ํ ์ฝ๋์ ๊ธฐ์ด๋ฅผ ํ์ฑํฉ๋๋ค. ์ด๋ฌํ ์์น์ ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ฅ๊ธฐ์ ์ผ๋ก ์ง์ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
1. ๊ฐ๋ ์ฑ
๊ฐ๋ ์ฑ์ ๊น๋ํ ์ฝ๋์ ํต์ฌ์ ๋๋ค. ์ฝ๋๋ ์ฐ์ฌ์ง๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ ์์ฃผ ์ฝํ๋ฏ๋ก ๋น ๋ฅด๊ณ ์ฝ๊ฒ ์ดํดํ ์ ์์ด์ผ ํฉ๋๋ค. ์ข์ ๋ช ๋ช ๊ท์น, ์ ์ ํ ๋ค์ฌ์ฐ๊ธฐ, ๋ช ํํ ๊ตฌ์กฐ๋ ๊ฐ๋ ์ฑ์ ๊ธฐ์ฌํฉ๋๋ค. ๋ชจ๋ ์ฝ๋๋ ๊ด๋ฒ์ํ ํด์์ ์๊ตฌํ์ง ์๊ณ ๋ ๋ ์์๊ฒ ๋ฌด์์ ํ๋์ง ์๋ ค์ผ ํฉ๋๋ค.
2. ๊ฐ๋จ
๋จ์ํจ์ ์ฝ๋๋ฅผ ๊ฐ์ฅ ํ์์ ์ธ ๊ตฌ์ฑ ์์๋ก ์ค์ด๋ ๊ฒ์ ๋๋ค. ์ด๋ ๊ธฐ๋ฅ์ ํฌ์ํ๋ ๊ฒ์ด ์๋๋ผ ๋ถํ์ํ ๋ณต์ก์ฑ์ ํผํ๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ๊ฐ๋จํ ์ฝ๋๋ ํ ์คํธ, ์ ์ง ๊ด๋ฆฌ ๋ฐ ์์ ํ๊ธฐ๊ฐ ๋ ์ฝ์ต๋๋ค. ํ์ฌ ํ์ํ์ง ์์ ๊ธฐ๋ฅ์ด๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์๋ "You Ain't Gonna Need It"(YAGNI)์ ์์น์ ๋ฐ๋ฆ ๋๋ค.
3. ๋ฏธ๋๋ฉ๋ฆฌ์ฆ
๋ฏธ๋๋ฉ๋ฆฌ์ฆ์ ๋จ์์ฑ๊ณผ ๋ฐ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค. ๊ฐ๋ฐ์๊ฐ ํ์ ์ด์์ ์ฝ๋๋ฅผ ์์ฑํ์ง ์๋๋ก ์ฅ๋ คํฉ๋๋ค. ๋ชจ๋ ์ฝ๋ ์ค์ ๋ชฉ์ ์ ๋ฌ์ฑํด์ผ ํฉ๋๋ค. ๊ธฐ๋ฅ์ด๋ ๋ ผ๋ฆฌ๊ฐ ํ์ํ์ง ์์ผ๋ฉด ์ ๊ฑฐํ๊ฑฐ๋ ํผํด์ผ ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ์ด ์ต์ํ๋๊ณ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ดํดํ๊ธฐ๊ฐ ๋ ์ฌ์์ง๋๋ค.
4. ์ผ๊ด์ฑ
์ฝ๋ฉ ์คํ์ผ๊ณผ ๊ตฌ์กฐ์ ์ผ๊ด์ฑ์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์์ธก ๊ฐ๋ฅํ๊ณ ํ์ํ๊ธฐ ์ฝ๊ฒ ๋ง๋๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ผ๊ด๋ ๋ช ๋ช ๊ท์น, ํ์ผ ๊ตฌ์ฑ ๋ฐ ์ฝ๋ฉ ํจํด์ด ํฌํจ๋ฉ๋๋ค. ์ผ๊ด๋ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ค์ํ ์ฝ๋ฉ ์คํ์ผ์ ํด๋ ํ๋ ๋์ ๋ฌธ์ ํด๊ฒฐ์ ์ง์คํ ์ ์์ต๋๋ค.
5. ์ฐ๋ ค์ฌํญ์ ๋ถ๋ฆฌ
์ด ์์น์ ์ฝ๋๋ฅผ ํ๋ก๊ทธ๋จ์ ํน์ ์ธก๋ฉด์ ๋ด๋นํ๋ ๋ณ๊ฐ์ ์น์ ์ผ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์ ์นํธํฉ๋๋ค. ๊ทธ๋ ๊ฒ ํ๋ฉด ์ฝ๋์ ํ ๋ถ๋ถ์์ ๋ณ๊ฒฝ์ด๋ ์ ๋ฐ์ดํธ๊ฐ ๋ค๋ฅธ ๋ถ๋ถ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น์ง ์์ต๋๋ค. ์ด ๋ชจ๋์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ๋ ์ฌ์ด ํ ์คํธ๋ฅผ ์ด์งํฉ๋๋ค.
6. ์ค๋ณต ๋ฐฉ์ง
DRY(Don't Repeat Yourself)๋ ๊นจ๋ํ ์ฝ๋์ ํต์ฌ ์์น์ ๋๋ค. ์ค๋ณต์ ๋ถ์ผ์น, ์ ์ง ๊ด๋ฆฌ ๋ ธ๋ ฅ ์ฆ๊ฐ, ๋ฒ๊ทธ ๊ฐ๋ฅ์ฑ ์ฆ๊ฐ๋ก ์ด์ด์ง๋๋ค. ๊นจ๋ํ ์ฝ๋๋ ๋ก์ง์ ํ ๋ฒ๋ง ์์ฑํ๊ณ ํ์ํ ๊ณณ์์ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ํฉ๋๋ค.
7. ์บก์ํ
์บก์ํ๋ ๋ฐ์ดํฐ์ ํด๋น ๋ฐ์ดํฐ์์ ์๋ํ๋ ๋ฉ์๋๋ฅผ ๋จ์ผ ๋จ์(์ผ๋ฐ์ ์ผ๋ก ํด๋์ค)๋ก ๋ฌถ๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ๊ฐ์ฒด์ ๋ด๋ถ ์ํ๋ฅผ ์จ๊ธฐ๊ณ ํ์ํ ๊ฒ๋ง ๋ ธ์ถํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ณต์ก์ฑ์ ์ค์ด๊ณ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณดํธํฉ๋๋ค.
๊นจ๋ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ
๊นจ๋ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด ๊ท์จ๊ณผ ์ ์คํ ์ฝ๋ฉ ์ ๊ทผ ๋ฐฉ์์ด ํ์ํฉ๋๋ค. ์๋๋ ๋ ๊นจ๋ํ ์ฝ๋๋ฅผ ์ป๊ธฐ ์ํ ๋ช ๊ฐ์ง ์ค์ฉ์ ์ธ ๋จ๊ณ์ ๋๋ค.
1. ์๋ฏธ ์๋ ์ด๋ฆ์ ์ฌ์ฉํ์ธ์
๋ค์ด๋ฐ์ ๊น๋ํ ์ฝ๋์ ๊ฐ์ฅ ์ค์ํ ์ธก๋ฉด ์ค ํ๋์ ๋๋ค. ๋ณ์, ํจ์, ํด๋์ค ๋ฐ ๊ธฐํ ์๋ณ์๋ ๋ชฉ์ ์ ๋ช ํํ๊ฒ ์ ๋ฌํ๋ ์๋ฏธ ์๋ ์ด๋ฆ์ ๊ฐ์ ธ์ผ ํฉ๋๋ค. temp, data ๋๋ obj์ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์ด๋ฆ์ ์ฌ์ฉํ์ง ๋ง์ธ์. ๋์ userList, calculateTotal ๋๋ isLoggedIn๊ณผ ๊ฐ์ด ์ญํ ์ด๋ ์๋๋ฅผ ์ค๋ช ํ๋ ์ด๋ฆ์ ์ฌ์ฉํ์ธ์.
2. ์์ ํจ์๋ฅผ ์์ฑํ์ธ์
ํจ์๋ ํ ๊ฐ์ง ์ผ์ ์ ํด์ผ ํฉ๋๋ค. ์๊ณ ์ง์ค์ ์ธ ํจ์๋ ํ ์คํธ, ์ดํด ๋ฐ ์ฌ์ฌ์ฉ์ด ๋ ์ฝ์ต๋๋ค. ํจ์๊ฐ ๋๋ฌด ๊ธธ๊ฑฐ๋ ๋ณต์กํ๋ค๋ฉด ๋ ์๊ณ ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ํจ์๋ก ๋๋๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. ์ข์ ๊ฒฝํ ๋ฒ์น์ ํจ์๊ฐ ์คํฌ๋กคํ์ง ์๊ณ ๋ ๋จ์ผ ํ๋ฉด์์ ๋ณผ ์ ์๋ ๊ฒ๋ณด๋ค ๊ธธ์ด์๋ ์ ๋๋ค๋ ๊ฒ์ ๋๋ค.
3. ์ ์ญ ๋ณ์ ์ฌ์ฉ ์ ํ
์ ์ญ ๋ณ์๋ ์ฝ๋๋ฅผ ์์ธก ๋ถ๊ฐ๋ฅํ๊ฒ ๋ง๋ค๊ณ ๋๋ฒ๊น ํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์จ๊ฒจ์ง ์ข ์์ฑ ๊ทธ๋ฆฌ๊ณ ํ๋ก๊ทธ๋จ์ ์ด๋ ๊ณณ์์๋ ์์ ๋ ์ ์์ผ๋ฉฐ, ์๋์น ์์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํฉ๋๋ค. ๊ฐ๋ฅํ ํ ์ง์ญ ๋ณ์๋ฅผ ์ฌ์ฉํ๊ณ , ๊ธ๋ก๋ฒ ์ํ๊ฐ ํ์ํ ๊ฒฝ์ฐ ํด๋์ค๋ ๋ชจ๋ ๋ด์ ์บก์ํํ์ฌ ๋ฒ์๋ฅผ ์ ํํฉ๋๋ค.
4. ํ ์คํธ ์์ฑ
ํ ์คํธ ์ฃผ๋ ๊ฐ๋ฐ(TDD)์ ํ ์คํธ๋ฅผ ํต๊ณผ์ํค๋ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์ ์ ํ ์คํธ๋ฅผ ์์ฑํ๋ ๊ดํ์ ๋๋ค. ํ ์คํธ๋ฅผ ์์ฑํ๋ฉด ์ฝ๋๊ฐ ์์๋๋ก ์๋ํ๊ณ ๊ฐ๋ฐ ํ๋ก์ธ์ค ์ด๊ธฐ์ ๋ฒ๊ทธ๋ฅผ ์ก๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ๊นจ๋ํ ์ฝ๋๋ ํ ์คํธํ ์๋ ์์ผ๋ฏ๋ก ์ฝ๋์ ๋ํ ํ ์คํธ๋ฅผ ์ฝ๊ฒ ์์ฑํ ์ ์์ต๋๋ค.
5. ์ ๊ธฐ์ ์ผ๋ก ๋ฆฌํฉํ ๋งํ์ธ์
๋ฆฌํฉํ ๋ง ๊ณผ์ ์ด๋ค ์ฝ๋ ๊ตฌ์กฐ ๊ฐ์ ๊ธฐ๋ฅ์ ๋ณ๊ฒฝํ์ง ์๊ณ ๋ ๊ฐ๋ฅํฉ๋๋ค. ์ ๊ธฐ์ ์ธ ๋ฆฌํฉํ ๋ง์ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊นจ๋ํ๊ณ ์ ์ ๊ฐ๋ฅํ๊ฒ ์ ์งํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ค๋ณต์ ์ ๊ฑฐํ๊ณ , ๋ ผ๋ฆฌ๋ฅผ ๋จ์ํํ๊ณ , ๊ฐ๋ ์ฑ์ ๊ฐ์ ํ๋ ๊ฒ์ด ํฌํจ๋ฉ๋๋ค. ๋ฆฌํฉํ ๋ง์ ํ๋ก์ ํธ๊ฐ ๋๋ ๋๋ฟ๋ง ์๋๋ผ ์ง์์ ์ผ๋ก ์ํํด์ผ ํฉ๋๋ค.
์ข์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ
๊น๋ํ ์ฝ๋๋ ์ฝ๋์ ์ ์ง ๊ด๋ฆฌ ๋ฐ ํ์ฅ์ฑ์ ๋ณด์ฅํ๋ ์ผ๋ จ์ ์ข์ ํ๋ก๊ทธ๋๋ฐ ๊ดํ์ ์ํด ๋ท๋ฐ์นจ๋ฉ๋๋ค.
1. ์ผ๊ด๋ ์ฝ๋ฉ ํ์ค ์ฑํ
์ผ๊ด๋ ์ฝ๋ฉ ํ์ค ์ธํธ๋ฅผ ํ๋ฆฝํ๊ณ ์ค์ํ๋ ๊ฒ์ ๊นจ๋ํ ์ฝ๋๋ฒ ์ด์ค์ ํ์์ ์ ๋๋ค. ์ฌ๊ธฐ์๋ ๋ช ๋ช ๊ท์น, ํ์ผ ๊ตฌ์กฐ ๋ฐ ์์์ ๋ํ ์ง์นจ์ด ํฌํจ๋ฉ๋๋ค. ์ฝ๋ฉ ํ์ค์ ์ฝ๋๋ฒ ์ด์ค ์ ์ฒด์์ ๊ท ์ผ์ฑ์ ์ ์งํ๋ ๋ฐ ๋์์ด ๋์ด ํ์ด ํ์ ํ๊ธฐ ์ฝ๊ฒ ํด์ค๋๋ค.
2. ๋ฒ์ ์ ์ด ์ฌ์ฉ
Git๊ณผ ๊ฐ์ ๋ฒ์ ์ ์ด ์์คํ ์ ์ฝ๋๋ฒ ์ด์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ๊ด๋ฆฌํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๊ฐ์ ์ฌํญ์ ์ถ์ ํ๊ณ , ๋ค๋ฅธ ์ฌ๋๊ณผ ํ์ ํ๊ณ , ํ์ํ ๊ฒฝ์ฐ ๋ณ๊ฒฝ ์ฌํญ์ ๋กค๋ฐฑํ ์ ์์ต๋๋ค. ๊นจ๋ํ ์ฝ๋๋ ๋ช ํํ ์ปค๋ฐ ๋ฉ์์ง์ ๋ ผ๋ฆฌ์ ์ผ๋ก ์๋ฏธ๊ฐ ์๋ ์ ๊ธฐ์ ์ธ ์ปค๋ฐ์ ํตํด ๋ฒ์ ์ ์ด๋ฅผ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
3. ๋ฐ๋ณต ์์ ์๋ํ
์๋ํ ์ธ์ ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ ์ค์ด๊ณ ๊ฐ๋ฐ์๊ฐ ๋ ๋ณต์กํ ์์ ์ ํ ์ ์๋ ์๊ฐ์ ํ๋ณดํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. ์๋ํ๋ ํ ์คํธ, ์ง์์ ์ธ ํตํฉ ๋ฐ ๋ฐฐํฌ ํ์ดํ๋ผ์ธ์ ์ฝ๋๊ฐ ์ผ๊ด๋๊ฒ ํ ์คํธ๋๊ณ ๋ฐฐํฌ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด๋ ๊นจ๋ํ๊ณ ํจ์จ์ ์ธ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ์งํ๋ ๋ฐ ์ค์ํ ๊ดํ์ ๋๋ค.
4. ์ ๊ธฐ์ ์ผ๋ก ์ฝ๋๋ฅผ ๊ฒํ ํ์ธ์
์ฝ๋ ๊ฒํ ๋ ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ค์ํ ๋ถ๋ถ์ ๋๋ค. ํ์๋ค์ด ์ค๋ฅ๋ฅผ ํฌ์ฐฉํ๊ณ , ๊ฐ์ ์ฌํญ์ ์ ์ํ๊ณ , ์ฝ๋ฉ ํ์ค์ด ์ค์๋๊ณ ์๋์ง ํ์ธํ ์ ์๋ ๊ธฐํ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ ๊ธฐ์ ์ธ ์ฝ๋ ๊ฒํ ๋ ์ฝ๋ ํ์ง์ ์ ์งํ๊ณ ํ์ ๊ฐ์ ์ง์ ๊ณต์ ๋ฅผ ์ฅ๋ คํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
ํ๋ก๊ทธ๋๋ฐ ์ฃผ์
์ฃผ์์ ๊นจ๋ํ ์ฝ๋์์ ์๋ ์ ๊ฒ์ ๋๋ค. ์ ์ฉํ ๋งฅ๋ฝ์ ์ ๊ณตํ ์ ์์ง๋ง, ์ ์ ํ๊ฒ ์ ์ง ๊ด๋ฆฌํ์ง ์์ผ๋ฉด ์ค๋๋๊ฑฐ๋ ์คํด์ ์์ง๊ฐ ์์ ์๋ ์์ต๋๋ค.
1. ๋๊ธ์ ์๊ปด์ ์ฐ์ธ์
์ฃผ์์ ์๊ปด์ ์ฌ์ฉํด์ผ ํ๋ฉฐ ๋ณต์กํ ๋ ผ๋ฆฌ๋ฅผ ๋ช ํํ ํ๋ ๋ฐ ํ์ํ ๋๋ง ์ฌ์ฉํด์ผ ํฉ๋๋ค. ์ด์์ ์ผ๋ก๋ ์ฝ๋ ์์ฒด๊ฐ ์๋ช ํด์ผ ํฉ๋๋ค. ๊ณผ๋ํ ์ฃผ์์ ์ฝ๋๋ฅผ ๋ณต์กํ๊ฒ ๋ง๋ค๊ณ ์ฝ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ค ์ ์์ต๋๋ค. ์ฃผ์์ ํ์์ฑ์ ์ต์ํํ๋ ๋ช ํํ๊ณ ์์ฒด ๋ฌธ์ํ๋๋ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ง์คํ์ธ์.
2. ๋๊ธ์ ์ต์ ์ํ๋ก ์ ์งํ์ธ์
์ฃผ์์ด ํ์ํ ๊ฒฝ์ฐ ์ฃผ์์ด ์ค๋ช ํ๋ ์ฝ๋์ ํจ๊ป ์ต์ ์ํ๋ก ์ ์ง๋๋๋ก ํฉ๋๋ค. ์ค๋๋ ์ฃผ์์ ์ฃผ์์ด ์ ํ ์๋ ๊ฒ๋ณด๋ค ๋ ํด๋ก์ธ ์ ์์ต๋๋ค. ๊ฐ๋ฐ์๋ฅผ ์ค๋ํ๊ณ ํผ๋์ ์ผ์ผํฌ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
3. ์ค๋ณต๋ ์ฃผ์์ ํผํ์ธ์
์ฝ๋๊ฐ ๋ฌด์์ ํ๋์ง ๋จ์ํ ๋ค์ ์ค๋ช ํ๋ ์ฃผ์์ ํผํ์ญ์์ค. ์๋ฅผ ๋ค์ด, // i += 1; ์ค ์์ ์๋ i์ 1์ ์ถ๊ฐํฉ๋๋ค์ ๊ฐ์ ์ฃผ์์ ์ค๋ณต๋๊ณ ๋ถํ์ํฉ๋๋ค. ์ฃผ์์ ๋ค์์ ์ค๋ช ํ์ฌ ๊ฐ์น๋ฅผ ๋ํด์ผ ํฉ๋๋ค. why ์คํ๋ ค ๋ญ.
C#๋ก ๋ง๋ ๊น๋ํ ์ฝ๋
C#์ ๊นจ๋ํ ์ฝ๋ฉ ๊ดํ์ ์ฅ๋ คํ๋ ํ๋์ ์ด๊ณ ๊ฐ์ฒด ์งํฅ์ ์ธ ์ธ์ด์ ๋๋ค. C#์์ ๊นจ๋ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด ์ธ์ด์ ๊ธฐ๋ฅ์ ํ์ฉํ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ค์ํด์ผ ํฉ๋๋ค.
1. Public ํ๋ ๋์ ์์ฑ์ ์ฌ์ฉํ์ธ์
C#์์ ์์ฑ์ ๋ฐ์ดํฐ์ ์ก์ธ์คํ๋ ์ ์ด๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ์ ํจ์ฑ ๊ฒ์ฌ๋ ๋ค๋ฅธ ๋ ผ๋ฆฌ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ๋ฐ๋ฉด, ๊ณต๊ฐ ํ๋๋ ๊ฐ์ฒด์ ๋ด๋ถ ์ํ๋ฅผ ๋ ธ์ถํ๊ณ ๊ธด๋ฐํ ๊ฒฐํฉ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ์์ฑ์ ์ฌ์ฉํ๋ฉด ์บก์ํ๋ฅผ ์ ์งํ๊ณ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊น๋ํ๊ฒ ์ ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
2. ๋ ๊นจ๋ํ ์ฝ๋๋ฅผ ์ํด LINQ ํ์ฉ
์ธ์ด ํตํฉ ์ฟผ๋ฆฌ(LINQ)๋ ์ปฌ๋ ์ ์ ๋ค๋ฃฐ ๋ ๊ฐ๊ฒฐํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ๋ C#์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๋๋ค. LINQ๋ฅผ ์ฌ์ฉํ๋ฉด ์์ธํ ๋ฃจํ๋ฅผ ์์ฑํ๋ ๋์ ์ฟผ๋ฆฌ๋ฅผ ๋ณด๋ค ์ ์ธ์ ์ธ ๋ฐฉ์์ผ๋ก ํํํ ์ ์์ด ๊ฐ๋ ์ฑ์ ๊ฐ์ ํ๊ณ ์ค๋ฅ ๊ฐ๋ฅ์ฑ์ ์ค์ผ ์ ์์ต๋๋ค.
3. ๋ง๋ฒ์ ์ซ์๋ฅผ ํผํ์ธ์
๋งค์ง ๋๋ฒ๋ ์ปจํ ์คํธ ์์ด ๋ํ๋๋ ํ๋์ฝ๋ฉ๋ ๊ฐ์ผ๋ก, ์ฝ๋๋ฅผ ์ดํดํ๊ณ ์ ์งํ๊ธฐ ์ด๋ ต๊ฒ ๋ง๋ญ๋๋ค. C#์์๋ ์์๋ ์ด๊ฑฐํ์ ์ฌ์ฉํ์ฌ ์ด๋ฌํ ๊ฐ์ ํํํ๊ณ , ๊ทธ ๋ชฉ์ ์ ์ค๋ช ํ๋ ์๋ฏธ ์๋ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค.
JavaScript๋ก ๊นจ๋ํ ์ฝ๋ ๋ง๋ค๊ธฐ
JavaScript๋ ๋๊ท๋ชจ ํ๋ก์ ํธ์์ ๊ด๋ฆฌํ๊ธฐ ์ด๋ ค์ธ ์ ์๋ ์ ์ฐํ ์ธ์ด์ ๋๋ค. JavaScript์ ๊น๋ํ ์ฝ๋ฉ ๊ดํ์ ์ฝ๊ธฐ ์ฝ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์ ์งํ๋ ๋ฐ ํ์์ ์ ๋๋ค.
1. ์ฌ์ฉ ํ์ const๋ฅผ ๋์ ์๋ค
ECMAScript 6(ES6)์์ let๊ณผ const๋ฅผ ๋์ ํ๋ฉด ๋ณ์ ๋ฒ์๋ฅผ ๋ ์ ์ ์ดํ ์ ์์ต๋๋ค. ํจ์ ๋ฒ์์ธ var์ ๋ฌ๋ฆฌ let๊ณผ const๋ ๋ธ๋ก ๋ฒ์๋ก, ๋ณ์ ์ถฉ๋๊ณผ ์๋์น ์์ ๋์์ ๊ฐ๋ฅ์ฑ์ ์ค์ ๋๋ค.
2. ์์ ํจ์ ์์ฑ
๋ถ์์ฉ์ด ์๊ณ ๋์ผํ ์ ๋ ฅ์ ๋ํด ๋์ผํ ์ถ๋ ฅ์ ๋ฐํํ๋ ์์ ํจ์๋ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ํต์ฌ ๊ฐ๋ ์ ๋๋ค. JavaScript์์ ์์ ํจ์๋ฅผ ์์ฑํ๋ฉด ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ํ ์คํธ ๊ฐ๋ฅํ ์ฝ๋๊ฐ ์์ฑ๋์ด ์ ๋ฐ์ ์ธ ์ฝ๋ ์ ๋ฆฌ์ ๊ธฐ์ฌํฉ๋๋ค.
3. ์ฝ๋๋ฅผ ๋ชจ๋ํํ์ธ์
ES6์์ ๋์ ๋ JavaScript์ ๋ชจ๋ ์์คํ ์ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฅผ ๋ ์๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์ฑ ์์๋ก ๋๋ ์ ์์ต๋๋ค. ์ด ๋ชจ๋์ ์ ๊ทผ ๋ฐฉ์์ ๊ด์ฌ์ฌ ๋ถ๋ฆฌ๋ฅผ ์ด์งํ๊ณ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ํ ์คํธํ๊ธฐ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
ํ์ด์ฌ์ผ๋ก ๊นจ๋ํ ์ฝ๋ ๋ง๋ค๊ธฐ
Python์ ๋์์ธ ์ฒ ํ์ ๊ฐ๋ ์ฑ๊ณผ ๋จ์์ฑ์ ๊ฐ์กฐํ๋ฏ๋ก ๊น๋ํ ์ฝ๋ ๊ดํ์ ์์ฐ์ค๋ฝ๊ฒ ์ ํฉํฉ๋๋ค.
1. PEP 8 ๊ฐ์ด๋๋ผ์ธ์ ๋ฐ๋ฅด์ธ์
PEP 8์ Python ์ฝ๋์ ๊ณต์ ์คํ์ผ ๊ฐ์ด๋์ ๋๋ค. ๋ช ๋ช ๊ท์น, ๋ค์ฌ์ฐ๊ธฐ ๋ฐ ๊ธฐํ ์์ ์ธก๋ฉด์ ๋ํ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํฉ๋๋ค. PEP 8์ ์ค์ํ๋ฉด ์ฝ๋๋ฒ ์ด์ค ์ ์ฒด์์ ์ผ๊ด์ฑ์ด ๋ณด์ฅ๋๊ณ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ๋ ์ฝ๊ฒ ์ ๊ทผํ ์ ์์ต๋๋ค.
2. ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ ์ฌ์ฉํ์ธ์
ํ์ด์ฌ์ ๋ฆฌ์คํธ ์ปดํ๋ฆฌํจ์ ์ ๋ฆฌ์คํธ๋ฅผ ๋ง๋๋ ๊ฐ๊ฒฐํ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. ์ ํต์ ์ธ ๋ฃจํ๋ณด๋ค ๋ ์ฝ๊ธฐ ์ฝ๊ณ ํจ์จ์ ์ด๋ฉฐ, ํนํ ๊ฐ๋จํ ๋ณํ์ด๋ ํํฐ๋ง ์์ ์ ํ ๋ ๊ทธ๋ ์ต๋๋ค.
3. ์์ธ๋ฅผ ์ฐ์ํ๊ฒ ์ฒ๋ฆฌํ์ธ์
ํ์ด์ฌ์ ์ค๋ฅ๋ฅผ ๊นจ๋ํ๊ณ ํต์ ๋ ๋ฐฉ์์ผ๋ก ๊ด๋ฆฌํ ์ ์๋ ๊ฐ๋ ฅํ ์์ธ ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ์ ๊ณตํฉ๋๋ค. ์์ธ๊ฐ ํ์ธ๋์ง ์์ ์ฑ๋ก ์ ํ๋๋๋ก ๋๋ ๋์ , try-except ๋ธ๋ก์ ์ฌ์ฉํ์ฌ ์ ์ฌ์ ์ธ ๋ฌธ์ ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์๋ฏธ ์๋ ํผ๋๋ฐฑ์ ์ ๊ณตํ์ธ์.
Java๋ก ๊นจ๋ํ ์ฝ๋ ๋ง๋ค๊ธฐ
์ ์ ํ์ ์ ๊ฐ์ฒด ์งํฅ ์ธ์ด์ธ ์๋ฐ๋ ๊น๋ํ ์ฝ๋ ์์น์ ํตํด ๋ง์ ์ด์ ์ ์ป์ต๋๋ค.
1. ์์๋ณด๋ค ๊ตฌ์ฑ์ ์ ํธํ์ญ์์ค
๊ตฌ์ฑ์ Java์์ ์์๋ณด๋ค ๋ ์ ํธ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ ํฐ ์ ์ฐ์ฑ๊ณผ ๋ชจ๋์ฑ์ ์ด์งํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊น์ ์์ ๊ณ์ธต ๊ตฌ์กฐ์ ์์กดํ๋ ๋์ ๊ฐ์ฒด๋ฅผ ๊ตฌ์ฑํจ์ผ๋ก์จ ์ ์ง ๊ด๋ฆฌ ๋ฐ ํ์ฅ์ด ๋ ์ฌ์ด ์ฝ๋๋ฅผ ๋ง๋ญ๋๋ค.
2. ๋ ๊นจ๋ํ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํด ์คํธ๋ฆผ ์ฌ์ฉ
Java 8์ ๋ณด๋ค ์ ์ธ์ ์ธ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ํ์ฉํ๋ Stream API๋ฅผ ๋์ ํ์ต๋๋ค. Stream์ ์ฌ์ฉํ๋ฉด ํํฐ๋ง, ๋งคํ, ์ถ์์ ๊ฐ์ ์์ ์ ๊ฐ๊ฒฐํ๊ณ ์ฝ๊ธฐ ์ฌ์ด ๋ฐฉ์์ผ๋ก ์ํํ ์ ์์ด ์ฝ๋๊ฐ ๋ณด๋ค ํํ๋ ฅ์ด ํ๋ถํ๊ณ ์ค๋ฅ๊ฐ ๋ ๋ฐ์ํฉ๋๋ค.
3. Java ์ฃผ์ ํ์ฉ
Java ์ฃผ์์ ๋ณด์ผ๋ฌํ๋ ์ดํธ ์ฝ๋๋ฅผ ์ค์ด๊ณ ๊ฐ๋ ์ฑ์ ๊ฐ์ ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, @Override์ ๊ฐ์ ์ฃผ์์ ์๋๋ฅผ ์ ๋ฌํ๋ ๋ฐ ๋์์ด ๋๊ณ , ์ฌ์ฉ์ ์ง์ ์ฃผ์์ ๋ฐ๋ณต์ ์ธ ํจํด์ ์บก์ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊นจ๋ํ ์ฝ๋์ ์ฑ๋ฅ
์ผ๋ฐ์ ์ธ ์ฐ๋ ค๋ ๊นจ๋ํ ์ฝ๋๊ฐ ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ๊นจ๋ํ ์ฝ๋์ ๊ณ ์ฑ๋ฅ์ ์ํธ ๋ฐฐํ์ ์ด์ง ์์ต๋๋ค. ์ฌ์ค, ๊นจ๋ํ ์ฝ๋๋ ์ต์ ํํ๊ณ ๋๋ฒ๊น ํ๊ธฐ๊ฐ ๋ ์ฝ๊ธฐ ๋๋ฌธ์ ์ฅ๊ธฐ์ ์ผ๋ก ๋ ๋์ ์ฑ๋ฅ์ผ๋ก ์ด์ด์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
1. ์กฐ๊ธฐ ์ต์ ํ๋ฅผ ํผํ์ธ์
์กฐ๊ธฐ ์ต์ ํ๋ ๋ณต์กํ๊ณ ์ฝ์ ์ ์๋ ์ฝ๋๋ก ์ด์ด์ง ์ ์์ต๋๋ค. ๋จผ์ ๊นจ๋ํ๊ณ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ง์คํ ๋ค์ ์ค์ ์ฑ๋ฅ ๋ฐ์ดํฐ์ ๋ฐ๋ผ ์ต์ ํํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ํ๋กํ์ผ๋ง ๋๊ตฌ๋ ๋ณ๋ชฉ ํ์์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋์ด ์ฝ๋ ํ์ง์ ์์์ํค์ง ์๋ ํ๊ฒํ ๋ ์ต์ ํ๋ฅผ ํ์ฉํฉ๋๋ค.
2. ๊ฐ๋ ์ฑ๊ณผ ํจ์จ์ฑ์ ๊ท ํ
๊นจ๋ํ ์ฝ๋๋ ๊ฐ๋ ์ฑ์ ๊ฐ์กฐํ์ง๋ง, ๋ช ํ์ฑ๊ณผ ํจ์จ์ฑ์ ๊ท ํ์ ๋ง์ถ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด๋ค ๊ฒฝ์ฐ์๋ ๊ฐ์ฅ ์ฝ๊ธฐ ์ฌ์ด ์๋ฃจ์ ์ด ๊ฐ์ฅ ํจ์จ์ ์ธ ์๋ฃจ์ ์ด ์๋ ์๋ ์์ต๋๋ค. ๊ทธ๋ฐ ๊ฒฝ์ฐ, ๊ฒฐ์ ์ ์ด๋ฉด์ ์๋ ํธ๋ ์ด๋์คํ์ ๊ทผ๊ฑฐ๋ฅผ ๋ฌธ์ํํ๋ฉด ๋ฏธ๋์ ๊ฐ๋ฐ์๊ฐ ๋งฅ๋ฝ์ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
3. ์ ์ ํ ๋ฐ์ดํฐ ๊ตฌ์กฐ ์ฌ์ฉ
์ฌ๋ฐ๋ฅธ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ํํ๋ฉด ์ฑ๋ฅ๊ณผ ๊ฐ๋ ์ฑ์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๊นจ๋ํ ์ฝ๋๋ ๊ธฐ๋ฅ์ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ ๋ฟ๋ง ์๋๋ผ ๋ช ํ์ฑ๊ณผ ์ ์ง ๊ด๋ฆฌ์ฑ์ ํฅ์์ํค๋ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ์ ํํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
์ ๋ฌธ๊ฐ ๋๋ ์ฑ ์์ ์ธ์ฉํ ๊นจ๋ํ ์ฝ๋
๊ฒฐ๋ก ์ ์ผ๋ก, ๊นจ๋ํ ์ฝ๋์ ์ค์์ฑ์ ๋ํ ์ ๋ฌธ๊ฐ์ ์ํฅ๋ ฅ ์๋ ์ฑ ์์ ๋ฐ์ทํ ํต์ฐฐ๋ ฅ ์๋ ์ธ์ฉ๋ฌธ์ ์๊ฐํฉ๋๋ค.
- "๊นจ๋ํ ์ฝ๋๋ ํญ์ ๊ด์ฌ์ ๊ฐ์ง ์ฌ๋์ด ์ด ๊ฒ์ฒ๋ผ ๋ณด์ ๋๋ค." โ Robert C. Martin, ์ฝ๋ : ๋ฏผ์ฒฉํ ์ํํธ์จ์ด ์ฅ์ธ ์ ์ ์๋ด์
- "์ด๋ค ๋ฐ๋ณด๋ผ๋ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋ ์ฝ๋๋ฅผ ์ธ ์ ์๋ค. ํ๋ฅญํ ํ๋ก๊ทธ๋๋จธ๋ ์ธ๊ฐ์ด ์ดํดํ ์ ์๋ ์ฝ๋๋ฅผ ์ด๋ค." โ Martin Fowler, ๋ฆฌํฉํ ๋ง : ๊ธฐ์กด ์ฝ๋ ๋์์ธ ๊ฐ์
- "ํ๋ก๊ทธ๋จ์ ์ฌ๋๋ค์ด ์ฝ์ ์ ์๋๋ก ์์ฑ๋์ด์ผ ํ๋ฉฐ, ๊ธฐ๊ณ๊ฐ ์คํํ ์ ์๋๋ก ์ฐ์ฐํ ์์ฑ๋์ด์ผ ํฉ๋๋ค." - Harold Abelson ๋ฐ Gerald Jay Sussman, ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ์ ํด์
- "ํด๋ฆฐ ์ฝ๋๋ ์ผ๋ จ์ ๊ท์น์ด ์๋๋ผ ์ฌ๊ณ , ์ถ๋ก ๋ฐ ์คํ์ ํ๋ จ์ ๋๋ค." โ Steve Freeman ๋ฐ Nat Pryce, ํ ์คํธ์ ๋ฐ๋ผ ์ฑ์ฅํ๋ ๊ฐ์ฒด ์งํฅ ์ํํธ์จ์ด
- "๋จ์ํจ์ ํจ์จ์ฑ์ ์ํผ์ ๋๋ค." - ์ค์คํด ํ๋ฆฌ๋จผ
Smart TS XL๋ก ์ฝ๋ฉ ํ์ค์ ๋์ด์ธ์
Smart TS XL์ ๊นจ๋ํ ์ฝ๋๋ฅผ ์ํด ํ์ ํ๋ ๊ฐ๋ฐ์์๊ฒ ํ์์ ์ธ ๋๊ตฌ๊ฐ ๋๋ ๊ธฐ๋ฅ์ด ๊ฐ๋ํฉ๋๋ค. ์ด๊ฒ์ด ๋ ๊นจ๋ํ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ๋ฌ์ฑํ๋ ๋ฐ ์ด๋ป๊ฒ ๋์์ด ๋๋์ง ์์๋ณด์ธ์.
- ์ค์๊ฐ ์ฝ๋ ํ์ง ๋ถ์: ์ฝ๋ ํ์ง์ ๋ํ ์ฆ๊ฐ์ ์ธ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋ฏ๋ก, ์์ฑ ์ค์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์ฝ๋ฉ ํ์ค์ ์ํํฉ๋๋ค: ์ ๊ณ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์๋์ผ๋ก ์ ์ฉํ์ฌ ์ฝ๋๋ฒ ์ด์ค์ ์ผ๊ด์ฑ๊ณผ ์ ๋ฌธ์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ๊ณ ๊ธ ๋ฆฌํฉํ ๋ง ์ ์: ์ฝ๋๋ฅผ ๋จ์ํํ๊ณ ๊ฐ์ ํ์ฌ ๋ ์ฝ๊ธฐ ์ฝ๊ณ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์๋ ๊ธฐํ๋ฅผ ํ์ ํฉ๋๋ค.
- ์ ์ ์ฝ๋ ๋ถ์: ๋ฌธ์ ๊ฐ ๋๊ธฐ ์ ์ ์ฝ๋ ์ ์ฉ, ์ค๋ณต, ์ ์ฌ์ ๋ฒ๊ทธ๋ฅผ ๊ฐ์งํฉ๋๋ค.
- ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ ๊ท์น ์ธํธ: ํ์ ํน์ ์๊ตฌ ์ฌํญ๊ณผ ์ ํธ๋์ ๋ง๊ฒ ์ฝ๋ฉ ํ์ค๊ณผ ๊ท์น์ ๋ง์ถคํํ ์ ์์ต๋๋ค.
- ์ํํ IDE ํตํฉ: ์ ํธํ๋ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์๋ํ์ฌ ์ํํ๊ณ ์ค๋จ ์๋ ์ฝ๋ฉ ๊ฒฝํ์ ์ ๊ณตํฉ๋๋ค.
- ํฌ๊ด์ ์ธ๋ณด๊ณ : ์ฝ๋ ํ์ง๊ณผ ๊ธฐ์ ๋ถ์ฑ์ ๋ํ ์์ธํ ๋ณด๊ณ ์๋ฅผ ์์ฑํ์ฌ ๊ฐ์ ์ ์ฐ์ ์์๋ฅผ ์ ํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
Smart TS XL์ ์ฝ๋๊ฐ ๊นจ๋ํ์ง ํ์ธํ ๋ฟ๋ง ์๋๋ผ ๊ฐ๋ฐ ์ํฌํ๋ก์ฐ์ด๋ฅผ ํตํด ์ ์ฒด ์ฝ๋๋ฒ ์ด์ค์์ ๋์ ํ์ค์ ์ ์งํ๋ ๊ฒ์ด ๋ ์ฌ์์ก์ต๋๋ค.
๋งบ์๋ง
๊นจ๋ํ ์ฝ๋๋ ์ง์ ๊ฐ๋ฅํ ์ํํธ์จ์ด ๊ฐ๋ฐ์ ์ด์์ผ๋ก, ๋จ์ํ ๊ธฐ๋ฅ์ ๋์ด ์ฝ๊ธฐ ์ฝ๊ณ ์ ์ง ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ๋ง๋ญ๋๋ค. ๊ฐ๋ ์ฑ, ๋จ์์ฑ, ์ผ๊ด์ฑ๊ณผ ๊ฐ์ ๊นจ๋ํ ์ฝ๋ ์์น์ ๊ณ ์ํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ํจ๊ณผ์ ์ผ ๋ฟ๋ง ์๋๋ผ ๋ณํ์ ์ ์ํ ์ ์๋ ์ํํธ์จ์ด๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค. ๊นจ๋ํ ์ฝ๋๋ฅผ ์์ฑํ๋ ค๋ฉด ์๋ฏธ ์๋ ๋ช ๋ช , ์์ ํจ์, ์ ๊ธฐ์ ์ธ ๋ฆฌํฉํ ๋ง๊ณผ ๊ฐ์ ๊ดํ์ด ๊นจ๋ํ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ์งํ๋ ๋ฐ ์ค์ํ ์ญํ ์ ํ๋ ๊ท์จ ์๋ ์ ๊ทผ ๋ฐฉ์์ด ํ์ํฉ๋๋ค.
C#, JavaScript, Python, Java์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๊ฐ๊ฐ ๊ณ ์ ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ฉฐ, ์ด๋ฅผ ๊น๋ํ ์ฝ๋ฉ ๊ดํ๊ณผ ๊ฒฐํฉํ๋ฉด ๊ฒฌ๊ณ ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ํํธ์จ์ด๊ฐ ํ์ํฉ๋๋ค. ์ผ๊ด๋ ์ฝ๋ฉ ํ์ค, ๋ฒ์ ์ ์ด, ์ฝ๋ ๊ฒํ ์ ๊ฐ์ ์ฐ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ดํ์ ์ค์์ฑ์ ๊ณผ์ฅํ ์ ์์ต๋๋ค. ์ด๋ ์ฝ๋๊ฐ ์๋ช ์ฃผ๊ธฐ ์ ๋ฐ์ ๊ฑธ์ณ ์ดํด ๊ฐ๋ฅํ๊ณ ํจ์จ์ ์ผ๋ก ์ ์ง๋๋๋ก ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
Smart TS XL๊ณผ ๊ฐ์ ๋๊ตฌ๋ ์ค์๊ฐ ๋ถ์์ ์ ๊ณตํ๊ณ , ์ฝ๋ฉ ํ์ค์ ์ํํ๊ณ , ๋ฆฌํฉํ ๋ง ์ ์์ ์ ๊ณตํ์ฌ ๊นจ๋ํ ์ฝ๋ ํ๋ก๊ทธ๋๋ฐ์ ํ์ค์ ๋์ฑ ๋์ ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ๊นจ๋ํ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์ ์งํ๋ ๋ฐ ์์ด์๋ ์ ๋ ๋๊ตฌ๋ก, ๊ฐ๋ฐ์๊ฐ ๊ธฐ๋ฅ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์ฐ์ํ๊ณ ์ ์ง ๊ด๋ฆฌํ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ก ํฉ๋๋ค.
๊ฒ๋ค๊ฐ, ๊นจ๋ํ ์ฝ๋์ ์ฑ๋ฅ ๊ฐ์ ๊ด๊ณ๋ ์ ์์ฑ๋ ์ฝ๋๊ฐ ๋ ๋์ ์ต์ ํ์ ๋ ์ฌ์ด ๋๋ฒ๊น ์ผ๋ก ์ด์ด์ง ์ ์์ผ๋ฉฐ, ๊ถ๊ทน์ ์ผ๋ก ๊ฐ๋ฐ ํ๋ก์ธ์ค์ ์ต์ข ์ ํ ๋ชจ๋์ ์ด๋กญ๋ค๋ ๊ฒ์ ๊ฐ์กฐํฉ๋๋ค. ๊นจ๋ํ ์ฝ๋๋ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ๋ํ ์ด๊ธฐ ํฌ์๊ฐ ํ์ํ ์ ์์ง๋ง, ๊ธฐ์ ๋ถ์ฑ ๊ฐ์, ๋ ์ฌ์ด ์ ์ง ๊ด๋ฆฌ, ํฅ์๋ ํ ํ์ ๊ณผ ๊ฐ์ ์ฅ๊ธฐ์ ์ธ ์ด์ ์ ๋น์ฉ๋ณด๋ค ํจ์ฌ ํฝ๋๋ค.
๋ณธ์ง์ ์ผ๋ก ํด๋ฆฐ ์ฝ๋๋ ๋จ์ํ ๊ฐ์ด๋๋ผ์ธ์ด ์๋๋ผ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ๋ช ํ์ฑ, ๋จ์์ฑ, ์ง์ ๊ฐ๋ฅ์ฑ์ ์ฐ์ ์ํ๋ ์ฌ๊ณ ๋ฐฉ์์ ๋๋ค. ํด๋ฆฐ ์ฝ๋ ์์น์ ๋ฐ์๋ค์ด๊ณ Smart TS XL๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ํจ์จ์ ์ด๊ณ ํจ๊ณผ์ ์ผ ๋ฟ๋ง ์๋๋ผ ์์ ํ๊ธฐ ์ฆ๊ฑฐ์ด ์ํํธ์จ์ด๋ฅผ ๋ง๋ค์ด ๋์์์ด ์งํํ๋ ๊ธฐ์ ํ๊ฒฝ์์ ์๊ฐ์ ์ํ์ ๊ฒฌ๋๋ผ ์ ์์ต๋๋ค.