JavaRush /Java Blog /Random-KO /2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ? Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ๋ชจ์Œ

2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ? Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ๋ชจ์Œ

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์กด ์•„๋ชจ์Šค ์ฝ”๋ฉ”๋‹ˆ์šฐ์Šค(John Amos Comenius) ๊ฐ€ ๋งํ–ˆ๋“ฏ ์ด , โ€œ์ฑ…์€ ์ง€ํ˜œ๋ฅผ ์ „ํŒŒํ•˜๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.โ€ 2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ?  Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ์„ ์ • - 1์™œ ๊ทธ๋ ‡๊ฒŒ ๊ฐ€์‹์ ์ธ ์‹œ์ž‘์ด๋ƒ๊ณ  ๋ฌผ์œผ์‹œ๋‚˜์š”? ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” JavaRush.ru ๋…์ž๋“ค์—๊ฒŒ ์•ฝ๊ฐ„์˜ ์ง€ํ˜œ๋ฅผ ์‹ฌ์–ด ์ฃผ๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ์ •ํ™•ํ•˜๊ฒŒ๋Š” 2020๋…„์— ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” Java ๋ฐ ๊ด€๋ จ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ƒˆ๋กœ์šด(๋˜๋Š” ์•„์ฃผ ์ƒˆ๋กญ์ง€๋Š” ์•Š์ง€๋งŒ ํ™•์‹คํžˆ ์ฝ์„ ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š”) ์ฑ…์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•จ์œผ๋กœ์จ ๊ตฌํ˜„์— ๊ธฐ์—ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. โ€œ๊ฐ€์žฅ ๋Œ์ดํ‚ฌ ์ˆ˜ ์—†๋Š” ์†์‹ค ์ค‘ ํ•˜๋‚˜๋Š” ์‹œ๊ฐ„์˜ ์†์‹ค์ž…๋‹ˆ๋‹ค.โ€ ์กฐ๋ฅด์ฃผ-๋ฃจ์ด ๋ถ€ํฐ . ๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ๊ธด ์„œ๋ก ์— ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜์ง€ ์•Š๊ณ , ์‚ฌ๋ ค ๊นŠ์€ ์ธ์šฉ๋ฌธ์„ ๋ฉˆ์ถ”๊ณ  ๋ฐ”๋กœ ์„œํ‰์œผ๋กœ ๋„˜์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค. 2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ?  Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ์„ ์ • - 2

ํด๋ผ์šฐ๋“œ์˜ ์ž๋ฐ”. ์Šคํ”„๋ง ๋ถ€ํŠธ, ์Šคํ”„๋ง ํด๋ผ์šฐ๋“œ, ํด๋ผ์šฐ๋“œ ํŒŒ์šด๋“œ๋ฆฌ

