๐Ÿ“‚๋ฐฑ์—”๋“œ : BackEnd

Spring๊ณผ SpringBoot์˜ ์ฐจ์ด

mc.thd 2023. 6. 22. 17:06

Spring์ด๋ž€?

  • ์ •ํ™•ํ•œ ํ‘œํ˜„์œผ๋กœ๋Š” '์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ(Spring Framework)
  • ์˜์กด์„ฑ ์ฃผ์ž…(DI) ์ œ์–ด์—ญ์ „ (IOC) ๊ด€์ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(AOP) ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ
  • ์œ„ ์š”์†Œ๋“ค์„ ํ†ตํ•ด ๋А์Šจํ•œ ๊ฒฐํ•ฉ์„ ๋‹ฌ์„ฑํ•  ์ˆ˜ ์žˆ์Œ
  • ์œ„์™€ ๊ฐ™์ด ๋А์Šจํ•œ ๊ฒฐํ•ฉ์œผ๋กœ ๊ฐœ๋ฐœํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์šฉ์ดํ•จ

๊ด€์ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(AOP)๋ž€?

  • AOP๋Š” ์‰ฝ๊ฒŒ ๋งํ•ด, OOP(๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)์„ ๋ณด์™„ํ•˜๋Š” ์ˆ˜๋‹จ์œผ๋กœ, ์—ฌ๋Ÿฌ ๊ณณ์— ์“ฐ์ด๋Š” ๊ณตํ†ต ๊ธฐ๋Šฅ์„ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ํ•„์š”ํ•œ ๊ณณ์— ์—ฐ๊ฒฐํ•จ์œผ๋กœ์จ ์œ ์ง€๋ณด์ˆ˜ ๋˜๋Š” ์žฌ์‚ฌ์šฉ์— ์šฉ์ดํ•˜๋„๋ก ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธ
  • AOP๋ฅผ ํ†ตํ•ด ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ๋กœ์ง ์ˆ˜์ • ์—†์ด ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Œ
  • ์ด๋Ÿฐ ๊ฐœ๋ฐœ ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถ˜ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•จ

SpringBoot๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ ์ด์œ 

  • ์Šคํ”„๋ง์€ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ์ง€๋งŒ, ๊ทธ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์„ค์ •์— ๋งŽ์€ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ

SpringBoot ํ”„๋กœ์ ํŠธ์˜ ์˜์กด์„ฑ ๊ด€๋ฆฌ

  • SpringBoot-starter dependency๋ฅผ ํ†ตํ•ด ๋‹ค์–‘ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์ˆ˜์šฉํ•˜๊ณ  ์žˆ์Œ, ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” dependency๊ด€๋ฆฌ(ํ˜ธํ™˜์„ฑ ์ฒดํฌ ๋“ฑ)์— ๋Œ€ํ•ด ๊ณ ๋ คํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง(dependency๋ฅผ ์„ ์–ธ๋งŒ ํ•ด์ฃผ๊ณ , ๋ฒ„์ „์€ ๋”ฑํžˆ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•„๋„ ๋จ)

setter๋Œ€์‹  ๋ณ€๊ฒฝ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ž

์œ„ ์ฝ”๋“œ์ฒ˜๋Ÿผ setter๋Œ€์‹  ๋ณ€๊ฒฝ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์ด ์ข‹๋‹ค