< ๐ŸšฆJava ์œ ๋ฃŒํ™”์™€ OpenJDK ์˜ ์˜คํ•ด์™€ ์ง„์‹ค > ๐Ÿ’ฌ Programming ์–ธ์–ด๊ฐ€ ์œ ๋ฃŒํ™”๊ฐ€ ๋œ๋‹ค๊ณ ? ํ”„๋กœ์ ํŠธ๋ฅผ Java ์–ธ์–ด๋กœ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๊ฑฐ๋‚˜ ์ด๋ฏธ ์šด์˜์ค‘์ธ ์‚ฌ๋žŒ๋“ค ์ž…์žฅ์—์„œ๋Š” ์ฒ˜์Œ Java ์œ ๋ฃŒํ™” ๋ผ๋Š” ๋ง์„ ๋“ค์—ˆ์„ ๋•Œ ํ—‰! ํ• ์ˆ˜๋ฐ–์— ์—†์„ ๊ฒƒ์ด๋‹ค. ๊ทธ๋งŒํผ Java ๋Š” ์ธ๊ธฐ์žˆ๋Š” ์–ธ์–ด์ด๊ณ  ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋งŽ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ํˆฌ์žํ•  ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ๊ฒฐ๋ก ๋ถ€ํ„ฐ ์–˜๊ธฐํ•˜์ž๋ฉด Java ๋ผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์ž์ฒด๋Š” GPL ๋ผ์ด์„ผ์Šค๋กœ ๋ฌด๋ฃŒ์ด๋‹ค. ๊ทธ๋Ÿผ ๋„๋Œ€์ฒด ์–ด๋–ค๊ฒƒ์ด ์œ ๋ฃŒํ™”๊ฐ€ ๋œ๋‹ค๋Š” ๋ง์ผ๊นŒ? Java ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์•„๋ž˜์˜ 2๊ฐ€์ง€ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค - Java ๋กœ ์ž‘์„ฑํ•œ ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํŒŒ์ผ ํ•ด์ฃผ๋Š” JDK - ์ปดํŒŒ์ผ๋œ ๊ฒฐ๊ณผ๋ฌผ์„ ์‹คํ–‰์‹œ์ผœ์ฃผ๋Š” JVM JDK ์— JVM ์ด ๊ฐ™์ด ํŒจํ‚ค์ง•๋˜์–ด ๋ฐฐํฌ๋˜๋Š” ๊ตฌ์กฐ๋ผ ํ”ํžˆ๋“ค JDK, JVM ์„ ํ•ฉ์ณ JDK ๋ผ ๋ถ€๋ฅด๋Š”๋ฐ ์ด JDK ๊ฐ€ ์œ ๋ฃŒํ™” ๋˜๋Š”๊ฒƒ์ด๋‹ค. ์ฆ‰, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์จ Java ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฑด ๋ฌด๋ฃŒ์ด์ง€๋งŒ ์ด๋ฅผ ์‹คํ–‰์‹œํ‚ค๊ธฐ์œ„ํ•œ ์ปดํŒŒ์ผ๊ณผ ์‹คํ–‰ ๋จธ์‹ ์ด ์œ ๋ฃŒ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. JDK ๋Š” ํฌ๊ฒŒ OracleJDK ์™€ OpenJDK ๋กœ ๋‚˜๋‰˜์–ด์ง€๋Š”๋ฐ ์ด์ค‘ OracleJDK ๊ฐ€ ์œ ๋ฃŒํ™” ์ •์ฑ…์„ ํŽผ์น˜๊ณ  ์žˆ๋‹ค. ๐Ÿ’ฌ OracleJDK ์“ฐ๋ฉด ๋ฌด์กฐ๊ฑด ๋ˆ๋‚ด์•ผํ•ด์š”? OracleJDK๋Š” BCL(Oracle Binary Code License) ์ด๋ผ๋Š” ๋ผ์ด์„ผ์Šค๋ฅผ ์ ์šฉํ•˜๊ณ  ์žˆ๋Š”๋ฐ BCL ๋ผ์ด์„ผ์Šค์—์„œ๋Š” ์ผ๋ฐ˜์ ์ธ ๋ชฉ์ ์˜ ์ปดํ“จํŒ…(General Purpose Computing)์— ์‚ฌ์šฉ์‹œ์—๋งŒ ๋ฌด๋ฃŒ๋ผ๊ณ  ๋ฐํžˆ๊ณ  ์žˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๋ชฉ์ ์˜ ์ปดํ“จํŒ…์ด๋ž€ ๋ฐ์Šคํฌํƒ‘, ๋…ธํŠธ๋ถ, ์Šค๋งˆํŠธํฐ, ํƒœํ”Œ๋ฆฟ ๋“ฑ์—์„œ์˜ ์‚ฌ์šฉ์ธ ๊ฒƒ์ธ๋ฐ ์ฆ‰, ๊ฐœ์ธ์ด ํ•™์Šต์ด๋‚˜ ํ…Œ์ŠคํŠธ ๋ชฉ์ ์œผ๋กœ ๊ฐœ์ธ์˜ ๋””๋ฐ”์ด์Šค์— ์‚ฌ์šฉํ•˜๋Š”๊ฑด ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค๋Š” ๋ง์ด๋‹ค. ๋ฐ˜๋Œ€๋กœ ํŠน์ • ๊ธฐ๋Šฅ๋งŒ์„ ์œ„ํ•ด ์ž‘๋™ํ•˜๋Š” ์‹œ์Šคํ…œ ๋ฐ ์†”๋ฃจ์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์€ ์ผ๋ฐ˜์ ์ด์ง€ ์•Š์€ ๋ชฉ์ ์˜ ์ปดํ“จํŒ…์ด๋ผ ๊ทœ์ •ํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ด ํ‘œํ˜„์ด ๋ชจํ˜ธํ•˜์—ฌ ๋Œ€๋ถ€๋ถ„์˜ ์ƒ์—… ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ํšŒ์‚ฌ์˜ ๊ฒฝ์šฐ ๋ผ์ด์„ผ์Šค ๋น„์šฉ์„ ์ง€๋ถˆํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š”๊ฒŒ ์ข‹๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ๋ชจ๋“  OracleJDK ๊ฐ€ ์œ ๋ฃŒ์ธ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  2019๋…„ 01์›” 15์ผ์— ๊ณต๊ฐœ๋œ JDK 8u202 ๋ฒ„์ „๊นŒ์ง€๋Š” ๋ฌด๋ฃŒ๋กœ ์ œ๊ณตํ•ด์ฃผ๊ณ  ์žˆ๋‹ค. ๐Ÿ’ฌ OpenJDK ๋Š” ์œ ๋ฃŒํ™” ์•ˆ๋˜๋‚˜์š”? OpenJDK ๋Š” JDK(Java SE) ์˜ ์˜คํ”ˆ์†Œ์Šค ๊ตฌํ˜„์ฒด๋กœ GPL v2 with the Classpath Exception ๋ผ์ด์„ผ์Šค๊ฐ€ ์ ์šฉ๋˜์–ด ๋ฌด๋ฃŒ์ด๋‹ค. ๋งŽ์€ ์ƒ์—… ๋ฒค๋”๋“ค์ด ๊ตฌํ˜„์ฒด ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ OpenJDK ๊ฐ€ ์กด์žฌํ•˜๊ณ  ๋ฌด๋ฃŒ๋กœ ๋ฐฐํฌ๋˜๊ณ  ์žˆ๋‹ค. ๐Ÿ’ฌ OpenJDK ๋Š” OracleJDK ๋ณด๋‹ค ์„ฑ๋Šฅ์ด ๋–จ์–ด์ง„๋‹ค? Jave SE 6 ๋ฒ„์ „์˜ OpenJDK๋Š” ๋ฐฑํฌํŠธ ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์„ฑ๋Šฅ ์ €ํ•˜ ์ด์Šˆ๊ฐ€ ์กด์žฌํ–ˆ์—ˆ๋‹ค. ์ด๋กœ์ธํ•ด OpenJDK ๊ฐ€ OracleJDK ์— ๋น„ํ•ด ์„ฑ๋Šฅ์ด ๋–จ์–ด์งˆ๊ฒƒ์ด๋ผ๋Š” ์ธ์‹์ด ์ƒ๊ฒผ๋Š”๋ฐ Java SE 7๋ถ€ํ„ฐ ๋ชจ๋“  JDK๋Š” OpenJDK ๋ ˆํผ๋Ÿฐ์Šค ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ œ์ž‘๋˜๋„๋ก ๋ณ€๊ฒฝ๋˜์–ด ๋‘ JDK ๊ฐ„์— ์„ฑ๋Šฅ์ฐจ์ด๊ฐ€ ๊ฑฐ์˜ ์—†์–ด์กŒ๋‹ค. ๋˜ํ•œ ์˜ค๋ผํด์ด ์•„๋‹Œ ์„œ๋“œํŒŒํ‹ฐ ์—…์ฒด๊ฐ€ OpenJDK๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ณต์ธ๋œ JDK๋ฅผ ์ œ์ž‘ํ•˜์—ฌ ๋ฐฐํฌํ•˜๋ ค๋ฉด ์˜ค๋ผํด์˜ ์—„๊ฒฉํ•œ TCK ์ธ์ฆ์„ ํ†ต๊ณผํ•ด์•ผ ํ•œ๋‹ค. ์ˆ˜๋งŒ๊ฐ€์ง€์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๋‹จ ํ•˜๋‚˜๋ผ๋„ ํ†ต๊ณผํ•˜์ง€ ๋ชปํ•˜๋ฉด ์ธ์ฆ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๋กœ ์ธํ•ด OpenJDK ๊ฐ€ OracleJDK ๋ณด๋‹ค ์ด์Šˆ๋‚˜ ํŠธ๋Ÿฌ๋ธ”์ด ๋ฐœ์ƒํ•  ์ผ์€ ์—†์–ด์กŒ๋‹ค. ๐Ÿ’ฌ ๊ทธ๋Ÿฌ๋ฉด ๋ฌด์กฐ๊ฑด OpenJDK ์“ฐ๋ฉด ๋˜๋Š”๊ฑฐ ์•„๋‹Œ๊ฐ€์š”? ์ผ๋ฐ˜์ ์ธ ์„œ๋ฒ„ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋‚˜ ์˜คํ”ˆ์†Œ์Šค ์†”๋ฃจ์…˜์€ OpenJDK ๋กœ ์šด์˜์ด ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ตณ์ด OracleJDK ๋ฅผ ์“ธ ํ•„์š”๋Š” ์—†๋‹ค. ํ•˜์ง€๋งŒ ๊ธ€๊ผด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ Java Web Start ์™€ ๊ฐ™์ด Oracle์ด ์žฌ์‚ฐ๊ถŒ์„ ๋ณด์œ ํ•˜๊ณ  ์žˆ๋Š” ํ”Œ๋Ÿฌ๊ทธ์ธ ๊ธฐ๋Šฅ์„ ์จ์•ผํ•˜๋Š” ๊ฒฝ์šฐ OpenJDK ์—๋Š” ํ•ด๋‹น ํ”Œ๋Ÿฌ๊ทธ์ธ์ด ์ œ๊ณต๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์“ธ ์ˆ˜ ์—†๋‹ค. ๐Ÿ’ฌ ๋งˆ๋ฌด๋ฆฌ ์ด ๋…ผ๋ž€์ด ๋ฐœ์ƒํ•œ๊ฑด ๊ฝค ์˜ค๋ž˜์ „ ์ผ์ด์ง€๋งŒ ์•„์ง๋„ ์ž์„ธํžˆ ์•Œ์ง€ ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ๋Š”๊ฒƒ ๊ฐ™์•„ ์ž์„ธํžˆ ์ •๋ฆฌ๋œ ๋ธ”๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค. ์ด ๋…ผ๋ž€์ด ํ•œ์ฐฝ ์ง„ํ–‰๋ ๋•Œ๋Š” JDK ๋ฅผ ์œ ๋ฃŒํ™”ํ•˜๋Š” ์˜ค๋ผํด์„ ๋‹จ์ˆœํžˆ ๋ฏธ์›Œ(?)ํ–ˆ์ง€๋งŒ ์ง€๊ธˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด OracleJDK ๋ฅผ ํ†ตํ•ด ์ˆ˜์ต๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค์—ˆ์ง€๋งŒ ๋™์‹œ์— OpenJDK ์— ๋Œ€ํ•œ ์šด์˜๋„ ์ฃผ์ฒด๊ฐ€ ๋˜์–ด ๊ณต์กด์‹œํ‚ด์œผ๋กœ์จ Java ์˜ ๋ฐœ์ „์„ ํฌ๊ฒŒ ์œ„ํ˜‘ํ•˜์ง€ ์•Š๋Š” ์„ ์—์„œ ๋‚˜๋ฆ„ ๋˜‘๋˜‘ํ•˜๊ฒŒ ์ˆ˜์ต๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ ๊ฒƒ๊ฐ™๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ์ด๋Ÿฐ ๋˜‘๋˜‘ํ•œ ์ „๋žต์ด ์žˆ์—ˆ๊ธฐ์— ์˜ค๋Š˜๋‚ ์—๋„ Java ๊ฐ€ ์ธ๊ธฐ์žˆ๋Š” ์–ธ์–ด๋กœ ์†๊ผฝํžˆ๋Š”๊ฒŒ ์•„๋‹๊นŒ ์‹ถ๋‹ค.

