์คํ๋ง์ผ๋ก CRUD ๊ฒ์ํ ๋ง๋ค๊ธฐ - ๊ฒ์๋ฌผ ์กฐํ, ์์ , ์ญ์
์คํ๋ง ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ ์ ๋๋ค !
์ค๋ฅ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ :)
1. ์กฐํ
(home.html, BoardController, detail.html, BoardService)
2. ์์
(BoardController, updateForm.html, BoardService)
3. ์ญ์
(BoardController, BoardService)
https://jcowwk.tistory.com/131
๋ณธ ํฌ์คํ ์ ์์ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค.
1. ์กฐํ(home.html, BoardController, detail.html, BoardService)
- home.html
๋ณด๊ณ ์ถ์ ๊ฒ์๋ฌผ์ ์ ๋ชฉ์ ํด๋ฆญํ์ ๋ ๋ด์ฉ์ ๋ณผ ์ ์๋๋ก ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
์ด๋ค ๊ฒ์๋ฌผ์ธ์ง๋ ๊ฒ์๋ฌผ ๋ฒํธ๋ก ๊ตฌ๋ถํ๊ธฐ ์ํด์ "@{'/board/detail/' + ${board.boardId}}" ์ฝ๋๋ฅผ ํ์ฉํ์ฌ ๋ด์์ค๋๋ค.
- BoardController
์๋ฒ์์ ๋ณด๋ธ board.boardId๋ฅผ ๋ฐ๊ธฐ ์ํ์ฌ {boardId}์ ๋ด์์ฃผ๊ณ , ์ค์ ๋ก {boardId}๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํด์ @PathVariable Long boardId ์ ์ธ์ ํตํด boardId ๋ณ์์ ๋ด์์ ์ฌ์ฉํฉ๋๋ค.
- detail.html
๊ฒ์๋ฌผ์ ๋ด์ฉ์ ๋ณด์ฌ์ฃผ๋ ํผ์ ๋ง๋ค์ด๋ด ์๋ค.
์ค๋ฅธ์ชฝ์ ์ฝ๋์ฒ๋ผ ์์ฑํ๋ฉด ์ผ์ชฝ์ ํ๋ฉด์ ๋ง๋ค ์ ์์ต๋๋ค.
- BoardService
๊ฒ์๋ฌผ ๋ฒํธ๋ก ๊ฒ์๋ฌผ์ ๋ด์ฉ์ ๊ฐ์ ธ์ค๋ ์ฝ๋๋ฅผ ์์ฑํด์ค๋๋ค.
์ฌ๊ธฐ๊น์ง ์์ฑ๋์๋ค๋ฉด ๊ฒ์๋ฌผ ์กฐํ ๊ธฐ๋ฅ์ ์์ฑ์ ๋๋ค.
2. ์์ (BoardController, updateForm.html, BoardService)
- BoardController
loginId์ ์์ฑ์(ํ์ ์์ด๋)๊ฐ ๊ฐ์ ๋๋ง ์์ ๊ณผ ์ญ์ ๋ฒํผ์ด ํ์ฑํ๋๋๋ก ํ๊ธฐ ์ํด boardDetail ํจ์์์ loginId ์ฐพ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํ๊ณ , detail.html์์ ์์ ๊ณผ ์ญ์ ๋ฒํผ์ ๊ฐ์ธ๊ณ ์๋ <div> ํ๊ทธ์ <div th:if="${boardDetail.memberId == loginId}"> ๋ฅผ ์ถ๊ฐํ์์ต๋๋ค.
- updateForm.html
์ค๋ฅธ์ชฝ์ ์ฝ๋์ฒ๋ผ ์์ฑํ๋ฉด ์ผ์ชฝ์ ํ๋ฉด์ ๋ง๋ค ์ ์์ต๋๋ค.
์ฌ๊ธฐ๊น์ง ์๋ฃํ์ จ๋ค๋ฉด ๊ฒ์๋ฌผ ์์ ๊ธฐ๋ฅ๋ ์์ฑ์ ๋๋ค.
3. ์ญ์ (BoardController, BoardService)
์ด์ CRUD ๊ธฐ๋ฅ์ ๋ง์ง๋ง ๊ธฐ๋ฅ์ธ ์ญ์ ๋ฅผ ํด๋ณด๊ฒ ์ต๋๋ค.
- BoardController
๊ฒ์๋ฌผ ๋ฒํธ๋ก ํด๋น ๊ธ์ ์ญ์ ํด์ฃผ๋ ์ฝ๋๋ฅผ ์์ฑํฉ๋๋ค.
- BoardService
*return "redirect:/board/home"; ๋ ์ถ๊ฐํด์ฃผ์ธ์!
boardRepository์์ ์์๋ฐ์ JpaRepository์ ์ด๋ฏธ ์กด์ฌํ๋ ํจ์๋ก ํด๋น ๊ฒ์๋ฌผ์ ์ญ์ ํด์ค๋๋ค.
์ฌ๊ธฐ๊น์ง ์๋ฃํ์ จ๋ค๋ฉด ๊ฒ์๋ฌผ ๋ชฉ๋ก, ๊ธ์์ฑ, ์กฐํ, ์์ , ์ญ์ ๊ธฐ๋ฅ์ ๋ค ๋ง๋ค์ด์ CRUD ๊ตฌํ์ ์๋ฃํ์์ต๋๋ค.
์ค๋ช ์ด ์ ์ ์งง์์ก๋๋ฐ ์ดํด๊ฐ ์๋๋ ๋ถ๋ถ์ด ์๊ฑฐ๋ ์ค๋ฅ๊ฐ ์๋ค๋ฉด
๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ ๐ง๐ปโ๏ธ
๋ค์ ํฌ์คํ ์ ๋๊ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํด๋ณด๊ฒ ์ต๋๋ค !