CodeGym/Java Blog/๋ฌด์ž‘์œ„์˜/์ˆ˜ํ•™, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜. ์ž๋ฐ”์— ๋›ฐ์–ด๋“ค๊ธฐ ์ „์— ๋ฐฐ์›Œ์•ผ ํ•  ๊ฒƒ
John Squirrels
๋ ˆ๋ฒจ 41
San Francisco

์ˆ˜ํ•™, ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ, ์•Œ๊ณ ๋ฆฌ์ฆ˜. ์ž๋ฐ”์— ๋›ฐ์–ด๋“ค๊ธฐ ์ „์— ๋ฐฐ์›Œ์•ผ ํ•  ๊ฒƒ

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

AWeith์˜ ์‚ฌ์ง„ / CC BY-SA 4.0

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์ „์— ๊ณต๋ถ€ํ•ด์•ผ ํ•  ๊ฒƒ

  • ์ˆ˜ํ•™.

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

  • ์ปดํ“จํŒ… ์‚ฌ๊ณ ๋ ฅ๊ณผ ์•Œ๊ณ ๋ฆฌ์ฆ˜.

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

  • ๋ถ€์šธ ๋Œ€์ˆ˜ ๋ฐ ์ด์ง„๋ฒ•.

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ก ์˜ ๋˜ ๋‹ค๋ฅธ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์€ ์ด์ง„ ๋ฐ ๋ถ€์šธ ๋Œ€์ˆ˜์ด๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ์ฃผ์ œ์— ๋Œ€ํ•ด ๋” ๊นŠ์ด ์•Œ์•„๋ณผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด์ง„ ์‹œ์Šคํ…œ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹๊ณผ ์ด์ง„์ˆ˜ ์‹œ์Šคํ…œ์—์„œ ์ƒ๊ฐํ•˜๊ณ  ์ž‘๋™ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šฐ๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด(์ปดํ“จํ„ฐ ์ž‘๋™ ๋ฐฉ์‹).

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

  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํŒจ๋Ÿฌ๋‹ค์ž„.

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

์ž๋ฐ”๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์ „์— ๋ฌด์—‡์„ ๊ณต๋ถ€ํ•ด์•ผ ํ• ๊นŒ์š”?

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

  • ์„ค๊ณ„ ์›์น™๊ณผ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์›๋‹ˆ๋‹ค.

HERE Technologies์˜ ์†Œํ”„ํŠธ์›จ์–ด ์—”์ง€๋‹ˆ์–ด์ธ Rohan Urkude๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์กฐ์–ธ ํ–ˆ์Šต๋‹ˆ๋‹ค . (SOLID, KISS ๋“ฑ), ๋””์ž์ธ ํŒจํ„ด(๊ฐ„๋‹จํ•œ ์ดํ•ด) ๋ฐ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ(๋ชจ๋“  ์–ธ์–ด์˜ ๋ชจ๋“  DS ๋’ค์— ์žˆ๋Š” ๊ธฐ๋ณธ ๊ตฌ์กฐ) ๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ณ„์†ํ•ด์„œ ๋ชจ๋“  ์–ธ์–ด๋ฅผ ๋ฐฐ์šฐ๊ณ  ์–ผ๋งˆ๋‚˜ ๋งŽ์€ ์‹œ๊ฐ„์„ ์ ˆ์•ฝํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋ชจ๋“  ๊ฒƒ์˜ ์š”์ .โ€

  • Java๊ฐ€ CLASSPATH๋ฅผ ๋จผ์ € ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ด…๋‹ˆ๋‹ค.

์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์ „๋ฌธ๊ฐ€์ด์ž 'SQL ์•ˆํ‹ฐํŒจํ„ด: ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์œ„ํ—˜ ๋ฐฉ์ง€' ๊ต๊ณผ์„œ์˜ ์ €์ž์ธ Bill Karwin์€ "Java์—์„œ ๋ฌธ์ œ์˜ 90%๋Š” CLASSPATH๋กœ ์ธํ•ด" ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ชจ๋“  ์‚ฌ๋žŒ์ด Java์—์„œ CLASSPATH๋ฅผ ๋จผ์ € ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฐฐ์šธ ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. โ€œ์ž๋ฐ”๊ฐ€ CLASSPATH๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๋“œํ•  ํด๋ž˜์Šค๋ฅผ ์ฐพ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ๋ฐฐ์›Œ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  Java ์„ค๋ช…์„œ๋‚˜ ํŠœํ† ๋ฆฌ์–ผ์—์„œ ์ด๋ฅผ ๋‹ค๋ฃจ์–ด์•ผ ํ•˜์ง€๋งŒ ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.โ€ ๋ผ๊ณ  Karwin์€ ๋งํ•ฉ๋‹ˆ๋‹ค .

  • OOP ๊ฐœ๋… ๋ฐ/๋˜๋Š” C++๋ฅผ ๋ฐฐ์šฐ์‹ญ์‹œ์˜ค.

IBM์˜ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž์ธ Pratik Patil์€ ์ดˆ๋ณด ํ•™์Šต์ž์—๊ฒŒ C++ ๋˜๋Š” ๊ธฐ๋ณธ OOP(๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ) ๊ฐœ๋…์„ ๋จผ์ € ๋งˆ์Šคํ„ฐํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค . ์•„๋ฌด๊ฒƒ๋„ ๋ชจ๋ฅธ๋‹ค๋ฉด OOPS ๊ฐœ๋…์„ ๋ฐฐ์šฐ๊ณ  ๋งค์šฐ ๋ช…ํ™•ํ•˜๊ฒŒ ๋งŒ๋“  ๋‹ค์Œ Java๋กœ ๊ฐ€์‹ญ์‹œ์˜ค.โ€
์ฝ”๋ฉ˜ํŠธ
  • ์ธ๊ธฐ
  • ์‹ ๊ทœ
  • ์ด์ „
์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‚จ๊ธฐ๋ ค๋ฉด ๋กœ๊ทธ์ธ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
์ด ํŽ˜์ด์ง€์—๋Š” ์•„์ง ์ฝ”๋ฉ˜ํŠธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค