์ฑ„๋„ํ†ก ์•„์ด์ฝ˜
BEST

๊ธฐ์ดˆ ํƒ„ํƒ„! ๋…ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” Java - Part 2 : OOP์™€ JVM

๋”ฑ ๋‘ ๊ฐ€์ง€๋ฅผ '์ œ๋Œ€๋กœ' ๋‹ค๋ฃน๋‹ˆ๋‹ค. ๋ฐ”๋กœ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ JVM! ๊ฑฐ๊ธฐ์— ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ธฐ๋ฐ˜ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ๋„ ๋ค์œผ๋กœ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.

Thumbnail

์ดˆ๊ธ‰์ž๋ฅผ ์œ„ํ•ด ์ค€๋น„ํ•œ
[Java, ๊ฐ์ฒด์ง€ํ–ฅ] ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฐ ๊ฑธ ๋ฐฐ์šธ ์ˆ˜ ์žˆ์–ด์š”

  • ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•

  • OOP์–ธ์–ด๋ฅผ ์ด์šฉํ•ด ๋งŒ๋“ค์–ด์ง„ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•

  • JVM์˜ ์ž‘๋™์›๋ฆฌ์™€ hashCode์˜ ์‹ค์ฒด

  • ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ ๊ธฐ๋ฐ˜์˜ ์„ ํ˜• ์ž๋ฃŒ๊ตฌ์กฐ

๋ฌธ๋ฒ•์ด์š”? ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ทธ ์ „์— OOP์˜ ๋ณธ์งˆ์„ ์•„๋Š” ๊ฒƒ์ด ๋” ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋ฆฌ๊ณ  JVM์— ๋Œ€ํ•ด์„œ๋„ ์ž˜ ์•Œ์•„์•ผ ๊ฒฝ์Ÿ๋ ฅ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค!


'JVM(Java Virtual Machine)'๊นŒ์ง€'
๋‹ค๋ฃจ๋Š” ์ด์œ  ๐Ÿค”

๐Ÿ“บ Part 2 ์ˆ˜๊ฐ•ํฌ๋ง์ž ์—ฌ๋Ÿฌ๋ถ„ ๊ผญ ์‹œ์ฒญํ•ด์ฃผ์„ธ์š”! ๐Ÿ“บ

์ด ๊ฐ•์˜๋ฅผ ์ œ๋Œ€๋กœ ๋๋‚ธ๋‹ค๋ฉด
์ „๊ณต์ž์— ๋น„๊ฒฌํ•  ์ˆ˜ ์žˆ๋Š” ๋†’์€ ์ดํ•ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ
Java๋ฅผ ํ™œ์šฉ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

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

JVM(*Java Virtual Machine)

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

๊ธฐ๋ณธ ์ž๋ฃŒ๊ตฌ์กฐ๊นŒ์ง€ ํ•œ ๋ฒˆ์—

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

๋””์ž์ธ ํŒจํ„ด

Java ๋ฌธ๋ฒ• ๋ฐ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•๊ณผ ๋”๋ถˆ์–ด ์„ค๊ณ„ ์›์น™(๋””์ž์ธ ํŒจํ„ด ์ผ๋ถ€)๊นŒ์ง€ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ฒจ์šฐ ๋ฌธ๋ฒ•๋งŒ ์•Œ๊ณ  Java๋ฅผ ๋‹ค๋ฃจ๋Š” ์ฝ”๋”๊ฐ€ ์•„๋‹Œ ์ง„์ •ํ•œ ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

โ€ป์—ฌ๊ธฐ์„œ ์ž ๊น! JVM์ด๋ž€?
JVM(Java Virtual Machine)์€ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” ๊ฐ€์ƒ์˜ ์ปดํ“จํ„ฐ์ž…๋‹ˆ๋‹ค.

ํ•™์Šต ๋Œ€์ƒ


์ฝ”๋“œ๋งŒ ์ง€๊ฒน๊ฒŒ ๋”ฐ๋ผ ์น˜๊ณ 
๋จธ๋ฆฌ ์†์— ๋‚จ๋Š” ๊ฒŒ ์—†๋‹ค๊ณ  ๋А๊ปด๋ณธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ž…๋ฌธ์ž


๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ
์ทจ์—…ํ•˜๊ณ  ์‹ถ์€ ์ทจ์—… ์ค€๋น„์ƒ


๋งŽ์ด ์“ฐ๋Š” ์–ธ์–ด๋ผ๊ณ  ํ•ด์„œ
๋ฐฐ์› ์ง€๋งŒ ๋ณธ์งˆ์„ ์ž˜ ๋ชจ๋ฅด๋Š”
1~2๋…„์ฐจ ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž

ํ•™์Šต ๋กœ๋“œ๋งต ๐Ÿƒ๐Ÿป

๋…ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” Java ์‹œ๋ฆฌ์ฆˆ๋Š” ์ด 4๊ฐœ ๊ฐ•์˜๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
๋ถ€๋ก 1,2 ๊ฐ•์˜๋Š” Spring ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ•˜๊ธฐ ์œ„ํ•ด ํ•จ๊ป˜ ๋“ค์œผ๋ฉด ์ข‹์€ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค ๐Ÿ™‚

  • Part 1 : ๊ธฐ์ดˆ์ ์ธ ๋ฌธ๋ฒ•, ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • Part 2 : ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ + ์ž๋ฃŒ๊ตฌ์กฐ

  • Part 3 : ์‹œ์Šคํ…œ ํ™œ์šฉ ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ

  • Part 4 : Spring Framework์œผ๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์œ„ํ•œ ์ค€๋น„

  • ๋ณ„๋„ 1 : ์›น ์ธํ”„๋ผ ๊ธฐ์ˆ ์— ๋Œ€ํ•œ ์ดํ•ด์™€ DB

  • ๋ณ„๋„ 2 : SQL ๊ณ ๊ธ‰


Part 2๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์ž๋ฃŒ๊ตฌ์กฐ ๊ทธ๋ฆฌ๊ณ  JVM์— ๋Œ€ํ•ด ๋ฐฐ์›๋‹ˆ๋‹ค. ํŠนํžˆ JVM์€ Spring framework ๊ธฐ๋ฐ˜ Java ๋ฐฑ์—”๋“œ ์‹ค๋ฌด ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๋ ค๋Š” ๋ถ„๋“ค์—๊ฒŒ ํ•„์ˆ˜์ ์ธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌธ๋ฒ•๊ณผ OOP๋ฅผ ๊ตฌ์‚ฌํ•˜๊ณ  ์‹œ์Šคํ…œ ์šด์˜๊นŒ์ง€ ์ƒ๊ฐ ํ•  ์ˆ˜ ์žˆ๋Š” ์—ญ๋Ÿ‰ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ์ดˆ์„์„ ๋‹ค์ง‘๋‹ˆ๋‹ค.

์ด ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚˜๋ฉด...

  • ์ƒ์†๊ณผ ์žฌ์ •์˜๋ฅผ ๋ฌธ๋ฒ•์œผ๋กœ ์ดํ•ดํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ํ•ต์‹ฌ์›๋ฆฌ๋กœ ์ดํ•ดํ•˜๊ณ  ์ •๋ง ์ œ๋Œ€๋กœ OOP๋ฅผ ๊ตฌ์‚ฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


  • ๋ฌธ์ œ(์ฒ˜๋ฆฌ์กฐ๊ฑด)์„ ๋ช…ํ™•ํžˆ ๋ถ„์„ํ•˜๊ณ  ์–ด๋–ค ํ˜•ํƒœ๋กœ ์ฝ”๋“œํ™” ํ•  ๊ฒƒ์ธ์ง€ ๊ตฌ์ฒด์ ์œผ๋กœ ์ƒ๊ฐ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์˜ˆ์ œ ์ž‘์„ฑ ๊ณผ์ •์—์„œ ๋ฐœ์ƒํ•˜๋Š” ๊ฐ์ข… ์˜ค๋ฅ˜์— ์Šค์Šค๋กœ ๋Œ€์‘ ํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค๋ ฅ์ด ์ƒ๊น๋‹ˆ๋‹ค.


  • JVM์˜ GC(Garbage collector)๊ฐ€ ์–ด๋–ค ์›๋ฆฌ๋กœ ์ž‘๋™ํ•˜๋Š”์ง€ ์ œ๋Œ€๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฐธ์กฐ์ž์™€ ์ธ์Šคํ„ด์Šค๋ฅผ ์™„๋ฒฝํžˆ ๋ถ„๋ฆฌํ•ด ์ƒ๊ฐ ํ•จ์œผ๋กœ์จ NullPointerException ์˜ค๋ฅ˜์— ํ™•์‹คํ•˜๊ฒŒ ๋Œ€์‘ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๋…ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” Java๋Š”
