Spring (11) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ArgumentResolver ์ฐ๋จนํ๊ธฐ [์๋ก ]์์ด๋น์ค๋น ํด๋ก ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ, ๋ก๊ทธ์ธ ํ์๋ง '์์ ๋ฑ๋ก' ๊ณผ '์์ ์์ฝ' ์ ํ ์ ์๊ธฐ ์ํด(์ธ๊ฐ๋ฅผ ์ฃผ๊ธฐ ์ํด) ๋ก๊ทธ์ธํ ํ์์ ๋์์ผ๋ก ์ธ์ ์ ์ฌ์ฉํด์ stateful ํ๊ฒ ๊ตฌํ ํ์ต๋๋ค.@PostMapping("/login") public ApiResponse login(@RequestBody @Valid MemberLoginRequest request, HttpSession httpSession) { memberService.login(request.toServiceRequest()); // ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ๋ฉด httpSession.setAttribute(LOGIN_MEMBER, true.. ํ ์คํธ๋ก ์์๋ณด๋ ์ปจํธ๋กค๋ฌ์์ HttpSession ์ฃผ์ ์ ์ฃผ์ํ ์ Junit5 ๋ฐ Mock ์ ๋ํด ์ค๋ช ๋๋ฆฌ์ง ์๋ ์ ์ํด ๋ถํ๋๋ฆฝ๋๋ค.ํ ์คํธ ์ฝ๋๋ณด๋ค๋ ์ปจํธ๋กค๋ฌ์์ HttpSession ์ ์ฌ์ฉํ ๋์ ์ฃผ์์ ์ ์์๋ณด๋ ์๊ฐ์ ๊ฐ์ ธ๊ฐ์ จ์ผ๋ฉด ์ข๊ฒ ์ต๋๋ค. ์ปจํธ๋กค๋ฌ์์ ํ๋ผ๋ฏธํฐ๋ก HttpSession ์ ์ฃผ์ ๋ฐ์์ ์ฌ์ฉํ ๋ ์ฃผ์ํ ์ ์ด ์์ต๋๋ค. ์ ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํ๋์ง HttpSession ๊ณผ HttpServletRequest.getSession() ์ ์ฐจ์ด๋ฅผ ํ ์คํธ ์ฝ๋๋ก ์์๋ณด๊ฒ ์ต๋๋ค. โญ HttpSession ๋ฅผ ๋ฉ์๋์ ํ๋ผ๋ฏธํฐ๋ก ์ฆ์ ์ฃผ์ ๋ฐ๊ธฐ์ฝ๋ ์ค๋ช - ํ์์ด ์ธ์ฆ ์ฝ๋๋ฅผ ์๋ชป ์ ๋ ฅํด์ ์ด๋ฉ์ผ ๊ฒ์ฆ์ ์คํจํ๋ฉด if ๋ฌธ์ด ๊ฑฐ์ง์ด ๋ฉ๋๋ค.- Session ์ ๊ฐ์ ์ค์ ํ์ง ์๊ณ , ๋ฉ์๋๊ฐ ์ข ๋ฃ๋ฉ๋๋ค.@GetMapping("/email/authenticat.. [ํธ๋ฌ๋ธ ์ํ ] jakarta.mail.internet.addressexception: local address contains control or whitespace ๊ตฌ๊ธ๋ง ํด๋ ๋์ค์ง ์๋ ์๋ฌ๋ฅผ ํด๊ฒฐํ๋ ๊ณผ์ ์ ์๊ฐํ๋ฉฐ, ์ ๋ฐ์ํ๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํ๋์ง ์๊ฐํ๋ ๊ธ์ ๋๋ค.SMTP ๊ธฐ๋ฅ์ ๋ํด ์ค๋ช ํ์ง ์์ต๋๋ค.์๋ก ์ฌ์ด๋ ํ๋ก์ ํธ์์ ํ์๊ฐ์ ํ ๋, ํ์์ด ์ ๋ ฅํ ์ด๋ฉ์ผ์ด ์ ์ ์ด๋ฉ์ผ์ธ์ง ํ์ธํ๊ณ ์ ์ธ์ฆ๋ฒํธ๋ฅผ ๋ณด๋ด๊ณ ์ ํ์ต๋๋ค.๊ทธ๋์, ์๋์ ๊ฐ์ ์ฝ๋๋ก ๋ค์ด๋ฒ ์๋ฒ์ ๋ฉ์ผ์ ๋ณด๋์ผ๋, `jakarta.mail.internet.addressexception: local address contains control or whitespace` ์๋ฌ๊ฐ javaMailSender.send(message) ์์ ๋ฐ์ํ์์ต๋๋ค.public void sendVerificationEmail(String memberEmail) { try { Simpl.. ์ด์ 1 2 ๋ค์