๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Thinks/TIL

TIL-220414

by ์„œ์ฝ”์ฝ” 2022. 11. 20.

๐Ÿ›Ž ํ•˜๋ฃจ ์ผ๊ณผ

10:00 ~ 10:30 ๋ฐ์ผ๋ฆฌ ์Šคํฌ๋Ÿผ
12:00 ~ 17:00 todolist ํ”„๋กœ์ ํŠธ
21:00 ~ 22:30 ์ฝ”๋“œ ๋ฆฌ๋ทฐ ์ •๋ฆฌ
22:45 ~ 01:30 todolist ํ”„๋กœ์ ํŠธ

๐Ÿ‘จ‍๐Ÿ’ป ํ•™์Šต ํšŒ๊ณ 

๐Ÿค todolist ํ”„๋กœ์ ํŠธ

โญ•๏ธ ๋ฆฌ๋ทฐ ๋ฐ˜์˜

1. cardController์˜ add ๋ฉ”์„œ๋“œ return ๊ฐ’์ด ์• ๋งคํ•˜๋‹ค๋Š” ๋ฆฌ๋ทฐ.

  • ์งˆ๋ฌธ์˜ ์š”์ง€๋ฅผ ์ œ๋Œ€๋กœ ํŒŒ์•…ํ•œ๊ฑด์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์ง€๋งŒ, controller์˜ add ๋ฉ”์„œ๋“œ์—์„œ event์ฒ˜๋ฆฌ ๋กœ์ง๊นŒ์ง€ ๋“ค์–ด์žˆ์–ด์„œ ๊ทธ๋Ÿฐ๊ฒƒ ๊ฐ™์Œ.
  • EventService๋ฅผ CardService ๋‚ด๋ถ€๋กœ ์ด๋™.

2. responsCardDto์—๊ฒŒ section ๊ฐ’์„ ๋น„๊ตํ•˜๋Š” ์ฑ…์ž„์„ ์œ„์ž„ํ•˜๊ธฐ & if-else ์ œ๊ฑฐํ•˜๊ธฐ

  • ํ›„์˜ ๋„์›€์œผ๋กœ if๋ฌธ ๋‚ด๋ถ€์—์„œ ๊ฐ’์„ ๋ฆฌํ„ดํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ด else ์ œ๊ฑฐ. -> return ๋ฌธ์ด ์ค‘๋ณต๋œ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์ง€๋งŒ ํŠน๋ณ„ํ•œ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์ง€ ๋ชปํ–ˆ์Œ
  • Card ๋„๋ฉ”์ธ ๊ฐ์ฒด์—๊ฒŒ section์˜ ๋ณ€๊ฒฝ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•˜๋Š” ์ฑ…์ž„ ์œ„์ž„.

3. put, delete ๋ฉ”์„œ๋“œ์— ์ตœ์†Œํ•œ ์š”์ฒญ ์„ฑ๊ณต ์—ฌ๋ถ€๋ฅผ ์•Œ๋ ค์ฃผ๋Š” ๋ฐ˜ํ™˜๊ฐ’ ์ •๋„๋Š” ์ฃผ๋„๋ก ๊ฐœ์„ ํ•˜๊ธฐ

{
  code : 200
  message : "์„ฑ๊ณต"
  content : {...}
}
  • Response ํ˜•ํƒœ์˜ Dto๋ฅผ ๋งŒ๋“ค๊ณ  ๋‚ด๋ถ€์— content ํ•„๋“œ์˜ ํƒ€์ž…์„ ์ œ๋„ค๋ฆญ์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐ.
  • ๋ชจ๋“  ์‘๋‹ต์„ ์œ„์˜ ํ˜•์‹์œผ๋กœ ๋ณด๋‚ด์ฃผ๋Š”๊ฒŒ ๋งž์„๊ฒƒ๊ฐ™๋‹ค๊ณ  ์ „๋ถ€ํ„ฐ ์ƒ๊ฐํ–ˆ์ง€๋งŒ ๋ฏธ๋ฃจ๋‹ค๋ณด๋‹ˆ ํ”„๋กœ์ ํŠธ๊ฐ€ ๋๋‚˜๋Š” ๋‚ ์ด ์™€์„œ ์ ์šฉ์€ ์•ˆํ–ˆ์Œ.