์˜์–ด ๋ฒ„์ „์€ Cloud Native Java: Designing Resilient Systems with Spring Boot, Spring Cloud, and Cloud Foundry ์—์„œ ๊ตฌ๋งคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค . ์ €์ž: Josh Long, Kenneth Bastani Cloud Native Java๋Š” ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์—๊ฒŒ 2020๋…„ ์ง€๊ธˆ ๋‹น์žฅ ์ฝ์–ด์•ผ ํ•  ์ตœ๊ณ ์˜ ์ฑ… ์ค‘ ํ•˜๋‚˜๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ˆ™๋ จ๋œ Java ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์ง€๋งŒ ์ดˆ๋ณด์ž๋ถ€ํ„ฐ ๊ณ ๊ธ‰๊นŒ์ง€ ๋ชจ๋“  Java ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜๋‚ ์˜ ๊ฐœ๋ฐœ์€ ์ ์  ๋” ํด๋ผ์šฐ๋“œ ๊ธฐ์ˆ , ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค, ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜ ๋“ฑ์œผ๋กœ ์ด๋™ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ…์€ ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ ์„ ์ดํ•ดํ•˜๊ณ  ์‹ค์ œ๋กœ ์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Josh Long๊ณผ Kenneth Bastani๋Š” Java/JVM ๊ฐœ๋ฐœ์ž์—๊ฒŒ Spring Boot, Spring Cloud ๋ฐ Cloud Foundry๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋” ์ข‹๊ณ  ๋” ๋น ๋ฅธ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ฑ… ๋ฏธ๋ฆฌ๋ณด๊ธฐ์—์„œ ์ €์ž๊ฐ€ ๋‚จ๊ธด ์ž‘์€ ์ธ์šฉ๋ฌธ์ž…๋‹ˆ๋‹ค. โ€œํ˜„๋Œ€ ์‚ฌํšŒ์—์„œ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์ด ๋” ๋น ๋ฅด๊ฒŒ ์›€์ง์ด๊ณ  ๋น„์ฆˆ๋‹ˆ์Šค ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ€์†ํ™”ํ•˜๊ธฐ๋ฅผ ์›ํ•˜์ง€๋งŒ ์ด๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•„๋Š” ์‚ฌ๋žŒ์€ ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ์‹œ์žฅ์€ ๋”์šฑ ๋น ๋ฅธ ์†๋„๋ฅผ ์š”๊ตฌํ•˜๋ฉฐ ์ด๋ฅผ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋” ๋งŽ์€ ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Amazon, Netflix, Etsy์™€ ๊ฐ™์€ ๊ธฐ์—…์ด ๊ธฐ์กด ๊ธฐ์—…๊ณผ ๋‹ค๋ฅธ ์ ์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์šฐ๋ฆฌ๋Š” ์ด๋“ค ํšŒ์‚ฌ๊ฐ€ ์—„์ฒญ๋‚œ ์†๋„๋กœ ์„ฑ์žฅํ•˜๊ณ  ์žˆ์Œ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์—ฌ์ „ํžˆ ํ•ต์‹ฌ ์ด์ ์„ ์œ ์ง€ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ๊ฒฝ์Ÿ์‚ฌ๋ณด๋‹ค ํ›จ์”ฌ ์•ž์„œ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์ด๊ฒƒ์„ ์–ด๋–ป๊ฒŒ ํ•˜๋Š”๊ฐ€? Java ๋ฐ JVM ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ด ์‹ค์šฉ์ ์ธ ๊ฐ€์ด๋“œ๋Š” Spring Boot, Spring Cloud ๋ฐ Cloud Foundry๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‹ค ํšจ์œจ์ ์ด๊ณ  ๋น ๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.โ€ ๊ทธ๋Ÿฐ๋ฐ JavaRush์—์„œ ์šฐ๋ฆฌ๋Š” ์ตœ๊ทผ ํด๋ผ์šฐ๋“œ ์ปดํ“จํŒ…์—์„œ Java๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฃผ์ œ์— ๋Œ€ํ•ด ๋…ผ์˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋†“์น˜์‹  ๋ถ„๋“ค์„ ์œ„ํ•ด: ํด๋ผ์šฐ๋“œ ์†์˜ Java. ํด๋ผ์šฐ๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„ธ์ƒ์„ ์ •๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ Java๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  . 2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ?  Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ์„ ์ • - 3

Java: ํšจ๊ณผ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(3ํŒ)

