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

[ํŠธ๋Ÿฌ๋ธ”์ŠˆํŒ…] ๋กœ์ปฌ ํ™˜๊ฒฝ ์ด๋ฉ”์ผ ๋ฐœ์†ก ์Šคํ‚ต ์กฐ๊ฑด ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

devCloud 2026. 5. 4. 09:40
728x90
TROUBLESHOOTING

๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ด๋ฉ”์ผ ๋ฐœ์†ก ์Šคํ‚ต ๋ฏธ์ ์šฉ์œผ๋กœ ์ธํ•œ 500 ์˜ค๋ฅ˜

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

์ด๋ฉ”์ผ ์ธ์ฆ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•œ ๋’ค Postman์œผ๋กœ /auth/email/send API๋ฅผ ์ฒ˜์Œ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ณผ์ •์—์„œ 500 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

 

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

์ด๋ฒˆ ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์€ ์ด๋ฉ”์ผ ๋ฐœ์†ก ๋กœ์ง ์ž์ฒด๋ณด๋‹ค, ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ Spring Profile๊ณผ ์ด๋ฉ”์ผ ๋ฐœ์†ก ์Šคํ‚ต ์กฐ๊ฑด์ด ๋งž์ง€ ์•Š์•˜๋‹ค๋Š” ์ ์ด๋‹ค.

2. ๋ฌธ์ œ

์ด๋ฉ”์ผ ์ธ์ฆ ์ฝ”๋“œ ๋ฐœ์†ก API๋ฅผ ํ˜ธ์ถœํ•˜์ž ์„œ๋ฒ„์—์„œ 500 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค. ์›์ธ์€ ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์‹ค์ œ Gmail SMTP ์ธ์ฆ์„ ์‹œ๋„ํ•˜๋‹ค๊ฐ€ ์ธ์ฆ์— ์‹คํŒจํ•œ ๊ฒƒ์ด์—ˆ๋‹ค.

org.springframework.mail.MailAuthenticationException: Authentication failed
Caused by: jakarta.mail.AuthenticationFailedException: 535-5.7.8 Username and Password not accepted.

Postman์—์„œ /auth/email/send API๋ฅผ ํ˜ธ์ถœํ–ˆ์„ ๋•Œ ๋ฐœ์ƒํ•œ 500 ์˜ค๋ฅ˜ ์‘๋‹ต์ด๋‹ค.


3. ์›์ธ ํŒŒ์•… ๊ณผ์ •

  1. 500 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ์ฝ˜์†”์— ์ƒ์„ธ ๋กœ๊ทธ๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š์•„ ์›์ธ ํŒŒ์•…์ด ์–ด๋ ค์› ๋‹ค.
  2. GlobalExceptionHandler์— log.error๋ฅผ ์ถ”๊ฐ€ํ•œ ๋’ค ๋‹ค์‹œ ํ…Œ์ŠคํŠธํ–ˆ๋‹ค.
  3. ์ŠคํƒํŠธ๋ ˆ์ด์Šค๋ฅผ ํ†ตํ•ด MailAuthenticationException์ด ๋ฐœ์ƒํ•œ ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค.
  4. activeProfile ๋กœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•ด ์‹ค์ œ ์‹คํ–‰ ํ”„๋กœํŒŒ์ผ์ด dev๋กœ ์žกํžŒ ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค.
  5. ๋ฉ”์ผ ๋ฐœ์†ก ์Šคํ‚ต ์กฐ๊ฑด์„ ์ˆ˜์ •ํ•œ ๋’ค ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ๋‹ค.

1๋‹จ๊ณ„ - ๋กœ๊ทธ ๋ฏธ์ถœ๋ ฅ์œผ๋กœ ์›์ธ ํŒŒ์•… ์ง€์—ฐ