4. Action enum ๋‚ด๋ถ€์—์„œ Event๊ฐ€ ์Šค์Šค๋กœ dto์˜๊ฐ’๋“ค์„ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐœ์„ ํ•˜๊ธฐ

  • Event์—๊ฒŒ dto์—์„œ ๊ฐ’์„ ๊บผ๋‚ด์„œ ๋„˜๊ฒจ์คฌ๋Š”๋ฐ ๊ฐ์ฒด ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•ด์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์ž์œจ์„ฑ์„ ๋ณด์žฅํ•ด์•ผํ•œ๋‹ค. ๊ทธ๋ž˜์„œ dto๋ฅผ ๋„˜๊ฒจ์ฃผ๋Š” ํ˜•์‹์œผ๋กœ ๋ณ€๊ฒฝ

5. ResponseCardsDto์—์„œ Map์˜ ํ‚ค๊ฐ’์„ enum ํƒ€์ž…์„ ๋„ฃ์–ด์„œ ํ‘œํ˜„ํ•˜๋„๋ก ๊ฐœ์„ ํ•˜๊ธฐ

  • Section Enum ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์นด๋“œ๋ฅผ ๋ถ„๋ฅ˜ํ•˜๋Š” ๋กœ์ง์„ Enum ํด๋ž˜์Šค ๋‚ด๋ถ€๋กœ ์˜ฎ๊น€

๐Ÿšซ ์•ž์œผ๋กœ ๋ณ€๊ฒฝํ•  ๋‚ด์šฉ๊ณผ ํ•™์Šตํ•  ํ‚ค์›Œ๋“œ

  • eventJdbcRepository์˜ rowMapper์—์„œ ์ปฌ๋Ÿผ๋ช…์„ ๋™์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ๋ฐฉ๋ฒ• ์ฐพ์•„๋ณด๊ธฐ
  • findAny()๋Š” id๊ฐ€ uniqueํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋™์ผ์„ฑ์ด ๋ณด์žฅ์ด ์•ˆ๋˜๋Š”๋ฐ ์ด ๋ถ€๋ถ„์„ ๊ฐœ์„  ํ•ด๋ณด๊ธฐ
  • Customํ•œ Exception ๋งŒ๋“ค์–ด๋ณด๊ธฐ
  • action์ด ์ด๋ฃจ์–ด์ง„ ๋ชฉ๋ก์„ ์ธํ„ฐ์…‰ํ„ฐ๋กœ ๊ตฌํ˜„ํ•ด๋ณด๊ธฐ
  • genarateKey๋ž€?
  • mysql์—์„œ enum ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋Š”๊ฒƒ์— ๋Œ€ํ•œ ์˜๊ฒฌ ๋‚จ๊ธฐ๊ธฐ - mysql์—์„œ enum ํƒ€์ž…์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋˜๋Š” 8๊ฐ€์ง€ ์ด์œ 
  • executeAndReturnKey()๊ฐ€ ๋ฉ€ํ‹ฐ์Šค๋ ˆ๋“œ์—์„œ ์‚ฌ์šฉํ•ด๋„ ์•ˆ์ „ํ•œ ์ด์œ  ์•Œ์•„๋ณด๊ธฐ

์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ๋ฐ›๊ฒŒ ๋˜๋ฉด ๋งŽ์€ ํ‚ค์›Œ๋“œ๊ฐ€ ์Ÿ์•„์ง„๋‹ค. ๋™์‹œ์— ๋‚ด๊ฐ€ ์Šต๊ด€์ ์œผ๋กœ ์ž‘์„ฑํ•˜๋˜ ์ฝ”๋“œ, ์ข‹๋‹ค๋‹ˆ๊นŒ ์‚ฌ์šฉํ•ด๋ณด๋Š” ์ฝ”๋“œ๋“ค์— ๋Œ€ํ•ด ๋‹ค์‹œํ•œ๋ฒˆ ์ƒ๊ฐํ•ด๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๊ฐ€ ๋œ๋‹ค.

 