์˜์–ด ๋ฒ„์ „์€ ์—ฌ๊ธฐ์—์„œ ๊ตฌ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Effective Java 3rd Edition ์ €์ž: Joshua Bloch ์•„์ง ์ด ์ฑ…์„ ์ฝ์ง€ ์•Š์€ ์‚ฌ๋žŒ๋“ค์€ ์ด ์ฑ…๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. Java ํ™˜๊ฒฝ ๋ถ„์•ผ์˜ ๊ถŒ์œ„ ์žˆ๋Š” ์ €์ž์ธ Joshua Bloch๊ฐ€ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ชจ๋ฒ” ์‚ฌ๋ก€์— ๋Œ€ํ•œ ์ด ๊ฐ€์ด๋“œ์˜ ์ œ3ํŒ์„ ๋Ÿฌ์‹œ์•„์–ด๋กœ ๋ฒˆ์—ญํ•œ ๊ฒƒ์ด ์•„์ฃผ ์ตœ๊ทผ์— ๋‚˜์™”์Šต๋‹ˆ๋‹ค. ์ž˜ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์„ค๋ช…ํ•˜์ž๋ฉด Joshua Bloch๋Š” Google์˜ ์ˆ˜์„ Java ์„ค๊ณ„์ž, Sun Microsystems์˜ ๊ฐœ๋ฐœ์ž, Transarc์˜ ์ˆ˜์„ ์‹œ์Šคํ…œ ์„ค๊ณ„์ž์˜€์Šต๋‹ˆ๋‹ค. Java ํ”Œ๋žซํผ์˜ ์ˆ˜๋งŽ์€ ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ๋ฐ ์ฐธ์—ฌํ•œ ์‚ฌ๋žŒ์ด ๋ฐ”๋กœ ๊ทธ ์‚ฌ๋žŒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ ํŒ์—์„œ ์ €์ž๋Š” Java 8 ๋ฐ 9 ๋ฒ„์ „์— ๋‚˜ํƒ€๋‚œ ๊ธฐ๋Šฅ๊ณผ โ€‹โ€‹๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ์ฑ…์—๋Š” ์ƒˆ๋กญ๊ณ  ์—…๋ฐ์ดํŠธ๋œ ํŒ๊ณผ ์š”๋ น์€ ๋ฌผ๋ก  ๋žŒ๋‹ค ํ‘œํ˜„์‹๊ณผ ์ŠคํŠธ๋ฆผ์— ๋Œ€ํ•œ ์žฅ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ "Java: ํšจ๊ณผ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ"์—์„œ ๋‹ค๋ฃจ๋Š” ์ฃผ์ œ ์ค‘ ์ผ๋ถ€์ž…๋‹ˆ๋‹ค. ๊ธฐ๋Šฅ์  ์ธํ„ฐํŽ˜์ด์Šค, ๋žŒ๋‹ค ํ‘œํ˜„์‹, ๋ฉ”์†Œ๋“œ ๋ฐ ์ŠคํŠธ๋ฆผ ์ฐธ์กฐ, ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ธฐ๋ณธ ๋ฐ ์ •์  ๋ฉ”์†Œ๋“œ, ์ผ๋ฐ˜ ์œ ํ˜•์— ๋Œ€ํ•œ ๋‹ค์ด์•„๋ชฌ๋“œ(<>) ์—ฐ์‚ฐ์ž๋ฅผ ํฌํ•จํ•œ ์œ ํ˜• ์ถ”๋ก , @ SafeVarargs ์ฃผ์„, ์ƒˆ๋กœ์šด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ๋Šฅ ๋“ฑ 2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ?  Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ์„ ์ • - 4

ํ˜„๋Œ€ ์ž๋ฐ”. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ ˆ์‹œํ”ผ

์˜์–ด ๋ฒ„์ „์€ ์—ฌ๊ธฐ์—์„œ ๊ตฌ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ์‹  Java ๋ ˆ์‹œํ”ผ: Java 8 ๋ฐ 9์˜ ์–ด๋ ค์šด ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜ ์ €์ž: Ken Couzen ๋ ˆ์‹œํ”ผ ์ฑ…์„ ์ข‹์•„ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•œ ํ›Œ๋ฅญํ•œ ์˜ต์…˜์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Java 8 ๋ฐ Java 9 ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ๋„ ์ตœ๊ณ ์˜ ๊ต๊ณผ์„œ ์ค‘ ํ•˜๋‚˜์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ œ๋ชฉ์—์„œ ์•Œ ์ˆ˜ ์žˆ๋“ฏ์ด Ken Cousen์€ ์ด ์ž‘์—…์—์„œ Java 8 ๋ฐ 9์˜ "๋ณต์žกํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์†”๋ฃจ์…˜"์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. "Java SE 8์— ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋„๊ตฌ๊ฐ€ ํฌํ•จ๋œ ๊ฒƒ์€ ์œ ์„œ ๊นŠ์€ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด์— ํ˜๋ช…์ ์ธ ๋ณ€ํ™”๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค. ๋žŒ๋‹ค ํ‘œํ˜„์‹, ๋ฉ”์†Œ๋“œ ์ฐธ์กฐ ๋ฐ ์ŠคํŠธ๋ฆผ์€ ์ด ์–ธ์–ด์˜ ๊ด€์šฉ์–ด๋ฅผ ๊ทผ๋ณธ์ ์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ์ฑ…์—์„œ๋Š” 70๊ฐœ ์ด์ƒ์˜ ์ƒ์„ธํ•œ ๋ ˆ์‹œํ”ผ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ด‘๋ฒ”์œ„ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ƒˆ๋กœ์šด ์–ธ์–ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด์ „ ๋ฒ„์ „์˜ Java์— ์ต์ˆ™ํ•œ ๊ฐœ๋ฐœ์ž๋Š” ์—ฌ๊ธฐ์—์„œ Java SE 8์— ๋‚˜ํƒ€๋‚œ ๊ฑฐ์˜ ๋ชจ๋“  ํ˜์‹ ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ Java 9์˜ ํ˜์‹ ์„ ๋‹ค๋ฃจ๋Š” ๋ณ„๋„์˜ ์žฅ๋„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.โ€๋ผ๊ณ  ์ €์ž๋Š” ์ผ์Šต๋‹ˆ๋‹ค. 2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ?  Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ์„ ์ • - 5

