TIL_221123 โœ”๏ธ๐ŸšฉBasic_Project

์ •์œค์ˆ™ยท2022๋…„ 11์›” 23์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
24/192

๋‚ด์ผ๋ฐฐ์›€์บ ํ”„ 4๊ธฐ ์ŠคํŒŒ๋ฅดํƒ€์ฝ”๋”ฉ React B๋ฐ˜


๐Ÿ“’ ์˜ค๋Š˜์˜ ๊ณต๋ถ€

1.ํ”„๋กœ์ ํŠธ


โœ…

๋ฌธ์ œ ํ•ด๊ฒฐ

  • ํŒ€์›์ด profil.js์—์„œ onFileChange ๋“ฑ ์ด๋ฒคํŠธ๋ฅผ ๋งŒ๋“ค๊ณ  main.js์—์„œ๋„ ์—ฐ๊ฒฐํ–ˆ๋Š”๋ฐ profil ๋ณ€๊ฒฝ ํŽ˜์ด์ง€์—์„œ ์‚ฌ์ง„ ํŒŒ์ผ์„ ๋ˆ„๋ฅด๋ฉด ํ•ด๋‹น ํŒŒ์ผ์ด ์•ˆ ๋ณด์ž„.
    • ๋‚ด๊ฐ€ mypage์—์„œ eidt์„ ๋ˆ„๋ฅด๋ฉด profile ํŽ˜์ด์ง€๊ฐ€ ๋œจ๊ฒŒ #๊ฐ’์„ ์ฃผ๊ณ  'go live'๋ฅผ ํ•ด๋ณด๋ผ๊ณ  ํ•˜๋‹ˆ ํ”„๋กœํ•„ ๋ณ€๊ฒฝํ™”๋ฉด์—์„œ ๋‚ด ์ปดํ“จํ„ฐ์—์„œ ํด๋ฆญํ•œ ํŒŒ์ผ์ด ์ž˜ ๋ณด์ž„!!
    • ์•„์ง ์ˆ˜์ •ํ•˜๊ธฐ ๋ฒ„ํŠผ ๋ถ€๋ถ„์€ ์™„๋ฃŒ๊ฐ€ ์•ˆ ๋ผ์„œ ์ด๋ฏธ์ง€๊ฐ€ ์ž„์‹œ ์ €์žฅ๋œ ์ƒํƒœ๋กœ ๋ณด์ž„!

  • S3 ๋ฐฐํฌ
    • ํ™”๋ฉด ๊ณต์œ ๋กœ ๋‹ค ๊ฐ™์ด ์†Œํ†ตํ•˜๋ฉฐ ์ง„ํ–‰
    • ๊ฐ€๋น„์•„ ๋„๋ฉ”์ธ ๊ตฌ์ž…ํ•˜๋Š” ๊ฒƒ์—์„œ๋ถ€ํ„ฐ ์ธ์ฆ ๋ฌธ์ œ๋กœ ๋ง‰ํž˜ใ…‹ใ…‹ใ…‹ใ…‹
    • ์ดํ›„์— ๊ธˆ๋ฐฉ ์ž˜ ๋งŒ๋“ค์–ด์ง

โœ”๏ธ

  • profile.js ๊ฐ™์ด ๋งŒ๋“ค๊ธฐ
    • ์ˆ˜์ • ์‚ฌํ•ญ = commit yuns
    • ์ˆ˜์ •ํ•˜๊ธฐ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ์‚ฌ์ง„ storage์— ์ž˜ ๋“ค์–ด๊ฐ€๋Š”๋ฐ ํŒ€์› ํ•œ ๋ช…์—๊ฒŒ๋งŒ ํ”„๋กœํ•„ ์ˆ˜์ • ์™„๋ฃŒ ๋ฒ„ํŠผ์ด ๋œธ
      -> profile ํŒ€์› ์ฝ”๋“œ๋ž‘ ๋Œ€์ฒด ๋ญ๊ฐ€ ๋‹ค๋ฅธ ๊ฑด์ง€ ์ฝ”๋“œ ๋น„๊ต
      -> ๊ธฐ๋‹ค๋ฆฌ๋‹ˆ๊นŒ ๋˜๋Š”๋ฐ ๋˜ ๋ˆ„๊ตฌ๋Š” 3๋ฒˆ ๊นŒ์ง€ ํ”„๋กœํ•„ ์‚ฌ์ง„, ๋‹‰๋„ค์ž„ ๋ฐ”๊พธ๋Š” ๊ฒƒ๋„ ์—ฌ๋Ÿฌ๋ฒˆ ์—ฐ์†์œผ๋กœ ํ•ด๋„ "์ˆ˜์ • ์™„๋ฃŒ" ์ž˜ ๋œธ
      -> ์ฝ”๋“œ ๋ฌธ์ œ๋Š” ์•„๋‹Œ ๊ฒƒ ๊ฐ™์•„ ์ผ๋‹จ ๋ณด๋ฅ˜

    โญ CSS๋ฌธ์ œ๋กœ ๋…ธํŠธ๋ถ, ๋ฐ์Šคํฌํƒ‘์—์„œ ๋ฒ„ํŠผ ์œ„์น˜๊ฐ€ ๋‹ฌ๋ผ ๋ฐ€๋ ค์„œ ๊ทธ๋žฌ๋˜ ๊ฒƒ..


โœ”๏ธ

  • post.js ๊ฐ™์ด ๋งŒ๋“ค๊ธฐ
    • ์ž์„ธํ•œ ์ˆ˜์ • ์‚ฌํ•ญ = commit yunsukprac Branch
    • post.html์— ์ž‘์„ฑํ•˜๊ธฐ ๋ฒ„ํŠผ์— ์ด๋ฒคํŠธ ์ฃผ๊ธฐ
    • main์— window๊ฐ์ฒด๋กœ ์ด๋ฒคํŠธ ์ถ”๊ฐ€
    • post.js์—์„œ ์ด๋ฒคํŠธ ๋‚ด์šฉ ๊ตฌ์„ฑ
      -> post ๋‚ด์šฉ์— ๋”ฐ๋ผ ๋ณ€์ˆ˜ ์„ ์–ธ(postpic, category...)
      -> postpic ๋ณ€์ˆ˜ ์„ ์–ธํ•  ๋•Œ authservice์—์„œ uid, disPlayName๋“ฑ์„ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ฒ˜๋Ÿผ storage์—์„œ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š” ๊ฒƒ ์•„๋‹Œ๊ฐ€ ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ์ผ๋‹จ document๋ฐฉ์‹์œผ๋กœ ์ด๋ฏธ์ง€src๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ๋กœ ํ•จ

โœ”๏ธ

  • '์ž‘์„ฑํ•˜๊ธฐ' ๋ˆŒ๋ €๋”๋‹ˆ postpic์ด ๋„ˆ๋ฌด ๊ธธ๋‹ค๋Š” error์ฐฝ์ด ๋œธ
    -> ์ผ๋‹จ ๊ทธ ์ƒํƒœ์—์„œ pull๋ฐ›์€ ํŒ€์›์ด ์ž‘์„ฑํ•˜๊ธฐ ๋ˆŒ๋ €๋Š”๋ฐ ์˜ค๋ฅ˜์ฐฝ ์•ˆ ๋œจ๊ณ  db์— ๋‚ด์šฉ์ด ๋ชจ๋‘ ์ž˜ ๋“ค์–ด๊ฐ!
    -> ์‚ฌ์ง„์˜ dataURL์ด ๋„ˆ๋ฌด ๊ธธ๋ฉด ์•ˆ ๋“ค์–ด๊ฐ!!(์˜ค๋ฅ˜)
    -> DB์— ๋„ฃ์„ ๋•Œ ๋ฐ์ดํ„ฐURL์„ ์ผ๋ถ€๋งŒ ๋„ฃ์–ด๋„ ๋˜๋Š”์ง€?
    -> ์•„๋‹ˆ๋ฉด ํฐ ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์•Œ๋ฆผ์ฐฝ์œผ๋กœ
    '๋ช‡ MB ์ดํ•˜์˜ ์‚ฌ์ง„๋งŒ ์˜ฌ๋ ค์ฃผ์„ธ์š”'๋ฅผ ๋„์›Œ์•ผ ํ•˜๋Š”์ง€?
    -> https://img.ly/blog/how-to-compress-an-image-before-uploading-it-in-javascript/
    -> https://stackoverflow.com/questions/23945494/use-html5-to-resize-an-image-before-upload
    -> ์ฐธ๊ณ ํ•ด์„œ js๋กœ ์‚ฌ์ง„ ์ค„์—ฌ์„œ ์—…๋กœ๋“œ ํ˜น์€
    ์‹œ๊ฐ„ ์—†์œผ๋ฉด ์•Œ๋ฆผ์ฐฝ ๋œจ๊ฒŒ!

    • category id๋ฅผ '์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ'์— ์คฌ๋”๋‹ˆ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” '์šด๋™ํ•˜๊ธฐ'๊ฐ€ ์•„๋‹ˆ๋ผ '์นดํ…Œ๊ณ ๋ฆฌ ์„ ํƒ'์ด๋ผ๊ณ  ์ €์žฅ ๋จ
      -> ํ•ด๊ฒฐ = commit
      -> id๊ฐ’ ์œ„์น˜๋ฅผ ์ž˜ ์„ค์ •ํ•˜์ž!

    • ํฌ์ŠคํŠธ ์ž‘์„ฑํ•˜๊ธฐ๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ๋ˆ„๋ฅด๋ฉด DB์— ์—ฌ๋Ÿฌ๋ฒˆ ๋“ค์–ด๊ฐ
      -> ์ž‘์„ฑํ•˜๊ธฐ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ์•Œ๋ฆผ์ฐฝ์ด ๋œจ๊ธด ํ•˜์ง€๋งŒ ๊ทธ ์ „์— ์—ฌ๋Ÿฌ๋ฒˆ ๋‹ค๋‹ค๋‹ค ๋ˆ„๋ฅด๋ฉด ์•Œ๋ฆผ์ฐฝ๋„ ๋ˆ„๋ฅธ ๋งŒํผ ๋– ์„œ
      -> button์— id๊ฐ’ ์ฃผ๊ณ  disabled=true๋กœ ๋น„ํ™œ์„ฑํ™”ํ•จ
      -> ์•Œ๋ฆผ์ฐฝ ๋œจ๊ธฐ ์ „์— ์—ฌ๋Ÿฌ๋ฒˆ ๋ˆŒ๋Ÿฌ๋„ ์•Œ๋ฆผ์ฐฝ ํ•œ ๋ฒˆ ๋œจ๊ณ , ํฌ์ŠคํŠธ๋„ DB์— ํ•œ ๋ฒˆ ๋“ค์–ด๊ฐ
      -> button์ด๋ผ ํŠœํ„ฐ๋‹˜ ์ฝ”๋“œ๋Œ€๋กœ input์œผ๋กœ ๋ฐ”๊ฟ”์•ผํ•˜๋Š” ์ค„ ์•Œ์•˜๋Š”๋ฐ ์•„๋‹˜! ๋‘˜ ๋‹ค ๋จ!


