3 ๋ถ„ ์†Œ์š”

๐Ÿ“š SPRING


๐Ÿ“š SPRING

SPRING ์˜ ํƒ„์ƒ๋ฐฐ๊ฒฝ

SPRING์„ ์•Œ์•„ ๋ณด๊ธฐ ์ „์— SPRING์˜ ํƒ„์ƒ ๋ฐฐ๊ฒฝ ๋จผ์ € ์‚ดํŽด ๋ณด์ž. ๊ทธ๋Ÿผ SPRING์˜ ์‚ฌ์šฉ์— ๊ด€ํ•œ ์ดํ•ด๊ฐ€ ๋” ์ž˜ ๋  ๊ฒƒ์ด๋‹ค.
๊ธฐ์กด์—๋Š” EJB ( Enterprise JavaBean ) ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•˜์˜€๋‹ค. ์—ฌ๊ธฐ์„œ web์—์„œ๋„ ๋‚˜์™”์—ˆ๋˜ JavaBean์€ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ์žฌ์‚ฌ์šฉํ•˜๋„๋ก ์ฆ‰, ์ปดํฌ๋„ŒํŠธํ™”์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์ฝ”๋”ฉ ๋ฐฉ์นจ์„ ์ •์˜ํ•œ ๊ฒƒ์ด๋‹ค.
EJB๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๊ฐ์ฒด๋“ค์„ ๊ด€๋ฆฌํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ•„์š”ํ•  ๋•Œ๋งˆ๋‹ค ์ปจํ…Œ์ด๋„ˆ๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด๋ฅผ ๋ฐ›๋Š” ์‹์œผ๋กœ ๊ด€๋ฆฌํ•˜์ž ๋ผ๋Š” ์ทจ์ง€๋กœ ํƒ„์ƒํ–ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฌ๋‚˜ EJB ๋Š” ํ˜„์‹ค์—์„œ ๋ฐ˜์˜ํ•˜๊ธฐ์—๋Š” ๊ณผ์ •์ด ๋„ˆ๋ฌด ๊ฑฐ์ฐฝํ•˜๊ณ  ๋ณต์žกํ•œ ์ŠคํŽ™ํ‹€ ๊ฐ€์ง€๊ณ  ์žˆ์–ด ๊ฐœ๋ฐœ์˜ ํšจ์œจ์ด ๋–จ์–ด์กŒ๋‹ค. ( EJB ์„œ๋ฒ„๋„ ํ•„์ˆ˜์ ์ด์˜€๋‹ค. )

์ด ๋•Œ Rod Johnson ์ด EJB๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ–ˆ๋‹ค. ์ด๊ฒƒ์ด ์Šคํ”„๋ง์˜ ๋ชจํƒœ์ด๋‹ค.
ํŠน์ • ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜๊ฑฐ๋‚˜ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜์ง€ ์•Š๋Š” ํ‰๋ฒ”ํ•œ ์ž๋ฐ” ํด๋ž˜์Šค ( POJO , ๋Š์Šจํ•œ JavaBean , Spring Bean )๋ฅผ ์ด์šฉํ•˜์—ฌ ๋‹จ์ˆœํ•˜์ง€๋งŒ EJB์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ณ ๊ธ‰ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•˜๋Š” Spring์„ ์ฐฝ์‹œํ•˜์˜€๋‹ค.

POJO + ๊ฒฝ๋Ÿ‰ ํ”„๋ ˆ์ž„์›Œํฌ

  • POJO ( Plain Old Java Object )
  • ๊ฒฝ๋Ÿ‰ ํ”„๋ ˆ์ž„ ์›Œํฌ
    • EJB ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„ ์›Œํฌ ๋“ฑ์žฅ
    • Hibernate, JDO, iBatis(MyBatis), Spring
  • POJO + ๊ฒฝ๋Ÿ‰ ํ”„๋ ˆ์ž„ ์›Œํฌ
    • EJB ์„œ๋ฒ„ ๊ฐ™์€ ๊ฑฐ์ฐฝํ•œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•„์š” ์—†๋‹ค.
    • ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„ ์›Œํฌ๋ผ ์‚ฌ์šฉ์ด ๋ฌด๋ฃŒ
    • ๊ฐ์ข… ๊ธฐ์—…์šฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์ƒ๋‹นํžˆ ๋งŽ์€ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง€์›
    • ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์Šคํ”„๋ง์€ ์›น ๋ถ„์•ผ ๋ฟ๋งŒ์ด ์•„๋‹ˆ๋ผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ ๋ชจ๋“  ๋ถ„์•ผ์— ์ ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

SPRING ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€

SPRING FRAMEWORK

Spring Framework
์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธ‰ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฒฝ๋Ÿ‰ํ™” ๋œ ์†”๋ฃจ์…˜์ด๋‹ค.

JEE๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹ค์ˆ˜์˜ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, JEE๋ฅผ ๋Œ€์ฒดํ•˜๋Š” Framework๋กœ ์ž๋ฆฌ์žก๊ณ  ์žˆ๋‹ค.
Spring Framework๋Š” JEE๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ DI, AOP์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ๋„ ์ œ๊ณต์„ ํ•œ๋‹ค.