๊ทธ๋ƒฅ Java ๊ฐ•์˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

1โƒฃ
์ž…๋ฌธ ๋‹จ๊ณ„์—์„œ
JVM ๊ตฌ์กฐ๋ถ€ํ„ฐ ๋ฐฐ์›๋‹ˆ๋‹ค.

  • ์ž…๋ฌธ ๋‹จ๊ณ„์ž„์—๋„ JVM ๊ตฌ์กฐ๋ฅผ ๋น„๋กฏํ•ด ๊ฐ์ข… ๊ตฌ์กฐ์ ์ธ ์ด๋ก ๋“ค์„ ํ•จ๊ป˜ ๋ฐฐ์›๋‹ˆ๋‹ค.

    ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ Java๋กœ ๊ฐœ๋ฐœํ•œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ๊ทผ๋ณธ์ ์ธ ์ž‘๋™์›๋ฆฌ๋ฅผ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋Š” ๊ฒฐ๊ตญ ํ›—๋‚  ์‹ค๋ฌด ๊ฐœ๋ฐœ์ž๋กœ ์„ฑ์žฅํ–ˆ์„ ๋•Œ ์‹ ์ž… ๋‹ต์ง€ ์•Š์€ ์žฅ์• ๋Œ€์‘๋Šฅ๋ ฅ์œผ๋กœ ๊ฒฐ์‹ค์„ ๋งบ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


2โƒฃ
์ถ”์ƒ์  ๊ฐœ๋…์ด ์•„๋‹ˆ๋ผ
์ •๋ง ์ œ๋Œ€๋กœ Hash code๋ฅผ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


  • Java๋Š” ์–ธ์–ด์˜ ํŠน์„ฑ์ƒ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ฐธ์กฐํ˜•์œผ๋กœ ์ธ์Šคํ„ด์Šค๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‘˜์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ •์—์„œ ์ฐธ์กฐํ˜• ๋ณ€์ˆ˜๋ฅผ ์ธ์Šคํ„ด์Šค๋กœ ๋™์ผ์‹œ ํ•˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•˜๋Š” Hash code์˜ ์‹ค์ฒด๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ œ๋Œ€๋กœ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3โƒฃ
์„ค๊ณ„(๋””์ž์ธ ํŒจํ„ด)๊นŒ์ง€ ๋‹ค๋ฃจ๋Š”
์ž…๋ฌธ ๊ฐ•์˜

  • class์— ๋Œ€ํ•œ ๋ฌธ๋ฒ•์„ ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ OOP์  ์„ค๊ณ„๋ฅผ ์ดํ•ดํ•˜๊ณ  ํด๋ž˜์Šค๊ฐ„ ๊ด€๊ณ„๋ฅผ ์ œ๋Œ€๋กœ ์ •์˜ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋ฉด Java ์ œ๋Œ€๋กœ ๋ฐฐ์› ๋‹ค๊ณ  ํ•  ์ˆ˜ ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ์ด ๊ฐ•์˜๋Š” ๊ทธ๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ๊ทน๋ณต ํ•  ์ˆ˜ ์žˆ๋„๋ก์ˆ˜์—…์— ์‚ฌ์šฉ๋œ ์˜ˆ์ œ์— ๋””์ž์ธ ํŒจํ„ด์„ ์ผ๋ถ€ ์ ์šฉํ•˜์˜€์Šต๋‹ˆ๋‹ค.

4โƒฃ
์ •๋ฆฌ๋œ ๊ต์œก ์ž๋ฃŒ์™€ ํŒ์„œ ๐Ÿ“œ

  • ๋ชจ๋“  ์ˆ˜์—… ๋‚ด์šฉ์€ PPT์ž๋ฃŒ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์ง€๋งŒ ๋งˆ์น˜ ํ™”์ดํŠธ๋ณด๋“œ์— ํŒ์„œ๋ฅผ ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์„ค๋ช…์ด ์ด์–ด์ง‘๋‹ˆ๋‹ค.

  • ์ด๋ฅผ ํ†ตํ•ด ์ˆ˜๊ฐ•์ž๋Š” ์™„์„ฑ๋œ ํ•˜๋‚˜์˜ ๊ฒฐ๊ณผ๋งŒ ๋ณด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ตฌ์กฐ๊ฐ€ ํƒ„์ƒํ•˜๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ๊ณผ ์ด์œ  ์ „๋ฐ˜์— ๋Œ€ํ•œ ํ๋ฆ„์„ ์ข…ํ•ฉ์ ์œผ๋กœ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5โƒฃ
๋ชฉํ‘œ๋Š” ์ฐจ๋ณ„ํ™”๋œ ๊ฒฝ์Ÿ๋ ฅ๊ณผ ์ทจ์—… ๐Ÿ’ผ

  • ๋ณธ๊ฒฉ์ ์ธ Java ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋ฐฐ์šฐ๊ธฐ์— ์•ž์„œ ๋ณธ ์ˆ˜์—…์ด ์ทจ์—…์„ ๋ชฉํ‘œ๋กœ ํ•˜๊ณ  ์žˆ์Œ์„ ๋ช…ํ™•ํžˆ ์•Œ๋ฆฝ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ 

    ๊ฐ•์‚ฌ์˜ ์˜ค๋žœ ๊ฐ•์˜ ๊ฒฝํ—˜์„ ๊ทผ๊ฑฐ๋กœ ๋ช…ํ™•ํ•œ ํ•™์Šต๋กœ๋“œ๋งต๊ณผ ์†Œ์š”์‹œ๊ฐ„์„ ์ œ์‹œํ•ฉ๋‹ˆ๋‹ค.

  • ์ž˜๋ชป๋œ ์„ ํƒ์œผ๋กœ ์‹œ๊ฐ„์„ ๋‚ญ๋น„ํ•˜๋Š” ์ผ์ด ์—†๋„๋ก ์ฒ˜์Œ๋ถ€ํ„ฐ ์ ์ ˆํ•œ ํ•™์Šต ๋ฐฐ๋ถ„ ๋ฐ ์ผ์ •์„ ์ˆ˜๋ฆฝํ•˜๋„๋ก ์œ ๋„ํ•ฉ๋‹ˆ๋‹ค.

6โƒฃ
๋ฌธ๋ฒ•์„ ๋„˜์–ด ์‹ค์งˆ์  ๋Šฅ๋ ฅ์„
ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•œ ๋””๋ฒ„๊น…๐Ÿž

  • IntelliJ ๋””๋ฒ„๊ฑฐ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ๊ตฌ์ฒด์ ์œผ๋กœ ๋ฐฐ์›๋‹ˆ๋‹ค. ๋‹จ์ˆœ Position breakpoint๋Š” ๋ฌผ๋ก ์ด๊ณ  ์กฐ๊ฑด์‹์„ ๋ฐ˜์˜ํ•ด ๋”์šฑ ์†์‰ฝ๊ฒŒ ํ™œ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

  • JVM์—์„œ ๊ฐ ์ธ์Šคํ„ด์Šค๋“ค์„ ์œ ์ผํ•˜๊ฒŒ ์‹๋ณ„ ํ•  ๋ชฉ์ ์œผ๋กœ ๋ถ€์—ฌ๋œ ObjectID๋ฅผ ์ด์šฉํ•ด Deep copy์™€ Shallow copy๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ• ๋“ฑ ์‹ค์งˆ์ ์ธ๋””๋ฒ„๊น… ๋ฐฉ๋ฒ•์„ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

