Spring MVC๋ก ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ํ ํ๊ฒฝ์ธํ ์ ๋ค๋ฃน๋๋ค. (Java, Spring MVC, STS, Tomcat)
Spring MVC Project ํ๋ก์ ํธ์ ๊ตฌ์กฐ๋ฅผ ์ค๋ช ํ๊ณ , ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์ ๊ณผ์ ๋ฐ ์น ์์ฒญ ์ฒ๋ฆฌ ๊ณผ์ ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ ํ๋ก์ ํธ ๊ตฌ์ฑ ์์ ๊ณ ๋ คํด์ผ๋ ์ฌํญ๊ณผ Spring MVC ํ๋ก์ ํธ์ ์ ๋ฐ์ ์ธ ์ค์ ์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ๋ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐํ์ฌ ๊ฒ์ํ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ณ ๋ชฉ๋ก์ ์กฐํํ๋ ๊ฐ๋จํ API์ ๊ฐ๋ฐํ์์ต๋๋ค.
Spring์ View์ ViewResolver์ ๊ด๊ณ, Tiles ์ธํ ์ ๋ํด ์์๋ณด์์ต๋๋ค.
AOP ๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ฐ๋ ๊ณผ Spring AOP๋ฅผ ์ ์ฉํด๊ฐ๋ ๊ณผ์ ์ ์์ฑํ์ต๋๋ค
Spring Boot ๋ฒ์ ์ 2.4.4 ์์ 2.7.7๋ก ๋ฒ์ ์ ์ ํ์๋๋, URL์์ ์ฌ๋์๊ฐ ๋๊ฐ๊ฐ ๋ค์ด๊ฐ๋ฉด Mapping์ ๋ชป ์ฐพ๋ ํ์์ด ๋ฐ์ํ๋ค.
`JPA`, `QueryDSL`๋ฅผ ์ฒ์ ๋์ ํ๋ฉด์ ๊ฐ์ด ๊ฐ๋ฐํ๋ ํ์๋ค์ ์ง๋ฌธ ์ฌํญ์ ๋ฐํ์ผ๋ก ์ค์ ๋ฐ ๊ฐ๋ฐ ๊ฐ์ด๋๋ผ์ธ์ ์์ฑํ์ต๋๋ค.
`Spring Boot`๋ก ๋ง๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํฉ๋๋ค. IntelliJ IDE์์ Maven ๊ธฐ๋ฐ์ Spring Boot ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ ํ์ผ ์์ฑํ๊ณ ์คํ, Windows์ ์๋น์ค ๋ฑ๋ก
์ด๋ฒ ํฌ์คํ ์์๋ `Spring Boot`๋ก ๋ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ `PEM` ํ์์ `SSL` ์ธ์ฆ์๋ฅผ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ IP ์ ๊ทผ์ ํ์ ์ํด Interceptor๋ฅผ ์์ฑํ๊ณ , ๋ฑ๋กํ๋ ๋ฐฉ๋ฒ์ ๋ํ ํ๋ก์ธ์ค์ ๋ํด ์ค๋ช ํ์์ต๋๋ค.
Spring Boot`์์ @Scheduled ์ด๋ ธํ ์ด์ ์ ์ด์ฉํ์ฌ ์ค์ผ์ฅด๋ฌ๋ฅผ ๊ตฌํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์์ฑํ์์ต๋๋ค
Spring Boot Appliacation ์คํ์ ์๋์ผ๋ก ํน์ ์์ ์ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํด ์ค๋ช ํฉ๋๋ค
AbstractRoutingDataSource์ ์ ์์ ์ฌ๋ก, Spring Boot + JPA์์ ๊ตฌํํ ๋ด์ฉ์ ๋ํด ์ค๋ช ํฉ๋๋ค.
ActiveMQ์ ์ฃผ์ ๊ฐ๋ ๊ณผ ์ค์น ๊ณผ์ ์ ์ ๋ฆฌํ์์ต๋๋ค.
์ด๋ฒ ํฌ์คํ ์์๋ Spring์์ ActiveMQ๋ฅผ ์ธํ ํ๊ณ ๊ตฌํํ๋ ๊ณผ์ ์ ๋ํด ๊ธฐ์ ํ์์ต๋๋ค.
Spring ํ๋ ์์ํฌ์์ ์์ฃผ ์ฌ์ฉ๋๋ ๋์์ธ ํจํด์ ์ ์ฒด์ ์ผ๋ก ์ดํด๋ณด๊ณ , ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์์ฑ ํจํด์ธ Singleton Pattern๊ณผ ์คํ๋ง์์ ํ์ฉ์ฌ๋ก์ ๋ํด ๋ค๋ฃน๋๋ค.
ํ ํ๋ฆฟ ์ฝ๋ฐฑ ํจํด์ ์ด์ฉ์ฌ ๋ฏธ๋ค์จ์ด ํต์ ๋ถ๋ถ์ ๋ชจ๋ํํ์ฌ ์ฝ๋๋ฅผ ๊ฐ์ ํ ์ฌ๋ก์ ๋ํด ์๊ฐํฉ๋๋ค.
Spring Initializer๋ฅผ ํตํด ์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ฉด์ ํ๋ก์ ํธ๋ฅผ ์ธํ ํ๋ ๊ณผ์ ์ ํฌ์คํ ํ์ต๋๋ค.