๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป develop

[spring] ์Šคํ”„๋ง์œผ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ - ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ, TIMESTAMP, ๊ทธ์™ธ ์˜ค๋ฅ˜ ์ˆ˜์ •

jcowwk 2024. 4. 17. 15:08

์Šคํ”„๋ง์œผ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ - ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ, TIMESTAMP, ๊ทธ์™ธ ์˜ค๋ฅ˜ ์ˆ˜์ •


์Šคํ”„๋ง ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ ์ž…๋‹ˆ๋‹ค !

์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š” :)

 

1. ํŽ˜์ด์ง• ์ฒ˜๋ฆฌ

2. TIMESTAMP

3. ๊ทธ์™ธ ์˜ค๋ฅ˜ ์ˆ˜์ •

 

https://jcowwk.tistory.com/133

 

[spring] ์Šคํ”„๋ง์œผ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ - ๋Œ“๊ธ€ ์ž‘์„ฑ, ๋ชฉ๋ก ๊ธฐ๋Šฅ

์Šคํ”„๋ง์œผ๋กœ CRUD ๊ฒŒ์‹œํŒ ๋งŒ๋“ค๊ธฐ - ๋Œ“๊ธ€ ์ž‘์„ฑ, ๋ชฉ๋ก ๊ธฐ๋Šฅ ์Šคํ”„๋ง ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ •๋ฆฌํ•œ ๋‚ด์šฉ ์ž…๋‹ˆ๋‹ค ! ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š” :) 1. ๋Œ“๊ธ€ ์ž‘์„ฑ 2. ๋Œ“๊ธ€ ๋ชฉ๋ก https://jcowwk.tistory.com/132 [develop] ์Šค

jcowwk.tistory.com

 

๋ณธ ํฌ์ŠคํŒ…์€ ์œ„์˜ ํฌ์ŠคํŒ…๊ณผ ์ด์–ด์ง‘๋‹ˆ๋‹ค.


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์— ๋Œ€ํ•˜์—ฌ

ํฌ์ŠคํŒ… ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค !