[Frontend] JSP์์ ๋ฐ์ดํฐ ๋ถ์ผ์น ์ฒ๋ฆฌ: c:if์ c:choose์ ์ฐจ์ด์ ๊ณผ ์ ์ ํ ์ฌ์ฉ๋ฒ ๐
โ๏ธ DB ์์ ์ ํ๋ฉด์ ์์ฃผ ๋ง์ฃผ์น๋ ๋ฌธ์ ์ค ํ๋
• ์กฐ์ธ์ ์ฌ์ฉํ์ ๋ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๊ฐ ๋น ๊ฐ์ผ๋ก ๋ฐํ๋๋ ์ํฉ
• View ์ธก๋ฉด์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ ํ ์ฒ๋ฆฌํ์ง ์์ผ๋ฉด ์ค๋ฅ ๋ฐ์
• JSP์์ ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ์๋ c:if ํ๊ทธ์ c:choose ํ๊ทธ ๋ ๊ฐ์ง ๋ฐฉ๋ฒ์ด ์ฃผ๋ก ์ฌ์ฉ
1๏ธโฃ c:if ํ๊ทธ
• c:if ํ๊ทธ๋ ์กฐ๊ฑด์ด ์ฐธ์ธ ๊ฒฝ์ฐ์๋ง ๋ด์ฉ์ ํฌํจ์ํค๋ ๊ฐ๋จํ ์กฐ๊ฑด ์ฒ๋ฆฌ ๋ฐฉ๋ฒ
• ๋จ์ผ ์กฐ๊ฑด์ ์ด์ ์ ๋ง์ถ๊ธฐ ๋๋ฌธ์ ๋ณต์กํ ์กฐ๊ฑด์ด๋ ์ฌ๋ฌ ์ํฉ์ ๋ค๋ฃจ๊ธฐ์๋ ํ๊ณ
• ๋ชจ๋ธ์์ ์กฐ์ธ์ ์ฌ์ฉํด ๊ฐ์ ๊ฐ์ ธ์ฌ ๋ ํด๋น ๋ฐ์ดํฐ๊ฐ ์์ผ๋ฉด null์ด๋ ๋น ๊ฐ์ด ๋ฐํ๋๋ ๊ฒฝ์ฐ
→ c:if ํ๊ทธ๋ก ์ด๋ฅผ ์ฒ๋ฆฌํ๋ ค ํ๋ฉด ์์์น ๋ชปํ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ
→ c:if๋ ์ฃผ๋ก ์กด์ฌํ๋ ๋ฐ์ดํฐ์ ์กฐ๊ฑด์ ๊ฒ์ฌํ๋ ๋ฐ ์ฌ์ฉ
→ ๋ฐ์ดํฐ ์์ฒด์ ์กด์ฌ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ก์ง์ ์ถ๊ฐํ์ง ์์ผ๋ฉด NullPointerException ๊ฐ์ ์์ธ๋ฅผ ๋ฐ์์ํฌ ์ํ์์
2๏ธโฃ c:choose ํ๊ทธ
• c:choose ํ๊ทธ๋ ์ฌ๋ฌ ์กฐ๊ฑด์ ํจ๊ณผ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ํ๊ทธ
• c:choose ๋ด๋ถ์๋ c:when๊ณผ c:otherwise๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ๊ฒฝ์ฐ๋ฅผ ์ธ๋ถํํ์ฌ ์ฒ๋ฆฌ
• ๋ฐ์ดํฐ๊ฐ ์กด์ฌํ ๋์ ์กด์ฌํ์ง ์์ ๋์ ๋์์ ๋ช ํํ ๊ตฌ๋ถ
→ ์กฐ์ธ ๊ฒฐ๊ณผ๊ฐ ๋น ๊ฐ์ธ ๊ฒฝ์ฐ c:when์ ํตํด ํด๋น ์กฐ๊ฑด์ ๊ฒ์ฌ,๋ฐ์ดํฐ๊ฐ ์์ ๊ฒฝ์ฐ c:otherwise์์ ๋์ฒด ํ ์คํธ๋ ๋ค๋ฅธ ์ฒ๋ฆฌ
• ์๋ฒ๋ก๋ถํฐ ์ ๋ฌ๋ฐ์ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ํฉ์ ๋ฐ๋ฅธ ์ ์ฐํ ๋์
→ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๋ ๋ฐ ํฌ๊ฒ ๊ธฐ์ฌ
• ์์ธ ์ํฉ์ ๋ช ํํ ํธ๋ค๋ง ๊ฐ๋ฅ
→ ๊ฐ๋ฐ ์ค ๋ฐ์ํ ์ ์๋ ์์ธ ์ฒ๋ฆฌ๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ฐ์์ํด
3๏ธโฃ ์ ์ฉ ์
<c:choose>
<c:when test="${not empty userInfo}">
์ฌ์ฉ์ ์ด๋ฆ: ${userInfo.name}
</c:when>
<c:otherwise>
์ฌ์ฉ์ ์ ๋ณด๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค.
</c:otherwise>
</c:choose>
• userInfo ๊ฐ์ฒด๊ฐ ๋น์ด ์์ง ์์ ๊ฒฝ์ฐ ์ฌ์ฉ์์ ์ด๋ฆ์ ํ์
• ๋ฐ๋์ ๊ฒฝ์ฐ "์ฌ์ฉ์ ์ ๋ณด๊ฐ ์กด์ฌํ์ง ์์ต๋๋ค."๋ผ๋ ๋ฉ์์ง๋ฅผ ์ถ๋ ฅ
→ c:choose๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ์ดํฐ์ ์กด์ฌ ์ฌ๋ถ์ ๋ฐ๋ฅธ ๋ค์ํ ์๋๋ฆฌ์ค๋ฅผ ํ ๊ณณ์์ ์ฒ๋ฆฌ
โ ์๋ธ๋ฆฟ๊ณผ JSP๋ฅผ ์ฌ์ฉํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐ ์, ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ ๋งค์ฐ ์ค์ํ ๋ถ๋ถ
• ๋ฐ์ดํฐ๊ฐ ์์ ๋์ ์ฒ๋ฆฌ๋ฅผ ์ด๋ป๊ฒ ํ๋๋๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฌ๊ณ ์ฑ์ ์ข์ฐ
• c:if์ c:choose๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ์ ์ฉํ ๋๊ตฌ
→ ํ์ง๋ง, ๊ฐ๊ฐ์ ์ฌ์ฉ๋ฒ์ ์ ์ดํดํ๊ณ ์ํฉ์ ๋ง๊ฒ ์ ์ฉํ๋ ๊ฒ์ด ์ค์