ํด๋ฆฐ ์ฝ”๋“œ ์›์น™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ณ€ํ™”์‹œํ‚ต๋‹ˆ๋‹ค

ํด๋ฆฐ ์ฝ”๋“œ ์›์น™์ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฒฝํ—˜์„ ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”์‹œํ‚ค๋Š”๊ฐ€

ํด๋ฆฐ ์ฝ”๋“œ๋Š” ์ฝ๊ธฐ, ์œ ์ง€ ๊ด€๋ฆฌ ๋ฐ ๊ฐœ์„ ํ•˜๊ธฐ ์‰ฌ์šด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ์ฝ”๋”ฉ ์Šคํƒ€์ผ์„ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์šฉ์–ด์ž…๋‹ˆ๋‹ค. ์ด ๊ฐœ๋…์€ "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๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ™œ์šฉํ•จ์œผ๋กœ์จ ๊ฐœ๋ฐœ์ž๋Š” ํšจ์œจ์ ์ด๊ณ  ํšจ๊ณผ์ ์ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ž‘์—…ํ•˜๊ธฐ ์ฆ๊ฑฐ์šด ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋งŒ๋“ค์–ด ๋Š์ž„์—†์ด ์ง„ํ™”ํ•˜๋Š” ๊ธฐ์ˆ  ํ™˜๊ฒฝ์—์„œ ์‹œ๊ฐ„์˜ ์‹œํ—˜์„ ๊ฒฌ๋ŽŒ๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.