JavaMailSender ๋น ๋ฑ๋ก ์ค๋ฅ ํด๊ฒฐ ๊ณผ์
1. ๋ฐ์ ๋ฐฐ๊ฒฝ
์ด๋ฉ์ผ ์ธ์ฆ ๊ธฐ๋ฅ์ ๊ตฌํํ ๋ค ์ ํ๋ฆฌ์ผ์ด์
์ ์คํํ๋ ๊ณผ์ ์์ JavaMailSender ๊ด๋ จ ๋น ๋ฑ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
์ด๋ฉ์ผ ์ธ์ฆ ๊ธฐ๋ฅ์์๋ ์ธ์ฆ ์ฝ๋๋ฅผ ์ฌ์ฉ์ ์ด๋ฉ์ผ๋ก ๋ฐ์กํด์ผ ํ๋ฏ๋ก Spring์ JavaMailSender๋ฅผ ์ฌ์ฉํ๊ณ ์์๋ค. ํ์ง๋ง ๋ก์ปฌ ํ๊ฒฝ์์ ๋ฉ์ผ ๊ด๋ จ ์ค์ ์ด ๋๋ฝ๋์ด ์ ํ๋ฆฌ์ผ์ด์
์ปจํ
์คํธ๊ฐ ์ ์์ ์ผ๋ก ๋ก๋๋์ง ์์๋ค.
2. ๋ฌธ์
์ ํ๋ฆฌ์ผ์ด์
์คํ ์ AuthService ์์ฑ์์์ JavaMailSender ๋น์ ์ฐพ์ง ๋ชปํด ์ปจํ
์คํธ ๋ก๋์ ์คํจํ๋ค.
Parameter 5 of constructor in booktine.Booktine.domain.auth.service.AuthService
required a bean of type 'org.springframework.mail.javamail.JavaMailSender' that could not be found.
์ฆ, AuthService๋ ์์ฑ์ ์ฃผ์
์ ํตํด JavaMailSender๋ฅผ ํ์๋ก ํ์ง๋ง, Spring ์ปจํ
์ด๋์๋ ํด๋น ํ์
์ ๋น์ด ๋ฑ๋ก๋์ด ์์ง ์์ ์ํ์๋ค.
3. ์์ธ
์์ธ์ ๋ก์ปฌ ํ๊ฒฝ์ application-local.properties์ ๋ฉ์ผ ๊ด๋ จ ์ค์ ์ด ๋๋ฝ๋์ด ์์๊ธฐ ๋๋ฌธ์ด๋ค.
Spring Boot๋ spring.mail.host, spring.mail.port ๊ฐ์ ๋ฉ์ผ ์ค์ ์ด ์กด์ฌํด์ผ JavaMailSender๋ฅผ ์๋์ผ๋ก ๋น์ผ๋ก ๋ฑ๋กํ๋ค. ํ์ง๋ง ๋ก์ปฌ ์ค์ ํ์ผ์ ํด๋น ๊ฐ๋ค์ด ์์๊ธฐ ๋๋ฌธ์ ์๋ ์ค์ ์ด ๋์ํ์ง ์์๋ค.

์ด๋ฉ์ผ ์ธ์ฆ ๊ตฌํ ์ด๊ธฐ ์ฝ๋๋ค. AuthService์์ JavaMailSender๋ฅผ ์ฃผ์
๋ฐ๊ณ ์์ง๋ง, ๋ก์ปฌ ํ๊ฒฝ์๋ ๋ฉ์ผ ์ค์ ์ด ์์ด ๋น ๋ฑ๋ก ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค.
4. ํด๊ฒฐ
1. application-local.properties์ ๋๋ฏธ ๋ฉ์ผ ์ค์ ์ถ๊ฐ
๋จผ์ ๋ก์ปฌ ํ๊ฒฝ์์๋ JavaMailSender ๋น์ด ์์ฑ๋ ์ ์๋๋ก application-local.properties์ ๋๋ฏธ ๋ฉ์ผ ์ค์ ์ ์ถ๊ฐํ๋ค.

