JavaRush /Java Blog /Random-KO /์ปคํ”ผ ๋ธŒ๋ ˆ์ดํฌ #68. Java์™€ ํ•ด๋‹น ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ์†”์งํ•œ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค. 2021๋…„์— ๊ณ ๋ คํ•ด์•ผ ํ•  ์„ธ ...

์ปคํ”ผ ๋ธŒ๋ ˆ์ดํฌ #68. Java์™€ ํ•ด๋‹น ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ์†”์งํ•œ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค. 2021๋…„์— ๊ณ ๋ คํ•ด์•ผ ํ•  ์„ธ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด Java ๋„๊ตฌ

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค

Java์™€ ๊ทธ ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ์†”์งํ•œ ์˜๊ฒฌ

์ถœ์ฒ˜: Dev.to ์ข‹์Šต๋‹ˆ๋‹ค. ์ œ ์ฃผ์š” ์–ธ์–ด๊ฐ€ C#์ด๋ผ๋Š” ์ ์„ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ Java์™€ ๊ทธ ์ฃผ๋ณ€ ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ๋‚˜์˜ ํŽธ๊ฒฌ ์—†๋Š” ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” Java์—์„œ bash ๋ช…๋ น์„ ์ž์ฃผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“  ๋‹จ์ ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Java์—๋Š” ์†์„ฑ์ด ์—†๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ์ด๋ฒคํŠธ, ๊ตฌ์กฐ์ฒด, ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋“œ๊ฐ€ ์—†์œผ๋ฉฐ Java 10๊นŒ์ง€๋Š” ์ถ”๋ก ์ด ์—†์œผ๋ฏ€๋กœ 'var'์ด ์—†์Šต๋‹ˆ๋‹ค. C#์—๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค! ๋˜ํ•œ LINQ, var ๋ฐ enum์ด ๋ถ€์กฑํ•˜์—ฌ Java์šฉ bash๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ €๋Š” ํŠนํžˆ Android์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ Java๋กœ ๊ธ€์„ ๋งŽ์ด ์ž‘์„ฑํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์šฉ๋„๋กœ๋„ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ฒซ ํ”„๋กœ์ ํŠธ๋„ Java๋กœ ์ง„ํ–‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๊ทธ๋ž˜์„œ ๊ธˆ์š”์ผ ์ €๋…์—๋Š” ๊ธด๊ธ‰ํ•œ ์ƒํ™ฉ์œผ๋กœ ์ธํ•ด ๋ช‡ ์‹œ๊ฐ„ ๋™์•ˆ ๊ณ„์†ํ•ด์„œ Java๋กœ ๊ธ€์„ ์จ์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๋ฌด์—‡์„ ๋ฐœ๊ฒฌํ–ˆ๋Š”์ง€ ์•Œ์•„๋ณด์„ธ์š”? ๊ฐœ์šธ! ์ปคํ”ผ ๋ธŒ๋ ˆ์ดํฌ #68.  Java์™€ ํ•ด๋‹น ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ์†”์งํ•œ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค.  2021๋…„์— ๊ณ ๋ คํ•ด์•ผ ํ•  ์„ธ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด Java ๋„๊ตฌ - 1๋ถ„๋ช…ํžˆ Java 8์—๋Š” ์Šค๋ ˆ๋“œ๊ฐ€ ๋„์ž…๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์— ๋Œ€ํ•ด ์ „ํ˜€ ๋ชฐ๋ž์Šต๋‹ˆ๋‹ค! ๋ชจ๋ฅด๋Š” ๋ถ„๋“ค์„ ์œ„ํ•ด ์„ค๋ช…ํ•˜์ž๋ฉด Streams๋Š” LINQ์˜ Java ๊ตฌํ˜„์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ Java 10์— ์œ ํ˜• ์ถ”๋ก ์ด ์žˆ์œผ๋ฏ€๋กœ ์ด์ œ Java์— var ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ๋„ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ง€์‹์ด ์–ผ๋งˆ๋‚˜ ๋‚ก์•˜๋Š”์ง€ ๋ฏฟ์„ ์ˆ˜ ์—†์ง€๋งŒ ์†”์งํžˆ ๊ฑฐ๊ธฐ์—๋Š” ์ด์œ ๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด ๋‘ ๊ฐ€์ง€๊ฐ€ ๋‚ด ์ƒ๊ฐ์— ํฐ ๋ณ€ํ™”๋ฅผ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹ค! Java๋Š” ํ•ญ์ƒ ์˜ˆ์™ธ๋ฅผ ํ™•์ธํ•˜์ง€๋งŒ C#์€ ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ๊ณ„์…จ์Šต๋‹ˆ๊นŒ? ์ €๋Š” C#์—์„œ ์ด ๊ธฐ๋Šฅ์ด ์ •๋ง ๊ทธ๋ฆฌ์›Œ์ง„๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค! ์˜ˆ, ๊ตฌ์กฐ, ์†์„ฑ ๋“ฑ์€ ์—†์ง€๋งŒ ์  ์žฅ, ์šฐ์•„ํ•ฉ๋‹ˆ๋‹ค! ๋‚ด ์ƒ๊ฐ์— Java๋Š” ์„ค๊ณ„์ƒ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋”์šฑ ๊ฐ•๋ ฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜๋„๋ก ๊ฐ•์š”ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด .NET ์„ธ๊ณ„์—์„œ๋Š” ์ด๋Š” ๋Œ€๋ถ€๋ถ„ ์ฝ”๋”์˜ ์žฌ๋Ÿ‰์— ๋‹ฌ๋ ค ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ถ€ ๊ฐœ๋ฐœ์ž๋Š” ์ด๋Ÿฌํ•œ ์ œํ•œ์„ ์ข‹์•„ํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๋Š” ์ž์œ ๋ฅผ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. ๋‘ ์–ธ์–ด ๋ชจ๋‘ ์ƒ๋‹นํžˆ ์•ˆ์ „ํ•˜์ง€๋งŒ Java๋Š” ๋ถ„๋ช…ํžˆ ์•ฝ๊ฐ„์˜ ์šฐ์œ„๋ฅผ ๊ฐ–๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋Œ€๊ธฐ์—…์ด Java๋ฅผ ์„ ํ˜ธํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์ด์ œ ๋‹ต์„ ์•Œ ๊ฒƒ ๊ฐ™์•„์š”! ๊ฐ€์žฅ ๋‹ต๋‹ตํ•œ ์ ์€... ์ธํ„ฐ๋„ท์—์„œ ๋ณด๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ฝ”๋“œ ์˜ˆ์ œ์—์„œ ์ด๋Ÿฌํ•œ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์ด ํ•ญ์ƒ ์‚ฌ์šฉ๋˜์ง€๋Š” ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค... ์ƒˆ๋กœ์šด Java ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ ๋ฒ ์ด์Šค ์ „์ฒด์— 'var'๊ฐ€ ์“ฐ์—ฌ ์žˆ๋Š” ๊ฒƒ์„ ๋ณธ๋‹ค๋ฉด ๊ทธ๋ ‡๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. , ๊ทธ๋Š” ๋ฏธ์ณ๋ฒ„๋ฆด ๊ฑฐ์•ผ! ์ŠคํŠธ๋ฆผ์€ ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ์ŠคํŠธ๋ฆผ์ด๋ž€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Java ๊ฐœ๋ฐœ์ž๋Š” For ๋ฃจํ”„๋ฅผ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค! ์‹ค์ œ๋กœ foreach ๋ฃจํ”„๋„ Java ์„ธ๊ณ„์—์„œ๋Š” ๋งค์šฐ ๋“œ๋ญ…๋‹ˆ๋‹ค(๊ทธ๋ฆฌ๊ณ  ์•„๋งˆ๋„ ์ด์— ๋Œ€ํ•œ ์ด์œ ๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค: For ๋ฃจํ”„๊ฐ€ ํ›จ์”ฌ ๋” ์ตœ์ ํ™”๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค). ๊ทธ๋Ÿฌ๋‚˜ ์ด๊ฒƒ์€ ๋‚˜์œ ๊ธฐ๋Šฅ์ด ์•„๋‹™๋‹ˆ๋‹ค! ๋‚˜๋Š” ๋” ๋‚˜์•„๊ฐ€ ์ด๋Ÿฌํ•œ ๊ธฐ๋Šฅ์ด ๋†€๋ž๋‹ค๊ณ  ๋งํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค! Android ์•ฑ์„ ์ž‘์„ฑํ•  ๋•Œ Android API์˜ ๊ฑฐ์˜ ์–ด๋””์—๋„ ์—ด๊ฑฐํ˜•์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ฒŒ ๋˜๋ฉด ์ •๋ง ๊ณ ํ†ต์Šค๋Ÿฝ์Šต๋‹ˆ๋‹ค! Android๋Š” ์ˆ˜๋…„ ์ „์— ์ž‘์„ฑ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์€ ๊ณตํ‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋ฅผ ๊ฐ€์žฅ ์งœ์ฆ๋‚˜๊ฒŒ ํ•˜๋Š” ๊ฒƒ์€ Android์—์„œ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ํ™œ๋™ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๋•Œ๋งˆ๋‹ค ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ƒ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. int PICK_IMAGE_FROM_GALLERY = 3000 ํ˜•, ์ด๊ฑฐ ๋ฏธ์นœ ์ง“์ด์•ผ! ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ „ ์„ธ๊ณ„ ์‚ฌ๋žŒ๋“ค์ด ๊ทธ๊ฒƒ์„ ๋ฐ›์•„๋“ค์ด๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋„. Java์—๋Š” ๊ธฐ๋ณธ ์ด๋ฒคํŠธ ๊ตฌํ˜„๋„ ๋ถ€์กฑํ•ฉ๋‹ˆ๋‹ค! C#๊ณผ ๊ฐ™์€ ์ด๋ฒคํŠธ์™€ ๋Œ€๋ฆฌ์ž๊ฐ€ ์žˆ์—ˆ๋‹ค๋ฉด...(์ž๋ฐ” ์–ธ์–ด ์ œ์ž‘์ž ์—ฌ๋Ÿฌ๋ถ„, ์ด ๊ธ€์„ ์ฝ๊ณ  ๊ณ„์‹œ๋‹ค๋ฉด ์ด๋ฒคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•˜์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค! ์ด๋ฏธ ์ด๋ฒคํŠธ๊ฐ€ ์žˆ๊ฑฐ๋‚˜ ์ž‘์—… ์ค‘์ด๋ผ๋ฉด ์•Œ๋ ค์ฃผ์„ธ์š”. ). ์ด์ œ Java ์ƒํƒœ๊ณ„์˜ ๊ฐ€์žฅ ํฐ ๊ฒฐํ•จ์ด ๋ฌด์—‡์ธ์ง€ ๋ง์”€๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. ์„ ์  ์„œ๋ฅ˜ ๋น„์น˜!!! Oracle ์›น์‚ฌ์ดํŠธ์˜ ์–ด์ˆ˜์„ ํ•˜๊ณ  ๋„์›€์ด ๋˜์ง€ ์•Š๋Š” ๋ฌธ์„œ๋Š” 2007๋…„ ์ˆ˜์ค€์œผ๋กœ ๋ณผ ๋•Œ ์–ด๋ฆฌ์„๊ณ  ์‹œ๋Œ€์— ๋’ค๋–จ์–ด์ ธ ๋ณด์ž…๋‹ˆ๋‹ค. ํ•ญ์ƒ ์ฝ”๋“œ ์˜ˆ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ƒ๋Œ€์ ์œผ๋กœ ํŠน์ดํ•œ ๊ธฐ๋Šฅ์ด๋‚˜ API ๋ฉ”์†Œ๋“œ๋ฅผ ์ฐพ๊ธฐ ์‹œ์ž‘ํ•˜๋ฉด ์ง€๋ฃจํ•œ ์ •์˜, ์„ ์–ธ, ์ธ์ˆ˜, ๊ทธ๊ฒƒ์ด ์†ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ํ„ฐ๋ฌด๋‹ˆ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์ด๊ฒƒ์ด ํ„ฐ๋ฌด๋‹ˆ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š๋‚˜์š”? ์ฝ”๋“œ ์กฐ๊ฐ์ด ์—†๋‚˜์š”? ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ ๊ฐœ๋ฐœ์ž๋Š” StackOverflow์™€ ๊ฐ™์€ ํฌ๋Ÿผ์ด๋‚˜ TutorialsPoint์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์›น์‚ฌ์ดํŠธ์— ํฌ๊ฒŒ ์˜์กดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์ด ๊ธฐ๋Šฅ์„ ๋ณด์—ฌ์ฃผ๋Š” ์ข‹์€ ์ฝ”๋“œ ์˜ˆ์ œ๊ฐ€ ์žˆ์–ด ์ •๋ง ๋„์›€์ด ๋˜์ง€๋งŒ, ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ๊ทธ๋‹ค์ง€ ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. C#์œผ๋กœ ์ž‘์„ฑ๋œ Microsoft ์„ค๋ช…์„œ์™€ Java๋กœ ์ž‘์„ฑ๋œ Oracle ์„ค๋ช…์„œ๋ฅผ ๋น„๊ตํ•ด ๋ณด์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ์ฒœ๊ตญ๊ณผ ๋•…! ๋‚˜๋ฅผ ๋ฏฟ์ง€ ๋ชปํ•ฉ๋‹ˆ๊นŒ? ๊ฐ€์„œ ํ™•์ธํ•ด ๋ณด์„ธ์š”: Oracle ๊ณผ Microsoft. Microsoft ์‚ฌ์ดํŠธ์˜ ์„ค๋ช…์„œ๊ฐ€ ์ •๋ง ๋ฉ‹์ ธ ๋ณด์ž…๋‹ˆ๋‹ค! ๋‹คํฌ ๋ชจ๋“œ๋„ ์žˆ์–ด์š”! ์šฐ๋ฆฌ ๊ฐœ๋ฐœ์ž๋“ค์€ ๋‹คํฌ ๋ชจ๋“œ์— ์—ด๊ด‘ํ•ฉ๋‹ˆ๋‹ค. Oracle ๋ฌธ์„œ๋Š” ์–ด๋–ป์Šต๋‹ˆ๊นŒ? ๋ง์”€๋“œ๋ฆฐ๋Œ€๋กœ 2007๋…„์—๋„ ๋‚จ์•„์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ๋‹น์‹œ์—๋Š” ๋‹คํฌ ๋ชจ๋“œ๊ฐ€ ์—†์—ˆ์„ ์ˆ˜๋„ ์žˆ์ฃ ? ๊ทธ๋ž˜์„œ ์ €๋Š” Java๊ฐ€ ํ›Œ๋ฅญํ•˜๋‹ค๊ณ  ๋งํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค! ๊ทธ๋Ÿฌ๋‚˜ ์ด ์–ธ์–ด๋Š” ์˜ค๋ž˜๋œ ๋ฌธ์„œ๋กœ ์ธํ•ด ํฐ ์–ด๋ ค์›€์„ ๊ฒช๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ๋“ค์€ ๋Œ€๋ถ€๋ถ„ ์Šค๋ ˆ๋“œ, ๋ณ€์ˆ˜, ์—ด๊ฑฐํ˜•๊ณผ ๊ฐ™์ด ๊ผญ ํ•„์š”ํ•œ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ๊ฐ•์กฐํ•˜์ง€ ์•Š๋Š” ์˜ค๋ž˜๋œ ๋ฌธ์„œ์™€ ๋งค๋‰ด์–ผ์ž…๋‹ˆ๋‹ค. ์š”์ฆ˜ ์‚ฌ๋žŒ๋“ค์€ Java๊ฐ€ ์“ธ๋ชจ์—†์–ด์ง€๊ณ  Kotlin์œผ๋กœ ๋Œ€์ฒด๋  ๊ฒƒ์ด๋ผ๊ณ  ๋งํ•˜์ง€๋งŒ ์ €๋Š” ์ด์— ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‚ฌ์‹ค์ด๋”๋ผ๋„ ๊ทธ๋Š” ์˜ค๋žซ๋™์•ˆ ๊ทธ๋…€๋ฅผ ๋Œ€์‹ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์•„์ฃผ ์˜ค๋žœ ์„ธ์›”์ด ๊ฑธ๋ฆด ๊ฒƒ์ž…๋‹ˆ๋‹ค. Scala๋„ ์ด๋ฅผ ๋Œ€์ฒดํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์‹œ๋‚˜์š”? ๊ทธ๋ž˜์„œ ๊ทธ ๊ฒฐ๊ณผ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Java๋Š” ์—ฌ์ „ํžˆ ์ „์ฒด JVM ์ƒํƒœ๊ณ„๋ฅผ ์ง€๋ฐฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” Scala๊ฐ€ ์ฃผ๋กœ ๊ธฐ๋Šฅ๋ฉด์—์„œ Java์™€ ๋งค์šฐ ๋‹ค๋ฅด๋‹ค๋Š” ๊ฒƒ์„ ์ธ์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด์ œ ๋งˆ์ง€๋ง‰์œผ๋กœ... Java ์„ธ๊ณ„์˜ ๊ทธ ์–ด๋–ค ๊ฒƒ๋ณด๋‹ค ๋‚˜์—๊ฒŒ ๋” ๋งŽ์€ ๊ฐ๋™์„ ์ฃผ๋Š” ๊ฒƒ์ด ํ•˜๋‚˜ ๋” ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ JDK๋ฅผ ์–ป๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. JDK๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ์™œ ๊ทธ๋ ‡๊ฒŒ ์–ด๋ ค์šด๊ฐ€์š”? ์ œ ๋ง์€ JDK๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๊ฐ„๋‹จํ•œ Google ๊ฒ€์ƒ‰์„ ํ†ตํ•ด Oracle ์›น์‚ฌ์ดํŠธ๋กœ ์—ฐ๊ฒฐ๋˜๊ณ  ๊ทธ๊ณณ์œผ๋กœ ๊ฐ€์„œ ํ•„์š”ํ•œ JDK ๋ฒ„์ „์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€๋Š” ๋ชจ๋“  ๊ฒƒ์ด ์ƒ๋Œ€์ ์œผ๋กœ ์‰ฝ์ง€๋งŒ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๋ฉด ๋“ฑ๋ก์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. JDK๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋Œ€์‹  Oracle์— ๊ณ„์ •์„ ๋งŒ๋“  ๋‹ค์Œ ๋งค์ฃผ ์ด๋ฉ”์ผ์„ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? Java๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์˜คํ”ˆ ์†Œ์Šค๋ผ๋Š” ์ ์„ ๋ช…์‹ฌํ•˜์„ธ์š”! 2015๋…„์—์•ผ ์˜คํ”ˆ์†Œ์Šค๋กœ ์ „ํ™˜๋œ C#๊ณผ ๋‹ฌ๋ฆฌ ๊ทธ๋ž˜์„œ ๋ฒŒ์จ ๋‹ต๋‹ตํ•ด์„œ ๊ตฌ๊ธ€ ๊ฒ€์ƒ‰๊ฒฐ๊ณผ์— ๋‚˜์˜ค๋Š” ๋‘ ๋ฒˆ์งธ ์›น์‚ฌ์ดํŠธ๋กœ ๊ฐ€๋ด…๋‹ˆ๋‹ค. OpenJDK ์‚ฌ์ดํŠธ๋กœ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๊ฑฐ๊ธฐ์—์„œ JDK๋ฅผ ์ฐพ์•„ "๋‹ค์šด๋กœ๋“œ"๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ (๋†€๋ž๊ฒŒ๋„!) ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์˜ JDK ๊ตฌํ˜„์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค! ์‚ฌ์ดํŠธ ์ค‘์—๋Š” ์ €์ฃผ๋ฐ›์€ Oracle์ด ์žˆ์ง€๋งŒ Red Hat ์‚ฌ์ดํŠธ์— ๋Œ€ํ•œ ๋งํฌ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ, Red Hat์€ ํ›Œ๋ฅญํ•ฉ๋‹ˆ๋‹ค. ์ „ ์„ธ๊ณ„ ์˜คํ”ˆ์†Œ์Šค ๊ธฐ์—…์˜ ์„ ๊ตฌ์ž ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ข‹์•„์š”, ๊ทธ ํšŒ์‚ฌ ์›น์‚ฌ์ดํŠธ๋กœ ๊ฐ€๋ณผ๊ฒŒ์š”! ๊ฑฐ๊ธฐ์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ์ด ๋งํฌ๋ฅผ ํด๋ฆญํ•˜๊ณ  ๋‚ด๊ฐ€ ์ฐพ๊ณ  ์žˆ๋Š” JDK ๋ฒ„์ „์„ ์ฐพ์€ ๋‹ค์Œ ๋ฌด์—‡์„ ์ถ”์ธกํ• ๊นŒ์š”? ๋‚˜๋„ ๊ฑฐ๊ธฐ ๋“ฑ๋กํ•ด์•ผ ํ•˜๋Š”๋ฐ... (๊ทน์ ์ธ ๋ฉˆ์ถค) ์ด๊ฑด ์ •๋ง ์Šฌํ”„๋‹ค... ์  ์žฅ! ์ด ์‚ฌ๋žŒ๋“ค์—๊ฒŒ ๋ฌด์Šจ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ๋งˆ์ง€๋ง‰์œผ๋กœ Chocolatey๋ฅผ ํฌ๊ธฐํ•˜๊ณ  ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค(apt-get๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ Windows์šฉ์ž…๋‹ˆ๋‹ค. Windows์šฉ์œผ๋กœ ๋„๋ฆฌ ๋ฐฐํฌ๋˜๊ณ  ์‚ฌ์šฉ๋˜๋Š” ์ตœ์ดˆ์˜ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค). ๋”ฐ๋ผ์„œ ์ด ๋ชจ๋“  ์ž‘์—…์ด ๋๋‚˜๋ฉด PowerShell์—์„œ choco install jdk-1.8๊ณผ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๋ช…๋ น์„ ์ž‘์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ํ•œ๋‹ค! (C# ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๋“ฑ๋ก ๋“ฑ์˜ ์ ˆ์ฐจ ์—†์ด ๋‹จ 2~3๋ฒˆ์˜ ํด๋ฆญ๋งŒ์œผ๋กœ .Net SDK๋ฅผ ์–ป๋Š” ๊ฒƒ์ด ์–ผ๋งˆ๋‚˜ ์‰ฌ์šด์ง€ ์•„์‹ค ๊ฒƒ์ž…๋‹ˆ๋‹ค.) ๋‚˜์˜ ๊ธด ํ˜ธ์–ธ์žฅ๋‹ด์„ ๋งˆ๋ฌด๋ฆฌํ•˜์ž๋ฉด: Java๋Š” ํ›Œ๋ฅญํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ์ด ์ œํ’ˆ์€ ์•„๋ฆ„๋‹ต๊ณ  ์•ˆ์ •์ ์ด๋ฉฐ (์ œ ์ƒ๊ฐ์—๋Š”) ์„ธ๊ณ„ ์ตœ๊ณ ์˜ IDE, ์ฆ‰ JetBrains์˜ ์ž˜ ์•Œ๋ ค์ง„ IntelliJ IDEA๋ฅผ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Java์—๋Š” ๋งค์šฐ ์œ ์šฉํ•œ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ํฌ๊ณ  ๋‹ค์–‘ํ•œ ์ƒํƒœ๊ณ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ €๋Š” ์ด๊ฒƒ์„ C# ๊ฐœ๋ฐœ์ž๋ผ๊ณ  ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค... ํ•˜์ง€๋งŒ ๋ฌธ์„œ๋ฅผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ์˜ˆ์‹œ. API. JDK๋ฅผ ๋” ์‰ฝ๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ „๋ฐ˜์ ์œผ๋กœ Java๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ ์›€์ง์ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ ์ธ๊ธฐ๊ฐ€ ๋‹ค์†Œ ํ•˜๋ฝํ–ˆ์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ๊ทธ๋ ‡๋‹ค๊ณ  Java๊ฐ€ ์‚ฌ๋ผ์ง€์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ˆ˜๋…„ ๋™์•ˆ ์ด ์–ธ์–ด๋Š” ์„ธ๊ณ„ ์ตœ๊ณ ์˜ ์–ธ์–ด ๋ชฉ๋ก์˜ ์ตœ์ƒ์œ„์— ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค! ์ €๋Š” ํ•ญ์ƒ Java๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์•ž์œผ๋กœ๋„ ๊ณ„์† ์‚ฌ์šฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

