<์ถœ์ฒ˜ ์ธํ”„๋Ÿฐ>

 


 

 

 

๋งŒ์ผ ๊ฒฐ๊ณผ๊ฐ’์ด ๊ฐ•์˜์™€ ๋‹ค๋ฅด๊ฒŒ ๋‚˜์˜จ๋‹ค๋ฉด,

AppConfig์˜ MemberRepository ์•ž์— static์ด ๋ถ™์–ด์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ผ!

 

 

 

 

 

Q. ์™œ static์„ ์“ฐ๋ฉด ์ธ์Šคํ„ด์Šค ๊ฐ’์ด ๋‹ค๋ฅด๊ฒŒ ํ• ๋‹น๋ ๊นŒ?

 

A. static์„ ๋ถ™์ด๊ฒŒ ๋˜๋ฉด spring์˜ bean ๋ผ์ดํ”„ ์‚ฌ์ดํด ๊ด€๋ฆฌ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ํƒ€์ž…์˜ bean์ด ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋กœ ์ƒ์„ฑ๋˜๊ฒŒ ๋œ๋‹ค.

 

 

 


 

 

๐Ÿ‘๏ธ‍๐Ÿ—จ๏ธ  static ์ด๋ž€?

 

1. ํด๋ž˜์Šค ๋ ˆ๋ฒจ์˜ ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ์— ์‚ฌ์šฉ๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ํ•ด๋‹น ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. static ๋ฉค๋ฒ„๋Š” ํด๋ž˜์Šค๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ๋กœ๋“œ๋  ๋•Œ ๋‹จ ํ•œ ๋ฒˆ๋งŒ ์ƒ์„ฑ๋˜๋ฉฐ, ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณต์œ ํ•˜๋Š” ๊ณตํ†ต์˜ ์ž์›์ด ๋ฉ๋‹ˆ๋‹ค.

3. ํด๋ž˜์Šค ๋‹จ์œ„๋กœ ๊ด€๋ฆฌ๋˜์–ด ๋ฉ”๋ชจ๋ฆฌ ์‚ฌ์šฉ๋Ÿ‰์„ ์ค„์ด๊ณ , ๊ฐ์ฒด ์ƒ์„ฑ ์˜ค๋ฒ„ํ—ค๋“œ ์—†์ด ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

- Static ์ถœ์ฒ˜

 

์ž๋ฐ”์˜ ์Šคํƒœํ‹ฑ(static) ํ‚ค์›Œ๋“œ ์ดํ•ดํ•˜๊ธฐ

์ž๋ฐ”์˜ ์Šคํƒœํ‹ฑ(static) ํ‚ค์›Œ๋“œ์˜ ์—ญํ• , ์‚ฌ์šฉ ๋ฐฉ๋ฒ•, ๊ทธ๋ฆฌ๊ณ  ์‚ฌ์šฉ ์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•  ์ฃผ์˜์ ์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

f-lab.kr

 

 

 

 

 

๐Ÿ‘๏ธ‍๐Ÿ—จ๏ธ  static์ด spring์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ์–ด๋–ป๊ฒŒ ๊ผฌ๋Š” ๊ฒƒ์ธ๊ฐ€?

(์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•œ ๊ฑด ์•„๋‹™๋‹ˆ๋‹ค๐Ÿฅฒ)

 

 

1. ์›๋ž˜ spring์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์€ @Configuration ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  @bean ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์•ผํ•œ๋‹ค.

 

2. ๊ทธ๋Ÿฐ๋ฐ static์„ bean ๋ฉ”์„œ๋“œ์— ์ •์˜ํ•˜๊ฒŒ ๋˜๋ฉด, static์˜ ํŠน์„ฑ์ธ ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ํ•ด๋‹น ๋ณ€์ˆ˜๋‚˜ ๋ฉ”์†Œ๋“œ์— ์ ‘๊ทผํ•˜๊ธฐ ๋•Œ๋ฌธ์—  1๋ฒˆ์˜ ์‚ฌ์ดํด์„ ๋”ฐ๋ผ๊ฐ€์ง€ ์•Š๊ฒŒ ๋œ๋‹ค. 

 

3. ๊ทธ๋ ‡๊ธฐ์— ๋ฉ”์„œ๋“œ๊ฐ€ ํด๋ž˜์Šค ๋ ˆ๋ฒจ์—์„œ ํ˜ธ์ถœ๋˜์–ด(static์˜ ํŠน์ง•) @Configuration์˜ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ ์—†์ด๋„ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๊ณ  spring์˜ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ๊นจ๊ฒŒ ๋งŒ๋“ค์–ด ์‹ฑ๊ธ€ํ†ค ๋ณด์žฅ์„ ํ•ด์ฃผ์ง€ ๋ชปํ•˜๊ฒŒ ๋œ๋‹ค.

 

 

 

 


 

 

 

๐Ÿ‘๏ธ‍๐Ÿ—จ๏ธ  static๊ณผ spring bean์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€?

 

  static bean
๊ณตํ†ต์  • ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค = static์€ ํด๋ž˜์Šค์˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋ฅผ ๊ณต์œ    /    bean์€ ์Šคํ”„๋ง์ปจํ…Œ์ด๋„ˆ๋ฅผ ํ†ตํ•ด ๊ณต์œ 
 
(์–ด๋””์„œ๋“ ์ง€ ๊ทธ ์ธ์Šคํ„ด์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š”) ์ „์—ญ์ ์ธ ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

๋ผ์ดํ”„์‚ฌ์ดํด์ด ์กด์žฌํ•œ๋‹ค = static์€ ํ”„๋กœ๊ทธ๋žจ ์‹œ์ž‘๋ถ€ํ„ฐ ๋๋‚ ๋•Œ๊นŒ์ง€  /   bean์€ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด 
๋‹ค๋ฅธ์  static์€ ์˜์กด์„ฑ ์ฃผ์ž…์ด ์•ˆ๋œ๋‹ค.
   bean์€ ์˜์กด์„ฑ ์ฃผ์ž…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

static์€ ์ฃผ๋กœ ์–ด๋–ค ์ƒํƒœ๋‚˜ ๋™์ž‘์„ ๊ณต์œ ํ•˜๊ธฐ ์œ„ํ•ด 
   bean์€ ๋ผ์ดํ”„์‚ฌ์ดํด ๊ด€๋ฆฌ, ์˜์กด์„ฑ์ฃผ์ž…, ํšจ์œจ์ ์ธ ๋ฆฌ์†Œ์Šค ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

static์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์„ ์–ธ
   bean์€ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ๊ด€๋ฆฌ.
 

 

 

- static๊ณผ bean์˜ ๊ณตํ†ต์ ๊ณผ ์ฐจ์ด์  ์ถœ์ฒ˜

 

[Spring] Static ๊ฐ์ฒด์™€ Bean์˜ ์ฐจ์ด

์˜๋ฌธ์  ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ์ƒ์ˆ˜ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•  ์ผ์ด ์ƒ๊ฒผ๋Š”๋ฐ, ๋ฉ”๋ชจ๋ฆฌ์— ๋ฏธ๋ฆฌ ์˜ฌ๋ ค๋‘๊ณ  ๋‹ค๋ฅธ ํด๋ž˜์Šค์—์„œ ์ƒ์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ ์ƒ์ˆ˜ ํด๋ž˜์Šค๋ฅผ static final์„ ์‚ฌ์šฉํ•ด์„œ ๊ตฌํ˜„ํ•˜์˜€๋‹ค. ๊ทธ

bbogle2.tistory.com

 

 

+ Recent posts