[Java] JVM์ด๋ž€? ๊ฐœ๋…๊ณผ ์ž๋ฐ” ์ปดํŒŒ์ผ ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ

2025. 10. 3. 02:10ยทโ˜•Java

๋ชฉํ‘œ

์ž๋ฐ” ์†Œ์Šค ํŒŒ์ผ(.java)์„ JVM์œผ๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ


JVM์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€

  • JVM(Java Virtual Machine): ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ 
  • ์ž๋ฐ”๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ƒ ๊ธฐ๊ณ„(์ปดํ“จํ„ฐ)
  • Java๊ฐ€ OS์— ์ข…์†๋ฐ›์ง€ ์•Š๊ณ , ์–ด๋А OS ์œ„์—์„œ๋“  ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ ํ•„์š”ํ•œ ์žฅ์น˜
  • ์ฆ‰, OS์— ์ข…์†๋ฐ›์ง€ ์•Š๊ณ  CPU๊ฐ€ Java ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ€์ƒ ์ปดํ“จํ„ฐ

์ปดํŒŒ์ผํ•˜๋Š” ๋ฐฉ๋ฒ•

์ผ๋ฐ˜์ ์ธ ์–ธ์–ด๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ CPU๊ฐ€ ๋ฐ”๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„๋กœ ํ•œ ๋ฒˆ์— ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์ž๋ฐ”๋Š” JVM์ด๋ผ๋Š” ์ค‘๊ฐ„ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ€ํ™˜ ๊ณผ์ •์ด ๋‘ ๋‹จ๊ณ„๋กœ ๋‚˜๋ˆ„์–ด์ง‘๋‹ˆ๋‹ค.

 

  • 1์ฐจ ๋ณ€ํ™˜: ์†Œ์Šค ์ฝ”๋“œ → ๋ฐ”์ดํŠธ์ฝ”๋“œ(Bytecode)

์ž๋ฐ” ์†Œ์Šค ์ฝ”๋“œ(`.java`)๊ฐ€ ์ž๋ฐ” ๋ฐ”์ดํŠธ์ฝ”๋“œ( `.class`)๋กœ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

์ด๋•Œ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ž€ CPU๊ฐ€ ์•„๋‹ˆ๋ผ, JVM์ด ์ธ์‹ํ•˜๋Š” ์–ธ์–ด๋กœ 

์ž๋ฐ”์˜ ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ์„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์š”์†Œ์ž…๋‹ˆ๋‹ค.

 

  • 2์ฐจ ๋ณ€ํ™˜: ๋ฐ”์ดํŠธ์ฝ”๋“œ → ๊ธฐ๊ณ„์–ด

JVM์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„ CPU๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์œผ๋กœ

`.class` ํŒŒ์ผ์„ ์ฝ์–ด ํ•ด๋‹น OS์— ๋งž๋Š” ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ํ•ด์„๋ฉ๋‹ˆ๋‹ค.

 

์ฆ‰, OS๊ฐ€ ์ž๋ฐ” ์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ธ์‹ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, OS ์œ„์—์„œ ๋™์ž‘ํ•˜๋Š” JVM์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๋ฐ›์•„์„œ OS์˜ ์–ธ์–ด๋กœ ํ†ต์—ญํ•ด ์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

public class HelloWorld {

  public static void main(String[] args) {
    System.out.println("JVM ์‹ค์Šต");
  }

}

 

`javac` ๋ช…๋ น์–ด๋กœ ์ž๋ฐ” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

`javac HelloWorld.java`๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์•„๋ž˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ `.class` ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

 


์‹คํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•

`java` ๋ช…๋ น์–ด๋กœ `.class` ํŒŒ์ผ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

์ž๋ฐ” ๋ฐ”์ดํŠธ์ฝ”๋“œ๋Š” CPU๊ฐ€ ์•„๋‹ˆ๋ผ JVM์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด๋กœ,

JVM์€ ์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ•ด๋‹น OS์˜ CPU๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋•Œ JVM์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋ฐฉ์‹์€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

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

์ด์ฒ˜๋Ÿผ ๋А๋ฆฐ ์†๋„๋ผ๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ์˜ ๋‹จ์ ์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ž€?

  • JIT(Just-In-Time) ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ ๋ฐฉ์‹์œผ๋กœ ์‹คํ–‰ํ•˜๋‹ค ์ ์ ˆํ•œ ์‹œ์ ์— ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ ๋ธ”๋ก(๋ฉ”์†Œ๋“œ ๋‹จ์œ„)๋ฅผ ๊ธฐ๊ณ„์–ด ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.
  • ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ(๊ธฐ๊ณ„์–ด)๋Š” ์บ์‹œ์— ๋ณด๊ด€๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ๋ฒˆ ์ปดํŒŒ์ผ๋œ ์ฝ”๋“œ๋Š” ์ดํ›„ ์‹คํ–‰ ์‹œ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

JIT ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ปดํŒŒ์ผํ•˜๋ฉด ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ํ•ด์„ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋ฏ€๋กœ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ผ๋ฉด ์ธํ„ฐํ”„๋ฆฌํŒ…์„ ํ•˜๋Š” ๊ฒŒ ๋‚ซ์Šต๋‹ˆ๋‹ค.

๋”ฐ๋ผ์„œ JVM์€ ๋‚ด๋ถ€์—์„œ ํ•ด๋‹น ๋ฉ”์†Œ๋“œ์˜ ์ˆ˜ํ–‰ ๋นˆ๋„๋ฅผ ํ™•์ธํ•œ ํ›„ ์ผ์ • ์ •๋„๋ฅผ ๋„˜์„ ๋•Œ JIT ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.


JVM ๊ตฌ์„ฑ ์š”์†Œ

 

JVM ๋‚ด๋ถ€ ํฌ๊ฒŒ ํด๋ž˜์Šค ๋กœ๋”, ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ, ์‹คํ–‰ ์—”์ง„์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.

  • ํด๋ž˜์Šค ๋กœ๋” ์‹œ์Šคํ…œ(Class Loader System)
    • ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์— ํ•„์š”ํ•œ ํด๋ž˜์Šค ํŒŒ์ผ์„ JVM ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์œผ๋กœ ๋™์ ์œผ๋กœ ๋กœ๋“œํ•˜๋Š” ์—ญํ• 
    • ๋ฐ”์ดํŠธ์ฝ”๋“œ(`.class`)๋“ค์„ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋ฐฐ์น˜์‹œํ‚ค๋Š” ์—ญํ• 
    • ํด๋ž˜์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ ๋ฒˆ์— ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ , ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋™์ ์œผ๋กœ ์˜ฌ๋ฆฝ๋‹ˆ๋‹ค. 
  • ๋ฉ”๋ชจ๋ฆฌ(Runtime Data Area)
    • ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์„ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ณต๊ฐ„
    • ์ด ์˜์—ญ์€ ๋‹ค์‹œ ์Šค๋ ˆ๋“œ ๊ณต์œ  ์˜์—ญ๊ณผ ์Šค๋ ˆ๋“œ ๋…๋ฆฝ ์˜์—ญ์œผ๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.
    • ์Šค๋ ˆ๋“œ ๊ณต์œ  ์˜์—ญ
      • ๋ชจ๋“  ์Šค๋ ˆ๋“œ๊ฐ€ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ ์˜์—ญ์œผ๋กœ ํž™, ๋ฉ”์†Œ๋“œ ์˜์—ญ์ด ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.
      • ํž™(heap): ๊ฐ์ฒด์™€ ๋ฐฐ์—ด์ด ์ €์žฅ๋˜๋Š” ์˜์—ญ
      • ๋ฉ”์†Œ๋“œ ์˜์—ญ: ํด๋ž˜์Šค ๊ตฌ์กฐ ์ •๋ณด, ์ •์  ๋ณ€์ˆ˜, ์ƒ์ˆ˜ ๋“ฑ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ
    • ์Šค๋ ˆ๋“œ ๋…๋ฆฝ ์˜์—ญ
      • ๊ฐ ์Šค๋ ˆ๋“œ๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ๋งˆ๋‹ค ๋…๋ฆฝ์ ์œผ๋กœ ํ• ๋‹น๋˜๋Š” ์˜์—ญ์œผ๋กœ ์Šคํƒ, PC ๋ ˆ์ง€์Šคํ„ฐ, ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”์†Œ๋“œ ์Šคํƒ์ด ํ•ด๋‹น๋ฉ๋‹ˆ๋‹ค.
      • ์Šคํƒ(stack): ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœ ์‹œ ์‚ฌ์šฉ๋˜๋Š” ์ง€์—ญ ๋ณ€์ˆ˜, ๋งค๊ฐœ ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ ์ •๋ณด ๋“ฑ์ด ์ €์žฅ๋˜๋Š” ์˜์—ญ
      • PC ๋ ˆ์ง€์Šคํ„ฐ(Program Counter Register): ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ JVM ๋ช…๋ น์–ด์˜ ์ฃผ์†Œ๊ฐ€ ์ €์žฅ๋˜๋Š” ์˜์—ญ
      • ๋„ค์ดํ‹ฐ๋ธŒ ๋ฉ”์†Œ๋“œ ์Šคํƒ(Native Method Stack): ์ž๋ฐ” ์™ธ์˜ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ๋„ค์ดํ‹ฐ๋ธŒ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ
  • ์‹คํ–‰ ์—”์ง„(Execution Engine)
    • ํด๋ž˜์Šค ๋กœ๋”๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค๋†“์€ ๋ฐ”์ดํŠธ์ฝ”๋“œ(ํด๋ž˜์Šค ํŒŒ์ผ)๋ฅผ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜๋Š” ์—ญํ• 
    • ์ธํ„ฐํ”„๋ฆฌํ„ฐ(Interpreter): ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ํ•œ ์ค„์”ฉ ์ฝ์–ด ์ฆ‰์‹œ ๊ธฐ๊ณ„์–ด๋กœ ํ•ด์„ํ•˜์—ฌ ์‹คํ–‰ํ•˜๋Š” ๋ฐฉ์‹
    • JIT ์ปดํŒŒ์ผ๋Ÿฌ(Just-In-Time Compiler): ์ž์ฃผ ์‚ฌ์šฉ๋˜๋Š” ์ฝ”๋“œ๋ฅผ ๊ธฐ๊ณ„์–ด๋กœ ์ปดํŒŒ์ผํ•˜์—ฌ ์บ์‹œํ•ด๋‘๋Š” ๋ฐฉ์‹
    • ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰ํ„ฐ(Garbage Collector, GC): ํž™ ์˜์—ญ์—์„œ ๋” ์ด์ƒ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์ฐพ์•„ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐํ•˜๊ณ  ์ž์›์„ ํšŒ์ˆ˜ํ•˜๋Š” ์—ญํ• 

