๐Ÿ’ป PROJECT/[Spring Boot, React] ๋…์„œ ์Šต๊ด€ ๊ด€๋ฆฌ ์„œ๋น„์Šค

[ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] JavaMailSender ๋นˆ ๋“ฑ๋ก ์˜ค๋ฅ˜ (๋กœ์ปฌ ํ™˜๊ฒฝ)

devCloud 2026. 5. 3. 14:05
728x90
TROUBLESHOOTING

JavaMailSender ๋นˆ ๋“ฑ๋ก ์˜ค๋ฅ˜ ํ•ด๊ฒฐ ๊ณผ์ •

1. ๋ฐœ์ƒ ๋ฐฐ๊ฒฝ

์ด๋ฉ”์ผ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๋’ค ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” ๊ณผ์ •์—์„œ JavaMailSender ๊ด€๋ จ ๋นˆ ๋“ฑ๋ก ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

์ด๋ฉ”์ผ ์ธ์ฆ ๊ธฐ๋Šฅ์—์„œ๋Š” ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ๋กœ ๋ฐœ์†กํ•ด์•ผ ํ•˜๋ฏ€๋กœ Spring์˜ JavaMailSender๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ๋ฉ”์ผ ๊ด€๋ จ ์„ค์ •์ด ๋ˆ„๋ฝ๋˜์–ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ปจํ…์ŠคํŠธ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋กœ๋“œ๋˜์ง€ ์•Š์•˜๋‹ค.

์ด๋ฒˆ ๋ฌธ์ œ๋Š” ์ฝ”๋“œ ๋กœ์ง ์ž์ฒด์˜ ๋ฌธ์ œ๋ผ๊ธฐ๋ณด๋‹ค, ๋กœ์ปฌ ํ™˜๊ฒฝ ์„ค์ • ํŒŒ์ผ์— ๋ฉ”์ผ ๊ด€๋ จ ์„ค์ •์ด ๋น ์ ธ ์žˆ์–ด Spring Boot๊ฐ€ ํ•„์š”ํ•œ ๋นˆ์„ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•œ ๊ฒƒ์ด ์›์ธ์ด์—ˆ๋‹ค.

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 ์„ค์ •์ด๋‹ค. ์‹ค์ œ ๋ฉ”์ผ ๋ฐœ์†ก ๋ชฉ์ ์ด ์•„๋‹ˆ๋ผ ๋นˆ ์ƒ์„ฑ์„ ์œ„ํ•œ ์„ค์ •์ด๋‹ค.

๋”๋ฏธ ์„ค์ •์€ ์‹ค์ œ ๋ฐœ์†ก์„ ์œ„ํ•œ ๊ฐ’์ด ์•„๋‹ˆ๋ผ, Spring Boot๊ฐ€ JavaMailSender๋ฅผ ์ž๋™ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ตœ์†Œํ•œ์˜ ๋ฉ”์ผ ์„ค์ •์„ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ’์ด๋‹ค.

 

2. ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋Š” ์‹ค์ œ ๋ฉ”์ผ ๋ฐœ์†ก ์Šคํ‚ต ์ฒ˜๋ฆฌ

๋”๋ฏธ ๋ฉ”์ผ ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜๋ฉด JavaMailSender ๋นˆ ๋“ฑ๋ก ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ๋œ๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ๋ฉ”์ผ ๋ฐœ์†ก์„ ์‹œ๋„ํ•˜๋ฉด ์ž˜๋ชป๋œ ๊ณ„์ • ์ •๋ณด๋กœ ์ธํ•ด ์ธ์ฆ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ž˜์„œ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋งŒ ์‹ค์ œ ๋ฉ”์ผ์„ ๋ฐœ์†กํ•˜๊ณ , ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋Š” ๋ฉ”์ผ ๋ฐœ์†ก์„ ์Šคํ‚ตํ•œ ๋’ค ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ๋กœ๊ทธ๋กœ ํ™•์ธํ•˜๋„๋ก ์ฒ˜๋ฆฌํ–ˆ๋‹ค.


ํ™œ์„ฑ ํ”„๋กœํŒŒ์ผ์„ ๊ธฐ์ค€์œผ๋กœ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋Š” ์ด๋ฉ”์ผ ๋ฐœ์†ก์„ ์Šคํ‚ตํ•˜๊ณ , ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋งŒ ์‹ค์ œ ๋ฉ”์ผ์„ ๋ฐœ์†กํ•˜๋„๋ก ๋ถ„๊ธฐํ•œ ์ฝ”๋“œ๋‹ค.

๋กœ์ปฌ์—์„œ๋Š” ๋ฉ”์ผ ๋ฐœ์†ก์„ ์Šคํ‚ตํ•˜๊ณ  ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ๋กœ๊ทธ๋กœ ํ™•์ธํ•˜๋„๋ก ์ฒ˜๋ฆฌํ–ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋กœ์ปฌ ๊ฐœ๋ฐœ ์ค‘์—๋Š” Gmail SMTP ์ธ์ฆ ์ •๋ณด ์—†์ด๋„ ์ด๋ฉ”์ผ ์ธ์ฆ ํ๋ฆ„์„ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.


5. ์ฐธ๊ณ 

  • ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” application-prod.properties์— ์‹ค์ œ Gmail SMTP ์„ค์ •์ด ํ•„์š”ํ•˜๋‹ค.
  • Gmail์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์ผ๋ฐ˜ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ์•„๋‹ˆ๋ผ ์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • Gmail ์•ฑ ๋น„๋ฐ€๋ฒˆํ˜ธ๋Š” 2๋‹จ๊ณ„ ์ธ์ฆ์„ ํ™œ์„ฑํ™”ํ•œ ๋’ค ๊ตฌ๊ธ€ ๊ณ„์ •์˜ ๋ณด์•ˆ ์„ค์ •์—์„œ ๋ฐœ๊ธ‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

6. ๋ฐฐ์šด ์ 

Spring Boot๋Š” ๋ฉ”์ผ ์„ค์ •์ด ์กด์žฌํ•ด์•ผ JavaMailSender ๋นˆ์„ ์ž๋™ ๋“ฑ๋กํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋„ ์‹ค์ œ ๋ฉ”์ผ์„ ๋ณด๋‚ด์ง€ ์•Š๋”๋ผ๋„ ๋”๋ฏธ ๋ฉ”์ผ ์„ค์ •์€ ํ•„์š”ํ•˜๋‹ค.

๋˜ํ•œ ํ™˜๊ฒฝ๋ณ„ ๋ถ„๊ธฐ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ local, dev ๋“ฑ ํŠน์ • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ํ•˜๋‚˜์”ฉ ์ œ์™ธํ•˜๋Š” ๋ฐฉ์‹๋ณด๋‹ค ์šด์˜ ํ”„๋กœํŒŒ์ผ์ธ prod์—์„œ๋งŒ ์‹ค์ œ ๋ฐœ์†ก์ด ์ผ์–ด๋‚˜๋„๋ก ์ œํ•œํ•˜๋Š” ๋ฐฉ์‹์ด ๋” ์•ˆ์ „ํ•˜๋‹ค.

์ •๋ฆฌํ•˜๋ฉด, ๋กœ์ปฌ์—์„œ๋Š” ๋”๋ฏธ ๋ฉ”์ผ ์„ค์ •์œผ๋กœ ๋นˆ ๋“ฑ๋ก ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ , ์‹ค์ œ ๋ฉ”์ผ ๋ฐœ์†ก์€ ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋งŒ ์ˆ˜ํ–‰ํ•˜๋„๋ก ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์•ˆ์ „ํ•˜๋‹ค.
728x90