๐Ÿฆ• Spring Framework ๊ฐœ์š”

๐Ÿ“ Spring Framework ๋ž€?

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

๐Ÿ“ Spring Framework ์˜ ํŠน์ง•โญโญโญ๐Ÿ’ซ

IOC
(Inversion of Control)
์ œ์–ด ๋ฐ˜์ „
์ปจํŠธ๋กค์˜ ์ œ์–ด๊ถŒ์ด ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹ˆ๋ผ ํ”„๋ ˆ์ž„์›Œํฌ์— ์žˆ๋‹ค๋Š” ๋œป์œผ๋กœ ๊ฐ์ฒด์˜ ์ƒ์„ฑ๋ถ€ํ„ฐ ๋ชจ๋“  ์ƒ๋ช…์ฃผ๊ธฐ์˜ ๊ด€๋ฆฌ๊นŒ์ง€ ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์ฃผ๋„ํ•˜๊ณ  ์žˆ๋‹ค. ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ง์ ‘ ํ˜ธ์ถœํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์•„๋‹ˆ๋ผ, ๋งŒ๋“ค์–ด๋‘” ์ž์›์„ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค.
DI
(Dependency Injection)
์˜์กด์„ฑ ์ฃผ์ž…
์„ค์ • ํŒŒ์ผ์ด๋‚˜ ์–ด๋…ธํ…Œ์ด์…˜์„ ํ†ตํ•ด ๊ฐ์ฒด๊ฐ„์˜ ์˜์กด ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ์˜์กดํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค.
POJO
๊ธฐ๋ฐ˜ ํ”„๋ ˆ์ž„์›Œํฌ
(Plain Old Java Object)
J2EE, EJB์™€ ๊ฐ™์€ ํŠน์ • ๊ธฐ์ˆ ์ด๋‚˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์ƒ์†๋ฐ›์•„ ํด๋ž˜์Šค๋ฅผ ๊ตฌํ˜„ํ•˜ ์ง€ ์•Š๊ณ  ์ผ๋ฐ˜์ ์ธ ๊ธฐ๋ณธ ๊ธฐ๋Šฅ๋งŒ์„ ๊ฐ€์ง„ ์ˆœ์ˆ˜ํ•œ ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํŠน์ • ํด๋ž˜์Šค์— ์ข…์†๋˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์ž๋ฐ”์˜ ๊ฐ์ฒด์ง€ํ–ฅ์  ์„ค๊ณ„๊ฐ€ ์‰ฌ์›Œ์ง€๊ณ , ์ฝ”๋“œ๊ธธ์ด ๊ฐ์†Œ, ์œ ์ง€๋ณด์ˆ˜์„ฑ ์ฆ๊ฐ€, ๊ธฐ์กด Java API, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ง€์›์— ์šฉ์ดํ•˜๋‹ค.
Spring AOP
(Aspect Oriented Programming)
๊ด€์  ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ
ํŠธ๋žœ์žญ์…˜, ๋กœ๊น…, ๋ณด์•ˆ ๋“ฑ ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ, ์—ฌ๋Ÿฌ ๊ณ„์ธต์—์„œ ๊ณตํ†ต์œผ๋กœ ํ•„์š”๋กœ ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๊ฒฝ์šฐ ํ•ด๋‹น ๊ธฐ๋Šฅ๋“ค์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ด€๋ฆฌํ•œ๋‹ค

๐Ÿถ Spring์˜ ๊ตฌ์„ฑ๋ชจ๋“ˆ

๐Ÿธ Spring MVC

Spring Framework ์—์„œ๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ํ™”๋ฉด์„ ํ‘œํ˜„ํ•˜๊ธฐ ์œ„ํ•œ View์™€ ์„œ๋น„์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๊ฐœ๋ฐœ ๋กœ
์ง ๋ถ€๋ถ„์„ ๋‚˜๋ˆ„๋Š” MVC2 ํŒจํ„ด์„ ์ง€์›ํ•œ๋‹ค.
๋˜ํ•œ Model, View, Controller ์‚ฌ์ด์˜ ์˜์กด ๊ด€๊ณ„๋ฅผ DI ์ปจํ…Œ์ด๋„ˆ์—์„œ ๊ด€๋ฆฌํ•˜์—ฌ ์œ ์—ฐํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„
์‰ฝ๊ฒŒ ๊ตฌํ˜„ ๋ฐ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค

๐Ÿ“ Spring MVC ์š”์ฒญ์ฒ˜๋ฆฌ ๊ณผ์ •โญโญโญ๐Ÿ’ซ

๐Ÿ“ Spring MVC ๊ตฌ์„ฑ์š”์†Œ

1) Dispatcher Servlet (๋ฐœ์†ก์ž ์„œ๋ธ”๋ฆฟ)

: ์š”์ฒญ์„ ์ปจํŠธ๋กค๋Ÿฌ๋กœ ์ „๋‹ฌ + ์‘๋‹ต

2) Handler Mapping (๋งคํ•‘์ฒ˜๋ฆฌ)

: ์–ด๋–ค ์š”์ฒญ์„ ์–ด๋–ค ํด๋ž˜์Šค/ ๋ฉ”์†Œ๋“œ๋กœ ์—ฐ๊ฒฐํ•˜๋Š” ์ง€ ์ œ์–ดํ•˜๋Š” ๊ฐ์ฒด

3) View Resolever(๋ทฐ ํ•ด๊ฒฐ์‚ฌ)

: Controller์—์„œ ๋ฐ˜ํ™˜๋œ ๋ฌธ์ž์—ด("common/main")
์•ž ๋’ค์— ๊ฒฝ๋กœ(/WEB-INF/views), ํ™•์žฅ์ž(.jsp)๋ฅผ ๋ถ™์—ฌ์„œ
jspํŒŒ์ผ์˜ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•œ ํ›„ forward(์š”์ฒญ ์œ„์ž„)์„ ํ•˜๋Š” ๊ฐ์ฒด

profile
๋‚˜๋ฅผ ์ฃฝ์ด์ง€ ๋ชปํ•˜๋Š” ์˜ค๋ฅ˜๋Š” ๋‚ด ์ฝ”๋“œ๋ฅผ ๋” ๊ฐ•ํ•˜๊ฒŒ ๋งŒ๋“ค์ง€ใ…‹

0๊ฐœ์˜ ๋Œ“๊ธ€