์ฒ˜์Œ์—๋Š” 500 ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์ง€๋งŒ ์ฝ˜์†”์— ์ŠคํƒํŠธ๋ ˆ์ด์Šค๊ฐ€ ์ถœ๋ ฅ๋˜์ง€ ์•Š์•˜๋‹ค. ์›์ธ์€ GlobalExceptionHandler์˜ Exception ํ•ธ๋“ค๋Ÿฌ์— log.error๊ฐ€ ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋กœ๊ทธ๊ฐ€ ๋‚จ์ง€ ์•Š์œผ๋ฉด, ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ๋‹จ์ˆœํžˆ 500 ์‘๋‹ต๋งŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด ์‹ค์ œ ์›์ธ์„ ์ฐพ๊ธฐ ์–ด๋ ต๋‹ค.

2๋‹จ๊ณ„ - activeProfile ๋ถˆ์ผ์น˜

๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ๋ฉ”์ผ ๋ฐœ์†ก์„ ์Šคํ‚ตํ•˜๊ธฐ ์œ„ํ•ด ์ฒ˜์Œ์—๋Š” activeProfile์ด local์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ถ„๊ธฐํ–ˆ๋‹ค.

์ดˆ๊ธฐ์—๋Š” activeProfile์ด local์ผ ๋•Œ๋งŒ ์ด๋ฉ”์ผ ๋ฐœ์†ก์„ ์Šคํ‚ตํ•˜๋„๋ก ์ž‘์„ฑํ–ˆ๋‹ค.

ํ•˜์ง€๋งŒ ์‹ค์ œ ์‹คํ–‰ ํ”„๋กœํŒŒ์ผ์€ local์ด ์•„๋‹ˆ๋ผ dev๋กœ ์žกํ˜€ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์Šคํ‚ต ๋ถ„๊ธฐ๋ฅผ ํƒ€์ง€ ์•Š๊ณ  ์‹ค์ œ ๋ฉ”์ผ ๋ฐœ์†ก ๋กœ์ง์ด ์‹คํ–‰๋˜์—ˆ๋‹ค.

[DEBUG] activeProfile: dev
local์ด์–ด์•ผ ์Šคํ‚ต๋˜๋Š”๋ฐ dev๋กœ ์žกํ˜€ ์‹ค์ œ Gmail SMTP ๋ฐœ์†ก์„ ์‹œ๋„ํ–ˆ๋‹ค.


4. ํ•ด๊ฒฐ

1. GlobalExceptionHandler์— log.error ์ถ”๊ฐ€

๋จผ์ € ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋„๋ก GlobalExceptionHandler์— log.error๋ฅผ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

 

์ด ์ˆ˜์ • ์ดํ›„ 500 ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์ฝ˜์†”์—์„œ ์ŠคํƒํŠธ๋ ˆ์ด์Šค๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์—ˆ๊ณ , ์‹ค์ œ ์›์ธ์ด MailAuthenticationException์ด๋ผ๋Š” ๊ฒƒ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.

[GlobalExceptionHandler] ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜ ๋ฐœ์ƒ
org.springframework.mail.MailAuthenticationException: Authentication failed
    at ...
Caused by: jakarta.mail.AuthenticationFailedException: 535-5.7.8 ...
    at ...

2. ์Šคํ‚ต ์กฐ๊ฑด์„ prod์ผ ๋•Œ๋งŒ ๋ฐœ์†กํ•˜๋„๋ก ๋ณ€๊ฒฝ

๊ธฐ์กด ๋ฐฉ์‹์€ local์ด ์•„๋‹ ๋•Œ ๋ฉ”์ผ์„ ๋ฐœ์†กํ•˜๋Š” ๊ตฌ์กฐ์˜€๋‹ค. ํ•˜์ง€๋งŒ ์‹ค์ œ ๋กœ์ปฌ ์‹คํ–‰ ํ”„๋กœํŒŒ์ผ์ด dev๋กœ ์žกํžˆ๋ฉด์„œ, ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ๋„ ์‹ค์ œ ๋ฉ”์ผ ๋ฐœ์†ก์ด ์‹œ๋„๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋‹ค.

