๊ฐ์
์๋ ํ์ธ์ ๊ณต์ฑ ํ์์ ๋ฐฑ์๋ ๊ฐ๋ฐ์ ๋งก๊ณ ์๋ ์ฟผ๋ฆฌ์น์ ๋๋ค.
1์ฐจ ์คํ๋ฆฐํธ๋ฅผ ์งํํ๋ฉด์ ๋ค์ํ ์ํฉ๋ค์ ๋ง์ฃผํ๋๋ฐ์.
์ด๋ฒ ๊ธ์ ํตํด 1์ฐจ ์คํ๋ฆฐํธ ์งํ ์ค ๋ง์ฃผ์น๊ฒ ๋ ํ ์ํฉ์ ๋ํด ๊ธฐ๋กํด๋ณด๊ณ ์ ํฉ๋๋ค.
@WebMvcTest ์ฌ์ฉ ์ค..
Presentation Layer ๋ฅผ ํ
์คํธํ๊ธฐ ์ํด ์ฐ๋ฆฐ ํํ @WebMvcTest
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
@SpringBootTest
๋ Application Context ๋ฅผ ์์ ํ ์คํํ์ฌ ๋ชจ๋ ๋น์ ๋ฑ๋กํ๋ ๋ฐ๋ฉด, @WebMvcTest
๋ Presentation Layer ๊ด๋ จ ๋น๋ง์ ์ค์บ ๋ฐ ๋ฑ๋กํ๊ธฐ ๋๋ฌธ์ ๋ณด๋ค ์พ์ ํ ์ฌ๋ผ์ด์ค ํ
์คํธ๋ฅผ ์งํํ ์ ์์ต๋๋ค.
์ด๋ฌํ ์ด์ ๋๋ฌธ์ ์ ํฌ ๊ณต์ฑ
ํ ์ญ์ @WebMvcTest
๋ฅผ ์ฌ์ฉํ์ต๋๋ค.
๊ณต์ ๋ฌธ์๋ฅผ ์ฐพ์๋ณด๋ฉด, ํด๋น ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ ๋ Auto-Configuration ์ ๋นํ์ฑํํ๊ณ MVC ํ ์คํธ์ ํ์ํ ์ปดํฌ๋ํธ๋ง ๋ฑ๋กํด์ค๋ค๊ณ ํฉ๋๋ค. ์ด๋ ์๋์ ๊ฐ์ต๋๋ค.
@Controller
@ControllerAdvice
@JsonComponent
Converter/GenericConverter
Filter
WebMvcConfigurer
HandlerMethodArgumentResolver
๋ฐ๋ฉด ์๋์ ๊ฐ์ ์ปดํฌ๋ํธ๋ ๋ฑ๋ก๋์ง ์๋๋ค๊ณ ํ๋ค์.
@Component
@Service
@Repository
์ ํฌ ๊ณต์ฑ
ํ์์ ํ ํฐ์ ํ์ฉํ ์ธ์ฆ ์ธ๊ฐ๋ฅผ ๊ตฌํํ๊ธฐ ์ํด WebMvcConfigurer
๋ฅผ ํตํด HandlerMethodArgumentResolver
์ HandlerInterceptor
๋ฅผ ์ ์ฉํ์ต๋๋ค.
์ดํ Presentation Layer ๋จ์ ์ธ์ฆ ์ธ๊ฐ ํ ์คํธ๋ฅผ ์งํํ๋ฉฐ ํ ๊ฐ์ง ์๋ฌธ์ ์ด ๋ค๊ฒ ๋ฉ๋๋ค.
๋ถ๋ช
WebMvcConfigurer
๋HandlerMethodArgumentResolver
๋ ์๋์ผ๋ก ๋ฑ๋กํด์ค๋ค๊ณ ๊ณต์ ๋ฌธ์์ ๋ช ์๋์ด ์๋๋ฐ,HandlerInterceptor
๋ ์๋ค? ๊ทผ๋ฐ ๋ฐ๋ก ๋ฑ๋กํด์ฃผ์ง ์์๋ ์๋ํ๋ค? ์์ง?
์ฐพ์๋ณด์
์ด์ ๋ฅผ ์ด์ฌํ ์ฐพ๋ค๋ณด๋ spring-boot GitHub ์์ ์ด๋ฐ ์ด์๋ฅผ ๋ฐ๊ฒฌํ๊ฒ ๋ฉ๋๋ค.
ํด๋น ์ด์๋ ์ด PR ์ ํตํด ์์ ๋๊ฒ ๋๋๋ฐ์. ์ด๋ค ์ฝ๋๋ค์ด ์ถ๊ฐ๋์๋์ง ํ์ธํด๋ด ์๋ค.
์ ์ปค๋ฐ์ ๋ณด๋ฉด HandlerInterceptor
๊ฐ ์ถ๊ฐ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์ด๋ก์จ @WebMvcTest
์ํ ์ HandlerInterceptor
๊ฐ ์๋์ผ๋ก ๋น ๋ฑ๋ก๋๋ค๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ๊ณต์ ๋ฌธ์์๋ ํด๋น ๋ด์ฉ์ด ๋ฐ์๋์ง ์์ ๊ฒ์ผ๊น?
ํด๋น ๊ณต์๋ฌธ์๋ spring-boot 1.4.0 ๋ฒ์ ์ ์์ฑ๋ ๊ธ์ธ ๋ฐ๋ฉด, ์ PR ์ 2.2.0 ๋จ๊ณ์์ ์ ์ฉ๋์๊ธฐ ๋๋ฌธ์ ์์ง ๊ณต์ ๋ฌธ์์ ๋ฐ์๋์ง ์์ ๊ฒ์ผ๋ก ํ๋จ๋ฉ๋๋ค.
ํ์คํ๊ฒ ์๊ณ ๋์ด๊ฐ๊ธฐ ์ํด Spring Boot 2.2.0 Release Notes ๋ฅผ ์ฐพ์๋ด ์๋ค.
๋๋๊ฒ๋ ์์ ๊ฐ์ ๋ฌธ์ฅ์ด ์ ํ์๋ ๊ฒ์ ํ์ธํ์ค ์ ์์ต๋๋ค.
๊ฒฐ๋ก
์ด๋ฒ ์ฌ๊ฑด์ ํตํด ๋ฒ์ ํ์ธ์ ๋ํ ์ค์์ฑ์ ์ ์ ์์๊ณ ๊ณต์ ๋ฌธ์์ ์์ง ๋ฐ์๋์ง ์์ ๊ธฐ๋ฅ๋ค์ด ์์ ์ ์๊ธฐ ๋๋ฌธ์ spring-boot GitHub ์ Release Note ๋ฅผ ์ ํ์ฉํ๋ค๋ฉด ์ํ๋ ์ ๋ณด๋ฅผ ๊ณต์์ ์ผ๋ก ์ฐพ์ ์ ์๋ค๋ ๊ฒ์ ์ ์ ์์์ต๋๋ค.