CodeGym/Java Blog/๋ฌด์ž‘์œ„์˜/๋ถ™์–ด์žˆ์–ด? Java ํ•™์Šต์˜ ๊ฐ€์žฅ ์–ด๋ ค์šด ๋ถ€๋ถ„๊ณผ ์ด๋ฅผ ๊ทน๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ•
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

๋ถ™์–ด์žˆ์–ด? Java ํ•™์Šต์˜ ๊ฐ€์žฅ ์–ด๋ ค์šด ๋ถ€๋ถ„๊ณผ ์ด๋ฅผ ๊ทน๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ•

๋ฌด์ž‘์œ„์˜ ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
ํšŒ์›
์•„์‹œ๋‹ค์‹œํ”ผ ์ฝ”๋”ฉ ์ดˆ๋ณด์ž๋Š” Java๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ํ•™์Šต์„ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. CodeGym์€ ๊ฐ€์žฅ ์ค€๋น„๋˜์ง€ ์•Š์€ ํ•™์ƒ๋„ Java ํ•™์Šต ํ”„๋กœ์„ธ์Šค๋ฅผ ์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ชจ๋“  ๊ฒƒ์„ ๊ฐ–์ถ”๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒŒ์ž„ํ™” ์š”์†Œ, ์‰ฌ์šด ์ด์•ผ๊ธฐ ๋ฐ ์žฌ๋ฏธ์žˆ๋Š” ์บ๋ฆญํ„ฐ๊ฐ€ ์ด ๊ณผ์ •์„ ์‰ฝ๊ฒŒ ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฏ€๋กœ ๋Œ€๋ถ€๋ถ„์˜ ์ƒˆ๋กœ์šด ํ•™์Šต์ž๊ฐ€ Java์˜ ๊ธฐ์ดˆ๋ฅผ ์ตœ๋Œ€ํ•œ ํ•™์Šตํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€ ์—†์ด ์ง„ํ–‰๋˜๋Š” ๊ฒฝ์šฐ๋Š” ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค. ๋ถ™์–ด์žˆ์–ด?  Java ํ•™์Šต์˜ ๊ฐ€์žฅ ์–ด๋ ค์šด ๋ถ€๋ถ„๊ณผ ์ด๋ฅผ ๊ทน๋ณตํ•˜๋Š” ๋ฐฉ๋ฒ• - 1์˜ค๋Š˜ ์šฐ๋ฆฌ๋Š” Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ดˆ์—์„œ ๊ฐ€์žฅ ์–ด๋ ค์šด ์˜์—ญ ์ค‘ ์ผ๋ถ€๋ฅผ ์‚ดํŽด๋ณด๊ณ  ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ด๋ฅผ ์–ด๋ ต๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋Š” ์ด์œ ์™€ ๊ทธ์— ๋Œ€ํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์ผ์ด ์žˆ๋Š”์ง€ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

1. ์ œ๋„ค๋ฆญ

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

ํŒ ๋ฐ ๊ถŒ์žฅ ์‚ฌํ•ญ

