Spring Legacy (IntelliJ)
Eclipse์์ spring framework๋ฅผ ์ด์ฉํ ์น ๊ฐ๋ฐ์ ํ ๋๋
STS(Spring Tool Suite)์ ๋์์ ๋ฐ๋ ๊ฒ์ด ์ผ๋ฐ์
์๋ Spring framework๋ STS์ ๋์ ์์ด๋ maven์ ํตํด ํ๊ฒฝ ๊ตฌ์ถ์ด ์ถฉ๋ถํ ๊ฐ๋ฅํ๋ค.
ํ์ง๋ง IntelliJ์์๋ ๊ทธ๋ฐ ๊ธฐ๋ฅ์ด ์กด์ฌํ์ง ์๋๋ค.
๋ค๋ง ์๋์ ์ผ๋ก eclipse ์ฌ์ฉ์๊ฐ ๋ ๋ง์ eclipse์ STS๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์์ํ๋ ํฌ์คํ ์ด ๋๋ถ๋ถ
์ฐ๋ฆฌ๋ STS ๋ฑ์ extension์ด๋ Plugin์ ์์กดํ์ง ์๊ณ ์์ maven ์ ํ์ฉํด
Spring framework๋ฅผ ์ฌ์ฉํด๋ณผ ๊ฒ
์ถํ์๋ https://start.spring.io/ ๋ฅผ ํตํด ์ฝ๊ฒ ๋ง๋ค ์ ์์
Spring framework๋ ์ฒ์์ ์ง์ ์ฅ๋ฒฝ์ด ์๋ ํธ
๋ง์ ์ค์ ๋ค๊ณผ, ๊ทธ ์๋ฆฌ๋ฅผ ์ดํดํ๊ธฐ ์ํ ๋ฐฐ๊ฒฝ์ง์์ด ํ์ํจ.
ํนํ ์ฌ๋ฌ ํ๋ฌ๊ทธ์ธ๋ค์ ์ฌ์ฉํ๊ฑฐ๋ STS๋ก ์ค์ ์ ํด์ ์์ํ๋ฉด
์คํ๋ง์ ๊ธฐ๋ณธ์๋ฆฌ์ ๋ํด์ ์ดํดํ์ง ๋ชปํ ์ฑ ๋จ์ํ ์ฌ์ฉํ ์ ๋ง ์๋ ์ํ๊ฐ ๋จ
STS ๋ฑ์ extension์ด๋ plugin์ ์์กด์ ์ด์ง ์๊ณ ์์ํ๊ฒ maven์ ํ์ฉํ์ฌ
spring framework ๋ฅผ ์์ํด๋ณผ ๊ฒ์
*Spring Legacy
๋ ๊ฑฐ์ ์์คํ ์ด๋?
๋ ๊ฑฐ์ ์์คํ ์ ์ค๋ ๊ธฐ๊ฐ ๋์ ์ด์๋์ด์จ ์์คํ ์ผ๋ก, ๊ณผ๊ฑฐ์ ๊ฐ๋ฐ๋ ๊ธฐ์ ๊ณผ ๋ฐฉ๋ฒ๋ก ์ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ๋์์ต๋๋ค. ์ด๋ฌํ ์์คํ ์ ์ฃผ๋ก ์ ๋ฌด ๋ก์ง์ด ๋ณต์กํ๊ณ ์ ์ง๋ณด์๊ฐ ์ด๋ ต๋ค๋ ํน์ง์ด ์์ต๋๋ค.
๋ ๊ฑฐ์ ์์คํ ์ ์๋ก์ด ์๊ตฌ์ฌํญ์ ๋ํ ๋์์ด ์ด๋ ต๊ณ , ํ์ฅ์ฑ์ด ์ ํ์ ์ผ ์ ์์ต๋๋ค.
์คํ๋ง ํ๋ ์์ํฌ์ ๋ ๊ฑฐ์ ์์คํ
์คํ๋ง ํ๋ ์์ํฌ๋ ๋ ๊ฑฐ์ ์์คํ ์ ๊ฐ๋ฐ๊ณผ ์ ์ง๋ณด์๋ฅผ ์ง์ํ๊ธฐ ์ํ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์คํ๋ง์ DI ์ AOP ๋ฑ์ ๊ฐ๋ ์ ๋์ ํด ๋ ๊ฑฐ์ ์์คํ ์ ์ฝ๋๋ฅผ ๋ถ๋ฆฌํ๊ณ ์ ์ฐ์ฑ์ ๋์ฌ ์ค๋๋ค.
์คํ๋ง ๋ถํธ์ ๋ฑ์ฅ๊ณผ ์ฐจ์ด์
์คํ๋ง ๋ถํธ๋ ์คํ๋ง ํ๋ ์์ํฌ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ ๋๊ตฌ์ ๋๋ค. ์คํ๋ง ๋ถํธ๋ ๋ ๊ฑฐ์ ์์คํ ์ ์ค์ ๊ณผ ๋ฐฐํฌ๋ฅผ ๊ฐํธํ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก ๋์์ค๋๋ค. ์คํ๋ง ๋ถํธ๋ ์๋ ์ค์ ๊ณผ ๋ด์ฅ ์๋ฒ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํด ๊ฐ๋ฐ์๊ฐ ๋ณ๋์ ์ค์ ์์ด๋ ๊ฐ๋จํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ, ๋ฐฐํฌ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์ฐ์ฑ์ ํฅ์์ํค๊ณ ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถ ํ ์ ์์ต๋๋ค.
1. ํ๋ก์ ํธ ์์ฑ
์ํํ๋ก์ ํธ์ ํ ํ ํ๋ก์ ํธ์ ์ด๋ฆ๊ณผ location ์ค์
๊ณ ๊ธ ์ค์ ํด๋ฆญ ํ
๊ทธ๋ฃน ID ๋ณ๊ฒฝ ํ ์ํฐํฉํธ ID ํ์ธ ํ ์์ฑ!
์ง์ ํ ๊ทธ๋ฃน ID์ ๋ฐ๋ผ์ java ์๋์ ํจํค์ง๊ฐ ์์ฑ๋จ
pom.xml ์ด ์ ์์ฑ๋์๋์ง ํ์ธ!
2. pom.xml ์ค์
pom.xml์ ๋ด์ฉ ์ถ๊ฐ ํ maven reload
3. ํ๋ก์ ํธ ๊ตฌ์กฐ ์ค์
๋ชจ๋ ์ ํ์์ spring_test ์ ํ ํ ํ์ธ ๋ฒํผ ํด๋ฆญ
์ํฐํฉํธ ์ถ๊ฐ
spring_test ๋ชจ๋ ์ ํ ํ ํ์ธ ๋ฒํผ ํด๋ฆญ!
์ดํ ์ ์ฉ ๋ฒํผ ํด๋ฆญํ๋ฉด
web/WEB-INF/web.xml ํ์ผ ์์ฑ ๋จ
4. web.xml ์ค์
ํด๋น ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ฉด param-value์ ๋นจ๊ฐ์ ๊ธ์จ๋ก ์๋ฌํ์๊ฐ ๋๋๋ฐ ์ด๋ ํด๋น ํ์ผ์ ์์ฑํ์ง ์์๊ธฐ ๋๋ฌธ์ด๋ค.
web\WEB-INF\spring ๋๋ ํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ๊ณ applicationContext.xml, dispatcher-servlet.xml ์ด๋ผ๋ ์ด๋ฆ์ spring config ํ์ผ 2๊ฐ๋ฅผ ์์ฑํ๋ค.
dispatcher-servlet.xml ์ ๋ค์ ์ฝ๋ ์ถ๊ฐ
์ด ์ฝ๋๋ฅผ ์ถ๊ฐํ๋ฉด xml ํ๊ทธ์ ๋นจ๊ฐ์ ๊ธ์จ์ ์ค๊ณผ ํจ๊ป ์๋ฌ ํ์๊ฐ ๋๋ค.
์ด๋ IntelliJ์ ๊ธฐ๋ฅ์ ์ด์ฉํด xml namespace๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ํธํ๋ค.
์ฌ์ง๊ณผ ๊ฐ์ ํ์ ์ด ๋จ๊ฑฐ๋ ์๋ฌ ํ์๊ฐ ๋ ์ฝ๋์ ์ปค์๋ฅผ ๋๊ณ Alt + Enter๋ฅผ ๋๋ฌ๋ณด์.
๊ทธ๋ผ ์๋์ผ๋ก xmlns:mvc ๊ฐ ์์ฑ๋ ๊ฒ์ ํ์ธํ ์ ์๋ค. context namespace๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ถ๊ฐํด์ค๋ค.
context์ spring_test๋ ์๋์ ์ปจํธ๋กค๋ฌ ์์ฑ ์ ๊ฒฝ๋ก ์์ฑํ๋ฉด ์๋ฌ ์ฌ๋ผ์ง
ํ์ผ ์ถ๊ฐ ํ module ์์ Spring ์ถ๊ฐ
5. ํ๋ฉด ์ถ๊ฐ
5-1 Controller ์ถ๊ฐ
it ํจํค์ง ์๋์ spring_test ๊ฒฝ๋ก ์์ฑ ํ ํด๋น ๊ฒฝ๋ก์ HomeController.java ํ์ผ ์์ฑ
์ปจํธ๋กค๋ฌ ๋ด์ฉ ๋ณ๊ฒฝ
5-2 view ์์ฑ
WEB-INF ์๋์ views ํจํค์ง ์์ฑ ํ ํด๋น ๊ฒฝ๋ก์ index.jsp ์์ฑ
6. ํฐ์บฃ ์ค์
Spring 6.0, Boot 3.0์์ ๋ฌ๋ผ์ง๋ ์
Spring 5.x -> 6.0 ๋ฌ๋ผ์ง๋ ์
Java 17๊ธฐ๋ฐ์ผ๋ก ๋ณ๊ฒฝ
์ผ๋ถ Java EE API ์ง์ ์ข ๋ฃ
XML์ด ์ ์ฐจ์ ์ผ๋ก Spring์์๋ ์ฌ๋ผ์ง๊ฒ ๋ ๊ฒ
RPC ์ง์ ์ข ๋ฃ
์๋ก์ด AOT ์์ง ๋์ (๋ฐ์ ์ค๋ช ์ถ๊ฐ)
@Inject ๊ฐ์ JSR์์ ์ง์ํ๋ ์ด๋ ธํ ์ด์ ๋ค์ด jakarta.annotation ํจํค์ง์ ์ด๋ ธํ ์ด์ ์ผ๋ก ๋ณ๊ฒฝ
HttpMethod๊ฐ enum์์ class๋ก ๋ณ๊ฒฝ
Jakarta EE 9+๋ก์ ๋ง์ด๊ทธ๋ ์ด์ ์ผ๋ก ์ธํ ๋ณ๊ฒฝ
Hibernate ORM 5.6.x ๋ฒ์ ๋ถํฐ hibernate-core-jakarta ์ฌ์ฉ
javax.persistence์์ jakarta.persistence๋ก ๋ณ๊ฒฝ
Tomcat 10, Jetty 11, Undertow 2.2.14 (undertow-servlet-jakarta๋ ํฌํจ)์ผ๋ก ์ ๊ทธ๋ ์ด๋ ํ์
javax.servlet์์ jakarta.servlet์ผ๋ก ๋ณ๊ฒฝ ํ์ (import)
๊ทธ๋์ ํฐ์บฃ ๋ฒ์ ์ 10 ๋ฒ์ ์ผ๋ก ๋ฒ์ ์
ํฐ์บฃ local ์ถ๊ฐ ํ ์ค์
VM option ๋ฐ port ์ค์
๋ฐฐํฌ ํญ์์ ์ํฐํฉํธ ์ถ๊ฐ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ ์์
7. ์คํ
Last updated