๐Ÿ“•JAVA

์‹œ์ž‘ํ•˜๊ธฐ์— ์•ž์„œ

๋น™๋””์šฉ 2023. 6. 12.

JAVA? ๋ฐฑ์•ค๋“œ?

๋ง‰์—ฐํ•˜๊ฒŒ "์›น ๊ฐœ๋ฐœ์ด ํŠธ๋ Œ๋“œ๋‹ค", "๋Œ€์ถฉ์ด๋ผ๋„ ์ฝ”๋”ฉํ•˜๋Š” ๋ฒ•์„ ์•Œ์•„๋†“์œผ๋ฉด ๋„์›€์ด ๋œ๋‹ค."๋กœ JAVA๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•œ ์‚ฌ๋žŒ๋“ค์ด ์ตœ๊ทผ์— ์ƒ๋‹นํžˆ ๋Š˜์–ด๋‚œ ๊ฑธ๋กœ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒ˜์Œ println์œผ๋กœ helloWorld๋„ ์ถœ๋ ฅํ•ด๋ณด๊ณ , switch๋ฌธ์„ ์‚ฌ์šฉํ•ด ๊ณ„์‚ฐ๊ธฐ๋„ ๋งŒ๋“ค์–ด ๋ณด์•˜์ง€๋งŒ '๊ทธ๋ž˜์„œ ์ด๊ฒŒ ์–ด๋””์— ์“ฐ์ด๋Š”๊ฑด๋ฐ?' ๋ผ๋Š” ์˜๋ฌธ์„ ๊ณ„์†ํ•ด์„œ ๊ฐ€์ง€๊ณ  ๊ณ„์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด ๊ฐ„๋‹จํ•˜๊ฒŒ ์™œ JAVA๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๊ณ , ์ด๊ฒŒ ์šฐ๋ฆฌ๊ฐ€ ์•„๋Š” ์›น ํ”„๋กœ๊ทธ๋žจ์— ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์“ฐ์ด๋Š”์ง€์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค.

 

๋ฐฑ์—”๋“œ(Back-End)

'๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ'์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๋ถ€๋ถ„์„ ๋‹ด๋‹นํ•˜๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์กฐ์™€ ๋ฐฑ์•ค๋“œ์˜ ์—ญํ• ์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๊ณ , ๊ทธ๊ฒƒ์ด ์ž๋ฐ”๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„๋˜๋Š”์ง€ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

 

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ตฌ์กฐ ๋ฐ ๋ฐฑ์—”๋“œ์˜ ์—ญํ• 

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ณดํ†ต ํด๋ผ์ด์–ธํŠธ - ์„œ๋ฒ„ ๋ชจ๋ธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋””๋ฐ”์ด์Šค(์ปดํ“จํ„ฐ, ์Šค๋งˆํŠธํฐ ๋“ฑ)์„ ์˜๋งˆํ•˜๋ฉฐ, ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์ด๊ณ , ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ปดํ“จํ„ฐ์ž…๋‹ˆ๋‹ค.

 

์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ”„๋ก ํŠธ์—”๋“œ ๋ถ€๋ถ„์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ํ™”๋ฉด๊ณผ ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ๋Š” HTML, CSS, JavaScript ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ์›น ํŽ˜์ด์ง€์˜ ๊ตฌ์กฐ, ์Šคํƒ€์ผ, ๋™์ž‘์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์ž…๋ ฅ์„ ๋ฐ›์•„ ์„œ๋ฒ„๋กœ ์ „์†กํ•˜๊ณ , ์„œ๋ฒ„์—์„œ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ํ™”๋ฉด์„ ์—…๋ฐ์ดํŠธํ•˜๊ฑฐ๋‚˜ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

์ด๋•Œ ๋ฐฑ์—”๋“œ๋Š” ์„œ๋ฒ„ ์ธก์—์„œ ๋™์ž‘ํ•˜๋ฉฐ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์˜จ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

*์ด๋•Œ ๋ฐฑ์•ค๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค

 