์ˆ™๋ จ๋œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์ด์ž ๋Œ€ํ•™ ๊ต์ˆ˜์ธ Ravi Reddy๊ฐ€ Java์˜ Generics์— ๋Œ€ํ•ด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช… ํ•ฉ๋‹ˆ๋‹ค. โ€œJava Generics๋Š” C++ ํ…œํ”Œ๋ฆฟ์ด ํ•˜์ง€ ์•Š๋Š” ํ•œ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. C++ ํ…œํ”Œ๋ฆฟ์˜ ๊ตฌํ˜„์€ ๊ฐ„๋‹จํ•œ ์ „์ฒ˜๋ฆฌ๊ธฐ ํŠธ๋ฆญ์ด๋ฉฐ ํ˜•์‹ ์•ˆ์ „์„ ๋ณด์žฅํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Java์˜ ์ œ๋„ค๋ฆญ์€ C++ ํ…œํ”Œ๋ฆฟ๊ณผ ๋น„์Šทํ•˜์ง€๋งŒ ์ถ”๊ฐ€ ํ˜•์‹ ์•ˆ์ „์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  IMHO, ์œ ํ˜• ์•ˆ์ „์€ ์ข‹์€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์˜ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋„ค! ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์œ ํ˜• ์‚ฌ์ด์˜ ์ •์‹ ์  ๋ณ€ํ™” ๋•Œ๋ฌธ์— ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋‚˜๋Š” ๊ทธ๊ฒƒ๋“ค์„ ๋งˆ์Šคํ„ฐํ•˜๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„์„ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด ๋…ธ๋ ฅํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋‹ค๊ณ  ๋ฏฟ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค์™€ ์ œ๋„ค๋ฆญ์„ ์ดํ•ดํ•˜๊ณ  ๋‚˜๋ฉด Java์—์„œ ํ›จ์”ฌ ๋” ์ž˜ "์ƒ๊ฐ"ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค."

2. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ

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

ํŒ ๋ฐ ๊ถŒ์žฅ ์‚ฌํ•ญ

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

3. ํด๋ž˜์ŠคํŒจ์Šค ๋ฌธ์ œ

ํด๋ž˜์Šค ๊ฒฝ๋กœ ์˜ค๋ฅ˜๋Š” ๋˜ํ•œ Java ๊ฐœ๋ฐœ์ž๊ฐ€ ์ผ์ƒ ์—…๋ฌด์—์„œ ์ง๋ฉดํ•˜๋Š” ๊ฐ€์žฅ ๋ถˆ๋งŒ์ด ๋งŽ์€ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. โ€œํด๋ž˜์Šค ๊ฒฝ๋กœ ๋ฌธ์ œ๋Š” ๋””๋ฒ„๊ทธํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆด ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ตœ์•…์˜ ์‹œ๊ฐ„๊ณผ ์žฅ์†Œ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค ์ „, ๊ฐœ๋ฐœ ํŒ€์ด ๊ฑฐ์˜ ๋˜๋Š” ์ „ํ˜€ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์—†๋Š” ํ™˜๊ฒฝ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ IDE ์ˆ˜์ค€์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ƒ์‚ฐ์„ฑ ์ €ํ•˜์˜ ์›์ธ์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.โ€๋ผ๊ณ  ์ˆ™๋ จ๋œ Java/Javascript ๊ฐœ๋ฐœ์ž์ด์ž ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ด€๋ จ ์ž์Šต์„œ ์ž‘์„ฑ์ž์ธ Vasco Ferreira๋Š” ๋งํ•ฉ๋‹ˆ๋‹ค .

ํŒ ๋ฐ ๊ถŒ์žฅ ์‚ฌํ•ญ

โ€œํด๋ž˜์ŠคํŒจ์Šค ๋ฌธ์ œ๋Š” ์–ธ๋œป ๋ณด๊ธฐ์— ๊ทธ๋ ‡๊ฒŒ ๋‚ฎ์€ ์ˆ˜์ค€์ด๊ฑฐ๋‚˜ ์ ‘๊ทผํ•˜๊ธฐ ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ํŠน์ • ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์กด์žฌ/์กด์žฌํ•˜์ง€ ์•Š๋Š” zip ํŒŒ์ผ(jar), ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•, ์•ก์„ธ์Šค๊ฐ€ ์ œํ•œ๋œ ํ™˜๊ฒฝ์—์„œ ํด๋ž˜์Šค ๊ฒฝ๋กœ๋ฅผ ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํด๋ž˜์Šค ๋กœ๋”, ํด๋ž˜์Šค ๋กœ๋” ์ฒด์ธ, ์ƒ์œ„ ์šฐ์„ /์ƒ์œ„ ์ตœ์ข… ๋ชจ๋“œ์™€ ๊ฐ™์€ ์ œํ•œ๋œ ๊ฐœ๋… ์ง‘ํ•ฉ์„ ์•Œ๋ฉด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.โ€๋ผ๊ณ  ์ „๋ฌธ๊ฐ€๋Š” ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

