SLF4J StackOverflowError

์ด๋ฒˆ์— ์ƒ์† ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•จ์œผ๋กœ์จ Wardrobe, Cloth, Record ์—”ํ‹ฐํ‹ฐ์˜ ์ค‘๋ณต ๊ธฐ๋Šฅ์ธ ๋Œ“๊ธ€ ๊ธฐ๋Šฅ๊ณผ ์ข‹์•„์š” ๊ธฐ๋Šฅ์„ ์Šˆํผ ํƒ€์ž… ์—”ํ‹ฐํ‹ฐ์ธ PostEntity๋กœ ์ด๊ด€์‹œํ‚ค๋Š” ๋ฆฌํŒฉํ† ๋ง์„ ์ง„ํ–‰ํ–ˆ๋‹ค. 

 

๋ฌธ์ œ ๋ฐœ์ƒ

๊ณตํ†ต ๋กœ์ง๋“ค์„ ๊ฐ๊ฐ์˜ Service๊ฐ€ ์•„๋‹Œ PostServcie๋กœ ์ด๋™์‹œํ‚ค๋Š” ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ์—ˆ๋Š”๋ฐ, ๋Œ“๊ธ€ ๋‹ฌ๊ธฐ ๋ฉ”์„œ๋“œ์ธ writeComment()์—์„œ StackOverflowError๊ฐ€ ํ„ฐ์ง€๋ฉด์„œ ๋กœ์ง์ด ์ค‘๋‹จ๋˜๋Š” ์ƒํ™ฉ์ด ๋ฐœ์ƒํ–ˆ๋‹ค.  StackOverflowError๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค๋Š” ๋ถ€๋ถ„์€ SLF4J์—์„œ ์—”ํ‹ฐํ‹ฐ์˜ toString()์„ ํ˜ธ์ถœํ•˜๋ฉฐ ๋ฐœ์ƒํ•˜๋Š” ๋ถ€๋ถ„์ด์˜€๋‹ค.  ์—”ํ‹ฐํ‹ฐ์˜ toString()์„ ์ถ”๊ฐ€ ์‹œ์ผœ์ฃผ๋Š” ๋ถ€๋ถ„์€ lombok์˜ @Data์ด๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋ถ€๋ถ„์— ๋ฌธ์ œ๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋ผ ํŒ๋‹จํ•˜์˜€๋‹ค.  

 

 

๋ฌธ์ œ ์›์ธ

@Override
public String toString() {
    return "PostEntity{" +
            "id=" + id +
            ", number='" + number + '\'' +
            ", comment=" + Comment +
            '}';
}

 

์œ„์˜ toString()์€ @Data๋ฅผ ์„ ์–ธํ•  ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์—ฌ๊ธฐ์„œ PostEntity์˜ toString()์—์„œ comment๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ณผ์ •์— comment๋Š” ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ์ฒด๋ฅผ ์ถœ๋ ฅํ•˜๊ธฐ ์œ„ํ•ด comment์˜ toString()์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด comment์—๋„ @Data๊ฐ€ ์„ ์–ธ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— comment๋„ ์ž์‹ ์˜ ํ•„๋“œ์— ์กด์žฌํ•˜๋Š” postEntity์˜ toString()์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋˜๊ณ  ๋˜ ๋‹ค์‹œ postEntity๋Š” comment์˜ toString()์„ ํ˜ธ์ถœํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋Ÿฌ๋ฉด์„œ ๋ฉ”์„œ๋“œ์˜ ๋ฌดํ•œ ํ˜ธ์ถœ์ด ์ง„ํ–‰๋˜์–ด ๋ฉ”์„œ๋“œ ์Šคํƒ์ด ๋„˜์ณ์„œ StackOverflowError๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋œ๋‹ค.

 

ํ•ด๊ฒฐ์ฑ… 

ํ•ด๊ฒฐ์ฑ…์€ ๊ฐ„๋‹จํ•˜๋‹ค. ์„œ๋กœ๋ฅผ ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋Š” ์—”ํ‹ฐํ‹ฐ์— ํ•œํ•ด์„œ๋Š” @Data๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ toString()์„ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜์—ฌ ์žฌ์ •์˜ ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.