๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

๋งŽ์€ ๊ธฐ์—…๋“ค์ด ์ž๋ฐ”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

by 5566 2023. 10. 17.

1. ์ž๋ฐ”์˜ ๋ฒ”์šฉ์„ฑ๊ณผ ์ด์‹์„ฑ

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

์ฒซ์งธ๋กœ, ์ž๋ฐ”๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์ธ JVM(Java Virtual Machine) ์œ„์—์„œ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ์จ ์ž๋ฐ”๋Š” ํ”Œ๋žซํผ์— ๋…๋ฆฝ์ ์ด๋ฉฐ, ์šด์˜์ฒด์ œ์˜ ์ข…๋ฅ˜์— ์ƒ๊ด€์—†์ด ์‹คํ–‰ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฐœ๋ฐœํ•œ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ Windows, macOS, Linux ๋“ฑ ์–ด๋–ค ์šด์˜์ฒด์ œ์—์„œ๋„ ๋ฌธ์ œ ์—†์ด ์‹คํ–‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

2. ์ž๋ฐ”์˜ ๊ฐ•๋ ฅํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

์ž๋ฐ”๋Š” ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ๋‹ค์–‘ํ•œ ๊ฐ•๋ ฅํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ํšจ๊ณผ์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ์งธ๋กœ, ์ž๋ฐ”๋Š” ๊ฐœ๋ฐœ์ž๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ๊ฐœ๋ฐœ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ ์ค‘ ํ•˜๋‚˜์ธ Eclipse, IntelliJ IDEA, NetBeans์™€ ๊ฐ™์€ ํ†ตํ•ฉ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ(IDE)์€ ์ฝ”๋“œ ํŽธ์ง‘, ๋””๋ฒ„๊น…, ๋นŒ๋“œ, ํ…Œ์ŠคํŠธ ๋“ฑ์˜ ์ž‘์—…์„ ํ•˜๋‚˜์˜ ํˆด์—์„œ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ IDE๋Š” ์ฝ”๋“œ ์™„์„ฑ ๊ธฐ๋Šฅ, ์ž๋™ ๋ฆฌํŒฉํ† ๋ง, ๋””๋ฒ„๊น… ์ง€์›, ํ˜‘์—… ๊ธฐ๋Šฅ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž์˜ ์ƒ์‚ฐ์„ฑ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

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

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

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

3. ์ž๋ฐ”์˜ ์•ˆ์ •์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ

์ž๋ฐ”๋Š” ์•ˆ์ •์„ฑ๊ณผ ๋ณด์•ˆ์„ฑ์„ ์ค‘์š”ํ•˜๊ฒŒ ๋‹ค๋ฃจ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์„œ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ๊ณผ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ์•ˆ์ „ํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

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

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

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

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

4. ์ž๋ฐ”์˜ ์„ฑ๋Šฅ๊ณผ ํ™•์žฅ์„ฑ

์ž๋ฐ”๋Š” ๋†’์€ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ํ™•์žฅ์„ฑ์„ ๊ฐ–๋Š” ์–ธ์–ด๋กœ์„œ ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๊ณผ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์ด ํšจ์œจ์ ์ด๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ฒซ์งธ๋กœ, ์ž๋ฐ”๋Š” JIT(Just-In-Time) ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ํ†ตํ•ด ๋™์ ์ธ ์‹คํ–‰ ํ™˜๊ฒฝ์—์„œ์˜ ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. JIT ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ผ๋ถ€๋ถ„์„ ๋ฐ”์ดํŠธ์ฝ”๋“œ์—์„œ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜์—ฌ ์‹คํ–‰ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ์ด๋กœ์จ ์ž๋ฐ”๋Š” ์ดˆ๊ธฐ ์‹คํ–‰ ์‹œ์—๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰๋˜์ง€๋งŒ, JIT ์ปดํŒŒ์ผ๋Ÿฌ์˜ ๋„์›€์œผ๋กœ ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ๋Š” ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋˜์–ด ์‹คํ–‰๋˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

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

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

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

5. ์ž๋ฐ”์˜ ํฐ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์ž์›