4. ๋‹คํ˜•์„ฑ๊ณผ ์˜ฌ๋ฐ”๋ฅธ ์‚ฌ์šฉ

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

ํŒ ๋ฐ ๊ถŒ์žฅ ์‚ฌํ•ญ

๋‹คํ˜•์„ฑ์„ ๋ฐฐ์šฐ๋Š” ๊ฒƒ ์™ธ์—๋Š” ๋‹คํ˜•์„ฑ์„ ๋‹ค๋ฃจ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์ด ์—†์Šต๋‹ˆ๋‹ค. ์ฝ”ํŽœํ•˜๊ฒ ๋Œ€ํ•™๊ต์—์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐ€๋ฅด์น˜๋Š” Torben Mogensen์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค .์ด ๊ฐœ๋…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. โ€œ๋‹จ์ˆœ ์˜ค๋ฒ„๋กœ๋”ฉ: +๋Š” ์ •์ˆ˜ ์ถ”๊ฐ€, ๋ถ€๋™ ์†Œ์ˆ˜์  ์ถ”๊ฐ€ ๋ฐ (์ผ๋ถ€ ์–ธ์–ด์—์„œ) ๋ฌธ์ž์—ด ์—ฐ๊ฒฐ์„ ๋ชจ๋‘ ์˜๋ฏธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์œ„ ์œ ํ˜• ๋‹คํ˜•์„ฑ: B๊ฐ€ A์˜ ํ•˜์œ„ ์œ ํ˜•(์ƒ์†)์ธ ๊ฒฝ์šฐ ์œ ํ˜• A์˜ ๊ฐ’์„ ๊ธฐ๋Œ€ํ•˜๋Š” ์ปจํ…์ŠคํŠธ์—์„œ ์œ ํ˜• B์˜ ๋ชจ๋“  ๊ฐ’์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜ ๋‹คํ˜•์„ฑ: ์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ํ˜•์„ ๋งค๊ฐœ๋ณ€์ˆ˜ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์ปจํ…์ŠคํŠธ๋Š” ๋‹ค๋ฅธ ํ˜•์‹ ์ธ์ˆ˜๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์žˆ๋Š” ํ˜•์‹์„ ๋‹ค๋ฅธ ๊ตฌ์ฒด์ ์ธ ํ˜•์‹์œผ๋กœ ์ธ์Šคํ„ด์Šคํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "ํ…œํ”Œ๋ฆฟ" ๋˜๋Š” "์ œ๋„ค๋ฆญ"์ด๋ผ๊ณ ๋„ ํ•˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ๊บพ์‡  ๊ด„ํ˜ธ(์˜ˆ: T<A>)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋˜๋Š” OO ์–ธ์–ด๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ๋‹คํ˜•์„ฑ. ์ด๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•˜์œ„ ์œ ํ˜• ๋‹คํ˜•์„ฑ์„ ํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํ•˜์œ„ ์œ ํ˜•์œผ๋กœ ์ œํ•œํ•˜๊ฑฐ๋‚˜ ๋งค๊ฐœ๋ณ€์ˆ˜ ๋‹คํ˜•์„ฑ์„ ํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์œ ํ˜• ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ œํ•œํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜์ž…๋‹ˆ๋‹ค."

5. ๋ฐ˜์‚ฌ

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

ํŒ ๋ฐ ๊ถŒ์žฅ ์‚ฌํ•ญ