์ด๋™์šฑ๋‹˜์˜ ์ฑ…์—์„œ Entity๊ฐ์ฒด๋Š” DB์™€ ์ง์ ‘์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋Š” ๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ์žˆ๋Š” ๋ฐ˜ํ™˜์šฉ Dto ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค์–ด ๋ฐ˜ํ™˜ํ•ด์•ผํ•œ๋‹ค๋Š” ๋‚ด์šฉ์„ ๋ณด์•˜๊ณ  ๋ฐ”๋กœ ํ”„๋กœ์ ํŠธ์— ์ ์šฉํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ ์šฉํ•˜๋ฉด์„œ ๋“ค๊ฒŒ ๋œ ์ƒ๊ฐ์€ “ํ˜„์žฌ๋Š” ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๊ฐ€ ์ ์ง€๋งŒ, ๋งŒ์•ฝ ๋ฐ์ดํ„ฐ๊ฐ€ ์—„์ฒญ ๋งŽ๋‹ค๋ฉด ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ ๋“œ๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋„ˆ๋ฌด ํฌ์ง€ ์•Š์„๊นŒ” ์˜€๋‹ค.

 

ํ•ด๋‹น ๋‚ด์šฉ์„ pr์˜ ์งˆ๋ฌธ์œผ๋กœ ๋‚จ๊ฒผ๊ณ  ๋ฐ›์€ ๋ฆฌ๋ทฐ์—์„œ **๋‹น์—ฐํžˆ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋ฐ˜๋“œ์‹œ Dto ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ด์•ผํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ๋Š”์ง€ ๊ณ ๋ฏผํ•ด๋ณด๊ณ , ๋ณ€ํ™˜ํ•ด์•ผํ•˜๋Š” ์ด์œ ๊ฐ€ ์žˆ๋‹ค๋ฉด ๊ทผ๊ฑฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์„ค๋“ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค**๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๋‹ค.
์ด๋Ÿฐ ํ”ผ๋“œ๋ฐฑ ๋•๋ถ„์— “๋Œ€๋‹ค์ˆ˜๊ฐ€ ์ข‹๋‹ค๊ณ  ํ•˜๋‹ˆ๊นŒ, ์‹ค๋ ฅ์ด ๋›ฐ์–ด๋‚œ ๊ฐœ๋ฐœ์ž๋ถ„์ด ๋งž๋Š” ๋ฐฉ์‹์ด๋ผ๊ณ  ํ•˜๋‹ˆ๊นŒ” ๋ฌด์ž‘์ • ์ ์šฉํ–ˆ๋˜ ๋‚ด ์ž์‹ ์„ ๋ฐ˜์„ฑํ•˜๊ฒŒ ๋œ๋‹ค.

Entity ๊ฐ์ฒด๋ฅผ ๊ทธ๋Œ€๋กœ ๋ฐ˜ํ™˜ํ•˜๋ฉด ์•ˆ๋˜๋Š” ์ด์œ 

  • ์‚ฌ์šฉ์ž์—๊ฒŒ Entity ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ฒŒ ๋˜๋ฉด Entity ๊ฐ์ฒด์˜ ๋ชจ๋“  ํ•„๋“œ, ์ฆ‰ DB์˜ ์ปฌ๋Ÿผ๋“ค์ด ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ณต๊ฐœ๋œ๋‹ค.
  • ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ค‘๊ฐ„์— ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋ ค๋ฉด setter๊ฐ€ ํ•„์š”ํ•˜๋‹ค. Entity์— setter๋ฅผ ๊ตฌํ˜„ํ•ด๋‘๋ฉด ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ์ „ํ˜€ ์ƒ๊ด€ ์—†๋Š” controller์™€ ๊ฐ™์€ ๊ณณ์—์„œ ์‹ค์ˆ˜๋กœ ๊ฐ’์˜ ๋ณ€๊ฒฝ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์‚ฌ์šฉ์ž์—๊ฒŒ ํ•„์š”๋„ ์—†๋Š” ๋ฐ์ดํ„ฐ๊นŒ์ง€ ์ „๋ถ€ ๋ณด๋‚ด๋Š”๊ฒƒ์€ ์ž์›์˜ ๋‚ญ๋น„๋‹ค.

๐Ÿ’๐Ÿป‍โ™‚๏ธ ๊ฐœ์„ ์ 

  • ์˜ค๋Š˜์€ ๋งŒ์กฑ! ๐Ÿ’ฏ

'Thinks > TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

TIL-220613  (0) 2022.11.20
TIL-220415  (0) 2022.11.20
TIL-220413  (0) 2022.11.20
TIL-220412  (0) 2022.11.20
TIL-220411  (0) 2022.11.20