๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Spring/Spring Quick Start

ํ”„๋ ˆ์ž„์›Œํฌ๋ž€? ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋ž€?

ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ๋…

ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฐœ๋ฐœ์—์„œ ๊ธฐ๋ณธ์ด ๋˜๋Š” ๋ผˆ๋Œ€๋‚˜ ํ‹€์„ ์ œ๊ณตํ•œ๋‹ค.

๊ฐœ๋ฐœ์ž๋Š” ๋ผˆ๋Œ€์— ์‚ด์„ ๋ถ™์ด๋Š” ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

 

์žฅ์ 

  • ๋น ๋ฅธ ๊ตฌํ˜„ ์‹œ๊ฐ„

  • ์‰ฌ์šด ๊ด€๋ฆฌ

  • ๊ฐœ๋ฐœ์ž๋“ค์˜ ์—ญ๋Ÿ‰ ํš์ผํ™”

  • ๊ฒ€์ฆ๋œ ์•„ํ‚คํ…์ฒ˜์˜ ์žฌ์‚ฌ์šฉ๊ณผ ์ผ๊ด€์„œ ์œ ์ง€

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ

์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋กœ๋“œ ์กด์Šจ์ด 2004๋…„์— ๋งŒ๋“  ์˜คํ”ˆ์†Œ์Šค ํ”„๋ ˆ์ž„์›Œํฌ์ด๋‹ค.

์Šคํ”„๋ง์€ ํ•œ ์ค„๋กœ "IoC์™€ AOP๋ฅผ ์ง€์›ํ•˜๋Š” ๊ฒฝ๋Ÿ‰์˜ ์ปจํ…Œ์ด๋„ˆ ํ”„๋ ˆ์ž„์›Œํฌ"๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.

  1. ๊ฒฝ๋Ÿ‰(Lightweight)

    • ์Šคํ”„๋ง์€ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์œผ๋ฉฐ, ๊ฐ ๋ชจ๋“ˆ์€ ํ•˜๋‚˜ ์ด์ƒ์˜ JAR ํŒŒ์ผ๋กœ ๊ตฌ์„ฑ๋จ. ๋ช‡ ๊ฐœ์˜ JAR ํŒŒ์ผ๋งŒ ์žˆ์œผ๋ฉด ๊ฐœ๋ฐœ๊ณผ ์‹คํ–‰์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

    • ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ POJO(Plain Old Java Object)ํ˜•ํƒœ์˜ ๊ฐ์ฒด๋ฅผ ๊ด€๋ฆฌํ•œ๋‹ค. (POJO๋Š” ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ํŠน๋ณ„ํ•œ ๊ทœ์น™์ด ์—†๋Š” ๋‹จ์ˆœํ•˜๊ณ  ๊ฐ€๋ณ์šด ๊ฐ์ฒด).

  2. IoC(Inversion of Control)

    • ๋น„์ฆˆ๋‹ˆ์Šค ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ ์‹œ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„์™€ ๋†’์€ ์‘์ง‘๋„ ์š”๊ตฌ๋จ

    • IoC๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ๊ฐ„์˜ ๋Š์Šจํ•œ ๊ฒฐํ•ฉ, ์ฆ‰ ๋‚ฎ์€ ๊ฒฐํ•ฉ๋„๋ฅผ ์œ ์ง€ํ•จ

    • ๊ธฐ์กด์—๋Š” ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ˆ˜ํ–‰์— ํ•„์š”ํ•œ ๊ฐ์ฒด์˜ ์ƒ์„ฑ์ด๋‚˜ ์˜์กด๊ด€๊ณ„๋ฅผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์ฒ˜๋ฆฌํ–ˆ์œผ๋‚˜, IoC๊ฐ€ ์ ์šฉ๋˜๋ฉด ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋Œ€์‹  ์ฒ˜๋ฆฌํ•จ

    • ์†Œ์Šค์— ์˜์กด๊ด€๊ณ„๊ฐ€ ๋ช…์‹œ๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ฒฐํ•ฉ๋„๊ฐ€ ๋–จ์—ฌ์ €์„œ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ํŽธ๋ฆฌํ•ด์ง

  3. AOP(Aspect Oriented Programming)

    • ๋ฉ”์†Œ๋“œ๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฉ”์†Œ๋“œ๋งˆ๋‹ค ๋ฐ˜๋ณต๋˜๋Š” ๊ณตํ†ต๋กœ์ง์„ ๋ถ„๋ฆฌํ•จ

    • ๊ณตํ†ต๋กœ์ง์€ ์™ธ๋ถ€์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•˜๊ณ , ํ•ด๋‹น๊ธฐ๋Šฅ์„ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ์— ๋ช…์‹œ์ ์œผ๋กœ ํ‘œ์‹œํ•˜์ง€ ์•Š๊ณ  ์„ ์–ธ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•ด ์ ์šฉํ•œ๋‹ค.

    • ๊ณตํ†ต๊ธฐ๋Šฅ์„ ๋ถ„๋ฆฌํ•จ์œผ๋กœ์จ ์‘์ง‘๋„๊ฐ€ ๋†’์€ ๋น„์ฆˆ๋‹ˆ์Šค ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ํ˜์‹ ์ ์œผ๋กœ ํ–ฅ์ƒ์‹œํ‚ด