โ€œ๋ฆฌํ”Œ๋ ‰์…˜๊ณผ ์ž๋ฐ”์˜ ๊ฒฝ์šฐ ๋ฆฌํ”Œ๋ ‰์…˜์„ ํ†ตํ•ด ์ •์ ์œผ๋กœ ํƒ€์ž…๋˜๋„๋ก ์„ค๊ณ„๋œ ์ž๋ฐ”๋ฅผ ๋™์ ์œผ๋กœ ํƒ€์ž…ํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋™์  ํƒ€์ดํ•‘์€ ๋ณธ์งˆ์ ์œผ๋กœ ์•…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ, ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํŠน์ • OOP ์›์น™์„ ์œ„๋ฐ˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋™์‹œ์— ๋Ÿฐํƒ€์ž„ ํ”„๋ก์‹œ ๋ฐ ์ข…์†์„ฑ ์ฃผ์ž…๊ณผ ๊ฐ™์€ ๋งŽ์€ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ, Java๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฆฌํ”Œ๋ ‰์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์‹ ์˜ ๋ฐœ์„ ์  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งค์šฐ ๋ช…์‹œ์ ์œผ๋กœ ๋ฐœ์— ์ด์„ ๊ฒจ๋ˆ„๊ณ  ์•ˆ์ „ ์žฅ์น˜๋ฅผ ๋ฒ—๊ณ  ๋ฐฉ์•„์‡ ๋ฅผ ๋‹น๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.โ€๋ผ๊ณ  ์ˆ™๋ จ๋œ Java ํ”„๋กœ๊ทธ๋ž˜๋จธ์ด์ž ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ค๊ณ„์ž์ธ Jayesh Lalwani๋Š” ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค .

6. ์ž…๋ ฅ/์ถœ๋ ฅ ์ŠคํŠธ๋ฆผ

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

ํŒ ๋ฐ ๊ถŒ์žฅ ์‚ฌํ•ญ

โ€œJava์—๋Š” ์ฃผ๋กœ ๋‘ ๊ฐ€์ง€ ์š”์ธ์œผ๋กœ ์ธํ•ด ๋งŽ์€ I/O ์ŠคํŠธ๋ฆผ ํด๋ž˜์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € ์œ ์‚ฐ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€ ํด๋ž˜์Šค๋Š” ์—ญ์‚ฌ์ ์ธ ์ด์œ ๋กœ ์—ฌ์ „ํžˆ ์กด์žฌํ•˜๋ฉฐ ์œ ํ•ดํ•œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‘˜์งธ, ์œ ์—ฐ์„ฑ. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ๋งˆ๋‹ค ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋‹ค๋ฅด๋ฏ€๋กœ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์œ ์šฉํ•œ ์ถ”์ƒํ™”๋Š” ์ฝ์„ ๋•Œ ๋ช…ํ™•์„ฑ์„ ์ œ๊ณตํ•˜๋ฉฐ ๋ช‡ ์ค„์˜ ์ฝ”๋“œ๋กœ ๋งŽ์€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.โ€๋ผ๊ณ  ์Šค์›จ๋ด์˜ Java ์ „๋ฌธ๊ฐ€์ธ Jonas Mellin์€ ๋งํ•ฉ๋‹ˆ๋‹ค . Java์˜ ์–ด๋–ค ์ธก๋ฉด์ด ๊ฐ€์žฅ ์ดํ•ดํ•˜๊ธฐ ์–ด๋ ค์› ๊ฑฐ๋‚˜ ํ•œ ๋™์•ˆ ๊ณ ์ฐฉ๋˜์–ด ์žˆ์—ˆ์Šต๋‹ˆ๊นŒ? ์˜๊ฒฌ์— ๊ฒฝํ—˜์„ ๊ณต์œ ํ•˜์‹ญ์‹œ์˜ค.
์ฝ”๋ฉ˜ํŠธ
  • ์ธ๊ธฐ
  • ์‹ ๊ทœ
  • ์ด์ „
์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
์ด ํŽ˜์ด์ง€์—๋Š” ์•„์ง ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค