๐Ÿฅฆ๋ธŒ๋กœ์ปฌ๋ฆฌ๐Ÿฅฆ ํ”„๋กœ์ ํŠธ 2์ผ์ฐจ!

Maria Kimยท2021๋…„ 12์›” 1์ผ
0
post-custom-banner

ํ”„๋กœ์ ํŠธ 2์ผ์ฐจ ํŒ€์›๋“ค์˜ ๋ถ„์œ„๊ธฐ๊ฐ€ ์ •๋ง ์ข‹๋‹ค!!
์šฐ๋ฆฌ๊ฐ€ ์ œ์ผ ์ข‹์€ ๊ฒƒ ๊ฐ™๋‹ค!!
๊ฐ์ž ๊ณต๋ถ€๋งŒ ํ•˜๋‹ค ํŒ€์œผ๋กœ ํ”„๋กœ์ ํŠธํ•˜๋‹ˆ๊นŒ ๋„ˆ๋ฌด๋„ˆ๋ฌด ์žฌ๋ฏธ์žˆ๋‹ค!!

๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ๋“ฃ๋Š” ๊ฒŒ ๋„ˆ๋ฌด ์žฌ๋ฐŒ๋‹ค. ๋ฏธ์ง€์˜ ์„ธ๊ณ„๋ฅผ ์กฐ๊ธˆ์”ฉ ์•Œ์•„๊ฐ€๋Š” ๋Š๋‚Œ์ด ๋ž„๊นŒ?
์—ญ์‹œ ํ˜‘์—…ํ•˜๋‹ˆ ์ฝ”๋“œ๊ฐ€ ๋” ์ดํ•ดํ•˜๊ธฐ ์ข‹๊ณ  ๋กœ์ง์ด ๋” ๊ณ ๋ฏผํ•  ๊ฒƒ๋“ค์ด ๋งŽ์ง€๋งŒ ๋” ์ž˜ ์ •๋ฆฌ๋˜๋Š” ๋Š๋‚Œ์ด๋‹ค.


์˜ค๋Š˜ํ•œ ๊ณ ๋ฏผ๋“ค์˜ ๊ธฐ๋ก

ํ† ํฐ์„ ์–ด๋””์— ์ €์žฅํ•  ๊ฒƒ์ธ๊ฐ€?

  • ์ฒ˜์Œ์—๋Š” ๋ฐฑ์—์„œ ํ† ํฐ์„ ๋ณด๋‚ผ๋•Œ
    ์–ด์ฐจํ”ผ ์œ ํšจ๊ธฐ๊ฐ„์„ ์ฃผ๊ธฐ ๋•Œ๋ฌธ์— LocalStorage ์— ์ค˜๋„ ๋œ๋‹ค๊ณ  ํ–ˆ์ง€๋งŒ

๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ
๋กœ๊ทธ์•„์›ƒ์ด ๋˜์–ด์•ผํ•œ๋‹ค๋ฉด sessionStorage ์— ํ† ํฐ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ์ ˆํ•ด ๋ณด์ธ๋‹ค.

(์‹ค์ œ๋กœ ์ ์šฉํ•  ๋•Œ ๋‹ค์‹œ ์–ด๋–ค ๋ถ€๋ถ„์„ ์ •ํ™•ํ•˜๊ฒŒ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€์ง€ ๊ณ ๋ฏผํ•ด์•ผ๊ฒ ๋‹ค.)

Back ๊ณผ์˜ ์†Œํ†ต์„ ์œ„ํ•ด ํ”„๋ก ํŠธ ์—ญํ•  notion์— ์ž‘์„ฑํ•˜๊ธฐ

  • ์—ญ์‹œ notion์— ์†Œํ†ต๋˜๊ฑฐ๋‚˜ ๊ณตํ†ต์œผ๋กœ ์•Œ์•„์•ผํ•˜๋Š” ๋ถ€๋ถ„์€ ์ž‘์„ฑํ•ด ๋†“์œผ๋ฉด
  • ์ฐพ๊ธฐ๋„ ์ข‹๊ณ  ์•Œ์•„๋ณด๊ธฐ ์ข‹์•„
  • notion์„ ์ ๊ทน ํ™œ์šฉํ•˜์ž!

์™ธ๊ณฝ ๋ ˆ์ด์•„์›ƒ ์ •ํ•˜๊ธฐ

  • ๊ฐ๊ฐ ๋‹ค๋ฅธ ํŽ˜์ด์ง€๋ฅผ ๋งก๋”๋ผ๋„ ๊ฒฐ๊ตญ ์ผ๊ด€์„ฑ ์žˆ๋Š” UI๋ฅผ ์œ„ํ•ด ์ตœ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ์˜ width ๊ฐ’๊ณผ padding ์„ ์ •ํ–ˆ๋‹ค.
  • ๋ฐ˜์‘ํ˜•์„ ๊ณ ๋ คํ•œ media ๊ฐ’๋„ ์ง€๊ธˆ ์ •ํ•˜๋ฉด ์ข‹๊ฒ ์ง€๋งŒ ๊ทธ ๋ถ€๋ถ„์€ ๋‚˜์ค‘์— ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์œผ๋ฉฐ ์ •ํ•˜๊ธฐ๋กœ ํ•œ๋‹ค :)

๊ทผ๋ฐ ์—ญ์‹œ ์ดˆ๋ฐ˜์— ๋งŽ์€ ํ† ๋ก ์ด ์žˆ์œผ๋ฉด ๋‚˜์ค‘์— ๋‹ค ๋งŒ๋“ค์–ด์ง„ ์ƒํƒœ์—์„œ ui ๋ฅผ ๊ณ ์น˜๊ฑฐ๋‚˜ ๊ณ ์น˜๋‹ค๊ฐ€ ๊ฒฐ๊ตญ ์ƒˆ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๋ถˆ์ƒ์‚ฌ๋ฅผ ์—†์•จ ์ˆ˜ ์žˆ์–ด ์ดˆ๋ฐ˜์˜ ๋งŽ์€ ํ† ๋ก ๊ณผ ๊ธฐํš์ด ์ค‘์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค.

์ƒ์„ธํŽ˜์ด์ง€์˜ ๋ฐ์ดํ„ฐ๋Š” ๋ฌด์—‡์œผ๋กœ ํ• ๊นŒ?

์ƒ์„ธ ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ฏผํ•˜๋Š” ์ด์œ 

  • ์ปค๋จธ์Šค ์‚ฌ์ดํŠธ์˜ ์ƒ์„ธ ํŽ˜์ด์ง€๋ฅผ ๋ˆ„๊ฐ€ ์ž‘์„ฑํ•˜๋Š๋ƒ๋ฅผ ๊ณ ๋ฏผํ•ด ๋ณด๋ฉด ๋œ๋‹ค.
    ๋Œ€๋ถ€๋ถ„ ๋‹น์‚ฌ์˜ ๊ฐœ๋ฐœ์ž์ด๊ธฐ๋ณด๋‹ค๋Š” ๋‹ค์–‘ํ•œ ํŒ๋งค์ž๋“ค์ด ๊ฐ์ž ์›ํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ฐฉ์‹์œผ๋กœ ์˜ฌ๋ฆฐ๋‹ค.
    (ํ˜•์‹์€ ์žˆ์ง€๋งŒ ๊ทธ ๋‚ด์šฉ์€ ์ •๋ง ๋‹ค์–‘ํ•˜๋‹ค. ์ž‘์„ฑ์ž๊ฐ€ ๋‹ค์–‘ํ•˜๋‹ค๋Š” ๊ฒŒ ๊ฐ€์žฅ ํฐ ๊ณ ๋ ค ์‚ฌํ•ญ์ด๋‹ค.)

๊ทธ๋ž˜์„œ ์ƒ์„ธ ํŽ˜์ด์ง€๋Š” ์š”์ฆ˜ 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์œผ๋กœ ์ž‘์„ฑ๋œ๋‹ค๊ณ  ํ•œ๋‹ค.

๋ฐฉ๋ฒ• 1. ์ด๋ฏธ์ง€

  • ์ด ๋ฐฉ๋ฒ•์€ ์‚ฌ์‹ค ๊ฐœ๋ฐœ์ž ์ž…์žฅ์—์„œ ํŽธํ•˜๋‹ค.
    ํŒ๋งค์ž๋“ค(ํ˜น์€ ๊ฒŒ์‹œ์ž๋“ค)์ด ์ž‘์„ฑํ•œ ๊ฒƒ์„ ๊ทธ๋Œ€๋กœ ์ด๋ฏธ์ง€ํ™”ํ•ด ์ €์žฅํ•˜๊ณ  ๊ทธ ํฌ๊ธฐ๋งŒ ์กฐ์ ˆํ•ด ๋ณด์—ฌ์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.
  • But!
    ์‚ฌ์šฉ์ž๊ฐ€ ๋“œ๋ž˜๊ทธ๋ฅผ ํ•˜๊ฑฐ๋‚˜ ๊ธ€์ž๋ฅผ ์ฝ๋Š” ์„œ๋น„์Šค, ๊ธ€์ž๋กœ ํ•ด๋‹น ๋ถ€๋ถ„์„ ์ฐพ๋Š” ์„œ๋น„์Šค ๋“ฑ์„ ์•„์˜ˆ ํ•˜์ง€ ๋ชปํ•ด,
    ์ œ์•ฝ์‚ฌํ•ญ์ด ์‚ฌ์‹ค ๋„ˆ๋ฌด ๋งŽ์€ ๋ฐฉ๋ฒ•์ด๋‹ค.

๋ฐฉ๋ฒ• 2. html ์ฝ”๋“œ

  • ์ด ๋ฐฉ๋ฒ•์€ ๋ธ”๋กœ๊ทธ ์ž‘์„ฑํ•˜๋Š” ํŽธ์ง‘ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ž‘์„ฑ์ž๋“ค์ด ์ž‘์„ฑ์„ ํ•˜๊ณ  ๊ทธ ์ฝ”๋“œ๋ฅผ ํ•ด๋‹น ๋ถ€๋ถ„์— ๋ฟŒ๋ ค์ฃผ๋Š” ๋ฐฉ์‹์ด๋‹ค.

  • ์ด ๋ฐฉ๋ฒ•์€ react ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด dangerouslysetinnerhtml ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. (์ด๋ฆ„์ด ๋„ˆ๋ฌด ๋ฌด์‹œ๋ฌด์‹œํ•˜์ง€๋งŒ..)

  • ์ด ๋ฐฉ๋ฒ•์„ ์“ฐ๋Š” ์ด์œ 
    -> ํ…œํ”Œ๋ฆฟ์ด ๋ฐ”๋€Œ๋”๋ผ๋„ ์ดํ›„ ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋จ

๊ด€๋ จ๋œ ๊ณ ๋ฏผ๋“ค

  • ๋‚˜๋Š” ์ฒ˜์Œ์— html ์ฝ”๋“œ๋ฅผ ๊ฐ’์œผ๋กœ ๋ฐ›๋Š”๋‹ค๊ณ  ํ–ˆ์„๋•Œ, ์‚ฌ์‹ค ์ดํ•ด๊ฐ€ ๋˜์ง€ ์•Š์•˜๋‹ค.
    ์•„๋‹ˆ, ํ”„๋ก ํŠธ์—์„œ ํ…œํ”Œ๋ฆฟ์ด ์žˆ๊ณ  react ์ปดํฌ๋„ŒํŠธ์ฒ˜๋Ÿผ ํ•„์š”ํ•œ ๋ถ€๋ถ„์— ํ•ด๋‹น ์ •๋ณด๋ฅผ ๋„ฃ์–ด์ฃผ๋ฉด ๋˜์ง€ ์•Š๋‚˜?
    ํ•˜์ง€๋งŒ ์ž‘์„ฑ์ž๊ฐ€ ํ•œ๋ช…์ด ์•„๋‹ˆ๊ณ  ๋‹ค์–‘ํ•˜๋ฉฐ ๊ทธ๋งŒํผ ์›ํ•˜๋Š” ์Šคํƒ€์ผ์ด ๋‹ค์–‘ํ•˜๊ธฐ์— ํƒœ๊ทธ๋ฅผ ๋ฐ›๋Š” ๊ฒƒ์ด๋‹ค.
  • html ์ฝ”๋“œ๋ฅผ ๊ฐ’์œผ๋กœ ๋ฐ›๋Š”๋‹ค๋ฉด ๋‚˜์ค‘์— ํ˜•์‹์„ ๋ฐ”๊พธ๊ณ  ์‹ถ์œผ๋ฉด ์–ด๋–กํ•˜๋‚˜?
    ๊ทธ ๋ถ€๋ถ„์€ ๋‚˜์ค‘์— ํ˜•์‹์„ ๋ฐ”๊พผ๋‹ค๊ณ  ์ด์ „์˜ ์ƒ์„ธ ํŽ˜์ด์ง€ ๋ฐ์ดํ„ฐ๋กœ ๋ฐ”๊พธ์ง€๋Š” ์•Š๋Š”๋‹ค๊ณ  ํ•œ๋‹ค.
    ๊ทธ์ € ์ดํ›„์˜ ์ƒ์„ธํŽ˜์ด์ง€ ui ๊ฐ€ ๋ณ€๊ฒฝ๋œ ํฌ๋ฉง์œผ๋กœ ์“ฐ์—ฌ์ง€๋Š” ๊ฒƒ ๋ฟ...

ํ”„๋ก ํŠธํŒ€ ๊ณต๋™๋ถ€๋ถ„ ๋งž์ถ”๊ธฐ

  • ์ƒ‰์ƒ ๋งž์ถ”๊ธฐ
  • ์ปจํ…์ธ  ํฌ๊ธฐ, ์—ฌ๋ฐฑ ๋งž์ถ”๊ธฐ

์„ฑ์žฅํ•œ ์ฝ”๋“œ

  • ํ•˜๋‚˜๊ฐ€ ์„ ํƒ๋˜๋Š” ๋ถ€๋ถ„์ด๋ฉด state๋ฅผ ๋ฐฐ์—ด์ด ์•„๋‹Œ ์ˆซ์ž๋กœ ํŽธํ•˜๊ฒŒ ๊ด€๋ฆฌํ•˜๋ฉด ๋œ๋‹ค!

์˜ˆ์ „์— ๋ฐฐ์—ด๋กœ ๊ตฌํ˜„ํ•œ ์ฝ”๋“œ

const [sortCheck, setSortCheck] = useState([true, false, false]);
setSortCheck(sortCheck.map((_, i) => (i === id ? true : false)));
className={`sortBtn ${sortCheck[i] ? 'checked' : ''}`}

์ด๋ฒˆ์— ์ˆซ์ž๋งŒ ๋น„๊ตํ•œ ์ฝ”๋“œ

const [sortCheck, setSortCheck] = useState(0); 
setSortCheck(id);
className={`sortBtn ${sortCheck === i ? 'checked' : ''}`}

ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๊ณ  Back ์„ ๋” ์ดํ•ดํ•˜๋ฉฐ ๋” ํฐ ๊ทธ๋ฆผ์ด ๊ทธ๋ ค์ง€๋‹ˆ ์ฝ”๋“œ ์ž‘์„ฑ์ด ๋” ์žฌ๋ฐŒ๊ณ  ๊ฐœ๋ฐœ์ด ๋„ˆ๋ฌด ์žฌ๋ฐŒ๋‹ค!!!
์˜ค๋žœ๋งŒ์— ์—๋„ˆ์ง€๊ฐ€ ๋ฐค์ธ๋ฐ๋„ ๋”์šฑ๋” ๋„˜์นœ๋‹ค@!

profile
Frontend Developer, who has business in mind.
post-custom-banner

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