๊ทธ๋ž˜์„œ ํŠน์ • ๊ฐœ๋ฐœ ํ”„๋กœํŒŒ์ผ์„ ์ œ์™ธํ•˜๋Š” ๋ฐฉ์‹ ๋Œ€์‹ , ์šด์˜ ํ”„๋กœํŒŒ์ผ์ธ prod์ผ ๋•Œ๋งŒ ์‹ค์ œ ๋ฉ”์ผ์„ ๋ฐœ์†กํ•˜๋„๋ก ์กฐ๊ฑด์„ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

activeProfile์ด prod์ผ ๋•Œ๋งŒ ์‹ค์ œ ์ด๋ฉ”์ผ์„ ๋ฐœ์†กํ•˜๊ณ , ๊ทธ ์™ธ ํ™˜๊ฒฝ์—์„œ๋Š” ์ธ์ฆ ์ฝ”๋“œ๋ฅผ ๋กœ๊ทธ๋กœ ์ถœ๋ ฅํ•˜๋„๋ก ๋ณ€๊ฒฝํ•œ ์ฝ”๋“œ๋‹ค.

์ด๋ฉ”์ผ ๋ฐœ์†ก ์Šคํ‚ต ์กฐ๊ฑด์„ ์ˆ˜์ •ํ•œ ๋’ค /auth/email/send API๊ฐ€ ์ •์ƒ ์‘๋‹ตํ•œ ํ™”๋ฉด์ด๋‹ค.

๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋Š” ์‹ค์ œ ์ด๋ฉ”์ผ ๋ฐœ์†ก ๋Œ€์‹  ์ธ์ฆ ์ฝ”๋“œ๊ฐ€ ์ฝ˜์†” ๋กœ๊ทธ๋กœ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค.

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


5. ์ฐธ๊ณ 

  • GlobalExceptionHandler์—๋Š” log.error๋ฅผ ํฌํ•จํ•ด์•ผ 500 ์˜ค๋ฅ˜ ์›์ธ์„ ๋น ๋ฅด๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ™˜๊ฒฝ๋ณ„ ๋ถ„๊ธฐ๋Š” local, dev์ฒ˜๋Ÿผ ํŠน์ • ํ”„๋กœํŒŒ์ผ์„ ํ•˜๋‚˜์”ฉ ๋ช…์‹œํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค prod๋งŒ ๋ช…์‹œํ•˜๋Š” ๋ฐฉ์‹์ด ๋” ์•ˆ์ „ํ•˜๋‹ค.
  • ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ ์ธ์ฆ ์ฝ”๋“œ๋Š” ์ฝ˜์†” ๋กœ๊ทธ๋กœ ํ™•์ธํ•˜๋„๋ก ์ฒ˜๋ฆฌํ•˜๋ฉด ๊ฐœ๋ฐœ ์ค‘ SMTP ์ธ์ฆ ์ •๋ณด ์—†์ด ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋‹ค.

6. ๋ฐฐ์šด ์ 

๋กœ์ปฌ ํ™˜๊ฒฝ ๋ถ„๊ธฐ ์กฐ๊ฑด์€ local์ด ์•„๋‹ˆ๋ฉด๋ณด๋‹ค prod์ผ ๋•Œ๋งŒ์œผ๋กœ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋” ์•ˆ์ „ํ•˜๋‹ค. ํ”„๋กœํŒŒ์ผ์ด ์ถ”๊ฐ€๋˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋˜๋Š” ์ƒํ™ฉ์—์„œ๋„ ์šด์˜ ํ™˜๊ฒฝ์ด ์•„๋‹Œ ๊ฒฝ์šฐ ์‹ค์ œ ์™ธ๋ถ€ ์„œ๋น„์Šค ํ˜ธ์ถœ์„ ๋ง‰์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

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