Language/JAVA

[JAVA] static์˜ ์˜๋ฏธ์™€ ์‚ฌ์šฉ๋ฒ•

๊ต ๋ฏผ 2024. 8. 19. 09:44

 

๐Ÿ“Œ static : '์ •์ ์ธ' ์ด๋ผ๋Š” ๋œป์œผ๋กœ, JAVA์—์„œ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์‹œ์ ์— ๋งŒ๋“ค์–ด์ง€๊ณ  ํ”„๋กœ๊ทธ๋žจ ์ข…๋ฃŒ ์‹œ์ ์— ์ œ๊ฑฐ๋œ๋‹ค๋Š” ํŠน์ง•์— ๋ถ™์—ฌ์ง„ ์ด๋ฆ„.

 

์ •์  ๋ฉค๋ฒ„ : ์ •์  ๋ณ€์ˆ˜(ํ•„์ˆ˜) + ์ •์  ๋ฉ”์„œ๋“œ

 

์ •์  ๋ณ€์ˆ˜ (= ํด๋ž˜์Šค ๋ณ€์ˆ˜, Static ๋ณ€์ˆ˜) : Static์ด ๋ถ™์€ ๋ฉค๋ฒ„ ๋ณ€์ˆ˜
  • ์ •์  ๋ณ€์ˆ˜๋Š” ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์„ ์‹œ์ž‘ํ•  ๋•Œ ๋”ฑ 1๊ฐœ ๋งŒ๋“ค์–ด์ง„๋‹ค. ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์™€ ๋‹ค๋ฅด๊ฒŒ ๋ณดํ†ต ์—ฌ๋Ÿฌ๊ณณ์—์„œ ๊ณต์œ ํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
  • ํด๋ž˜์Šค์—์„œ ๊ณต์šฉ์œผ๋กœ ๊ด€๋ฆฌํ•œ๋‹ค.
    • ์ธ์Šคํ„ด์Šค๊ฐ€ ์•„๋‹Œ ํด๋ž˜์Šค๋ฅผ ํ†ตํ•ด์„œ ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ์ด ๋” ๋ช…ํ™•ํ•˜๋‹ค.

 

์ •์  ๋ฉ”์„œ๋“œ (=ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ) : Static์ด ๋ถ™์€ ๋ฉ”์„œ๋“œ
  • ์ธ์Šคํ„ด์Šค(๊ฐ์ฒด) ์ƒ์„ฑ ์—†์ด ํด๋ž˜์Šค์— ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ 'ํด๋ž˜์Šค์ด๋ฆ„.๋ณ€์ˆ˜๋ช…'์œผ๋กœ ๋ฐ”๋กœ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ฐธ์กฐ๊ฐ’์˜ ๊ฐœ๋…์ด ์—†์Œ
  • ํด๋ž˜์Šค ๋‚ด๋ถ€์˜ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ๋•Œ, ์ •์  ๋ฉ”์„œ๋“œ๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋‚˜, ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค.
  • ๊ฐ„๋‹จํ•œ ๋ฉ”์„œ๋“œ ํ™œ์šฉ์œผ๋กœ ๋๋‚˜๋Š” ์œ ํ‹ธ๋ฆฌํ‹ฐ์„ฑ ๋ฉ”์„œ๋“œ์— ์ž์ฃผ ์‚ฌ์šฉํ•œ๋‹ค. (์œ ํ‹ธ๋ฆฌํ‹ฐ์„ฑ ๋ฉ”์„œ๋“œ)

 

 

๐Ÿ‘ ์ •์  ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ํŠน์ • ๋ฉ”์„œ๋“œ๋ฅผ ์ž์ฃผ ํ˜ธ์ถœํ•ด์•ผํ•œ๋‹ค๋ฉด,

Static import ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋ž˜์Šค ๋ช…์„ ์ƒ๋žตํ•˜๊ณ  ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

โš™๏ธ ์ž๋ฐ”์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ โš™๏ธ

์ž๋ฐ”์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ตฌ์กฐ๋Š” ํฌ๊ฒŒ ๋งค์„œ๋“œ ์˜์—ญ, ์Šคํƒ ์˜์—ญ, ํž™ ์˜์—ญ 3๊ฐœ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • ๋ฉ”์„œ๋“œ ์˜์—ญ : ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ณตํ†ต ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ด€ํ•œ๋‹ค.
    • ํด๋ž˜์Šค ์ •๋ณด
    • Static ์˜์—ญ
    • ๊ณตํ†ต ๋ฆฌํ„ฐ๋Ÿด ์ƒ์ˆ˜
  • ์Šคํƒ ์˜์—ญ : ์‹ค์ œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๋Š” ์˜์—ญ์œผ๋กœ, ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ๋งˆ๋‹ค ํ•˜๋‚˜์”ฉ ์Œ“์ธ๋‹ค.
    • ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ํ•˜๋‚˜์˜ ์Šคํƒ ํ”„๋ ˆ์ž„์ด ์Œ“์ด๊ณ  ๋ฉ”์„œ๋“œ๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ํ•ด๋‹น ์Šคํ… ํ”„๋ ˆ์ž„์ด ์ œ๊ฑฐ๋œ๋‹ค.
      (์ •ํ™•ํžˆ๋Š”, ๊ฐ ์“ฐ๋ ˆ๋“œ๋ณ„๋กœ ํ•˜๋‚˜์˜ ์‹คํ–‰ ์Šคํ…์ด ์ƒ์„ฑ๋œ๋‹ค.)
  • ํž™ ์˜์—ญ : ๊ฐ์ฒด(์ธ์Šคํ„ด์Šค)๊ฐ€ ์ƒ์„ฑ๋˜๋Š” ์˜์—ญ. new ๋ช…๋ น์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด ์˜์—ญ์„ ์‚ฌ์šฉํ•œ๋‹ค. 
    • ๋” ์ด์ƒ ์ฐธ์กฐ๋˜์ง€ ์•Š๋Š” ๊ฐ์ฒด๋Š” GC์— ์˜ํ•ด ์ œ๊ฑฐ๋œ๋‹ค.

โœ”๏ธ  Static ์˜์—ญ์— ํ• ๋‹น๋œ ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฐ์ฒด๊ฐ€ ๊ณต์œ ํ•˜์—ฌ ํ•˜๋‚˜์˜ ๋ฉค๋ฒ„๋ฅผ ์–ด๋””์„œ๋“ ์ง€ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ๋Š” ์žฅ์ ์„ ๊ฐ€์ง€์ง€๋งŒ GC์˜ ๊ด€๋ฆฌ ๋ฐ–์˜ ์˜์—ญ์— ์กด์žฌํ•˜๊ธฐ์— Static ์˜์—ญ์— ์žˆ๋Š” ๋ฉค๋ฒ„๋“ค์€ ํ”„๋กœ๊ทธ๋žจ์˜ ์ข…๋ฃŒ์‹œ๊นŒ์ง€ ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ• ๋‹น๋œ ์ฑ„๋กœ ์กด์žฌํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ๊ผญ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.