โœ”๏ธ

  • mypage.js
    • ๋ณ€๊ฒฝํ•œ ํ”„๋กœํ•„, ๋‹‰๋„ค์ž„์ด ๋ณต๋ถˆ๋ณต์œผ๋กœ mypage์— ๋ฐ˜์˜์ด ๋จ
      -> ์•Œ๋ฆผ์ฐฝ ๋œจ๋Š” ๊ฒƒ๋„ ์—ฌ์ „ํžˆ ๋ณต๋ถˆ๋ณต
      -> mainlogin page์—์„œ๋„ ์•ˆ ๋ณด์ด๋Š” ๊ฒฝ์šฐ ์žˆ์Œ
      -> ํ•ด๊ฒฐ!!!!!!!!!! ํŒ€์›์ด ๋ฐœ๊ฒฌํ•จ..! css ๋ฌธ์ œ...
      -> ๋…ธํŠธ๋ถ, ๋ฐ์Šคํฌํƒ‘์—์„œ CSS๊ฐ€ ์ข€ ๋‹ค๋ฅด๊ฒŒ ๋ณด์ž„
      -> ๋งŒ๋“œ์‹  ๋ถ„์ด ๋ฐ์Šคํฌํƒ‘์—์„œ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ๋…ธํŠธ๋ถ์ธ ์‚ฌ๋žŒ์ด๋‚˜ ์ฐฝ ํฌ๊ธฐ๋ฅผ ์ค„์ด๋ฉด ํ”„๋กœํ•„ ๋ณ€๊ฒฝ ํŽ˜์ด์ง€์˜ ์‚ฌ์ง„์ด ๊ตฌ์—ญ์„ ํ•œ์ฐธ ๋ฒ—์–ด๋‚œ๋‹ค.
      -> ์ˆ˜์ •ํ•˜๊ธฐ ๋ฒ„ํŠผ๋„ ๋ฐ์Šคํฌํƒ‘์ธ ์‚ฌ๋žŒ์€ ๋ˆ„๋ฅด๋ฉด mypage, loginpage์— ์ž˜ ๋ฐ˜์˜์ด ๋˜๊ณ  '์ˆ˜์ •์™„๋ฃŒ'๋ผ๋Š” ์ฐฝ์ด ๋œจ๋Š”๋ฐ ๋…ธํŠธ๋ถ์ธ ์‚ฌ๋žŒ์€ ์ˆ˜์ •ํ•˜๊ธฐ ๋ฒ„ํŠผ์˜ ์•„๋ž˜์ชฝ์„ ๋ˆŒ๋Ÿฌ์•ผ ์ ์šฉ์ด ๋จ.
      -> CSS ๋•Œ๋ฌธ์— ๋ฐ€๋ ค์„œ ๊ทธ๋Ÿฐ ๊ฒƒ ๊ฐ™์Œ..!

โœ”๏ธ

  • mypage์— post ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
    -> ์•ˆ ๋ถˆ๋Ÿฌ์™€์ง
    -> ํŠœํ„ฐ๋‹˜ ๋„์›€: getPostListํ•จ์ˆ˜๊ฐ€ ๋งŒ๋“ค์–ด์กŒ๋Š”๋ฐ ํ˜ธ์ถœ์ด ์•ˆ ๋๋‹ค๊ณ  ์•Œ๋ ค์ฃผ์…จ์Œ
    -> mypage.js ํ•จ์ˆ˜ ๋ฐ–์— getPostList() ์ด๋ ‡๊ฒŒ ๋„ฃ์–ด์„œ ํ˜ธ์ถœํ–ˆ๋”๋‹ˆ ๋ถˆ๋Ÿฌ์™€์กŒ๋Š”๋ฐ temp_html ํ˜•์‹ ์ค‘๊ตฌ๋‚œ๋ฐฉ
    -> temp_html์„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ๋งŒ๋“ฆ
    -> ์ž์„ธํ•œ ๋‚ด์šฉ = commit
    -> ๋‚ ์งœ๋Š” ๋ถˆ๋Ÿฌ์™€์ง€๋Š”๋ฐ post, title ๋“ฑ์ด ์•ˆ ๋ถˆ๋Ÿฌ์™€์ง
    -> collection ์•ˆ์— ์žˆ๋Š” ์ด๋ฆ„๊ณผ ๋˜‘๊ฐ™์ด ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ post, title, nickname ๋“ฑ์œผ๋กœ ๋˜‘๊ฐ™์ด ๋ฐ”๊พธ๋‹ˆ ๋‹ค ์ž˜ ๋ถˆ๋Ÿฌ์˜ด!!
    -> ํฌ์ŠคํŒ… ์‚ฌ์ง„๋„ img size๋ฅผ ์ˆ˜์ •ํ•˜๋‹ˆ ์ž˜ ๋ถˆ๋Ÿฌ์™€์ง!!
  • post๋ฅผ ์ž‘์„ฑํ•˜๋ฉด mypage๋กœ ๊ฐ€๋ฉด์„œ getPostList() ํ•จ์ˆ˜๋กœ ์ธํ•ด ํฌ์ŠคํŒ…๋œ ๊ธ€๋“ค์ด ๋ณด์ด๋Š”๋ฐ ๋ฐ”๋กœ mypage๋กœ ๊ฐ€๋ฉด ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•ด์•ผ ํฌ์ŠคํŒ… ๊ธ€์ด ๋ณด์ž„
    -> router.js ์—์„œ mypage ์„ค์ •ํ•œ ๋ถ€๋ถ„์— getPostList() ๋ฅผ ์ถ”๊ฐ€ํ•˜๋‹ˆ ์ƒˆ๋กœ๊ณ ์นจ ํ•˜์ง€ ์•Š์•„๋„ ํฌ์ŠคํŒ… ๊ธ€ ๋ฐ”๋กœ ๋ณด์ž„!!
  • mypage์— ๋‚ด๊ฐ€ ์“ด ๊ธ€๋งŒ ๋ถˆ๋Ÿฌ์˜ค๊ฒŒ ํ•˜๊ณ  ์‹ถ์Œ..!
    -> where์ ˆ..?

โœ”๏ธ

  • ๋กœ๊ทธ์ธ ๋ชจ๋‹ฌ ์ฐฝ ๊ตฌํ˜„
    • ์œ ํŠœ๋ธŒ ์˜์ƒ ํ•˜๋‚˜ ๋ณด๊ณ  ๋‹ค ๊ฐ™์ด ๋ณด๋ฉด์„œ ๋งŒ๋“ค๊ธฐ๋กœ ํ–ˆ๋‹ค.
    • ํŒ€์›์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์ฑ…์„ ๋ณด๋ฉด์„œ ์ฃผ๋„ํ•˜๋ฉฐ ๋งŒ๋“ค์—ˆ๋‹ค.
    • ๋ธ”๋กœ๊ทธ ํŽ˜์ด์ง€๋ฅผ ๋ณด๋ฉฐ ๊ฐ์ž ๋งŒ๋“ค์–ด ๋ณด๊ธฐ๋„ ํ–ˆ๋‹ค.
    • js์—ฐ๊ฒฐ ๋ฌธ์ œ ๊ฐ™์€๋ฐ ๊ณ„์† ์•ˆ ๋ผ์„œ ํŠœํ„ฐ๋‹˜ ๊ธฐ๋‹ค๋ฆฌ๋‹ค๊ฐ€ ๋‹ค๋ฅธ ์กฐ ํŒ€์›๋“ค ๋งŒ๋‚˜์„œ ๋„์›€ ๋ฐ›์Œ.
    • !!!!!!!!!! auth.html์˜ ๋‚ด์šฉ์„ index.html์— ํ•ฉ์น˜๊ณ  ๋‚˜์„œ js์ฝ”๋“œ๋ฅผ router.js์— ๋„ฃ์–ด์•ผ ํ•˜๋Š” ๊ฑฐ ์˜€๋‹ค..!
      -> export const handleLocationํ•จ์ˆ˜ ์•ˆ์—!
      -> ๋งž๋‹ค! export๊ฐ€ ๋ผ์•ผ ์“ฐ์ง€..!

๐Ÿšฉ

๋ฟŒ๋“ฏํ•จ

  • ์˜ค๋Š˜ ํ•˜๋ฃจ์ข…์ผ ํŒ€์›๋“ค์ด๋ž‘ ํ™”๋ฉด๊ณต์œ  ํ•˜๋ฉด์„œ ๊ฐ™์ด ์ฝ”๋“œ ์งœ๊ณ  ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ณ  ๋ฌธ์ œ ํ•ด๊ฒฐํ•ด ์ฃผ๊ณ  ํ–ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ์ข‹์•˜๋‹ค.
    • ์–ด์ œ๋Š” ๋‚ด๊ฐ€ js ์ฝ”๋“œ ์ง  ๋ถ€๋ถ„์„ ๋ณด์—ฌ์ฃผ๋ฉด์„œ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ–ˆ๋Š”๋ฐ ์•„๋ฌด๋ž˜๋„ ์ถฉ๋ถ„ํžˆ ์ดํ•ดํ•˜๋Š” ๋ฐ ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค.
    • ์˜ค๋Š˜์€ ์ฒซ ์ค„๋ถ€ํ„ฐ ์ฝ”๋“œ๋ฅผ ๊ณ ๋ฏผํ•˜๋ฉฐ ๊ฐ™์ด ์งœ๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ์ €์ ˆ๋กœ ์ฝ”๋“œ๋ฆฌ๋ทฐ๊ฐ€ ๋˜๊ณ  ์ดํ•ด๋„ ๋” ์ž˜ ๋œ๋‹ค๊ณ  ํ•ด์„œ ์ข‹์•˜๋‹ค!
    • ๋‚ด๊ฐ€ ์†์„ฑ์„ ํ—ท๊ฐˆ๋ ค์„œ ์ž˜๋ชป ์ž…๋ ฅํ•ด๋„ ๋ฐ”๋กœ ํŒ€์›๋“ค์ด ๋ฐ”๋กœ์žก์•„์ฃผ๊ธฐ๋„ ํ•˜๊ณ  ๋„ˆ๋ฌด ์ข‹์€ ์‹œ๊ฐ„์ด์—ˆ๋‹ค!
    • ํŒ€์› ํ•œ ๋ถ„์ด ์•„์นจ์— ์ฝ”๋“œ๋ฆฌ๋ทฐ ํ•˜๊ณ  ์ดํ›„๋ถ€ํ„ฐ ์ €๋…๊นŒ์ง€ ๊ณ„์† ๋‚ด๊ฐ€ ํ™”๋ฉด ๊ณต์œ ๋ฅผ ํ•˜๊ณ  ์ฝ”๋“œ๋ฅผ ์งฐ๋‹ค.
    • ๋‹ค๋ฅธ ํŒ€์›๋„ ์ฝ”๋“œ๋ฅผ ๊ณ„์† ์ณ๋ด์•ผ ํ•  ๊ฒƒ ๊ฐ™์•„์„œ ๋‚จ์€ jsํŽ˜์ด์ง€๋“ค์€ js ์•ˆ ๋งŒ๋“ค์–ด ๋ณธ ํŒ€์›๋“ค์ด ๋Œ์•„๊ฐ€๋ฉฐ ๋งŒ๋“ค๋ฉด ์ข‹๊ฒ ๋‹ค๊ณ  ํ–ˆ๋”๋‹ˆ ๋‹ค๋“ค ๊ทธ๋Ÿฌ๊ธธ ๋ฐ”๋ž€ ๊ฒƒ ๊ฐ™์•˜๋‹ค.
profile
ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž

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