2021๋…„์— ๊ณ ๋ คํ•ด์•ผ ํ•  ์„ธ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด Java ๋„๊ตฌ

์ถœ์ฒ˜: OpenSource ์ตœ๊ทผ ์ธ๊ณต์ง€๋Šฅ, ๋จธ์‹ ๋Ÿฌ๋‹, ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค ๊ด€๋ จ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ™œ๋ฐœํžˆ ์‚ฌ์šฉ๋˜๋Š” Python, Go, Node.js์˜ ์ธ๊ธฐ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  Java ๊ธฐ์ˆ ์€ ์—ฌ์ „ํžˆ โ€‹โ€‹์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์—์„œ ํ•ต์‹ฌ์ ์ธ ์—ญํ• ์„ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Developer Economics์— ๋”ฐ๋ฅด๋ฉด 2020๋…„ 3๋ถ„๊ธฐ์— ์ „ ์„ธ๊ณ„์ ์œผ๋กœ 800๋งŒ ๋ช…์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ Java ๊ฐœ๋ฐœ์ž๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ปคํ”ผ ๋ธŒ๋ ˆ์ดํฌ #68.  Java์™€ ํ•ด๋‹น ์ƒํƒœ๊ณ„์— ๋Œ€ํ•œ ์†”์งํ•œ ์˜๊ฒฌ์ž…๋‹ˆ๋‹ค.  2021๋…„์— ๊ณ ๋ คํ•ด์•ผ ํ•  ์„ธ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด Java ๋„๊ตฌ - 2Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” 25๋…„ ๋„˜๊ฒŒ ์‚ฌ์šฉ๋˜์–ด ์™”์œผ๋ฉฐ ์ง€์†์ ์œผ๋กœ ์—…๋ฐ์ดํŠธ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ท€ํ•˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ฒฝ๋ ฅ์„ ๊ฐ•ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ๋„๊ตฌ์™€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๋“ฑ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ Java ํ”Œ๋žซํผ์€ ์„œ๋ฒ„๋‚˜ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋˜๋„๋ก ์„ค๊ณ„๋œ ๋™์  ๋™์ž‘์œผ๋กœ ์žฅ๊ธฐ ์‹คํ–‰ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค. 2014๋…„์— Kubernetes ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋“ฑ์žฅํ•˜๋ฉด์„œ ์ด๋Ÿฌํ•œ ์ƒํ™ฉ์ด ๋ฐ”๋€Œ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ Kubernetes์—์„œ Java๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๊ฐ€์žฅ ํฐ ๊ณผ์ œ๋Š” ๋ฉ”๋ชจ๋ฆฌ ๊ณต๊ฐ„์„ ์ค„์ด๊ณ , ์‹œ์ž‘ ๋ฐ ์‘๋‹ต ์‹œ๊ฐ„์„ ๊ฐ€์†ํ™”ํ•˜๊ณ , ํŒŒ์ผ ํฌ๊ธฐ๋ฅผ ์ค„์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„ธ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด Java ํ”„๋ ˆ์ž„์›Œํฌ ๋ฐ ๋„๊ตฌ