๋ก์ปฌ ํ๊ฒฝ์์ JavaMailSender ๋น์ ๋ฑ๋กํ๊ธฐ ์ํด ์ถ๊ฐํ ๋๋ฏธ SMTP ์ค์ ์ด๋ค. ์ค์ ๋ฉ์ผ ๋ฐ์ก ๋ชฉ์ ์ด ์๋๋ผ ๋น ์์ฑ์ ์ํ ์ค์ ์ด๋ค.
JavaMailSender๋ฅผ ์๋ ์ค์ ํ ์ ์๋๋ก ์ต์ํ์ ๋ฉ์ผ ์ค์ ์ ์ ๊ณตํ๊ธฐ ์ํ ๊ฐ์ด๋ค.
2. ๋ก์ปฌ ํ๊ฒฝ์์๋ ์ค์ ๋ฉ์ผ ๋ฐ์ก ์คํต ์ฒ๋ฆฌ
๋๋ฏธ ๋ฉ์ผ ์ค์ ์ ์ถ๊ฐํ๋ฉด JavaMailSender ๋น ๋ฑ๋ก ๋ฌธ์ ๋ ํด๊ฒฐ๋๋ค. ํ์ง๋ง ์ค์ ๋ฉ์ผ ๋ฐ์ก์ ์๋ํ๋ฉด ์๋ชป๋ ๊ณ์ ์ ๋ณด๋ก ์ธํด ์ธ์ฆ ์คํจ๊ฐ ๋ฐ์ํ ์ ์๋ค.
๊ทธ๋์ ์ด์ ํ๊ฒฝ์์๋ง ์ค์ ๋ฉ์ผ์ ๋ฐ์กํ๊ณ , ๋ก์ปฌ ํ๊ฒฝ์์๋ ๋ฉ์ผ ๋ฐ์ก์ ์คํตํ ๋ค ์ธ์ฆ ์ฝ๋๋ฅผ ๋ก๊ทธ๋ก ํ์ธํ๋๋ก ์ฒ๋ฆฌํ๋ค.

ํ์ฑ ํ๋กํ์ผ์ ๊ธฐ์ค์ผ๋ก ๋ก์ปฌ ํ๊ฒฝ์์๋ ์ด๋ฉ์ผ ๋ฐ์ก์ ์คํตํ๊ณ , ์ด์ ํ๊ฒฝ์์๋ง ์ค์ ๋ฉ์ผ์ ๋ฐ์กํ๋๋ก ๋ถ๊ธฐํ ์ฝ๋๋ค.
๋ก์ปฌ์์๋ ๋ฉ์ผ ๋ฐ์ก์ ์คํตํ๊ณ ์ธ์ฆ ์ฝ๋๋ฅผ ๋ก๊ทธ๋ก ํ์ธํ๋๋ก ์ฒ๋ฆฌํ๋ค. ์ด๋ฅผ ํตํด ๋ก์ปฌ ๊ฐ๋ฐ ์ค์๋ Gmail SMTP ์ธ์ฆ ์ ๋ณด ์์ด๋ ์ด๋ฉ์ผ ์ธ์ฆ ํ๋ฆ์ ํ ์คํธํ ์ ์๋ค.
5. ์ฐธ๊ณ
- ์ด์ ํ๊ฒฝ์์๋
application-prod.properties์ ์ค์ Gmail SMTP ์ค์ ์ด ํ์ํ๋ค. - Gmail์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ผ๋ฐ ๋น๋ฐ๋ฒํธ๊ฐ ์๋๋ผ ์ฑ ๋น๋ฐ๋ฒํธ๋ฅผ ๋ฐ๊ธ๋ฐ์ ์ฌ์ฉํด์ผ ํ๋ค.
- Gmail ์ฑ ๋น๋ฐ๋ฒํธ๋ 2๋จ๊ณ ์ธ์ฆ์ ํ์ฑํํ ๋ค ๊ตฌ๊ธ ๊ณ์ ์ ๋ณด์ ์ค์ ์์ ๋ฐ๊ธํ ์ ์๋ค.
6. ๋ฐฐ์ด ์
Spring Boot๋ ๋ฉ์ผ ์ค์ ์ด ์กด์ฌํด์ผ JavaMailSender ๋น์ ์๋ ๋ฑ๋กํ๋ค. ๋ฐ๋ผ์ ๋ก์ปฌ ํ๊ฒฝ์์๋ ์ค์ ๋ฉ์ผ์ ๋ณด๋ด์ง ์๋๋ผ๋ ๋๋ฏธ ๋ฉ์ผ ์ค์ ์ ํ์ํ๋ค.
๋ํ ํ๊ฒฝ๋ณ ๋ถ๊ธฐ๋ฅผ ์์ฑํ ๋ local, dev ๋ฑ ํน์ ๊ฐ๋ฐ ํ๊ฒฝ์ ํ๋์ฉ ์ ์ธํ๋ ๋ฐฉ์๋ณด๋ค ์ด์ ํ๋กํ์ผ์ธ prod์์๋ง ์ค์ ๋ฐ์ก์ด ์ผ์ด๋๋๋ก ์ ํํ๋ ๋ฐฉ์์ด ๋ ์์ ํ๋ค.