๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Develop/Java

[JAVA] Java๋ž€? ํŠน์ง•๊ณผ ์žฅ๋‹จ์ 

by GERONIMO:) 2022. 2. 18.

 

๐Ÿ˜ ๊ฐœ๋ฐœ์— ๋Œ€ํ•œ ๊ณต๋ถ€๋ฅผ ํ•ด๋ดค๋‹ค๋ฉด ์ตœ์†Œ ํ•œ ๋ฒˆ์ฏค(์‚ฌ์‹ค์€ ์‚ฌ์šฉํ•ด ๋ณธ ์  ์—†๋Š” ์‚ฌ๋žŒ๋„ ์ˆ˜ ์—†์ด) ๋“ค์–ด๋ดค์„ ๊ทธ ์ด๋ฆ„ JAVA.
์ž๋ฐ”๋Š” ํ˜„์žฌ ์ „์„ธ๊ณ„์—์„œ ๊ฐ€์žฅ ์„ ํ˜ธํ•˜๋Š” ๊ฐœ๋ฐœ ์–ธ์–ด TOP3 ์•ˆ์— ๋“ ๋‹ค. (์•„๋ž˜ ์‚ฌ์ง„ ์ฐธ๊ณ )
ํŠนํžˆ ๊ตญ๋‚ด ์‹œ์žฅ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋‹ค.
์ž๋ฐ”์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์„ค๋ช…๊ณผ ์ž๋ฃŒํ˜• ๋ฐ ๊ธฐ๋ณธ ์—ฐ์‚ฐ์ž์— ๋Œ€ํ•ด ์ •๋ฆฌํ–ˆ๋‹ค.

 

ํ‹ฐ์˜ค๋ฒ (TIOBE)์—์„œ ๋งค๋‹ฌ ๋ฐœํ‘œํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ณ„ ์ธ๊ธฐ๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ง€์ˆ˜

 

 

 


โ˜• Java๋ž€?

์ฒ˜์Œ๋ถ€ํ„ฐ ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๋กœ ๊ณ„ํš๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋‹ค.
์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— CPU๋‚˜ ์šด์˜์ฒด์ œ(OS)์— ๊ตฌ์• ๋ฐ›์ง€ ์•Š๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด
    • OOP(Object Oriented Programming)์ด๋ผ๊ณ ๋„ ๋ถ€๋ฅธ๋‹ค.
    • ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ๋ ˆ๊ณ  ์กฐ๊ฐ์„ ๋จผ์ € ๋งŒ๋“  ํ›„์—, ์กฐ๋ฆฝํ•ด์„œ ์ž๋™์ฐจ ๋ชจํ˜•์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด๋‹ค.
    • ์ •ํ™•ํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ๊ฐ์ฒด๋ฅผ ๋จผ์ € ๋งŒ๋“ค๊ณ , ๊ทธ ๊ฐ์ฒด๋“ค์„ ํ•˜๋‚˜์”ฉ ์—ฐ๊ฒฐํ•ด์„œ ์ „์ฒด ํ”„๋กœ๊ทธ๋žจ์„ ์™„์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
    • ํŠน์ง•์—๋Š” ์บก์Аํ™”, ์ƒ์†์„ฑ, ๋‹คํ˜•์„ฑ์ด ์žˆ๋‹ค.
  • ์ž๋ฐ” ๊ฐ€์ƒ ๋จธ์‹ 
    • JVM(Java Virtual Machine)์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
    • ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ๊ณผ OS ์‚ฌ์ด์˜ ์ž๋™ ๋ฒˆ์—ญ๊ธฐ๋‹ค.
      • ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š” OS๋ฅผ ํŒ๋‹จํ•ด์„œ
        ํ˜„์žฌ ์‚ฌ์šฉ ์ค‘์ธ OS์— ๋งž๊ฒŒ ๋ฒˆ์—ญํ•ด ์ค€๋‹ค.
      • ์ฝ”๋“œ๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ํ•ด์„ํ•  ๋•Œ 
        OS๊ฐ€ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญ๋˜๋Š” ๊ณผ์ •์ธ ์ปดํŒŒ์ผ๋ง์„ ๊ฑฐ์น˜๋Š”๋ฐ, 
        C์–ธ์–ด์˜ ๊ฒฝ์šฐ์—๋Š” Window์—์„œ ์ž‘์„ฑํ•œ ์ฝ”๋“œ๋ฅผ Linux์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ฐ˜๋ฉด์—
        ์ž๋ฐ”๋Š” ์ž๋™์œผ๋กœ ๋ฒˆ์—ญํ•ด ์ฃผ๊ธฐ ๋•Œ๋ฌธ์—
        ์–ด๋–ค OS์—์„œ ์ž‘์„ฑํ–ˆ๋Š”์ง€ ์ƒ๊ด€์—†์ด ์–ด๋–ค OS์—์„œ๋“  ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์™€ GC(Garbage Collection)๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.
      • ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ž๋ฐ”๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌํ•œ๋‹ค. (C์–ธ์–ด๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค)
      • ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋ฉด ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹นํ•˜๊ณ ,
        ์‚ฌ์šฉ ํ›„์—๋Š” Garbage Collector๋ฅผ ์‹คํ–‰์‹œ์ผœ์„œ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

 

 

 