1) ๋ผ์šฐํŒ… ๋ฐ ์š”์ฒญ ์ฒ˜๋ฆฌ

  • ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ์š”์ฒญ์„ ๋ฐ›์•„๋“ค์ด๊ณ , ํ•ด๋‹น ์š”์ฒญ์— ๋Œ€ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ ์š”์ฒญ์˜ ๊ฒฝ๋กœ(Routing)๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ ์ ˆํ•œ ํ•ธ๋“ค๋Ÿฌ(Handler)์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ์›น ํŽ˜์ด์ง€๋ฅผ ์š”์ฒญํ•˜๋ฉด ๋ฐฑ์—”๋“œ๋Š” ๊ทธ์— ๋งž๋Š” ํŽ˜์ด์ง€๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.์ด๋Ÿฌํ•œ ๋ฐฑ์—”๋“œ์˜ ์—ญํ• ์„ ์ž๋ฐ”๋กœ ๊ตฌํ˜„ํ•  ๋•Œ, ์ž๋ฐ”์˜ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP) ํŠน์„ฑ๊ณผ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”๋Š” ์„œ๋ฒ„ ์ธก์—์„œ ์•ˆ์ •์„ฑ๊ณผ ํ™•์ •์„ฑ์„ ๊ฐ–์ถ˜ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ธฐ์— ์ ํ•ฉํ•œ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Spring Framework๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ๋Œ€ํ‘œ์ ์ธ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์„œ, ๊ฐœ๋ฐœ์ž๊ฐ€ ํšจ์œจ์ ์œผ๋กœ ๋ฐฑ์—”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

2) ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ

  • ๋ฐฑ์—”๋“œ๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๋กœ์ง๊ณผ ๊ทœ์น™์„ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ๊ณ„์‚ฐ, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์™ธ๋ถ€ ์‹œ์Šคํ…œ๊ณผ์˜ ์—ฐ๋™ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์‘๋‹ต ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์„ ์š”์ฒญํ•˜๋ฉด ๋ฐฑ์—”๋“œ๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ ๋กœ์ง์„ ์ฒ˜๋ฆฌํ•˜๊ณ , ์ธ์ฆ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•ฉ๋‹ˆ๋‹ค.

3) ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ

  • ๋ฐฑ์—”๋“œ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ƒ์„ฑ, ์ฝ๊ธฐ, ์ˆ˜์ •, ์‚ญ์ œ(CRUD) ๋“ฑ์„ ์ฒ˜๋ฆฌํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ฒ€์ƒ‰ํ•˜์—ฌ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•˜๋ฉด ๋ฐฑ์—”๋“œ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ฒŒ์‹œ๊ธ€์„ ์ €์žฅํ•˜๊ณ , ํ•„์š”ํ•  ๋•Œ ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์„ ์กฐํšŒํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

4) ๋ณด์•ˆ ์ธ์ฆ

  • ๋ฐฑ์—”๋“œ๋Š” ์‚ฌ์šฉ์ž ์ธ์ฆ, ๋ฐ์ดํ„ฐ ๋ณด์•ˆ, ๊ถŒํ•œ ๊ด€๋ฆฌ ๋“ฑ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋ณด์•ˆ์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๊ณ , ๊ถŒํ•œ์ด ์—†๋Š” ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ์˜ ์ ‘๊ทผ์„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž๊ฐ€ ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ํ•„์š”ํ•œ ํŽ˜์ด์ง€์— ์ ‘๊ทผํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋ฐฑ์—”๋“œ๋Š” ์ธ์ฆ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๊ณ , ๊ถŒํ•œ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ ‘๊ทผ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ, ์ž๋ฐ”๋ฅผ ๋ฐฐ์šฐ๊ณ  ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

JAVA

์ž๋ฐ”๋Š” ์›น ๊ฐœ๋ฐœ์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”๋ฅผ ๋ฐฐ์šฐ๋Š” ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

 

1) ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ

  • ์ž๋ฐ”๋Š” "Write once, run anywhere"๋ผ๋Š” ์ฒ ํ•™์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํ•œ ๋ฒˆ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ ์–ด๋–ค ์šด์˜์ฒด์ œ์—์„œ๋“  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ”๋Š” JVM(Java Virtual Machine)์„ ํ†ตํ•ด ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ์—์„œ ์ผ๊ด€๋œ ๋™์ž‘์„ ๋ณด์žฅ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์–ด๋–ค ํ”Œ๋žซํผ์—์„œ๋„ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.์ž๋ฐ”๋Š” ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋˜๋ฉฐ, ํŠนํžˆ ์›น ๊ฐœ๋ฐœ์—์„œ ๋„๋ฆฌ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์— ์ž๋ฐ”๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํ•ต์‹ฌ ๋กœ์ง๊ณผ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”๋ฅผ ์ด์šฉํ•˜์—ฌ ์„œ๋ฒ„ ์ธก์—์„œ ์š”์ฒญ ์ฒ˜๋ฆฌ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๋™, ๋ณด์•ˆ ๊ด€๋ฆฌ ๋“ฑ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—๋„ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

2) ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(OOP)

  • ์ž๋ฐ”๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์„œ, ํ˜„์‹ค ์„ธ๊ณ„์˜ ๊ฐœ๋…์„ ๋ชจ๋ธ๋งํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋ฉฐ, ํฐ ๊ทœ๋ชจ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋„์™€์ค๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ž๋ฐ”์˜ ๊ฐ์ฒด์ง€ํ–ฅ ํŠน์ง•์„ ํ™œ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ์บก์Šํ™”ํ•˜์—ฌ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3) ๋‹ค์–‘ํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ

  • ์ž๋ฐ”๋Š” ๋‹ค์–‘ํ•œ ์›น ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Spring Framework๋Š” ์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ๋Œ€ํ‘œ์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ๋กœ์„œ, ๊ฐœ๋ฐœ์ž๊ฐ€ ํšจ์œจ์ ์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋ ˆ์ž„์›Œํฌ๋“ค์€ ์ž๋ฐ”๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๊ณผ ์ถ”์ƒํ™” ๊ณ„์ธต์„ ์ œ๊ณตํ•˜์—ฌ ์ƒ์‚ฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

4) ์•ˆ์ •์„ฑ๊ณผ ๋ณด์•ˆ

  • ์ž๋ฐ”๋Š” ํƒ€์ž… ์•ˆ์ •์„ฑ(type safety)๊ณผ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ๊ฐ•ํ™”ํ•˜์—ฌ ์•ˆ์ •์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ž๋ฐ”๋Š” ์ปดํŒŒ์ผ ๊ณผ์ •์—์„œ ํƒ€์ž… ์˜ค๋ฅ˜๋ฅผ ์žก์•„๋‚ด๋ฏ€๋กœ, ๋Ÿฐํƒ€์ž„์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ž๋ฐ”๋Š” ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ๋‚ด์žฅํ•˜๊ณ  ์žˆ์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋Œ€ํ•œ ๋ณด์•ˆ ์œ„ํ—˜์„ ์ค„์ด๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

5) ํฐ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํ’๋ถ€ํ•œ ์ž๋ฃŒ

  • ์ž๋ฐ”๋Š” ์˜ค๋žœ ์—ญ์‚ฌ์™€ ๋„“์€ ์‚ฌ์šฉ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๋ฐ”์— ๊ด€ํ•œ ํ•™์Šต ์ž๋ฃŒ, ํŠœํ† ๋ฆฌ์–ผ, ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ ๋“ฑ์ด ํ’๋ถ€ํ•˜๊ฒŒ ์ œ๊ณต๋˜์–ด ๋น„์ „๊ณต์ž๋‚˜ ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋“ค ๊ฐ„์˜ ์ •๋ณด ๊ณต์œ ์™€ ์ง€์›์„ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๋„ ๋งŽ์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

 

๋˜ํ•œ ์ž๋ฐ”๋Š” ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ์ƒํƒœ๊ณ„๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์–ด ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ํŽธ๋ฆฌํ•œ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํ’๋ถ€ํ•œ ๋ฌธ์„œ์™€ ์ปค๋ฎค๋‹ˆํ‹ฐ ์ง€์›์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•™์Šต ์ž๋ฃŒ์™€ ์˜ˆ์ œ๋„ ๋งŽ์ด ์ œ๊ณต๋˜์–ด ์žˆ์–ด ๋น„์ „๊ณต์ž๋“ค๋„ ์‰ฝ๊ฒŒ ํ•™์Šตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค,

 

์ง€๊ธˆ ๋‹น์žฅ์€ ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š๋Š” ๋ง์ด ๋งŽ์„ ์ˆœ ์žˆ์ง€๋งŒ, ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•˜๊ธฐ ์•ž์„œ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด๊ฐ€ ์™œ? ์–ด๋””์—? ์‚ฌ์šฉ๋˜๋Š”์ง€ ์•„๋Š” ๊ฒƒ์€ ๋งค์šฐ ํฐ ๋„์›€์ด ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๊ณ , ์ด๋Ÿฌํ•œ ์ ์—์„œ ์ดํ•ด๊ฐ€ ์•ˆ๋œ๋‹ค๊ณ  ํฌ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ์ญ‰ ํ•œ๋ฒˆ ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•ฉ๋‹ˆ๋‹ค!

๋Œ“๊ธ€