Java ๊ฐœ๋ฐœ์ž๋Š” ํ•ญ์ƒ ์ธ๊ธฐ ์žˆ๋Š” ๋„๊ตฌ์™€ ์˜คํ”ˆ ์†Œ์Šค ํ”„๋กœ์ ํŠธ๋ฅผ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ†ตํ•ฉํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์„ ์ฐพ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ณ ์„ฑ๋Šฅ ๋„๊ตฌ๋Š” ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ํฌ๊ฒŒ ๋†’์ด๊ณ  ๋” ๋งŽ์€ ํšŒ์‚ฌ์™€ ๊ฐœ์ธ ๊ฐœ๋ฐœ์ž๊ฐ€ Java ์Šคํƒ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์žฅ๋ คํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์„ธ ๊ฐ€์ง€ ์ƒˆ๋กœ์šด Java ํ”„๋ ˆ์ž„์›Œํฌ์™€ ๋„๊ตฌ์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฟผ์ปค์Šค

Quarkus๋Š” ํด๋ผ์šฐ๋“œ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค ๋ฐ ์„œ๋ฒ„๋ฆฌ์Šค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Kubernetes์™€ ๊ฐ™์€ ์ปจํ…Œ์ด๋„ˆ ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ด์…˜ ํ”Œ๋žซํผ์—์„œ ๋น ๋ฅธ ๋ถ€ํŒ… ์‹œ๊ฐ„, ์ž‘์€ RSS(๋ฉ”๋ชจ๋ฆฌ ์ƒ์ฃผ ์„ธํŠธ) ํฌ๊ธฐ ๋ฐ ๋†’์€ ๋ฉ”๋ชจ๋ฆฌ ๋ฐ€๋„๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. JRebel์˜ 9์ฐจ ์—ฐ๋ก€ ๋ณด๊ณ ์„œ์— ๋”ฐ๋ฅด๋ฉด Java ๊ฐœ๋ฐœ์ž์˜ Quarkus ์‚ฌ์šฉ๋Ÿ‰์€ 6%(์ „๋…„์—๋Š” 1% ๋ฏธ๋งŒ) ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. Micronaut์™€ Vert.x๋Š” ๊ฐ๊ฐ 4%์™€ 2%๋กœ ์„ฑ์žฅํ–ˆ์Šต๋‹ˆ๋‹ค(์ž‘๋…„ - ์•ฝ 1% ์ฆ๊ฐ€).

