SpringFramework 02. DI - swkim0128/PARA GitHub Wiki


type: Spring archive: false

Spring? & ๊ฐœ๋ฐœํ™˜๊ฒฝ

Spring Framework ๋“ฑ์žฅ ๋ฐฐ๊ฒฝ


EJB๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž‘์„ฑ์„ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Low Level์˜ ํŠธ๋žœ์žญ์…˜์ด๋‚˜ ์ƒํƒœ๊ด€๋ฆฌ, ๋ฉ€ํ‹ฐ ์“ฐ๋ ˆ๋”ฉ, ๋ฆฌ์†Œ์Šค ํ’€๋ง๊ณผ ๊ฐ™์€ ๋ณต์žกํ•œ Low Level์˜ API ๋”ฐ์œ„๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋”๋ผ๋„ ์•„๋ฌด ๋ฌธ์ œ ์—†์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค.

EJB ํ˜„์‹ค์—์„œ์˜ ๋ฐ˜์˜์€ ์–ด๋ ต๋‹ค.

  • ์ฝ”๋“œ ์ˆ˜์ •ํ›„ ๋ฐ˜์˜ํ•˜๋Š” ๊ณผ์ • ์ž์ฒด๊ฐ€ ๊ฑฐ์ฐฝํ•ด ๊ธฐ๋Šฅ์€ ์ข‹์ง€๋งŒ ๋ณต์žกํ•œ ์ŠคํŽ™์œผ๋กœ ์ธํ•œ ๊ฐœ๋ฐœ์˜ ํšจ์œจ์„ฑ์ด ๋–จ์–ด์ง.
  • ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ฐ˜๋“œ์‹œ EJB์„œ๋ฒ„๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

์›น ์‚ฌ์ดํŠธ๊ฐ€ ์ ์  ์ปค์ง€๋ฉด์„œ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ๊ธ‰์˜ ์„œ๋น„์Šค๊ฐ€ ํ•„์š”ํ•˜๊ฒŒ ๋จ

  • ์„ธ์…˜ ๋นˆ์—์„œ Transaction ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ดํ•จ.
  • ๋กœ๊ธด, ๋ถ„์‚ฐ์ฒ˜๋ฆฌ, ๋ณด์•ˆ ๋“ฑ

์ž๋ฐ” ์ง„์˜์—์„œ๋Š” EJB๊ฐ€ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ๊ธ‰ ์„œ๋น„์Šค๋กœ ๊ฐ๊ด‘์„ ๋ฐ›๊ฒŒ ๋จ

  • EJB ์ŠคํŽ™์— ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฏ€๋กœ ๊ธฐ์กด์— ์ž‘์„ฑ๋œ POJO๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•จ
  • ์ปจํ…Œ์ด๋„ˆ์— ๋ฐฐํฌ๋ฅผ ํ•ด์•ผ ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•ด ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ์ €ํ•˜๋จ
  • ๋ฐฐ์šฐ๊ธฐ ์–ด๋ ต๊ณ , ์„ค์ •ํ•ด์•ผ ํ•  ๋ถ€๋ถ„์ด ๋งŽ์Œ.
  • EJB๋Š” RMI๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋Š” ์„œ๋ฒ„์ด๋ฏ€๋กœ ๋ฌด๊ฑฐ์šด Container์ด๋‹ค.

Rod Johnson์ด 'Expert One-on-One J2EE Development without EJB'๋ผ๋Š” ์ €์„œ์—์„œ EJB๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์†Œ๊ฐœํ•จ(์Šคํ”„๋ง์˜ ๋ชจํƒœ)

  • AOP๋‚˜ DI๊ฐ™์€ ์ƒˆ๋กœ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•๋ก ์œผ๋กœ ๊ฐ€๋Šฅ
  • POJO๋กœ ์ „์–ธ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ชจ๋ธ์ด ๊ฐ€๋Šฅํ•ด์ง

์ ์ฐจ POJO + ๊ฒฝ๋Ÿ‰ ํ”„๋ ˆ์ž„ ์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘

POJO(Plain Old Java Object)

  • ํŠน์ • ํ”„๋ ˆ์ž„์›Œํฌ๋‚˜ ๊ธฐ์ˆ ์— ์˜์กด์ ์ด์ง€ ์•Š์€ ์ž๋ฐ” ๊ฐ์ฒด
  • ํŠน์ • ๊ธฐ์ˆ ์— ์ข…์†์ ์ด์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์ƒ์„ฑ, ์ด์‹์„ฑ ํ–ฅ์ƒ
  • Plain : component interface๋ฅผ ์ƒ์†๋ฐ›์ง€ ์•Š๋Š” ํŠน์ง• (ํŠน์ • ํ”„๋ ˆ์ž„์›Œํฌ์— ์ข…์†๋˜์ง€ ์•Š๋Š”)
  • Old : EJB ์ด์ „์˜ java class๋ฅผ ์˜๋ฏธ

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

  • EJB๊ฐ€ ์ œ๊ณตํ•˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ง€์›ํ•ด ์ค„ ์ˆ˜ ์žˆ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ
  • Hiberante, jDO, iBatis(MyBatis), Spring)

POJO + Frmawork

  • EJB์„œ๋ฒ„์™€ ๊ฐ™์€ ๊ฑฐ์ฐฝํ•œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ํ•„์š”์—†๋‹ค.
  • ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ๋ผ ์‚ฌ์šฉ์ด ๋ฌด๋ฃŒ.
  • ๊ฐ์ข… ๊ธฐ์—…์šฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์ƒ๋‹นํžˆ ๋งŽ์€ ๋ผ์ด๋ธŒ๋ฒ„๋ฆฌ๋ฝ ์ง€์›
  • ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์Šคํ”„๋ง์€ ์›น ๋ถ„์•ผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋“ฑ ๋ชจ๋“  ๋ถ„์•ผ์— ์ ์šฉ์ด ๊ฐ€๋Šฅํ•œ ๋‹ค์–‘ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

Spring Framework?


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

JEE(Java Enterprise Edition)๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹ค์ˆ˜์˜ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JEE๋ฅผ ๋Œ€์ฒดํ•˜๋Š” Framework๋กœ ์ž๋ฆฌ์žก๊ณ  ์žˆ๋‹ค.

SpringFramework๋Š” JEE๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์–‘ํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, DI(Dependency Injection)์ด๋‚˜ AOP(Aspect Oriented Programming)์™€ ๊ฐ™์€ ๊ธฐ๋Šฅ๋„ ์ง€์›ํ•œ๋‹ค.

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ž๋ฐ”๋กœ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ๋•Œ ํฌ๊ด„์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐ Configuration Model์„ ์ œ๊ณตํ•ด ์ฃผ๋Š” Framework๋กœ Applicatoin ์ˆ˜์ค€์˜ ์ธํ”„๋ผ ์ŠคํŠธ๋Ÿญ์ณ๋ฅผ ์ œ๊ณต

์ฆ‰, ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ณต์žกํ•˜๊ณ  ์‹ค์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด Low level์— ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  Business Login๊ฐœ๋ฐœ์— ์ „๋…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ค€๋‹ค.

SpringFramework์˜ ๊ตฌ์กฐ


!Untitled.png

  1. POJO

    ํŠน์ • ํ™˜๊ฒฝ์ด๋‚˜ ๊ธฐ์ˆ ์— ์ข…์†ก์ ์ด์ง€ ์•Š์€ ๊ฐ์ฒด์ง€ํ–ฅ ์›๋ฆฌ์— ์ถฉ์‹คํ•œ ์ž๋ฐ” ๊ฐ์ฒด

    ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์šฉ์ดํ•˜๋ฉฐ, ๊ฐ์ฒด ์ง€ํ–ฅ ์„ค๊ณ„๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  2. PSA

    ๊ด€๊ฒฝ๊ณผ ์„ธ๋ถ€ ๊ธฐ์ˆ ์˜ ๋ณ€๊ฒฝ๊ณผ ๊ด€๊ณ„์—†์ด ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ๊ธฐ์ˆ ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ์„ค๊ณ„ ์›์น™

    ํŠธ๋žœ์žญ์…˜ ์ถ”์ƒํ™”, OXM ์ถ”์ƒํ™”, ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค์˜ Exception ๋ณ€๊ด€ ๊ธฐ๋Šฅ ๋“ฑ ๊ธฐ์ˆ ์ ์ธ ๋ณต์žกํ•จ์€ ์ถ”์ƒํ™œ๋ฅด ํ†ตํ•ด Low Level์˜ ๊ธฐ์ˆ  ๊ตฌํ˜„ ๋ถ€๋ถ„๊ณผ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๋ถ„๋ฆฌ

    ์˜ˆ๋ฅผ ๋“ค์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ด€๊ณ„์—†์ด ๋™์ผํ•˜๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฐฉ์‹.

  3. IoC

    DI๋Š” ์œ ์—ฐํ•˜๊ฒŒ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๋‘๊ณ  ๊ฐ์ฒด๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๋Š” ์™ธ๋ถ€์—์„œ ๋‹ค์ด๋‚˜๋ฏนํ•˜๊ฒŒ ์„ค์ •.

  4. AOP

    ๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ๋ฅผ ํ†ตํ•ด์„œ ์†Œํ”„ํŠธ์›จ์–ด์˜ ๋ชจ๋“ˆ์„ฑ์„ ํ–ฅ์ƒ

    ๊ณตํ†ต ๋ชจ๋“ˆ์„ ์—ฌ๋Ÿฌ ์ฝ”๋“œ์— ์‰ฝ๊ฒŒ ์ ์šฉ๊ฐ€๋Šฅ.

SpringFramework์˜ ํŠน์ง•


  • ๊ฒฝ๋Ÿ‰์ปจํ…Œ์ด๋„ˆ

    ์Šคํ”„๋ง์€ ์ž๋ฐ”๊ฐ์ฒด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์ปจํ…Œ์ด๋„ˆ์ด๋‹ค.

    ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋Š” ์ด๋“ค ์ž๋ฐ” ๊ฐ์ฒด์˜ ์ƒˆ์„ฑ๊ณผ ์†Œ๋ฉธ๊ณผ ๊ฐ™์€ ๋ผ์ดํ”„ ์‚ฌ์ดํด์„ ๊ด€๋ฆฌ

    ์–ธ์ œ๋“ ์ง€ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋กœ๋ถ€ํ„ฐ ํ•„์š”ํ•œ ๊ฐ์ฒด๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • DI ํŒจํ„ด ์ง€์›

    ์Šคํ”„๋ง์€ ์„ค์ • ํŒŒ์ผ์ด๋‚˜, ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด์„œ ๊ฐ์ฒด ๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

    ๋”ฐ๋ผ์„œ, ๊ฐ์ฒด๋Š” ์˜์กดํ•˜๊ณ  ์žˆ๋Š” ๊ฐ์ฒด๋ฅผ ์ง์ ‘ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฒ€์ƒ‰ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.

  • AOP ์ง€์›

    AOP๋Š” ๋ฌธ์ œ๋ฅผ ๋ฐ”๋ผ๋ณด๋Š” ๊ด€์ ์„ ๊ธฐ์ค€์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค.

    ์ด๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฝํ•˜๊ธฐ ์œ„ํ•œ ํ•ต์‹ฌ๊ด€์‹ฌ ์‚ฌํ•ญ๊ณผ ์ „์ฒด์— ์ ์šฉ๋˜๋Š” ๊ณตํ†ต๊ด€์‹ฌ ์‚ฌํ•ญ์„ ๊ธฐ์ค€์œผ๋กœ ํ”„๋กœ๊ทธ๋ž˜๋ฐํ•จ์œผ๋กœ์„œ ๊ณตํ†ต ๋ชจ๋“ˆ์„ ์—ฌ๋Ÿฌ ์ฝ”๋“œ์— ์‰ฝ๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.

    ์Šคํ”„๋ง์€ ์ž์ฒด์ ์œผ๋กœ ํ”„๋ก์‹œ ๊ธฐ๋ฐ˜์˜ AOP๋ฅผ ์ง€์›ํ•˜๋ฏ€๋กœ ํŠธ๋ž˜์žญ์…˜์ด๋‚˜, ๋กœ๊น…, ๋ณด์•ˆ๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์—์„œ ๊ณตํ†ต์œผ๋กœ ํ•„์š”๋กœ ํ•˜์ง€๋งŒ ์‹ค์ œ ๋ชจ๋“ˆ์˜ ํ•ต์‹ฌ์ด ์•„๋‹Œ ๊ธฐ๋Šฅ๋“ค์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ฐ ๋ชจ๋“ˆ์— ์ ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • POJO ์ง€์›

    ํŠน์ • ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜์ง€ ์•Š๋Š” ์ผ๋ฐ˜ ์ž๋ฐ” ๊ฐ์ฒด ์ง€์›.

    ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์— ์ €์žฅ๋˜๋Š” ์ž๋ฐ” ๊ฐ์ฒด๋Š” ํŠน์ •ํ•œ ์ธํ„ฐํŽ˜์ด์Šฌ๋ฅด ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜, ํด๋ž˜์Šค ์ƒ์† ์—†์ด๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    ์ผ๋ฐ˜์ ์ธ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ์นญํ•˜๊ธฐ ์œ„ํ•œ ๋ณ„์นญ ๊ฐœ๋…์ด๋‹ค.

  • IoC

    IoC๋Š” ์Šคํ”„๋ง์ด ๊ฐ–๊ณ  ์žˆ๋Š” ํ•ต์‹ฌ์ ์ธ ๊ธฐ๋Šฅ์ด๋‹ค.

    ์ž๋ฐ”์˜ ๊ฐ์ฒด ์ƒ์„ฑ ๋ฐ ์˜์กด ๊ด€๊ณ„์— ์žˆ์–ด ๋ชจ๋“  ์ œ์–ด๊ถŒ์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์žˆ์—ˆ๋‹ค.

    Servlet๊ณผ EJB๊ฐ€ ๋‚˜ํƒ€๋‚˜๋ฉด์„œ ๊ธฐ์กด์˜ ์ œ์–ด๊ถŒ์ด Servlet Container ๋ฐ EJB Container์—๊ฒŒ ๋„˜์–ด๊ฐ€๊ฒŒ ๋๋‹ค.

    ๋‹จ, ๋ชจ๋“  ๊ฐ์ฒด์˜ ์ œ์–ด๊ถŒ์ด ๋„˜์–ด๊ฐ„ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  Servlet, EJB์— ๋Œ€ํ•œ ์ œ์–ด๊ถŒ์„ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ๊ฐ์ฒด ์ œ์–ด๊ถŒ์€ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋‹ด๋‹นํ•˜๊ณ  ์žˆ๋‹ค.

    ์Šคํ”„๋ง์—์„œ๋„ ๊ฐ์ฒด์— ๋Œ€ํ•œ ์ƒ์„ฑ๊ณผ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š”๋ฐ ์ด๋Ÿฐ ์ด์œ ๋กœ [Spring Container] ๋˜๋Š” [IoC Container]๋ผ๊ณ  ๋ถ€๋ฅด๊ธฐ๋„ ํ•œ๋‹ค.

  • ์Šคํ”„๋ง์€ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ์ผ๊ด€๋œ ๋ฐฉ๋ฒ•์„ ์ œ๊ณต

    JDBC, JTA ๋˜๋Š” ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์ œ๊ณตํ•˜๋Š” ํŠธ๋žœ์žญ์…˜์„ ์‚ฌ์šฉํ•˜๋“ , ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•ด ํŠธ๋žœ์žญ์…˜ ๊ด€๋ จ ์ •๋ณด๋ฅผ ์ž…๋ ฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํŠธ๋žœ์žญ์…˜ ๊ตฌํ˜„์— ์ƒ๊ด€์—†์ด ๋™์ผํ•œ ์ฝ”๋“œ๋ฅผ ์—ฌ๋Ÿฌ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์Šคํ”„๋ง์€ ์˜์†์„ฑ๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ API๋ฅผ ์ง€์›

    ์Šคํ”„๋ง์€ JDBC๋ฅผ ๋น„๋กฏํ•˜์—ฌ iBatis, MyBatis, Hibernate, JPA ๋“ฑ DB์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ์—ฐ๋™์„ ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

  • ์Šคํ”„๋ง์€ ๋‹ค์–‘ํ•œ API์— ๋Œ€ํ•œ ์—ฐ๋™์„ ์ง€์›

    ์Šคํ”„๋ง์€ JMS, ๋ฉ”์ผ, ์Šค์ผ€์ฅด๋ง ๋“ฑ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ API๋ฅผ ์„ค์ • ํŒŒ์ผ๊ณผ ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด์„œ ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๊ณ  ์žˆ๋‹ค.

SpringFramework Module


!Untitled 1.png

!Untitled 2.png

โš ๏ธ **GitHub.com Fallback** โš ๏ธ