Spring Framework๋Š” ์ž๋ฐ”๋กœ Enterprise Application ( ๊ธฐ์—…์˜ ์—…๋ฌด๋ฅผ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” system )์„ ๋งŒ๋“ค ๋•Œ ํฌ๊ด„์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” Programming ๋ฐ Configuration Model์„ ์ œ๊ณตํ•ด์ฃผ๋Š” Framework๋กœ Application ์ˆ˜์ค€์˜ ์ธํ”„๋ผ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
์ฆ‰ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณต์žกํ•˜๊ณ  ์‹ค์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด low level ์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  Business Logic ๊ฐœ๋ฐœ์— ์ „๋…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

SPRING FRAMEWORK์˜ ๊ตฌ์กฐ


Spring ์‚ผ๊ฐํ˜•
Enterprise Application ๊ฐœ๋ฐœ ์‹œ ๋ณต์žกํ•จ์„ ํ•ด๊ฒฐํ•˜๋Š” Spring์˜ ํ•ต์‹ฌ์ด๋‹ค.

SPRING FRAMEWORK ์ฃผ์š” ๋ชจ๋“ˆ

โœ ๋ชจ๋“ˆ์ด๋ž€ ํ•œ ์‹œ์Šคํ…œ์˜ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ธฐ๋Šฅ์  ๊ตฌ์„ฑ์š”์†Œ๋“ค์ด๋‹ค.
Spring ์˜ ๋ ˆ๊ณ ๋ธ”๋Ÿญ์„ ์ƒ๊ฐํ•ด๋ผ.
ํ•„์ˆ˜์ ์œผ๋กœ Spring core ๊น”๊ณ  ์œ„์— ์›ํ•˜๋Š” ๊ฒƒ์„ ๊น๋‹ค.


  1. Spring Core
    • Spring Framework์˜ ํ•ต์‹ฌ ๊ธฐ๋Šฅ์„ ์ œ๊ณต( ์ปจํ…Œ์ด๋„ˆ ์—ญํ•  )
    • Core ์ปจํ…Œ์ด๋„ˆ์˜ ์ฃผ์š” ์ปดํฌ๋„ŒํŠธ๋Š” Bean Factory ์ด๋‹ค.
  2. Spring Context
    • Spring์„ ์ปจํ…Œ์ด๋„ˆ๋กœ ๋งŒ๋“  ๊ฒƒ์ด Spring core์˜ BeanFactory ๋ผ๋ฉด Spring์„ Framework๋กœ ๋งŒ๋“  ๊ฒƒ์€ Context module ์ด๋‹ค.
    • ๊ตญ์ œํ™”๋œ ๋ฉ”์„ธ์ง€, Application ์ƒ๋ช… ์ฃผ๊ธฐ ์ด๋ฒคํŠธ , ์œ ํšจ์„ฑ ๊ฒ€์ฆ์„ ์ง€์›ํ•จ์œผ๋กœ์จ BeanFactory์˜ ๊ฐœ๋…์„ ํ™•์žฅํ•œ๋‹ค.
  3. Spring AOP
    • ์„ค์ • ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด AOP ๊ธฐ๋Šฅ์„ Spring Framework์™€ ์ง์ ‘ ํ†ตํ•ฉ ์‹œํ‚จ๋‹ค.
  4. Spring DAO
    • Spring JDBC DAO ์ถ”์ƒ ๋ ˆ์ด์–ด๋Š” ๋‹ค๋ฅธ DB ๋ฒคํ„ฐ๋“ค์˜ ์˜ˆ์™ธ ํ•ธ๋“ค๋ง๊ณผ ์˜ค๋ฅ˜ ๋ฉ”์„ธ์ง€๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์ค‘์š”ํ•œ ์˜ˆ์™ธ๊ณ„์ธต์„ ์ œ๊ณตํ•œ๋‹ค.
  5. Spring ORM
    • Spring Framework๋Š” ์—ฌ๋Ÿฌ ORM ( Object Relational Mapping ) Framework์— ํ”Œ๋Ÿฌ๊ทธ์ธ ๋˜์–ด, Object Relational ํˆด์„ ์ œ๊ณตํ•œ๋‹ค.
  6. Spring Web
    • Web Context Module ์€ Application Context module ์ƒ์œ„์— ๊ตฌํ˜„๋˜์–ด Web ๊ธฐ๋ฐ˜ Application์— Context ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  7. Spring Web MVC
    • Spring Framework๋Š” ์ž์ฒด์ ์œผ๋กœ MVC ํ”„๋ ˆ์ž„ ์›Œํฌ๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์Šคํ”„๋ง๋งŒ ์‚ฌ์šฉํ•ด๋„ MVC ๊ธฐ๋ฐ˜์˜ ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์–ด๋ ต์ง€ ์•Š๊ฒŒ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.