[spring] ์คํ๋ง์ผ๋ก CRUD ๊ฒ์ํ ๋ง๋ค๊ธฐ - ํ์ด์ง ์ฒ๋ฆฌ, TIMESTAMP, ๊ทธ์ธ ์ค๋ฅ ์์
์คํ๋ง์ผ๋ก CRUD ๊ฒ์ํ ๋ง๋ค๊ธฐ - ํ์ด์ง ์ฒ๋ฆฌ, TIMESTAMP, ๊ทธ์ธ ์ค๋ฅ ์์
์คํ๋ง ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌํ ๋ด์ฉ ์ ๋๋ค !
์ค๋ฅ๊ฐ ์๋ค๋ฉด ๋๊ธ๋ก ๋จ๊ฒจ์ฃผ์ธ์ :)
1. ํ์ด์ง ์ฒ๋ฆฌ
2. TIMESTAMP
3. ๊ทธ์ธ ์ค๋ฅ ์์
https://jcowwk.tistory.com/133
๋ณธ ํฌ์คํ ์ ์์ ํฌ์คํ ๊ณผ ์ด์ด์ง๋๋ค.
1. ํ์ด์ง ์ฒ๋ฆฌ
- home.html
๊ฒ์๋ฌผ์ด ์ฌ๋ฌ ๊ฐ ์ผ ๋ ๊ฐ ํ์ด์ง์ ์ผ์ ๊ฒ์๋ฌผ์ ๊ฐ์ ธ์ค๊ธฐ ์ํด์ ํ์ด์ง ์ฒ๋ฆฌ๋ฅผ ํด๋ด ์๋ค.
๊ฐ๋จํ๊ฒ (์ด์ ) 1,2,3,.. (๋ค์) ์ด ๋จ๋๋ก ์ฝ๋๋ฅผ ์์ฑํ์ต๋๋ค.
- BoardController
๊ธฐ์กด์ ๋ชฉ๋ก์ ๊ฐ์ ธ์ค๋ ์ฝ๋๋ฅผ ์์ ์ฃผ๊ณ , ์๋กญ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ์์ต๋๋ค.
PageRequest pageable = PageRequest.of(page, 3); ์ ํตํด์ ํ์ด์ง์ ๋ํ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ฌ pageable ๊ฐ์ฒด๋ฅผ ์์ฑํฉ๋๋ค.
์ฒซ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ ํ์ด์ง์ ์ฒซ ์์ ๋ฒํธ์ด๊ณ , ๋ ๋ฒ์งธ ๋งค๊ฐ๋ณ์๋ ํ ํ์ด์ง ๋น ๋ ธ์ถ๋ ๊ฒ์๋ฌผ์ ๊ฐ์์ ๋๋ค.
๋ณธ ์ฝ๋์์๋ ํ์ด์ง ๋น ๋ ธ์ถ๋ ๊ฒ์๋ฌผ์ 3๊ฐ ์ฉ ๊ฐ์ ธ์์ boardList model์ ๋ด์์ค๋๋ค.
์ฒซ ๋ฒ์งธ ํ์ด์ง๋ฅผ 1ํ์ด์ง๋ก default๊ฐ์ currentPage model์ ๋ด์์ค๋๋ค.
boardDTOPage.getTotalPages();๋ฅผ ํตํด์ ๊ฐ์ ธ์จ ๊ฒ์๋ฌผ์ด ๋ง์ฝ 12๊ฐ๋ผ๋ฉด,
12๊ฐ๋ฅผ ๊ฐ ํ์ด์ง๋ง๋ค 3๊ฐ ์ฉ ๋ ธ์ถํ ๋ ์์ฑ๋๋ ํ์ด์ง์ ๊ฐฏ์ 4๊ฐ๋ฅผ ๊ตฌํ์ฌ totalPages model์ ๋ด์ต๋๋ค.
- BoardService
Page์ mapํจ์๋ฅผ ์ฌ์ฉํ์ฌ BoardDTO::toBoardDTO(BoardDTO.toBoardDTO)๋ก Entity๋ฅผ DTOํํ(๋ค๋ฅธ ํํ)๋ก ๋ฐ๊ฟ์ค๋๋ค.
2. TIMESTAMP
- BoardEntity
BoardEntity์์ @CreationTimestamp, @UpdateTimestamp ์ด๋ ธํ ์ด์ ์ ์ถ๊ฐํด์ฃผ๋ฉด ์๋์ผ๋ก ๋ ์ง๊ฐ ์ ์ฅ๋ฉ๋๋ค.
ํ์ง๋ง ์ด๋ ๊ฒ ์ฝ๋๋ฅผ ์์ฑํ์ ๋ ๋ฌด์ธ๊ฐ ์ด์ํ ์ ์ ๋ฐ๊ฒฌํ ์ ์์ต๋๋ค.
์์์ ํด๋ผ์ด์ธํธ์ ํ์๋๋ ์์ฑ์๊ฐ์ 14:46:59์ด์ง๋ง, ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ์๊ฐ์ 05:46:59์ ๋๋ค.
์์ ์ ๋ถ๋ถ์์ ์ฐจ์ด๊ฐ ์์์ ์ ์ ์์ต๋๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ํ๊ตญ ์๊ฐ๋(+09:00)๋ฅผ ์ฌ์ฉํ๊ณ ์๊ณ , ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ UTC๋ฅผ ์ฌ์ฉํ๊ณ ์์ผ๋ฉด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋๋ ์๊ฐ๊ณผ 9์๊ฐ ์ฐจ์ด๊ฐ ๋ ์ ์์ต๋๋ค.
์ฐ์ ์ฌ๊ธฐ์๋ ํฌ๊ฒ ์ค์ํ์ง ์๊ธฐ ๋๋ฌธ์ ๋์ด๊ฐ๊ณ , ๋ฐ๋ก ์์ธํ๊ฒ ์์๋ณด๊ณ ํฌ์คํ ์ ํด๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
3. ๊ทธ์ธ ์ค๋ฅ ์์
๊ธฐ์กด์ ์ฝ๋์์ ๋ก๊ทธ์ธ์ ์ฑ๊ณตํ์ ๋ ๋ฐ๋ก ๊ธ๋ชฉ๋ก์ด ๋จ์ง ์๊ณ , ๊ธ์ฐ๊ธฐ ์ฐฝ์ ๋ค์ด๊ฐ์ ์ทจ์๋ ๊ธ์์ฑ์ ํ๊ณ ๋ ํ์์ผ ๊ธ๋ชฉ๋ก์ด ๋จ๋ ํ์์ด ๋ฐ์ํ์ต๋๋ค. ๊ธฐ์กด์ ์ฝ๋์์๋ Controller์์ return ๊ฐ์ด "board/home" ์์ต๋๋ค. BoardController์์ ๊ฒ์ํ ๋ชฉ๋ก์ ๊ฐ์ ธ์์ home.html์ ์ ์ฉํ๋ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ๋๋ฌธ์ ์ ์ ์ฒ๋ผ board/home์ ํ๊ฒ ๋๋ฉด ๊ฒ์ํ ๋ชฉ๋ก์ด ๋จ์ง ์๊ฒ ๋ฉ๋๋ค.
- MemberController
return "redirect:/board/home"; ์ผ๋ก ์์ ํด์ค์ผ๋ก์จ ๋ก๊ทธ์ธ์ ํ์ ๋์๋ ๊ธ๋ชฉ๋ก์ด ๋จ๋๋ก ์ค๋ฅ๋ฅผ ์์ ํ ์ ์์ต๋๋ค.
๋ค์์ ๊ตฌ๊ธ ๋ก๊ทธ์ธ(oauth2), spring security์ ๋ํ์ฌ
ํฌ์คํ ํ๊ฒ ์ต๋๋ค !