Java ์œ ๋ฃŒ ๋…ผ์Ÿ, Oracle JDK์™€ OpenJDK์˜ ์ฐจ์ด ์ •๋ฆฌ

Software Engineer, Java, Spring Boot, JAX-RS REST API, OAuth 2.0, Microservice, DevOps

Java ์œ ๋ฃŒ ๋…ผ์Ÿ, Oracle JDK์™€ OpenJDK์˜ ์ฐจ์ด ์ •๋ฆฌ

๋‹ค์Œ ๋‚ด์šฉ์ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด?

๋˜๋Š”

์ด๋ฏธ ํšŒ์›์ด์‹ ๊ฐ€์š”?

2022๋…„ 8์›” 19์ผ ์˜คํ›„ 2:51

 โ€ข 

์ €์žฅ 13 โ€ข ์กฐํšŒ 2,763

๋Œ“๊ธ€ 0




    ๋น„์Šทํ•œ ๊ฒŒ์‹œ๋ฌผ

    ์ฃผ๊ฐ„ ์ธ๊ธฐ TOP 10

    1

    ํ™ฉ๊ฒฝ์ฐฌ(Boaz) P.E.C CEO

    React 19์™€ Next.js 15๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์ œ์•ˆํ•˜๋Š” ๋ฐฉํ–ฅ์€ ๊ฝค

    2

    ํ•œ๊ธฐ์šฉ UpZen ์ฐฝ์—…์ž ๋Œ€ํ‘œ & ์‚ฐํ˜ธ์„ธ ์ฃผ๋ฆฝ๋Œ€ ๊ต์ˆ˜

    ์Šค๋ชฐ ๋ฐ์ดํ„ฐ(Pandas)์—์„œ ๋น… ๋ฐ์ดํ„ฐ(Spark)๋กœ!

    3

    ๊ณจ๋นˆํ•ด์ปค Chief Maker

    ์ ์  ๋” ChatGPT์—๊ฒŒ ๋ฌผ์–ด๋ดค๋”๋‹ˆ ์ด๊ฑด ์ด๋ ‡๋‹ค๋”๋ผํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด

    4

    ๋‹ฌ๋ ˆ Apollo GraphQL Software Engineer

    Apollo Connectors ์†Œ๊ฐœ์™€ ์‚ฌ์šฉ๋ฒ•

    5

    ์ „๋ฏผ์šฐ ๋ฐฑ์—”๋“œ๊ฐœ๋ฐœ์ž

    ๊ฑด๊ฐ•์„ ํ•ญ์ƒ ๋Œ๋ด์ฃผ์„ธ์š”.

    6

    Annette MJ Kim ์‚ฌ๋žŒ๊ณผ ์กฐ์ง์˜ ๋™๋ฐ˜ ์„ฑ์žฅ์„ ์œ„ํ•ด ์ผํ•ด์š”:D

    ๋ฐ• ๊ณผ์žฅ์€ ํ‰์†Œ ๋ง์„ ์กฐ๋ฆฌ์žˆ๊ฒŒ ์ž˜ํ•œ๋‹ค๋Š” ๋ง์„ ๋งŽ์ด ๋“ฃ์Šต๋‹ˆ๋‹ค. ์ตœ๊ทผ

    7

    ์ด์›ํ˜• ๋ผ์ธํ”Œ๋Ÿฌ์Šค ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด

    ๊ณ ์šฉ๋…ธ๋™๋ถ€๊ฐ€ ์ฃผ๊ด€ํ•˜๋Š” ์ฒญ๋…„๋ฏธ๋ž˜ํ”Œ๋Ÿฌ์Šค ์‚ฌ์—…์˜ ์ฐธ์—ฌ์ž๋ฅผ ๋ชจ์ง‘ํ•œ๋‹ค๊ณ  ํ•ฉ

    8

    ๋ ˆ๋“œ๋ฒ„์Šค๋ฐฑ๋งจ ๋ฆฌ์„œ์ฒ˜ ์•ค ๋ผ์ดํ„ฐ

    โŸช๊ธฐ๋ถ„์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์˜๋ฌด๋ฅผ ๋‹คํ•˜๋Š” ๊ฒƒโŸซ

    8

    ์žฅํ™์„ ์ŠคํŽ˜์ด์Šค์˜ค๋””ํ‹ฐ ๋ถ€๋Œ€ํ‘œ/CPO

    < ์„ฑ๊ณตํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋น„๋ฐ€: ๋งค์ผ ๊ฐ™์€ ์‹œ๊ฐ„, ๊ฐ™์€ ์žฅ์†Œ >

    8

    ๋ ˆ๋“œ๋ฒ„์Šค๋ฐฑ๋งจ ๋ฆฌ์„œ์ฒ˜ ์•ค ๋ผ์ดํ„ฐ

    ใ€Š์–ด๋ฅธ์€ ์Šค์Šค๋กœ๋ฅผ ์†Œํ™€ํžˆ ํ•˜์ง€ ์•Š๋Š”๋‹คใ€‹

    ์ถ”์ฒœ ํ”„๋กœํ•„