์ด๋ฒ์ ์์ ๊ด๊ณ๋ฅผ ์ ์ํจ์ผ๋ก์จ 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()์ ์ค๋ฒ๋ผ์ด๋ํ์ฌ ์ฌ์ ์ ํ๋ ๊ฒ์ด๋ค.