โ˜• Java์˜ ์žฅ๋‹จ์ 

๐Ÿ˜Š ์žฅ์ 

  • ์šด์˜์ฒด์ œ์™€๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. (๊ฐ์ฒด ์ง€ํ–ฅ ์–ธ์–ด๊ธฐ ๋•Œ๋ฌธ)
  • ๋ถˆํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค๋ฅธ ์–ธ์–ด(C์–ธ์–ด)์— ๋น„ํ•ด ๋ฐฐ์šฐ๊ธฐ ์‰ฝ๋‹ค.
  • ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋“ฑ์„ ์ง€์›ํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ์•ˆ์ •์„ฑ์ด ๋†’๋‹ค. (JVM์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ)
  • OS์— ์ƒ๊ด€์—†์ด ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ๊ตฌํ˜„์ด ์‰ฝ๋‹ค. (์Šค๋ ˆ๋“œ ๊ด€๋ จ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ API๋ฅผ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ)
  • ์—ฐ์‚ฐ์ž ์˜ค๋ฒ„๋กœ๋”ฉ์„ ๊ธˆ์ง€ํ•˜๊ณ  ์ œ๋„ค๋ฆญ์„ ๋„์ž…ํ•จ์œผ๋กœ์จ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์˜€๋‹ค.
  • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ์˜คํ”ˆ์†Œ์Šค๊ฐ€ ๋งŽ๊ณ , ๊ฒ€์ฆ๋œ ๊ฒƒ๋“ค๋„ ๋งŽ์•„์„œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์‰ฝ๋‹ค.
  • ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์–ด์„œ ์ฐธ๊ณ ํ•  ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋งŽ๋‹ค.

 

๐Ÿ˜ ๋‹จ์ 

  • JVM์œผ๋กœ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ์‹คํ–‰ ์†๋„๊ฐ€ ๋А๋ฆฌ๋‹ค.
  • ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ์ž˜ ๋˜์–ด ์žˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž๊ฐ€ ์ผ์ผ์ด ์ฒ˜๋ฆฌ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค.
  • ๋‹ค๋ฅธ ์–ธ์–ด์— ๋น„ํ•ด ์ž‘์„ฑํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ์˜ ๊ธธ์ด๊ฐ€ ๊ธธ๋‹ค.

 

 

 

 

 

 

 

๋ฐ˜์‘ํ˜•

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

[JAVA] Java์˜ ๋ณ€์ˆ˜ ๋ฐ ์ƒ์ˆ˜, ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•  (0) 2022.02.21

๋Œ“๊ธ€