๊นจ๋—ํ•œ ๊ฑด์ถ•๋ฌผ. ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์˜ ์˜ˆ์ˆ 

์˜์–ด ๋ฒ„์ „์€ ์—ฌ๊ธฐ์—์„œ ๊ตฌ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: Clean Architecture: A Craftsman's Guide to Software Structure and Design ์ €์ž: Robert Martin ๋น„๋ก ๊ฐ€์žฅ ์ตœ๊ทผ์˜ ์ฑ…์€ ์•„๋‹ˆ์ง€๋งŒ(2017๋…„ ๋ง์— ์ถœํŒ๋จ), ์ˆ™๋ จ๋œ Java ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ ์ •๋ง ๋ฉ‹์ง„ ์ฑ…์ž…๋‹ˆ๋‹ค. ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์˜ฌ๋ผ๊ฐ€ ์†”๋ฃจ์…˜ ์•„ํ‚คํ…ํŠธ๊ฐ€ ๋˜์„ธ์š”. โ€œํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜โ€๋Š” ๋กœ๋ฒ„ํŠธ ๋งˆํ‹ด์˜ ์ปฌํŠธ ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ โ€œํด๋ฆฐ ์ฝ”๋“œโ€์™€ โ€œํด๋ฆฐ ์ฝ”๋”โ€์˜ ์—ฐ์†์ž…๋‹ˆ๋‹ค. ์ด ์ฑ…์—์„œ ๋งˆํ‹ด์€ ์‹œ๊ฐ„์˜ ์‹œํ—˜์„ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•๊ณผ ๋””์ž์ธ ํŒจํ„ด ๋ฐ ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜ ์ „๋ฐ˜์— ๋Œ€ํ•œ ์˜คํ•ด๋ฅผ ๊ทน๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. "ํด๋ฆฐ ์•„ํ‚คํ…์ฒ˜"๋Š” ๋ชจ๋“  ์ˆ˜์ค€์˜ ๊ฐœ๋ฐœ์ž, ์‹œ์Šคํ…œ ๋ถ„์„๊ฐ€, ์„ค๊ณ„์ž ๋ฐ ๊ฒฝ๋ ฅ ์‚ฌ๋‹ค๋ฆฌ๋ฅผ ์˜ค๋ฅด๊ณ  ์‹ถ๊ฑฐ๋‚˜ ์ ์–ด๋„ ์ด ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ๋ฐ˜๋“œ์‹œ ์ฝ์–ด์•ผ ํ•  ์ฑ…์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜๋Š” ๋™์ผํ•œ ๊ทœ์น™์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.โ€๋ผ๊ณ  ์ €์ž๋Š” ๋งํ•ฉ๋‹ˆ๋‹ค. 2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ?  Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ์„ ์ • - 6

Java 9 ๋ชจ๋“ˆ์„ฑ: ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ํŒจํ„ด ๋ฐ ์‚ฌ๋ก€