์ดํด๋ฆฝ์Šค JKube

Eclipse JKube๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Java ๊ฐœ๋ฐœ์ž๋Š” Docker, Jib ๋˜๋Š” Source-To-Image ๋นŒ๋“œ ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ผ์šฐ๋“œ ๊ธฐ๋ฐ˜ Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปจํ…Œ์ด๋„ˆ ์ด๋ฏธ์ง€๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๋„๊ตฌ๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์— Kubernetes ๋ฐ OpenShift ๋งค๋‹ˆํŽ˜์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๋””๋ฒ„๊น…, ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋กœ๊น… ๋„๊ตฌ์— ๋Œ€ํ•œ ๊ฒฝํ—˜์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

๋งˆ์ดํฌ๋กœํ”„๋กœํŒŒ์ผ

MicroProfile์€ ์ƒˆ๋กœ์šด ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋„์ž…ํ•˜๊ฑฐ๋‚˜ ์ „์ฒด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฆฌํŒฉํ„ฐ๋งํ•˜์ง€ ์•Š๊ณ ๋„ Java ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์•„ํ‚คํ…์ฒ˜ ์ตœ์ ํ™”์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ MicroProfile ์‚ฌ์–‘(์˜ˆ: Health, Open Tracing, Open API, Fault Tolerance, Metrics, Config)์€ Jakarta EE ๊ตฌํ˜„์— ๋งž์ถฐ ๊ณ„์† ๋ฐœ์ „ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก 

์–ด๋–ค Java ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๋„๊ตฌ๊ฐ€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ Java ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ฐ€์žฅ ์ ํ•ฉํ•œ์ง€ ๋งํ•˜๊ธฐ๋Š” ์–ด๋ ต์Šต๋‹ˆ๋‹ค. Java ์Šคํƒ์„ ๊ฐœ์„ ํ•˜๊ณ  ๊ธฐ์—… ๋น„์ฆˆ๋‹ˆ์Šค ์„ฑ์žฅ์„ ๊ฐ€์†ํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ์žˆ๋Š” ํ•œ ์ƒˆ๋กœ์šด ํ”„๋ ˆ์ž„์›Œํฌ, ๋„๊ตฌ ๋ฐ ํ”Œ๋žซํผ์ด ๋“ฑ์žฅํ•  ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 2021๋…„์— Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ด ๋ณด์„ธ์š”.
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION