๐Ÿ“š CS [ComputerScience]/๐Ÿ“š CS ๋ฉด์ ‘

๐Ÿ“š [CS๋ฉด์ ‘] ์Šคํ”„๋ง/์Šคํ”„๋ง ๋ถ€ํŠธ๋ž€?

Dbswnstjd 2023. 12. 22. 13:27

Springํ”„๋ ˆ์ž„์›Œํฌ

Spring Frame work ?
  • Spring
    • Java์˜ ์›น ํ”„๋ ˆ์ž„์›Œํฌ - Java๋กœ ๋‹ค์–‘ํ•œ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ‹€
    • Java๋ฅผ ์ด์šฉํ•œ Jsp, Mybatis, JPA ๋“ฑ ๊ธฐ์ˆ  ๋“ฑ์žฅ

 

  • ํ”„๋ ˆ์ž„์›Œํฌ [ Framework ]
    • ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์–ด๋– ํ•œ ๋ชฉ์ ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด, ๋ณต์žกํ•˜๊ฒŒ ์–ฝํ˜€ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์•ฝ์†์ด์ž ๋„๊ตฌ์ด๋ฉฐ, ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ํ•˜๋‚˜์˜ ๋ผˆ๋Œ€ ์—ญํ• 
    • ์ž์ฃผ ์“ฐ์ผ ๋งŒํ•œ ๊ธฐ๋Šฅ๋“ค์„ ํ•œ๊ตฐ๋ฐ ๋ชจ์•„ ๋†“์€ ์œ ํ‹ธ(ํด๋ž˜์Šค)๋“ค์˜ ๋ชจ์Œ
    • ๋ฌด์–ธ๊ฐ€ ๋งŒ๋“ค ๋•Œ ํ•„์š”ํ•œ ๋„๊ตฌ๋“ค์„ ์‚ฌ์šฉํ•ด ๋งŒ๋“œ๋Š” ๊ฒƒ ๊ฐ™์€ ๊ฐœ๋…
๊ธฐ๋ณธ์ ์ธ ์„ค๊ณ„๋‚˜ ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์•Œ์•„์„œ(์˜์กด์„ฑ ์ฃผ์ž…) ํ• ํ…Œ๋‹ˆ ๊ฐœ๋ฐœ์ž๋Š” ๊ฐœ๋ฐœ ์—ญ๋Ÿ‰์— ์ง‘์ค‘ ๊ฐ€๋Šฅ
Spring Frame work์˜ ํŠน์ง•

 

  1. IoC(Inversion of Control, ์ œ์–ด์˜ ์—ญ์ „)
    • ๊ฐœ๋ฐœ์ž๋Š” Java ์ฝ”๋”ฉ์‹œ new ์—ฐ์‚ฐ์ž, ์ธํ„ฐํŽ˜์ด์Šค ํ˜ธ์ถœ, ๋ฐ์ดํ„ฐ ํด๋ž˜์Šค ํ˜ธ์ถœ ๋ฐฉ์‹์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ ์†Œ๋ฉธ์‹œํ‚จ๋‹ค. IoC๋ž€ ๊ฐ์ฒด์˜ ์ƒ์„ฑ๋ถ€ํ„ฐ ์†Œ๋ฉธ๊นŒ์ง€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์Šคํ”„๋ง์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋Œ€์‹  ํ•ด์ฃผ๋Š” ๊ฒƒ
    • ์ œ์–ด๊ถŒ์ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ IoC์— ์žˆ์œผ๋ฉฐ, IoC๊ฐ€ ๊ฐœ๋ฐœ์ž์˜ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœ์— ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑ, ์†Œ๋ฉธํ•˜๋ฉฐ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌ
  2. DI(Dependency Injection, ์˜์กด์„ฑ ์ฃผ์ž…)
    • ํ”„๋กœ๊ทธ๋žจ์—์„œ ๊ตฌ์„ฑ ์š”์†Œ์˜ ์˜์กด ๊ด€๊ณ„๊ฐ€ ์†Œ์Šค์ฝ”๋“œ ๋‚ด๋ถ€๊ฐ€ ์•„๋‹Œ ์™ธ๋ถ€์˜ ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ์ •์˜ ๋˜๋Š” ๋ฐฉ์‹
    • ์ฝ”๋“œ ๊ฐ„์˜ ์žฌ์‚ฌ์šฉ์„ ๋†’์ด๊ณ , ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๋‹ค์–‘ํ•œ ๊ณณ์— ์‚ฌ์šฉํ•˜๋ฉฐ ๋ชจ๋“ˆ ๊ฐ„์˜ ๊ฒฐํ•ฉ๋„๋ฅผ ๋‚ฎ์ถค
    • ๋Œ€ํ‘œ์ ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ API, ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์—ฐ๋™ ํ•  ๋•Œ ์—ฐ๊ฒฐํ•˜๋Š” ์†Œ์Šค์ฝ”๋“œ๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•˜๋Š”๊ฒŒ ์•„๋‹Œ ์™ธ๋ถ€ ํŒŒ์ผ์„ ์—ฐ๊ฒฐํ•ด ๋ถˆ๋Ÿฌ์˜ค๋Š” ๋ฐฉ์‹
    •  
  3. AOP(Aspect Object Programming, ๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)
    • ๋กœ๊น…, ํŠธ๋žœ์žญ์…˜, ๋ณด์•ˆ ๋“ฑ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์—์„œ ๊ณตํ†ต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌ
    • ๊ฐ๊ฐ์˜ ํด๋ž˜์Šค๋“ค์€ ์„œ๋กœ ์ฝ”๋“œ์™€ ๊ธฐ๋Šฅ๋“ค์ด ์ค‘๋ณต๋˜๋Š” ๋ถ€๋ถ„์„ ๊ณตํ†ต์œผ๋กœ ์ฒ˜๋ฆฌ
    • AOP๋Š” ์—ฌ๋Ÿฌ ๊ฐ์ฒด์—์„œ ๊ณตํ†ต์œผ๋กœ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌ๋ถ„ํ•จ์œผ๋กœ์จ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์—ฌ์ฃผ๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋ฒ•
  4. POJO(Plain Old Java Object) ๋ฐฉ์‹
    • ๋ณ„๋„์˜ ํ”„๋ ˆ์ž„์›Œํฌ ์—†์ด Java EE๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ์— ๋น„ํ•ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ์ƒ์†๋ฐ›์„ ํ•„์š”๊ฐ€ ์—†์–ด ๊ธฐ์กด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์šฉ์ด
    • ์ฆ‰, getter/setter๋ฅผ ๊ฐ€์ง„ ๋‹จ์ˆœํ•œ ์ž๋ฐ” ์˜ค๋ธŒ์ ํŠธ
@Controller 
@RequiredArgsConstructor 
public class MonitoringController { 
	private final IMoniteringService monitoringService;
}

 

Spring Boot ๋ž€?

 

์Šคํ”„๋ง(Spring)์„ ๋” ์‰ฝ๊ฒŒ ์ด์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ

https://yamyam-spaghetti.tistory.com/56

 

 

์ถœ์ฒ˜: https://velog.io/@alghrksl/Spring-Spring-%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80

์‚ฌ์ง„ ์ถœ์ฒ˜: https://yamyam-spaghetti.tistory.com/56