์ €์ž: Sander Mack ๋ฐ Paul Becker ์šฐ๋ฆฌ๋Š” ์ด ์ฑ…์˜ ๋Ÿฌ์‹œ์•„์–ด ๋ฒˆ์—ญ์„ ์ฐพ์„ ์ˆ˜ ์—†์—ˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์ด ์ฑ…์„ ์ฝ๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ๋“ค์€ Java 9 ๋ชจ๋“ˆ์˜ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์˜์–ด๋ฅผ ์—ฐ์Šตํ•  ์ˆ˜ ์žˆ๋Š” ํ›Œ๋ฅญํ•œ ๊ธฐํšŒ๋ฅผ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. . ๊ทธ๋Ÿฐ๋ฐ ์šฐ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ธํ„ฐ๋ทฐ์—์„œ๋‚˜ ์™ธ๊ตญ ๋™๋ฃŒ๋“ค๊ณผ ๋Œ€ํ™”ํ•  ๋•Œ ๋‹นํ™ฉํ•˜์ง€ ์•Š๋„๋ก ์˜์–ด๋ฅผ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“ˆ์„ฑ์€ Java 9 ๋ฆด๋ฆฌ์Šค์˜ ์ฃผ์š” ๊ธฐ๋Šฅ ์ค‘ ํ•˜๋‚˜์˜€์œผ๋ฉฐ ์ด ์ฑ…์—์„œ ์ €์ž๋Š” ์ด ์ฃผ์ œ๋ฅผ ์ „์ฒด์ ์œผ๋กœ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Sander Mak์€ Java 9(๋ฐ ๊ทธ ์ด์ƒ)์— ๋Œ€ํ•œ ๊ถŒ์œ„์ž๋กœ ์ธ์ •๋ฐ›๊ณ  ์žˆ์œผ๋ฉฐ ์ปจํผ๋Ÿฐ์Šค์—์„œ ์ž์ฃผ ์—ฐ์„คํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ž์‹ ์˜ ๋ธ”๋กœ๊ทธ(branchandbound.net)๋ฅผ ์šด์˜ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Paul Becker๋„ Java ์ปค๋ฎค๋‹ˆํ‹ฐ์—์„œ ์ €๋ช…ํ•œ ์ธ๋ฌผ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” Luminis Technologies์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์ถ• ์ „๋ฌธ๊ฐ€์ด์ž ์†Œํ”„ํŠธ์›จ์–ด ์„ค๊ณ„์ž์ž…๋‹ˆ๋‹ค. โ€œ์ด ์‹ค์šฉ ์„œ์ ์„ ํ†ตํ•ด Java ๊ฐœ๋ฐœ์ž๋Š” ๋ชจ๋“ˆํ™”์˜ ๋ชจ๋“  ์ด์ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ง„์ •์œผ๋กœ ๊ฐ•๋ ฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ ํ•„์š”ํ•œ ํŒจํ„ด๋„ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €์ž๋Š” Java ํ”Œ๋žซํผ์˜ ๋ชจ๋“ˆ์‹ ์‹œ์Šคํ…œ ๋’ค์— ์žˆ๋Š” ๊ฐœ๋…๊ณผ ๊ทธ๊ฒƒ์ด ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๊ธฐ์กด ์ฝ”๋“œ๋ฅผ ๋ชจ๋“ˆํ™”ํ•˜๊ณ  ๋ชจ๋“ˆ ๋ฐฉ์‹์œผ๋กœ ์ƒˆ๋กœ์šด Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋ฐฐ์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.โ€๋ผ๊ณ  ์ฑ… ๋ฏธ๋ฆฌ๋ณด๊ธฐ์— ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. 2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ?  Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ์„ ์ • - 7

์ตœ์‹  Java ์‹คํ–‰: ๋žŒ๋‹ค, ์ŠคํŠธ๋ฆผ, ๊ธฐ๋Šฅ์  ๋ฐ ๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