7โƒฃ
์ง„์ •ํ•œ OOP ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์ง์ ‘ ๊ฒฝํ—˜ํ•  ์ˆ˜ ์žˆ๋Š”
์ด์–ด์ง€๋Š” ์‹ค์Šต๋ฌธ์ œ ์ œ๊ณต ๐Ÿ› 

  • ์ˆ˜์—…์— ๋ฐฐ์šด ๋‚ด์šฉ์„ ์ฆ‰์‹œ ํ™œ์šฉํ•ด ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ๋‹ค์–‘ํ•œ ์‹ค์Šต๋ฌธ์ œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

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

์‹ค์Šต ํ™˜๊ฒฝ

  • ์šด์˜ ์ฒด์ œ ๋ฐ ๋ฒ„์ „(OS): Windows 11

  • ์‚ฌ์šฉ ๋„๊ตฌ: IntelliJ IDEA 2024.2.3 (Community Edition)

  • PC ์‚ฌ์–‘: Windows 11 OS ๋ฐ IntelliJ๊ฐ€ ๋ฌด๋ฆฌ ์—†์ด ์ž‘๋™ ํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์ค€

ํ•™์Šต ์ž๋ฃŒ

  • ์ˆ˜์—…์— ์‚ฌ์šฉ๋œ PPT์ž๋ฃŒ (PDFํŒŒ์ผ๋กœ ์ œ๊ณต)

  • ์ „์ฒด ์˜ˆ์ œ ๋ฐ ํ•„์ˆ˜์‹ค์Šต ๋ฌธ์ œ ์ •๋‹ต(Zip ์••์ถ• ํŒŒ์ผ๋กœ ์ œ๊ณต)

์„ ์ˆ˜ ์ง€์‹ ๋ฐ ์œ ์˜์‚ฌํ•ญ

  • '๊ธฐ์ดˆ ํƒ„ํƒ„! ๋…ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” Java - Part 1'
    https://inf.run/C6khd

์ด๋Ÿฐ ๋ถ„๋“ค๊ป˜
์ถ”์ฒœ๋“œ๋ ค์š”!

ํ•™์Šต ๋Œ€์ƒ์€
๋ˆ„๊ตฌ์ผ๊นŒ์š”?

  • ๋…ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” Java - Part 1์„ ๋๋‚ด๊ณ  ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ถ„

  • ์ง„์ •ํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ์›๋ฆฌ๋ฅผ ์•Œ๊ณ  ์‹ถ์€ ๋ถ„

  • JVM์ด ์ธ์Šคํ„ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฐ ๋‚ด๋ถ€ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์•Œ๊ณ  ์‹ถ์€ ๋ถ„

  • Java์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด๋ฅผ ๊ฒฝํ—˜ํ•˜๊ณ  ์‹ถ์€ ๊ฐœ๋ฐœ์ž

์„ ์ˆ˜ ์ง€์‹,
ํ•„์š”ํ• ๊นŒ์š”?

  • ๋…ํ•˜๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” Java - Part 1

  • ๋„“๊ณ  ์–•๊ฒŒ ์™ธ์›Œ์„œ ์ปด๊ณต ์ „๊ณต์ž ๋˜๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”
๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค.

32,688

๋ช…

์ˆ˜๊ฐ•์ƒ

1,686

๊ฐœ

์ˆ˜๊ฐ•ํ‰

1,022

๊ฐœ

๋‹ต๋ณ€

4.9

์ 

๊ฐ•์˜ ํ‰์ 

20

๊ฐœ

๊ฐ•์˜

๋„๋„ํ•œ ๊ฐœ๋ฐœ์ž TV ์ฑ„๋„ ์ฃผ์ธ์žฅ์ด์ž
30๋…„ ๋„˜๊ฒŒ IT๊ธฐ์ˆ ์˜ ๋ฐ”๋‹ค๋ฅผ ํ•ญํ•ดํ•˜๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž ์ž…๋‹ˆ๋‹ค.  ๋ฐ˜๊ฐ‘์Šต๋‹ˆ๋‹ค. ^^

 

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

77๊ฐœ โˆ™ (20์‹œ๊ฐ„ 18๋ถ„)

ํ•ด๋‹น ๊ฐ•์˜์—์„œ ์ œ๊ณต:

์ˆ˜์—…์ž๋ฃŒ
๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!