์ž๋ฐ”๋Š” ์ „ ์„ธ๊ณ„์ ์œผ๋กœ ํฐ ๊ทœ๋ชจ์˜ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋‹ค์–‘ํ•œ ์ž์›์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์–ด ๊ฐœ๋ฐœ์ž๋“ค์ด ์ง€์‹์„ ๊ณต์œ ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋งŽ์€ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

์ฒซ์งธ๋กœ, ์ž๋ฐ”๋Š” Oracle์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ณต์‹ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์ธ Oracle Developer Community(https://community.oracle.com/community/developer)๋ฅผ ํฌํ•จํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์˜จ๋ผ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ๋Š” ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋“ค์ด ์งˆ๋ฌธ์„ ํ•˜๊ณ  ๋‹ต๋ณ€์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค์–‘ํ•œ ์ฃผ์ œ์˜ ๋ธ”๋กœ๊ทธ, ํฌ๋Ÿผ, ์˜จ๋ผ์ธ ๊ฐ•์˜ ๋“ฑ์˜ ์ž๋ฃŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, Oracle์€ Java SE, Java EE, JavaFX ๋“ฑ์˜ ๊ณต์‹ ๋ฌธ์„œ์™€ ํŠœํ† ๋ฆฌ์–ผ์„ ์ œ๊ณตํ•˜์—ฌ ์ž๋ฐ” ๊ฐœ๋ฐœ์ž๋“ค์ด ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์‰ฝ๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

๋‘˜์งธ๋กœ, ์ž๋ฐ”๋Š” ๋‹ค์–‘ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ์™€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ–๊ณ  ์žˆ์–ด ๊ฐœ๋ฐœ์ž๋“ค์ด ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ์ฐพ๊ณ  ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Apache Software Foundation์€ ๋งŽ์€ ์ž๋ฐ” ๊ด€๋ จ ํ”„๋กœ์ ํŠธ๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ๊ทธ ์ค‘์—์„œ๋„ Apache Maven, Apache Tomcat, Apache Camel ๋“ฑ์€ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ์ธ๊ธฐ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, GitHub๊ณผ ๊ฐ™์€ ํ˜‘์—… ๊ฐœ๋ฐœ ํ”Œ๋žซํผ์—์„œ๋„ ๋‹ค์–‘ํ•œ ์˜คํ”ˆ ์†Œ์Šค ์ž๋ฐ” ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ, ์ž๋ฐ”๋Š” ๋‹ค์–‘ํ•œ ์˜จ๋ผ์ธ ์ž์Šต์„œ, e-book, ๋™์˜์ƒ ๊ฐ•์ขŒ์™€ ๊ฐ™์€ ํ•™์Šต ์ž์›์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ์–ด ์ž๊ธฐ ํ•™์Šต์— ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Oracle์—์„œ๋Š” ์ž๋ฐ” ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ํ•™์Šต ์ž๋ฃŒ๋ฅผ ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•˜๋Š” Oracle University(https://education.oracle.com/)๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ž๋ฐ” ๊ด€๋ จ ๋™์˜์ƒ ๊ฐ•์ขŒ๋ฅผ ์ œ๊ณตํ•˜๋Š” ์˜จ๋ผ์ธ ๊ต์œก ํ”Œ๋žซํผ์ธ Udemy(https://www.udemy.com/)์ด๋‚˜ Coursera(https://www.coursera.org/)์—์„œ๋„ ์ž๋ฐ” ํ•™์Šต ์ž๋ฃŒ๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ž์›๋“ค์€ ์ž๋ฐ”๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ๋Š” ์ดˆ๋ณด์ž๋ถ€ํ„ฐ ์ „๋ฌธ๊ฐ€๊นŒ์ง€ ๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ž๋ฐ”์˜ ํฐ ๊ฐœ๋ฐœ์ž ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๋‹ค์–‘ํ•œ ์ž์›์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ์ง€์‹๊ณผ ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜๊ณ , ์‹ค์šฉ์ ์ธ ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ์ž์›์„ ํ™œ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๋“ค์€ ๋”์šฑ ํšจ์œจ์ ์ด๊ณ  ์‹ ๋ขฐ์„ฑ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ“๊ธ€