๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๊ฐœ๋ฐœ ์ผ์ง€ ๐Ÿ‘ฉ‍๐Ÿ’ป

static ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ํ•ญ์ƒ ์˜ฌ๋ผ๊ฐ€ ์žˆ๋‚˜์š”?

by chuyj15 2025. 6. 23.
728x90
๋ฐ˜์‘ํ˜•
SMALL

๋งŽ์€ ๊ฐœ๋ฐœ์ž๋ถ„๋“ค์ด static = ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€ ์žˆ์Œ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋Š”๋ฐ, ๊ทธ๊ฑด ์•ฝ๊ฐ„ ์˜คํ•ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์–ด์š”. ์ž์„ธํžˆ ์„ค๋ช…ํ•ด๋ณผ๊ฒŒ์š”. ๐Ÿ˜Š

 

๐Ÿ” static ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ํ•ญ์ƒ ์˜ฌ๋ผ๊ฐ€ ์žˆ๋‚˜์š”?

๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋งํ•˜๋ฉด: "์•„๋‹ˆ์š”, ๊ผญ ๊ทธ๋ ‡์ง„ ์•Š์Šต๋‹ˆ๋‹ค."

๐Ÿ’ก static์ด ์˜๋ฏธํ•˜๋Š” ๊ฑด "์ธ์Šคํ„ด์Šค์— ์ข…์†๋˜์ง€ ์•Š๋Š”๋‹ค"๋Š” ๊ฒƒ

  • static์œผ๋กœ ์„ ์–ธ๋œ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” ์™ธ๋ถ€ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ์—†์–ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๊ทธ๋ ‡๋‹ค๊ณ  ํ•ด์„œ ๊ทธ ํด๋ž˜์Šค์˜ ๊ฐ์ฒด๊ฐ€ ๋ฌด์กฐ๊ฑด ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์ฃผํ•œ๋‹ค๋Š” ๋œป์€ ์•„๋‹ˆ์—์š”.

์ฆ‰:

๊ตฌ๋ถ„์˜๋ฏธ
static ํ‚ค์›Œ๋“œ ํด๋ž˜์Šค๊ฐ€ ์™ธ๋ถ€ ์ธ์Šคํ„ด์Šค ์—†์ด ๋…๋ฆฝ์ ์œผ๋กœ ์กด์žฌ ๊ฐ€๋Šฅ
๋ฉ”๋ชจ๋ฆฌ ํ•ญ์ƒ ์ƒ์ฃผ ์—ฌ๋ถ€ โŒ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ๊ณ„์† ์˜ฌ๋ผ๊ฐ€ ์žˆ๋Š” ๊ฑด ์•„๋‹˜
์–ธ์ œ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€๋Š”๊ฐ€? ๊ฐ์ฒด๋ฅผ new ํ•˜๊ฑฐ๋‚˜ Jackson์ด ์—ญ์ง๋ ฌํ™” ์‹œ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ๋•Œ
 

๐Ÿค” ๊ทธ๋Ÿผ ์–ธ์ œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ฐจ์ง€ํ•˜๋‚˜์š”?

์ž๋ฐ”์—์„œ ํด๋ž˜์Šค(์ •ํ™•ํžˆ ๋งํ•˜๋ฉด ํด๋ž˜์Šค์˜ ๋ฐ”์ดํŠธ์ฝ”๋“œ)๋Š” ๋‹ค์Œ ๊ฒฝ์šฐ์— ํด๋ž˜์Šค๋กœ๋”์— ์˜ํ•ด ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋”ฉ๋ฉ๋‹ˆ๋‹ค:

  1. ํ”„๋กœ๊ทธ๋žจ์—์„œ ํ•ด๋‹น ํด๋ž˜์Šค๋ฅผ ์ฒ˜์Œ ์ฐธ์กฐํ•  ๋•Œ
  2. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜, ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ

๐Ÿ‘‰ ์ฆ‰, ์ •์ (static) ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ผ๋„ ์•„๋ฌด๋„ ์“ฐ์ง€ ์•Š์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š์•„์š”.


โœจ ์˜ˆ๋ฅผ ๋“ค์–ด

 
public class Outer {
    public static class StaticInner {
        public void sayHello() {
            System.out.println("Hi");
        }
    }
}
// ์ด ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋˜๊ธฐ ์ „๊นŒ์ง€๋Š” StaticInner๋Š” ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ€์ง€ ์•Š์Œ
Outer.StaticInner inner = new Outer.StaticInner();
inner.sayHello();  // ์ด ์‹œ์ ์— ํด๋ž˜์Šค๊ฐ€ ๋กœ๋”ฉ๋˜๊ณ  ๊ฐ์ฒด๊ฐ€ ๋งŒ๋“ค์–ด์ง

๐Ÿ”’ ์ •๋ฆฌํ•˜์ž๋ฉด

์˜คํ•ด                                               ์ง„์‹ค

 

static์ด๋ฉด ํ•ญ์ƒ ๋ฉ”๋ชจ๋ฆฌ ์ฐจ์ง€ํ•จ โŒ ์•„๋‹˜! ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ์•ˆ ์˜ฌ๋ผ๊ฐ
static ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” ๋ฌด๊ฑฐ์›€ โŒ ๊ตฌ์กฐ์ ์œผ๋กœ ๋…๋ฆฝ์ ์ผ ๋ฟ, ๋ฌด๊ฑฐ์šด ๊ฑด ์•„๋‹˜
static ๋ถ™์ด๋ฉด ์„ฑ๋Šฅ์ด ๋‚˜๋น ์ง โŒ ์˜คํžˆ๋ ค Jackson์ฒ˜๋Ÿผ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ช…ํ™•ํžˆ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์„œ ๋” ํšจ์œจ์ ์ธ ๊ฒฝ์šฐ๋„ ๋งŽ์Œ
 

โœ… ๊ทธ๋ž˜์„œ ์–ด๋–ป๊ฒŒ ํ•˜๋ฉด ์ข‹์„๊นŒ?

  • ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ Jackson์ด๋‚˜ ORM, ์ง๋ ฌํ™” ๋„๊ตฌ์—์„œ ์‚ฌ์šฉํ•  ๊ฑฐ๋ผ๋ฉด → static ๋ถ™์ด๋Š” ๊ฒŒ ์•ˆ์ „ํ•˜๊ณ  ํšจ์œจ์ 
  • ์™ธ๋ถ€ ์ธ์Šคํ„ด์Šค๋ž‘ ๊ฐ•ํ•˜๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด์•ผ๋งŒ ์˜๋ฏธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ → non-static๋„ OK, ํ•˜์ง€๋งŒ ์กฐ์‹ฌ
728x90
๋ฐ˜์‘ํ˜•
LIST