ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๐Ÿ“Ž ์Šคํ”„๋ง ๊ณต์‹ ๋ฌธ์„œ

 

Core Technologies :: Spring Framework

Foremost amongst these is the Spring Framework’s Inversion of Control (IoC) container. A thorough treatment of the Spring Framework’s IoC container is closely followed by comprehensive coverage of Spring’s Aspect-Oriented Programming (AOP) technologi

docs.spring.io

 

1๏ธโƒฃ ์˜์กด์„ฑ

2๏ธโƒฃ IoC

3๏ธโƒฃ DDD

4๏ธโƒฃ ApplicationContext

5๏ธโƒฃ Dependency Injection

 


 

1๏ธโƒฃ ์˜์กด์„ฑ

- ์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ํ˜‘๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๊ฐ์ฒด๋ฅผ ํ•„์š”๋กœ ํ•  ๋•Œ ๋‘ ๊ฐ์ฒด ์‚ฌ์ด์˜ ์˜์กด์„ฑ์ด ์กด์žฌํ•˜๊ฒŒ ๋จ

- ์˜์กด์„ฑ์€ ์‹คํ–‰ ์‹œ์ ๊ณผ ๊ตฌํ˜„ ์‹œ์ ์— ์„œ๋กœ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง

  • ์ปดํŒŒ์ผํƒ€์ž„ ์˜์กด์„ฑ
    : ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ์‹œ์ ์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜์กด์„ฑ(ํด๋ž˜์Šค ์‚ฌ์ด์˜ ์˜์กด์„ฑ)
  • ๋Ÿฐํƒ€์ž„ ์˜์กด์„ฑ
    : ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰๋˜๋Š” ์‹œ์ ์˜ ์˜์กด์„ฑ(๊ฐ์ฒด ์‚ฌ์ด์˜ ์˜์กด์„ฑ)

๐Ÿ”Ž ๊ฒฐํ•ฉ๋„

- ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ๋ณ€๊ฒฝ์ด ์ผ์–ด๋‚  ๋•Œ์— ๊ด€๊ณ„๋ฅผ ๋งบ๊ณ  ์žˆ๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์—๊ฒŒ ๋ณ€ํ™”๋ฅผ ์š”๊ตฌํ•˜๋Š” ์ •๋„

- ๋Š์Šจํ•œ ๊ฒฐํ•ฉ๋„, ์•ฝํ•œ ๊ฒฐํ•ฉ๋„๋ฅผ ๊ฐ€์ง€๋Š” ๊ฒƒ์ด ๋ฐ”๋žŒ์งํ•œ ์˜์กด์„ฑ

 


 

2๏ธโƒฃ IoC

- ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ๋ฆ„์„ ์ง์ ‘ ์ œ์–ด

- ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ(ex. ๋‚ด๊ฐ€ ์ง  ์ฝ”๋“œ)๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ํ๋ฆ„์„ ์ œ์–ด

- IoC ์ƒํ™ฉ์—์„œ ๊ฐ์ฒด๊ฐ€ ์ž์‹ ์ด ์‚ฌ์šฉํ•  ๊ฐœ์ฒด๋ฅผ ์Šค์Šค๋กœ ์„ ํƒํ•˜์ง€ ์•Š๊ณ  ์Šค์Šค๋กœ ์ƒ์„ฑ๋„ ํ•˜์ง€ ์•Š์Œ

- IoC๊ฐ€ ๋Š์Šจํ•œ ๊ฒฐํ•ฉ๋„๋ฅผ ๋งŒ๋“ค์–ด ์ค€๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ

 

๐Ÿ”Ž IoC ์ปจํ…Œ์ด๋„ˆ

- IoC๊ฐ€ ์ผ์–ด๋‚˜๋Š” ์žฅ์†Œ(๊ฐ์ฒด ์ƒ์„ฑ, ํŒŒ๊ดด, ๊ฐ์ฒด ์‚ฌ์ด์˜ ์˜์กด๊ด€๊ณ„์— ๋Œ€ํ•œ ์ œ์–ด๊ถŒ์„ ๊ฐ€์ง)

- ๋„๋ฉ”์ธ ๊ฐ์ฒด(ex. ๋ชจ๋ธ, ์„œ๋น„์Šค)์— ๋Œ€ํ•œ ์ƒ์„ฑ์„ ์ฑ…์ž„์ง€๊ณ  ์žˆ์Œ

 


 

3๏ธโƒฃ DDD

๐Ÿ“Ž DDD ๋ธ”๋กœ๊ทธ ์ •๋ฆฌ

๐Ÿ“Ž ๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ ์ฐธ๊ณ ์ž๋ฃŒ

  • Aggregate Root → Entity
  • Entity์˜ ์ง‘ํ•ฉ → Aggregate
  • Service๋„ ์‚ฌ์‹ค Domain Model Layer์— ์กด์žฌ
  • ํ•˜๋‚˜์˜ ํŠธ๋žœ์žญ์…˜(ACID)์ด Aggregate๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ณด์žฅ
  • Repository๋ฅผ ํ†ตํ•ด์„œ Entity์˜ ์ƒํƒœ๋ฅผ DB์— ์ €์žฅ (์ €์žฅ์†Œ)

 


 

4๏ธโƒฃ ApplicationContext

- ์Šคํ”„๋ง์—์„œ ์ œ๊ณตํ•˜๋Š” ์ผ์ข…์˜ IoC ์ปจํ…Œ์ด๋„ˆ

- ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์ œ๊ณต๋จ

- ๊ฐœ๋ณ„ ๊ฐ์ฒด์˜ ์ƒ์„ฑ, ํŒŒ๊ดด, ์˜์กด ๊ด€๊ณ„ ์„ค์ •์ด ์ž๋™์œผ๋กœ ์ด๋ฃจ์–ด์ง

- BeanFactory๋ฅผ ์ƒ์†

 

โ“ BeanFactory

- ๊ฐ์ฒด์˜ ์ƒ์„ฑ, ํŒŒ๊ดด, ์˜์กด๊ด€๊ณ„ ์„ค์ •์„ ์ œ์–ดํ•˜๋Š” IoC์˜ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง

 

โ“ Bean

- BeanFactory, IoC ์ปจํ…Œ์ด๋„ˆ์— ์˜ํ•ด ๊ด€๋ฆฌ๋˜์–ด์ง€๋Š” ๊ฐ์ฒด

- ๋นˆ์€ ์• ๋„ˆํ…Œ์ด์…˜ ๊ธฐ๋ฐ˜(@Bean)์œผ๋กœ ์ •์˜

 

๐Ÿ“Ž BeanFactory VS ApplicationContext

 

๐Ÿ”Ž Configuration Metadata

- ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐ์ฒด๋“ค์˜ ๋„๋ฉด

- ApplicationContext์€ ์‹ค์ œ ๋งŒ๋“ค์–ด์•ผํ•  ๋นˆ ์ •๋ณด๋Š” Configuration Metadata๋กœ๋ถ€ํ„ฐ ๋ฐ›์•„์˜ด

- xml ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑํ•˜๊ฑฐ๋‚˜ ์ž๋ฐ” ํŒŒ์ผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ž‘์„ฑ 

 

ApplicationContext์˜ ๊ตฌํ˜„์ฒด๋Š” ์–ด๋–ค Configuration Metadata๋ฅผ ์‚ฌ์šฉํ•˜๋ƒ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง

  • xml → GenericXmlApplicationContext
  • ์ž๋ฐ” ํŒŒ์ผ → AnnotationConfigApplicationContext (๊ถŒ์žฅ)

 


 

5๏ธโƒฃ Dependency Injection

- IoC๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•(์ „๋žต ํŒจํ„ด, ์„œ๋น„์Šค ๋กœ์ผ€์ดํ„ฐ ํŒจํ„ด, ํŒฉํ† ๋ฆฌ ํŒจํ„ด, ์˜์กด๊ด€๊ณ„ ์ฃผ์ž… ํŒจํ„ด ๋“ฑ) ์ค‘ ํ•˜๋‚˜

- ์Šคํ”„๋ง์€ ์˜์กด ๊ด€๊ณ„ ์ฃผ์ž… ํŒจํ„ด์œผ๋กœ (1) ์ƒ์„ฑ์ž ์ฃผ์ž… ํŒจํ„ด(๊ถŒ์žฅ) (2) setter ๊ธฐ๋ฐ˜ ์ฃผ์ž… ํŒจํ„ด์„ ์ œ๊ณต

 

๐Ÿ“Ž ์˜์กด ๊ด€๊ณ„ ํ˜•์„ฑ์€ ์–ด๋–ป๊ฒŒ ๋˜์–ด์งˆ๊นŒ? (๊ณต์‹๋ฌธ์„œ)

 

 

๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2025/02   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
๊ธ€ ๋ณด๊ด€ํ•จ