2021-03-29(Mon)
ํญ๋ชฉ | ๋ด์ฉ |
ํ์ต ๋ ์ง | 2021-03-29(์) |
ํ์ต ์๊ฐ | 11:00~23:00 |
ํ์ต ๋ฒ์ ๋ฐ ์ฃผ์ | spring |
ํ์ต ๋ชฉํ | spring์ ํ์ตํ์! |
๋๋ฃ ํ์ต ๋ฐฉ๋ฒ | - |
์์ธ ํ์ต ๋ด์ฉ
http://start.spring.io ๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ฑํด์ importํด๋ฒ๋ฆฌ์. ๋ค๋ฅธ๊ฑด ๋ชฐ๋ผ๋ .gitignore
๊ฐ ๊น๋ํ๊ฒ ์
ํ
๋๋ ๊ฒ์ด ์ฐธ ํธํ๋ค.
Gradle
dependencies์ ๋ช ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฟ๋ง ์๋๋ผ ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์์กดํ๊ณ ์๋ ๋ชจ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํจ๊ป ๋ค์ด๋ก๋ํ๋ค.
์คํ๋ง๋ถํธ ํต์ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
spring-boot-start-web
spring-boot-starter-tomcat: ํฐ์บฃ(์น ์๋ฒ)
์๋ ์๋ Tomcat WAS๋ฅผ ์ง์ ์๋ฒ์ ์ค์นํ๊ณ ์๋ฐ์ฝ๋๋ฅผ ๋ฐ์ด๋ฃ๋ ์์ผ๋ก ๊ฐ๋ฐํ์๋ค. ์ด์ ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ WAS๋ฅผ ์ง์ ํฌํจ์์ผ์ ๋น๋ํด๋ฒ๋ฆฐ๋ค.
sping-webmvc: ์คํ๋ง ์น MVC
spring-boot-starter-thymeleaf: ํ์๋ฆฌํ ํ ํ๋ฆฟ ์์ง(View)
spring-boot-starter(๊ณตํต): ์คํ๋ง ๋ถํธ + ์คํ๋ง ์ฝ์ด + ๋ก๊น
spring-boot
spring-core
spring-boot-starter-logging
logback, slf4f
์ค๋ฌด์์๋ ๋ก๊ฑฐ๋ฅผ ์จ์ผํ๋ค. spring-boot-starter์ logging ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์๋๋ฐ,
slf4j
์logback-classic
์ ์ฎ์ด์ ์ธ ์ ์๋๋ก ์์กด์ฑ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ํฌํจ๋์ด์๋ค.
ํ
์คํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
spring-boot-starter-test
junit: ํ ์คํธ ํ๋ ์์ํฌ
mockito: ๋ชฉ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
asserts: ํ ์คํธ ์ฝ๋๋ฅผ ์ข ๋ ํธํ๊ฒ ์์ฑํ๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
spring-test: ์คํ๋ง ํตํฉ ํ ์คํธ ์ง์
View์ ๋ํด์
Welcom page๋ ์ด๋ป๊ฒ ์์ฑํ ๊น? ์คํ๋ง ๋ถํธ๋ index.html
์ ๋จผ์ ์ฐพ๊ณ , ์์ผ๋ฉด index
template๋ฅผ ์ฐพ๋๋ค.
์ปจํธ๋กค๋ฌ์์ ๋ฆฌํด ๊ฐ์ผ๋ก ๋ฌธ์๋ฅผ ๋ฐํํ๋ฉด ๋ทฐ ๋ฆฌ์กธ๋ฒ( viewResolver )๊ฐ ํ๋ฉด์ ์ฐพ์์ ์ฒ๋ฆฌํ๋ค.
์คํ๋ง ๋ถํธ ํ ํ๋ฆฟ์์ง์ด ๊ธฐ๋ณธ viewName์ ๋งคํ
resources:templates/
+{ViewName}+.html
์คํ๋ง ์น ๊ฐ๋ฐ ๊ธฐ์ด
์น์ ๊ฐ๋ฐํ๋ค๋ ๊ฒ์ ํฌ๊ฒ 3๊ฐ์ง๋ฅผ ๋ปํ๋ค.
์ ์ ์ปจํ ์ธ
MVC์ ํ ํ๋ฆฟ ์์ง
3. API
@ResponseBody
์ด๋
ธํ
์ด์
์ผ๋ก ์ปจํธ๋กค๋ฌ ๋ฉ์๋๋ฅผ ๊ฐ์ธ๋ฉด, viewResolver
๋ฅผ ์ฌ์ฉํ์ง ์๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฉ์๋ ๋ฆฌํด ๊ฐ์ด HttpMessageConverter
๋ก ๋ณํ๋์ด ์๋ต ๋ฐ๋์ ์ ์ฅ๋๋ค. ์ด ๋ 1) ์์ฒญ์ HTTP Accept ํค๋์ ์๋ฒ์ ์ปจํธ๋กค๋ฌ ๋ฐํ ํ์
์ ๋ณด๋ฅผ ์กฐํฉํ์ฌ HttpMessageConverter
๊ฐ ์ ํ๋๋ค.
๋ณธ ๋ฌธ์์ฒ๋ฆฌ:
StringHttpMessageConverter
๊ธฐ๋ณธ ๊ฐ์ฒด์ฒ๋ฆฌ:
MappingJackson2HttpMessageConverter
ํ์ต ๋ด์ฉ์ ๋ํ ๊ฐ์ธ์ ์ธ ์ดํ
ํ ์ฌ๋ฐ๊ธดํ๋ฐ ๊ฐ๊ธธ์ด ๋ฉ๋ค!
๋ค์ ํ์ต ๊ณํ
๋์์ธํจํด ํ์ต
Last updated