์ด์ ํฌ์คํธ์์ Spring Boot์ ํ๋ก์ ํธ๋ฅผ ์์ฑํ๋ ๊ฒ์ ์์๋ดค๋ค.
์ด๋ฒ ํฌ์คํธ์์๋ Spring Boot๊ฐ ์คํ๋๋ ๊ณผ์ ๊ณผ ํ ์คํธ๋ฅผ ์์๋ณธ๋ค.
๋จผ์ ์์ฑ๋ Spring Boot ํ๋ก์ ํธ๋ฅผ ๊ตฌ์กฐ๋ฅผ ๋ณด๋ฉด
์ด๋ฌํ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ๋ณผ ์ ์๋ค.
.gradle, .idea, gradle ํด๋์ ๊ฒฝ์ฐ build tool๊ณผ ide ์ค์ ์ด๋ฏ๋ก ํ ํฌ์คํธ์์๋ ๋ค๋ฃจ์ง ์์ ์์ ์ด๋ค.
src ๋๋ ํ ๋ฆฌ๋ฅผ ์ด์ด๋ณด๋ฉด src/java, src/resource ์ด๋ ๊ฒ ๋๊ฐ์ ํจํค์ง๊ฐ ๋์ค๋๋ฐ ์ด๊ณณ์ด ์ค์ ๋ก ์คํ๋๋ ์ฝ๋ ๋ฐ resource๊ฐ ์ ์ฅ๋๋ ๊ณณ์ด๋ค.
src/java ํ์ ํด๋๋ฅผ ๋ณด๋ฉด ํ๋ก์ ํธ ์์ฑ์ ์ง์ ํ๋ ํจํค์ง๋ช ์ผ๋ก ์ง์ ๋์ด ์์์ ์ ์ ์๋ค.
ํด๋น ํจํค์ง๊ฐ ์ต์์ ํจํค์ง์ด๊ณ , ๊ทธ ์์ Demo1Application์ Spring Boot์ ์คํ main method๊ฐ ๊ตฌํ๋์ด ์๋ ํด๋์ค์ด๋ค.
์๋์ผ๋ก ์์ฑ๋ Demo1Applicaiton class์ ๋ด๋ถ์ด๋ค.
@SpringBootApplication ์ด๋ ธํ ์ด์ ์ ๊ฐ์ง๊ณ ์๊ณ , main ๋ฉ์๋ ์์๋ SpringApplication.run ํจ์๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
@SpringBootApplication ๋ด๋ถ์๋ ์ค์ ์ ์๋์ผ๋ก ํ๋ @EnableAutoConfiguration ๊ณผ ํ์ ํจํค์ง๋ฅผ ์ค์บํ์ฌ Bean ๋ฑ๋ก์ ํ๋ @ComponentScan, ์ค์ ํ์ผ์์ ์๋ฆฌ๋ @SpringBootConfiguration 3๊ฐ์ ์ด๋ ธํ ์ด์ ์ด ์๋ค.
ํ๋ก์ ํธ ์คํ์ @EnableAutoConfiguration์ผ๋ก ์ธํด ์๋์ผ๋ก ์ค์ ์ด ์๋ฃ๋๋ฉฐ, ํ์ ํจํค์ง๋ฅผ ์ค์บํ์ฌ @Component๋ streoType (@Controller, @Service, @Repository, ...) ์ ๊ฐ์ ์ด๋ ธํ ์ด์ ์ด ๋ถ์ด์๋ ํด๋์ค๋ค์ Bean ๋ฑ๋ก ํ๋ค.
์คํ์ฝ์์๋ ์ด์ ๊ฐ์ ๋ก๊ทธ๊ฐ ๋์ค๋๋ฐ dependency๋ก ์ถ๊ฐ๋ Tomcat์ด ์คํ๋๋ฉฐ ์๋ฒ๊ฐ ์ฌ๋ผ๊ฐ๋ ๋ชจ์ต์ ๋ณผ ์ ์๋ค.
๊ธฐ๋ณธ ํฌํธ๋ 8080์ด๊ณ ๋ง์ฝ ํฌํธ๊ฐ ์ฌ์ฉ์ค์ด๋ผ๋ฉด src/resources ํ์ application.properties์
๊ฐ๋จํ ์ค์ ์ ํ๋ ์ถ๊ฐํ๋๊ฒ์ผ๋ก ํฌํธ๋ฅผ ๋ณ๊ฒฝํ ์ ์๋ค.
DB๊ด๋ จ dependency๋ฅผ ์ถ๊ฐํ ๊ฒฝ์ฐ ์คํ์ด ๋์ง ์์ ์ ์๋ค.
@SpringBootApplication์ด ์คํ๋๋ฉฐ DB์์ ์ฐ๊ฒฐ์ ์ฒดํฌํ๊ธฐ ๋๋ฌธ์ธ๋ฐ,
ํด๋น ํ๋ ๊ฒฝ์ฐ application.properties์ DB ์ค์ ์ ์ถ๊ฐํ๋ค.
spring.datasource.url=DB url
spring.datasource.driver-class-name=driver
spring.datasource.username=username
spring.datasource.password=password
์ฌ์ฉ์ค์ธ DB์ ๋ฐ๋ผ ์ค์ ์ ์๋ฃํ๊ณ ์คํํ๋ค.