[TIL] 2025-12-18

msus_xxviiยท2025๋…„ 12์›” 18์ผ

DailyLog

๋ชฉ๋ก ๋ณด๊ธฐ
9/37
post-thumbnail

๐ŸŽฏ ์˜ค๋Š˜ ํ•œ ์ผ

  • Vite + React + MUI ๊ธฐ๋ฐ˜์œผ๋กœ DailyLog ํ”„๋ก ํŠธ์—”๋“œ ํ™”๋ฉด ๊ตฌ์„ฑ

  • MUI DataGrid๋ฅผ ์‚ฌ์šฉํ•ด ๋ฐฑ์—”๋“œ(/api/logs) ๋ฐ์ดํ„ฐ ์กฐํšŒ ๋ฐ ํ…Œ์ด๋ธ” ๋ Œ๋”๋ง

  • content ์ปฌ๋Ÿผ ๊ธธ์ด๋กœ ์ธํ•œ ๊ฐ€๋กœ ๋ฌดํ•œ ํ™•์žฅ ๋ฌธ์ œ ํ•ด๊ฒฐ (flex + ๋ง์ค„์ž„ ์ฒ˜๋ฆฌ)

  • POST ์š”์ฒญ์œผ๋กœ ๋กœ๊ทธ ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๋ฐ ๊ทธ๋ฆฌ๋“œ ์ฆ‰์‹œ ๋ฐ˜์˜

  • CORS ์ด์Šˆ๋กœ ์ธํ•œ POST 403 ๋ฌธ์ œ ํ•ด๊ฒฐ (allowedOrigins/OPTIONS ์„ค์ • ์ดํ•ด)

  • useEffect + ๋น„๋™๊ธฐ fetch ํŒจํ„ด ์ •๋ฆฌ ๋ฐ fetchLogs ์žฌ์‚ฌ์šฉ ๊ตฌ์กฐ๋กœ ๋ฆฌํŒฉํ† ๋ง

  • ์ž…๋ ฅ ํผ์„ DataGrid์™€ ๋™์ผํ•œ ๋ฐ•์Šค(Paper) UI๋กœ ์ •๋ ฌํ•ด ํ™”๋ฉด ์ผ๊ด€์„ฑ ํ™•๋ณด

๐Ÿ’ก ๋ฐฐ์šด ์ 

  • ์ถ”๊ฐ€(Create)๋Š” POST, ์ˆ˜์ •(Update)๋Š” PUT์ด ๋ช…ํ™•ํ•œ REST ์›์น™
  • DataGrid์—์„œ ์ปฌ๋Ÿผ ํญ ๋ฌธ์ œ๋Š” ๋Œ€๋ถ€๋ถ„ flex/width ์„ค์ • ๋ฏธํก์ด ์›์ธ
  • POST๋งŒ 403์ด ๋œจ๋Š” ๊ฒฝ์šฐ, Spring Security๊ฐ€ ์—†์–ด๋„ CORS ํ”„๋ฆฌํ”Œ๋ผ์ดํŠธ(OPTIONS) ๋ฅผ ์˜์‹ฌํ•ด์•ผ ํ•จ
  • useEffect ๋‚ด๋ถ€์—์„œ setState๋ฅผ ์“ฐ๋Š” ๊ฒƒ์€ ์ผ๋ฐ˜์ ์ด๋ฉฐ, ESLint ๊ฒฝ๊ณ ๋Š” ๊ตฌ์กฐ ์ •๋ฆฌ๋กœ ํ•ด์†Œ ๊ฐ€๋Šฅ
  • ํ”„๋ก ํŠธ์—”๋“œ์—์„œ CRUD ํ๋ฆ„์„ ์ง์ ‘ ์—ฐ๊ฒฐํ•ด๋ณด๋‹ˆ, ๋ฐฑ์—”๋“œ API ์„ค๊ณ„์˜ ์ค‘์š”์„ฑ์ด ๋” ๋ช…ํ™•ํ•ด์ง

๐Ÿš€ ๋‚ด์ผ ํ•  ์ผ

  • PUT๊นŒ์ง€ ์—ฐ๊ฒฐ๋œ ํ๋ฆ„์„ ๊ธฐ์ค€์œผ๋กœ UI/UX ์ •๋ฆฌ(๋ฒ„ํŠผ ๋ฌธ๊ตฌ, ํŽธ์ง‘ ์ƒํƒœ ํ‘œ์‹œ ๋“ฑ)
  • ํ•„์š” ์‹œ DELETE ๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์—ฌ๋ถ€ ๊ฒ€ํ† 
  • ์˜ค์ „์—๋Š” ์ •๋ณด์ฒ˜๋ฆฌ๊ธฐ์‚ฌ ํ•„๊ธฐ PDF 1๊ณผ๋ชฉ ํ›‘๊ธฐ

๐Ÿงฉ ๋А๋‚€ ์ 

  • ๋‹จ์ˆœํžˆ โ€œํ™”๋ฉด์ด ๋œฌ๋‹คโ€๋ฅผ ๋„˜์–ด์„œ, ์‹ค์ œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์ด ์™•๋ณต๋˜๋Š” ์ง€์ ๊นŒ์ง€ ์™€์„œ ์„ฑ์ทจ๊ฐ์ด ํผ
  • ๋ฌธ์ œ ๋Œ€๋ถ€๋ถ„์ด ๊ฐœ๋… ๋ถ€์กฑ์ด ์•„๋‹ˆ๋ผ ์„ธ๋ถ€ ์„ค์ •(CORS, flex, hook ๊ตฌ์กฐ) ์—์„œ ๋ฐœ์ƒํ–ˆ๋‹ค๋Š” ์ ์ด ์ธ์ƒ์ 
  • ์ด์ œ DailyLog๋Š” ๋‹จ์ˆœ ์—ฐ์Šต์ด ์•„๋‹ˆ๋ผ ์‹ค๋ฌดํ˜• CRUD ๋ฏธ๋‹ˆ ํ”„๋กœ์ ํŠธ๋กœ ์ถฉ๋ถ„ํžˆ ์˜๋ฏธ๊ฐ€ ์ƒ๊น€

0๊ฐœ์˜ ๋Œ“๊ธ€