Hamutaro - Hamtaro 4

Backend/Java

[JAVA] JAVA์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•

carsumin 2022. 1. 11. 14:09

 

 

Java์˜ ๊ฐœ๋…

 

1. ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (OOP, Object-Oriented Programming)

  • Java๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ํ‘œํ˜„
  • ์บก์Аํ™” : ๋ฐ์ดํ„ฐ์™€ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜๋‚˜์˜ ํด๋ž˜์Šค๋กœ ๋ฌถ์–ด ์™ธ๋ถ€์—์„œ ์ ‘๊ทผ ์ œ์–ด
  • ์ƒ์† : ๊ธฐ์กด ํด๋ž˜์Šค์˜ ํŠน์„ฑ์„ ์ƒ์†๋ฐ›์•„ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ
  • ๋‹คํ˜•์„ฑ : ๊ฐ™์€ ๋ฉ”์„œ๋“œ๊ฐ€ ๋‹ค์–‘ํ•œ ํ˜•ํƒœ๋กœ ๋™์ž‘
  • ์ถ”์ƒํ™” : ๋ถˆํ•„์š”ํ•œ ์„ธ๋ถ€์‚ฌํ•ญ์„ ์ˆจ๊ธฐ๊ณ  ์ค‘์š”ํ•œ ๊ฐœ๋…๋งŒ ๋…ธ์ถœ

2. ๋…๋ฆฝ์„ฑ

  • Java๋Š” JVM ์œ„์—์„œ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ํŠน์ • ์šด์˜์ฒด์ œ์— ์ข…์†๋˜์ง€ ์•Š์Œ
  • Java ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ฝ”๋“œ๋ฅผ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉฐ, ์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋Š” JVM์—์„œ ์‹คํ–‰๋จ

3. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ

  • Java๋Š” ์ž๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•จ
  • GC๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋ฅผ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์—์„œ ์ œ๊ฑฐํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐฉ์ง€ํ•จ

4. ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ (Multithreading)

  • Java๋Š” ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋”ฉ์„ ์ง€์›ํ•˜์—ฌ, ์—ฌ๋Ÿฌ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๋™์‹œ์— ์—ฌ๋Ÿฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ž์›์„ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‘๋‹ต์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ

5. ๋ณด์•ˆ (Security)

  • Java๋Š” ๊ฐ•๋ ฅํ•œ ๋ณด์•ˆ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ ์ž๋ฐ” ์• ํ”Œ๋ฆฟ๊ฐ™์€ ์ธํ„ฐ๋„ท ๊ธฐ๋ฐ˜ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ œํ•œํ•จ
  • Java ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ž๋ฐ” ์ƒŒ๋“œ๋ฐ•์Šค ๋‚ด์—์„œ ์‹คํ–‰๋˜๋ฉฐ ์•…์„ฑ์ฝ”๋“œ๋กœ๋ถ€ํ„ฐ ์‹œ์Šคํ…œ์„ ๋ณดํ˜ธ

6. ๊ฐ•๋ ฅํ•œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ

  • Java๋Š” ํ’๋ถ€ํ•œ ํ‘œ์ค€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ œ๊ณตํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Œ
  • ํŒŒ์ผ ์ž…์ถœ๋ ฅ, ๋„คํŠธ์›Œํฌ ํ†ต์‹ , ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ, GUI ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ

 

Java์˜ ์ฃผ์š” ํŠน์ง•

 

1. ๊ฐ„๊ฒฐํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋ฌธ๋ฒ•

  • ํฌ์ธํ„ฐ๋‚˜ ๋‹ค์ค‘ ์ƒ์†๊ฐ™์€ ๋ณต์žกํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•˜๊ณ  ์ฐธ๊ณ ์™€ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋Œ€์ฒด

2. ์ปดํŒŒ์ผ ์–ธ์–ด์ด๋ฉด์„œ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด

  • ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผํ•˜์—ฌ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ์ด ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ JVM์ด ํ•ด์„ํ•˜์—ฌ ์‹คํ–‰
  • Java๋Š” ๋น ๋ฅธ ์‹คํ–‰ ์†๋„์™€ ํ•จ๊ป˜ ํ”Œ๋žซํผ ๋…๋ฆฝ์„ฑ ์ œ๊ณต

3. ๊ณ ์„ฑ๋Šฅ

  • ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์™€ ๋‹ฌ๋ฆฌ ๋ฐ”์ดํŠธ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹คํ–‰๋˜๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๋Šฅ์ด ๋น„๊ต์  ๋†’์Œ

4. ํฌ๊ด„์ ์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ

  • ๊ฐ•๋ ฅํ•œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜๋ฅผ ๋ณด๋‹ค ์‰ฝ๊ฒŒ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
  • try-catch-finally ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ˆ์™ธ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌ

5. ๋™์  ๋กœ๋”ฉ

  • Java๋Š” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ํ•„์š”ํ•œ ํด๋ž˜์Šค๋ฅผ ๋™์ ์œผ๋กœ ๋กœ๋”ฉํ•  ์ˆ˜ ์žˆ์Œ
  • ํ”„๋กœ๊ทธ๋žจ์˜ ์œ ์—ฐ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Œ