JDK์™€ JRE

JRE๋ž€?: JVM + ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • Java Runtime Environment: ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์‹คํ–‰์„ ์œ„ํ•œ ํ™˜๊ฒฝ
  • JVM๊ณผ ํ•ต์‹ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์ปดํŒŒ์ผ ๋œ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ํŒจํ‚ค์ง€
  • ์ด๋ฏธ ๋งŒ๋“ค์–ด์ง„ ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ(`.jar` ๋˜๋Š” `.class`)์„ ์‹คํ–‰๋งŒ ํ•  ๋•Œ ํ•„์š”

JDK๋ž€?: JRE + ๊ฐœ๋ฐœ ๋„๊ตฌ

  • Java Development Kit: ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋„๊ตฌ ์„ธํŠธ
  • JRE+๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ํˆด๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์œผ๋ฉฐ ๊ฐœ๋ฐœ(์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ์ปดํŒŒ์ผํ•˜๊ณ , ๋””๋ฒ„๊น…)ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”
  • Java11๋ถ€ํ„ฐ๋Š” JDK๋งŒ ์ œ๊ณตํ•˜๋ฉฐ, JRE๋Š” ๋”ฐ๋กœ ์ œ๊ณต๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ ์ž๋ฃŒ

  • ๋ชฉํ‘œ์™€ ํ•™์Šต ๋‚ด์šฉ์€ ๋ฐฑ๊ธฐ์„ ๋‹˜์˜ ์Šคํ„ฐ๋”” ํ”„๋กœ์ ํŠธ๋ฅผ ์ฐธ๊ณ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • [JAVA] JVM์ด๋ž€? ๊ฐœ๋… ๋ฐ ๊ตฌ์กฐ (JDK, JRE, JIT, ๊ฐ€๋น„์ง€ ์ฝœ๋ ‰ํ„ฐ...)
  • [1์ฃผ์ฐจ] JVM์€ ๋ฌด์—‡์ด๋ฉฐ ์ž๋ฐ” ์ฝ”๋“œ๋Š” ์–ด๋–ป๊ฒŒ ์‹คํ–‰ํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€.

'โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Java] ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) ๊ฐœ๋…๊ณผ ์ž๋ฐ” ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ  (0) 2025.11.13
[Java] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection) ๊ธฐ๋ณธ ๊ฐœ๋…  (0) 2025.10.18
[Java] ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฒฝ์Ÿ ์ƒํƒœ์™€ ํ•ด๊ฒฐ ์ „๋žต ์ •๋ฆฌ  (1) 2025.06.02
[์ž๋ฃŒ๊ตฌ์กฐ][Java] HashSet ์ค‘๋ณต ์ œ๊ฑฐ ๋™์ž‘ ์›๋ฆฌ: HashSet์€ ์–ด๋–ป๊ฒŒ ์ค‘๋ณต์„ ํ™•์ธํ•˜๋‚˜์š”?  (0) 2025.02.13
[Java] ์ŠคํŠธ๋ฆผ Stream ๊ฐœ๋…๊ณผ Stream API ์ด์ •๋ฆฌ  (1) 2025.02.13
'โ˜•Java' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Java] ์šฐ์„ ์ˆœ์œ„ ํ(Priority Queue) ๊ฐœ๋…๊ณผ ์ž๋ฐ” ๊ธฐ๋ณธ ๋ฉ”์†Œ๋“œ
  • [Java] ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜(Garbage Collection) ๊ธฐ๋ณธ ๊ฐœ๋…
  • [Java] ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ์˜ ๊ฒฝ์Ÿ ์ƒํƒœ์™€ ํ•ด๊ฒฐ ์ „๋žต ์ •๋ฆฌ
  • [์ž๋ฃŒ๊ตฌ์กฐ][Java] HashSet ์ค‘๋ณต ์ œ๊ฑฐ ๋™์ž‘ ์›๋ฆฌ: HashSet์€ ์–ด๋–ป๊ฒŒ ์ค‘๋ณต์„ ํ™•์ธํ•˜๋‚˜์š”?
์†Œ์˜ ๐Ÿ€
์†Œ์˜ ๐Ÿ€
Hello World โœจ
  • ์†Œ์˜ ๐Ÿ€
    Soyoung's Dev Lab
    ์†Œ์˜ ๐Ÿ€
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
  • ๊ธ€์“ฐ๊ธฐ ๊ด€๋ฆฌ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (79)
      • ๐Ÿ“ข ๊ฒŒ์‹œํŒ (0)
      • ๐ŸŒฟSpring (20)
      • โ˜•Java (7)
        • ์ฝ”๋”ฉํ…Œ์ŠคํŠธ (7)
      • โš™๏ธ CS (26)
        • ๐Ÿ›œ ๋„คํŠธ์›Œํฌ (5)
        • ๐Ÿ“Š ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (8)
        • ๐Ÿ–ฒ๏ธ์šด์˜์ฒด์ œ (9)
        • ๐Ÿ“š ์ž๋ฃŒ๊ตฌ์กฐ & ์•Œ๊ณ ๋ฆฌ์ฆ˜ (4)
      • ๐Ÿ“ค ๋ฐฐํฌ (4)
        • Docker (4)
        • AWS (0)
      • ๐Ÿ“ฐ ๊ธฐํƒ€ ๊ฐœ๋ฐœ ์ž๋ฃŒ (12)
      • ๐Ÿ–ฅ๏ธ ํ”„๋กœ์ ํŠธ (0)
      • ๐Ÿ‘ฉ‍๐Ÿ’ป ํ™œ๋™ & ํ›„๊ธฐ (1)
      • ๐Ÿต ์ด์•ผ๊ธฐ (2)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํƒœ๊ทธ
  • ๋งํฌ

    • github
    • velog
  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Spring Security
    ์œ„ํด๋ฆฌ ํŽ˜์ดํผ
    ๊ฐ์ฒด์ง€ํ–ฅํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ์„œ๋ฒ„
    Java
    ๋ฐฐํฌ
    ๊ธฐ์ˆ  ๋ฉด์ ‘
    GIT
    ๊ฐœ๋ฐœ
    ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ
    ์šด์˜์ฒด์ œ
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    Spring
    ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค
    ๋„คํŠธ์›Œํฌ
    ์ž๋ฃŒ๊ตฌ์กฐ
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    docker
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
์†Œ์˜ ๐Ÿ€
[Java] JVM์ด๋ž€? ๊ฐœ๋…๊ณผ ์ž๋ฐ” ์ปดํŒŒ์ผ ๊ณผ์ • ์ดํ•ดํ•˜๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”