Spring Framework ๊ฐ๋ ๋ฐ ๊ตฌ์กฐ
spring framework
์ด๋ฒ ํฌ์คํ ์ web ๊ฐ๋ฐ(java)์ ํ ๋ ์์ฃผ ์ฌ์ฉํ๋ framework์ธ Spring์ ๋ํด์ ์ ๋ฐ์ ์ธ ๋๋์ ์์๋ณด๊ฒ ์ต๋๋ค.
์ ์ ๋ธ๋ก๊ทธ๋ ์ ๋ฌธ์๋ค์๊ฒ ๊ฑฐ๋ฆฌ๊ฐ์ด ๋๊ปด์ง๋ ์ถ์์ ์ธ ๊ฐ๋ ๋ค์ ๊ตฌ์ฒดํํด๋ณด๋ฉด์ ์ด์ ๋ณด๋ค ์น์ํด์ง๋ ๊ฒ์ ๋ชฉํ๋ก ํ๊ณ ์์ต๋๋ค. ์ด๋ฒ ํฌ์คํ ๋ํ ๋์ผํ ๋ชฉํ๋ฅผ ๊ฐ์ง๊ณ ๋ฐ๋ก ์์ํ๊ฒ ์ต๋๋ค.
* ์ฐธ๊ณ 1 : ํด๋น ํฌ์คํ ์์ ์ฌ์ฉํ๋ ๊ตฌ์กฐ๋ software design pattern์ MVC model 2๋ฅผ ์ฑํํ์๊ณ , IDE๋ eclipse๋ฅผ ์ฌ์ฉํ์์ต๋๋ค.
* ์ฐธ๊ณ 2 : WAS์ software design pattern MVC model 2์ ๋ํ ์ฌ์ ์ง์์ด ํ์ํฉ๋๋ค.
--------------------------------------------
[ ๋ชฉ์ฐจ ]
1. Spring ๊ฐ๋
2. Spring ๊ตฌ์กฐ
2.1 Bean ๊ด์
2.2 MVC ๊ด์
3. spring project ๊ตฌ์ฑ (eclipes ๊ธฐ์ค)
4. spring ์ค์ ์์
--------------------------------------------
1. Spring ๊ฐ๋
- Spring์ ๊ฐ๋ฐ ํ ๋ ์ฌ์ฉํ๋ Framework ์ ๋๋ค.
ํ๊ตญ์ด๋ก ๋ฒ์ญํ๋ฉด Frame(ํ) + work(์ผ) ์ผ๋ก ์ผ(๊ฐ๋ฐ)์ ํจ์จ์ ์ผ๋ก ํ๊ธฐ์ํด์ ์ฌ์ฉํ๋ ํ(frame) ์ ๋๋ค.
framework์ ์ ํด์ง ๊ท์น์ ์งํค๋ฉด ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ํฅ์์ํฌ ์ ์๋ ํน์ง์ด ์์ต๋๋ค.
์ผ์์ํ์์ ๋น์ ๋ฅผ ํ๋ค๋ฉด ์ปคํผ๋ฅผ ๋ง๋ค ๋ ํธ๋๋๋ฆฝ์ผ๋ก ๋ง๋๋๊ฒ์ ์๊ฐ๊ณผ ์ ์ฑ์ด ๋ง์ด ์๋ชจ๋์ง๋ง, ์ปคํผ๋จธ์ ์ผ๋ก ์ปคํผ๋ฅผ ๋ง๋ ๋ค๋ฉด ๊ฐ๋จํ ๋ฒํผ์กฐ์๋ง์ผ๋ก ๋น ๋ฅด๊ฒ ์ปคํผ๋ฅผ ๋ง๋ค ์ ์์ต๋๋ค.
(์กฐ์ : ์๋ ๊ธ๋ผ์ธ๋ฉ/๋๋, ๋ฌผ ์/์จ๋, ๋ผ๋ผ ๋ฑ)
์ฌ๊ธฐ์ ์ปคํผ๋ฅผ ๋ง๋ค๊ธฐ์ํด ์ปคํผ๋จธ์ ์ด ํ๋ ์ญํ ์ด Spring Framework๊ณผ ์ ์ฌํฉ๋๋ค.
2. spring ๊ตฌ์กฐ
2.1 Bean ๊ด์
- Bean์ ๊ด๋ฆฌํ๋ ๊ด์ ์์ spring framework์ ๊ตฌ์กฐ๋ฅผ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
* Bean : spring container์์ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด
* dispatcher servlet ๊ฐ์ฒด : client์ ์์ฒญ์ ๋ฐ์ ์ฒ๋ฆฌํ controller์ view ๋ฅผ ์ ์ดํ๋ ๊ฐ์ฒด (=front controller)
Spring ๊ตฌ์กฐ (bean ๊ด์ )
2.2 MVC ๊ด์
- ๋ค์์ผ๋ก๋ MVC(sotfware design pattern) ๊ด์ ์์ spring framework์ ๊ตฌ์กฐ๋ฅผ ํ์ธํด๋ณด๊ฒ ์ต๋๋ค.
* ํ๋์ ๋ฐ์ค : spring ์ค์ ์์ญ
* ๋นจ๊ฐ์ ๋ฐ์ค : ๊ฐ๋ฐ์ ์ฝ๋ฉ์์ญ
* Handler = controller ๋ฅผ ํฌํจํ๋ ๊ฐ๋
Spring ๊ตฌ์กฐ (MVC๊ด์ )
3. spring project ๊ตฌ์ฑ (eclipse)
- ํด๋น spring project ์ type์ 'spring MVC project' ์ ๋๋ค.
* spring ์ ์ค์ ์ java or xml ์ ๋๊ฐ์ง ๋ฐฉ๋ฒ์ด ์กด์ฌํฉ๋๋ค.
RecommendBook_B : project ๋ช (=context path)
[controller, model]
src/main/java : java source (controller, DAO, DTO...)
spring ์ค์ ํ์ผ (dispatcher, Bean) - java๋ก ์ค์ ํ ๊ฒฝ์ฐ
[view]
src/main/webapp/resource : ์ ์ ์์ (HTML, CSS, JS)
src/main/webapp/WEB-INF/spring : spring ์ค์ ํ์ผ - xml๋ก ์ค์ ํ ๊ฒฝ์ฐ
src/main/webapp/WEB-INF/views : JSP ํ์ผ
src/main/webapp/WEB-INF/web.xml : tomcat ์ค์ ํ์ผ
pom.xml : Maven project ์ค์ ํ์ผ
4. spring ์ค์ ์์
- spring ์ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ๋ค์ํ๊ฒ ์กด์ฌํ์ง๋ง ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ์ค์ ์ ๋ํด์๋ง ์์๋ณด๊ฒ ์ต๋๋ค.
(์ด๋ ์ ๋์ ์ธ ์์๋ ์๋๋ฉฐ ๊ฐ๋ฐ์์ ๋ฐ๋ผ ์ฐจ์ด๊ฐ ์์ ์ ์์ต๋๋ค)
4.1 project ์ค์ (pom.xml)
- Maven, JdbcTemplate, dependency ...
4.2 tomcat ์ค์ (web.xml)
- servlet, ์ธ์ฝ๋ฉ ๋ฑ๋ฑ
* ์ฐธ๊ณ : dispatcher servlet / bean ์ค์ ํ์ผ์ ๋ฑ๋กํ๋ ๊ณผ์ ์ด ํ์ํจ
4.3 dispatcher servlet ์ค์ (java or xml)
- Handler Mapping : client์ request๋ฅผ ์ํ ํ controller ๊ฐ์ฒด๋ฅผ mapping
- Handler Adapter : client์ request๋ฅผ ์ํ ํ controller๊ฐ์ฒด์ method๋ฅผ mapping
- view Resolver : client์ ๋ฐํ ํ view๋ฅผ ์ ํ
- Resource Handler : webapp/resources ์ ์ ๊ทผํ๊ธฐ ์ํ ์ค์
4.4 Bean ์ค์ (java or xml)
- Aspect ์ค์ : autoproxy
- ๊ฐ์ข bean์ ์์ฑ (controller, view, model, aspect ...)
4.5 Bean ์ ์ (java)
- Controller : request URL mapping ์ค์ + logic
- View
- Moded (service, DAO)
- DTO
* ๋ง์น๋ฉฐ
์ด๋ก์จ Spring์ ๊ฐ๋ ๋ถํฐ ๊ตฌ์กฐ์ ์ค์ ์์๊น์ง ์์๋ณด์์ต๋๋ค. Spring ์ software ๊ฐ๋ฐ์ ๋์์ฃผ๋ ์ญํ์ ํ๋ ๋๊ตฌ์ด๊ธฐ ๋๋ฌธ์ ๊ตฌ์กฐ์ ์ค์ ์ด ๊ฐ์ฅ ์ค์ํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ ์ ๊ฐ์ spring ์ ๋ฌธ์๋ค์๊ฒ ์กฐ๊ธ์ด๋๋ง ๋์์ด ๋์ จ๊ธฐ๋ฅผ ๋ฐ๋ผ๋ฉด์ ํฌ์คํ ์ ๋ง์น๊ฒ ์ต๋๋ค.
'์คํ๋ง Spring > ๐งถ ์คํ๋ง ํ๋ ์์ํฌ Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์คํ๋ง ํ๋ ์์ํฌ - ๋ก๊ทธ (Log4j) ๋ฐ ์ธํฐ์ ํฐ (Interceptor) ์ค์ ๋ฒ (0) | 2021.04.27 |
---|---|
์คํ๋ง ํ๋ ์์ํฌ - ๊ฐ ๋๊ธฐ๊ธฐ ๊ธฐ๋ณธ (0) | 2021.04.19 |
์คํ๋ง ํ๋ ์์ํฌ - Model ๊ฐ์ฒด (0) | 2021.04.19 |
์คํ๋ง ํ๋ ์์ํฌ - ์ด๊ธฐ ์ธํ , ๊ฐ๋ฐ ํ๊ฒฝ์ค์ (0) | 2021.04.19 |
Spring MVC ๊ตฌ์กฐ์ ์ฒ๋ฆฌ๊ณผ์ (0) | 2021.04.19 |
๋๊ธ