์ €์ž: Raul-Gabriel Urma, Mario Fusco, Alan Mycroft ํ˜„๋Œ€ ๋ฒ„์ „์˜ Java์— ๋Œ€ํ•œ ๋˜ ๋‹ค๋ฅธ ํ›Œ๋ฅญํ•œ ๊ต๊ณผ์„œ๋กœ ์•„์ง ๋Ÿฌ์‹œ์•„์–ด๋กœ ์ถœํŒ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. Modern Java in Action์€ Java 9 ๋ฐ Java 10์˜ ๊ฐ€์žฅ ํฅ๋ฏธ๋กญ๊ณ  ์ค‘์š”ํ•œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋‹ค๋ฃจ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ๊ณผ ์ถ”๊ฐ€ ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ๋ฒ ์ŠคํŠธ์…€๋Ÿฌ ์ฑ…์ธ Java 8 in Action์˜ ์ƒˆ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ํ˜„์žฌ ์ด ์ฑ…์˜ ๋‘ ๋ฒˆ์งธ ๋ฒ„์ „์ด ๋…์ž์—๊ฒŒ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค. , Java 11 ๋ฐ Java 12์˜ ์ƒˆ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ ๋˜ ๋‹ค๋ฅธ ์—…๋ฐ์ดํŠธ๊ฐ€ ๊ณง ๋ฆด๋ฆฌ์Šค๋  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ˜„์žฌ Modern Java in Action์€ ํ˜„๋Œ€ Java์— ๋Œ€ํ•œ ์ตœ๊ณ ์˜ ๊ต๊ณผ์„œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ด ์ฑ…์€ ๋žŒ๋‹ค ํ‘œํ˜„์‹, ์ŠคํŠธ๋ฆผ, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋ฐ˜์‘ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํฌํ•จํ•œ ๋ชจ๋“  ์ตœ์‹  Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์„ ๋ฐฐ์šฐ๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 2020๋…„์—๋Š” ๋ฌด์—‡์„ ์ฝ์–ด์•ผ ํ• ๊นŒ?  Java ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ์ตœ๊ณ ์˜ ์‹ ๊ฐ„ ๋„์„œ ์„ ์ • - 8

Java SE 9. ๊ธฐ๋ณธ ๊ณผ์ •

์˜์–ด ๋ฒ„์ „์€ ์—ฌ๊ธฐ์—์„œ ๊ตฌ์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Core Java SE 9 for the Impatient 2nd Edition ์ €์ž: Kay S. Horstmann ๊ทธ๋Ÿฌ๋‚˜ ์ด ์ฑ…์€ Java ํ•™์Šต ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ํ›Œ๋ฅญํ•œ ์ฑ…์ž…๋‹ˆ๋‹ค. ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ฒ˜์Œ์— ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜๋Š” ๊ต๊ณผ์„œ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์˜ ๋Œ€๋ถ€๋ถ„์€ Kay Horstmann์˜ ์Šคํƒ€์ผ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ €์ž๋Š” ๊ฐ€์ด๋“œ ์ž‘์„ฑ์— ์ •๋ง ๋Šฅ์ˆ™ํ•ฉ๋‹ˆ๋‹ค. Horstmann์€ Java SE 9์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ์šฉ์–ด๋กœ ์„ค๋ช…ํ•˜์ง€๋งŒ ๋™์‹œ์— ๊ตฌ์กฐ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜์ง€ ์•Š๊ณ  ์„ธ๋ถ€ ์‚ฌํ•ญ์— ์ถฉ๋ถ„ํ•œ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ž…๋‹ˆ๋‹ค. ๋™์ผํ•œ ์ €์ž๋Š” Java 8, Scala, Java ๊ธฐ๋ณธ ์‚ฌํ•ญ ๋ฐ ๊ธฐํƒ€ ์ฃผ์ œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ์ฑ…์„ ์ €์ˆ ํ–ˆ์Šต๋‹ˆ๋‹ค. โ€œJava๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ๊ฐœ๋ฐœ์ž๋“  ๋…ธ๋ จํ•œ ๊ฐœ๋ฐœ์ž๋“  ์ด ๊ฐ€์ด๋“œ๋Š” ๋ฏธ๋ž˜์˜ ๊ฐ€์žฅ ์•ˆ์ •์ ์ด๊ณ  ํšจ์œจ์ ์ด๋ฉฐ ์•ˆ์ „ํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.โ€๋ผ๊ณ  ๊ฒŒ์‹œ์ž๋Š” ์•ฝ์†ํ•ฉ๋‹ˆ๋‹ค. ์•ฝ๊ฐ„ ๋ฌด๋ก€ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์‹ค์ž…๋‹ˆ๋‹ค. Core Java์—๋Š” ์‹ค์ œ๋กœ ์ดˆ๋ณด์ž์™€ ์ˆ™๋ จ๋œ ์ฝ”๋” ๋ชจ๋‘์—๊ฒŒ ์œ ์šฉํ•œ ๋‚ด์šฉ์ด ๋งŽ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION