TIL 0323

zittoยท2023๋…„ 3์›” 25์ผ
0

TIL

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

๐Ÿท๏ธ [๋ชฉ์ฐจ]

  • libraryํด๋”์˜ utils ํŒŒ์ผ ๊ด€๋ฆฌ
  • ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ์„ฑ
  • ์ˆ˜์ •ํ•œ ๊ฐ’๋งŒ ๋ฐ”๊ฟ”์ฃผ๊ธฐ
    • defaultValue์™€ state
    • defaultValue๋ฅผ ๋„ฃ์–ด๋„ ์ƒ๊ธฐ๋Š” ๋‹ค์Œ ๋ฌธ์ œ์ 
    • defaultValue๋ฅผ state์˜ ์ดˆ๊นƒ๊ฐ’์œผ๋กœ ๋„ฃ๋Š”๋‹ค๋ฉด
  • ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ mutation ๋‚ ๋ ค์ฃผ๊ธฐ

๐Ÿ–‡๏ธ [์ถœ์ฒ˜ ๋ฐ ์ฐธ์กฐ]

์ฝ”๋“œ์บ ํ”„



๐Ÿ’กย libraryํด๋”์˜ utils ํŒŒ์ผ ๊ด€๋ฆฌ

ํŒŒ์ผ์„ ๋ถ„๋ฆฌํ•ด ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์€ ํ˜‘์—…๊ณผ ์œ ์ง€๋ณด์ˆ˜์— ์žˆ์–ด ์ •๋ง ์ค‘์š”ํ•œ ์š”์†Œ ์ด๋‹ค!

ํ”„๋กœ์ ํŠธ ๋””์ž์ธ์— ์ˆ˜์ •์‚ฌํ•ญ์ด ์ƒ๊ธฐ๋ฉด styles ํŒŒ์ผ๋กœ,
api ์ˆ˜์ •์‚ฌํ•ญ์ด ์ƒ๊ฒผ์„ ๊ฒฝ์šฐ์—๋Š” queriesํŒŒ์ผ์„ ํ™•์ธํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ˆ˜์ •์ด ์ข€ ๋” ์šฉ์ดํ•˜๋‹ค

ํด๋”์™€ ํŒŒ์ผ ์ด๋ฆ„์€ ํšŒ์‚ฌ๋งˆ๋‹ค ๋‹ค๋ฅด๋ฉฐ
๊ณตํ†ต์ ์œผ๋กœ ์“ฐ์ด๋Š” ํ•จ์ˆ˜๋ฅผ ํ•œ ๊ณณ์— ์ €์žฅํ•˜์—ฌ ํ˜‘์—…ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๋‹ค.

๊ทธ๋ ‡๊ฒŒ ๋˜๋ฉด ํ•จ์ˆ˜๋ฅผ ์—ฌ๋Ÿฌ ๋ฒˆ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ•œ ๋ฒˆ ๋งŒ๋“ค์–ด ๋†“๊ณ  Import๋กœ ๊ฐ€์ ธ์˜ค๋ฉด ๋˜๋Š” ๊ฒƒ!!

โœ… ๋‚ ์งœ import ์˜ˆ์‹œ

์˜ˆ๋ฅผ ๋“ค์–ด ํ•ด๋‹น ํ•จ์ˆ˜๋ฅผ ๋ณต์‚ฌํ•ด 20๊ฐœ์˜ ํŽ˜์ด์ง€์—์„œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๋‚ ์งœ ํ‘œํ˜„ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž

๋””์ž์ธ ์ˆ˜์ •์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜ ํ˜น์€ ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์œผ๋กœ ์ธํ•ด
๊ธฐ์กด์— โ€˜๋…„๋„, ์›”, ์ผ'๋กœ ํ‘œ๊ธฐํ•˜๋˜ ๊ฒƒ์„ ->โ€˜์›”, ์ผ'๋งŒ
ํ™”๋ฉด์— ๋ณด์—ฌ์ฃผ๊ฒŒ๋” ์ˆ˜์ •์„ ํ•ด์•ผ๋˜๋Š” ์ƒํ™ฉ์ด๋ผ๋ฉด,
20๊ฐœ์˜ ํŽ˜์ด์ง€๋ฅผ ์ฐพ์•„ ํ•˜๋‚˜ํ•˜๋‚˜ ๋‹ค ๋ฐ”๊ฟ”์ฃผ์–ด์•ผ ํ•œ๋‹ค.

ํ•˜์ง€๋งŒ, libraries ์•ˆ์— ๋”ฐ๋กœ ๋‚ ์งœ ํ‘œํ˜„ ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ๋†“๊ฒŒ๋˜๋ฉด,
์‚ฌ์šฉํ•˜๋Š” ํŽ˜์ด์ง€๋งˆ๋‹ค Import๋ฅผ ํ•˜์—ฌ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ด์ง€๊ณ 
ํ•ด๋‹น ํด๋”์—์„œ ํ•˜๋‚˜์˜ ์ฝ”๋“œ๋งŒ ์ˆ˜์ •์„ ํ•œ๋‹ค๋ฉด,
importํ•œ 20๊ฐœ์˜ ํŽ˜์ด์ง€๊ฐ€ ํ•œ๋ฒˆ์— ์ˆ˜์ •๋˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.-> ๊ฒŒ์‹œํŒ ์ƒ์„ธํŽ˜์ด์ง€์™€ ๊ฒŒ์‹œํŒ๋ชฉ๋กํŽ˜์ด์ง€์— ๊ฐ๊ฐ utilsํด๋”์—์„œ ๋งŒ๋“ค์–ด ๋†“์€ getDateํ•จ์ˆ˜๋ฅผ importํ•˜์—ฌ ์‚ฌ์šฉํ•จ.


๐Ÿ’ก ์ปดํฌ๋„ŒํŠธ ์žฌ์‚ฌ์šฉ์„ฑ

ํ•˜๋‚˜์˜ ํŽ˜์ด์ง€๋ฅผ ์ปดํฌ๋„ŒํŠธ๋กœ ๋‚˜๋ˆ„์–ด์ฃผ๋Š” ์ด์œ ?
์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๊ธฐ ๋•Œ๋ฌธ์ž„!

โœ… ๊ฒŒ์‹œํŒ ์ œ๋ชฉ import ํ•ด์˜ค๊ธฐ

-> ๋“ฑ๋ก ์ปดํฌ๋„ŒํŠธํŽ˜์ด์ง€ ๋”ฐ๋กœ ์ˆ˜์ • ์ปดํฌ๋„ŒํŠธํŽ˜์ด์ง€ ๋”ฐ๋กœ ์žˆ์œผ๋‹ˆ ์ƒˆ๋กœ์šด ์ปดํฌ๋„ŒํŠธํŽ˜์ด์ง€๋ฅผ ๋งŒ๋“ค์–ด, ์ œ๋ชฉ๊ณผ ๋ฒ„ํŠผ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ์œ„ํ•ด import ํ•ด์˜จ๋‹ค.
๊ธ€ ์ œ๋ชฉ์—๋Š” props.qqq๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ง€์ •๋˜์žˆ๊ณ 
๊ฐ ํŽ˜์ด์ง€์—๋Š” ๋“ฑ๋กํŽ˜์ด์ง€์˜ ๊ฒฝ์šฐ qqq="๋“ฑ๋ก"
์ˆ˜์ •์˜ ๊ฒฝ์šฐ qqq="์ˆ˜์ •" ๋˜์–ด ์žˆ์Œ.
ํ•˜์ง€๋งŒ ์ด๋Ÿฐ์‹์œผ๋กœ๋Š” ์‹ค๋ฌด์ƒ ์šฉ์ดํ•˜์ง€ ์•Š์Œ
๋”ฐ๋ผ์„œ ๋ถˆ๋ฆฐ๊ฐ’๊ณผ ์‚ผํ•ญ์—ฐ์‚ฐ์ž๋ฅผ ํ™œ์šฉํ•ด ๋ฐ”๊ฟ”์ค€๋‹คโ—๏ธ
->์ปดํฌ๋„ŒํŠธ์—์„œ isEdit์˜ boolean ํƒ€์ž…์— ๋”ฐ๋ผ ๋“ฑ๋ก๊ณผ ์ˆ˜์ •์ด ๋‚˜์˜ค๊ฒŒ ํ•ด์คŒ.

<์—ฌ๋Ÿฌ๊ฐœ์˜ props์ ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•>
1. ๊ฐ์ฒด๋กœ ๋ฌถ์–ด ์กฐ๊ฑด๋ถ€ ๋ Œ๋”๋ง์„ ์‚ฌ์šฉ
2.
-> ๋‘๋ฒˆ์งธ๋ฐฉ๋ฒ• ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์ถ”์ฒœํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹˜(ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ๋Š” ๊ดœ์ฐฎ์Œ.)

๐Ÿ’ก ์ˆ˜์ •ํ•œ ๊ฐ’๋งŒ ๋ฐ”๊ฟ”์ฃผ๊ธฐ

์ˆ˜์ •ํ•˜๊ธฐ๋Š” ๊ธฐ์กด์˜ ๊ฐ’(ํŠน์ •๊ฒŒ์‹œ๋ฌผ)์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์กด๊ฐ’์ด ๋‚จ์•„์žˆ์–ด์•ผ ํ•˜๊ณ , ํ•ด๋‹น๊ฒŒ์‹œ๋ฌผ์˜ id๋กœ ๋‹ค์ด๋‚˜๋ฏน ๋ผ์šฐํŒ…์„ ํ•ด์ค˜์•ผ ํ•œ๋‹คโ—๏ธ

โœ… defaultValue์™€ state

: ์ธํ’‹ํƒœ๊ทธ์˜ ์†์„ฑ ์ค‘ ํ•˜๋‚˜๋กœ, defaultValue์— ๊ธฐ์กด๊ฐ’์„ ๋„ฃ์–ด๋‘๋ฉด ์ˆ˜์ •ํŽ˜์ด์ง€์˜ ์ธํ’‹์— ๋‚ด๊ฐ€ ์ ์—ˆ๋˜ ๊ธ€์„ ๋ฐ๋ ค์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” defaultValue์— ๊ธฐ์กด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ๋ฆฌ๊ณ  ์˜ค๋Š” ๊ณผ์ •์—์„œ fetch๋ฅผ ํ•ด์ฃผ์–ด์•ผํ•˜๋Š”๋ฐ ,
ํ•ด๋‹น ์ปดํฌ๋„ŒํŠธ๋ฅผ ์žฌ์‚ฌ์šฉ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— container์—์„œ fetch ๋ฅผ ํ•˜๊ฒŒ๋˜๋ฉด ๋“ฑ๋ก๊ณผ ์ˆ˜์ • ๋ชจ๋‘์—๊ฒŒ ์ ์šฉ์ด ๋œ๋‹ค.
ํ•˜์ง€๋งŒ ์ˆ˜์ •์—๋งŒ ์ ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ fetch๋Š” page ์ปดํฌ๋„ŒํŠธ์—์„œํ•˜๊ณ , ํ•ด๋‹น data๋ฅผ props๋กœ ๋„˜๊ธฐ๋ฉด ๋œ๋‹ค.

โœ… defaultValue๋ฅผ ๋„ฃ์–ด๋„ ์ƒ๊ธฐ๋Š” ๋‹ค์Œ ๋ฌธ์ œ์ โ“

์ˆ˜์ •ํ•˜์ง€ ์•Š์€ ๋ถ€๋ถ„์—๋Š” defaultValue๋กœ ๋“ค์–ด๊ฐ€๋Š” ๊ฒƒ์ด ์•„๋‹Œ
๋นˆ ๊ฐ’์ด ๋“ค์–ด๊ฐ€๋Š”๋ฐ ์ด๋Š” state์˜ ์ดˆ๊นƒ๊ฐ’ ๋•Œ๋ฌธ์ด๋‹ค.
defaultValue๋Š” ์‹ค์ œ state๊ฐ€ ์•„๋‹Œ input์˜ ์†์„ฑ์ด๊ธฐ ๋•Œ๋ฌธ์— ์‹ค์ œ ๋ˆˆ์— ๋ณด์ด๋Š” ๊ฒƒ๊ณผ ๋‹ฌ๋ฆฌ state์— ์ €์žฅ๋˜์ง€ ์•Š๋Š”๋‹ค.

โœ… defaultValue๋ฅผ state์˜ ์ดˆ๊นƒ๊ฐ’์œผ๋กœ ๋„ฃ๋Š”๋‹ค๋ฉดโ“

-> input์ฐฝ์—๋งŒ defaultValue์ฃผ์ง€ ๋ง๊ณ  state์—๋„ ์ดˆ๊ธฐ๊ฐ’์œผ๋กœ ๋„ฃ์–ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์˜ ๋ฌธ์ œ์ ์€,
1500์ž๋ผ๋ฉด 1500์ž๊ฐ€ ๋‹ค์‹œ ์Šคํ…Œ์ดํŠธ์— ๋“ค์–ด๊ฐ€๊ณ 
์ œ๋ชฉ๋งŒ ์ž…๋ ฅํ•ด๋„ 1500์ž๊ฐ€ ๋ฐฑ์•ค๋“œ๋กœ ๋„˜์•„๊ฐ.
๋งŒ์•ฝ ์ด ์ƒํ™ฉ์„ 100๋งŒ๋ช…์ด ํ•œ๋‹ค๋ฉด?? ๊ต‰์žฅํžˆ ๋น„ํšจ์œจ์ !!!
๋”ฐ๋ผ์„œ ๋ฐฑ์—”๋“œ์— ์ˆ˜์ •ํ•œ๊ฒƒ๋งŒ ๋‚ ์•„๊ฐ€๋„๋ก ํ•ด์•ผํ•จ.
๋ฎคํ…Œ์ด์…˜์„ ์‚ฌ์šฉํ•˜์ž!


๐Ÿ’ก ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ mutation ๋‚ ๋ ค์ฃผ๊ธฐ

์ˆ˜์ •ํ•˜๊ธฐ(์™„๋ฃŒ)๋ฒ„ํŠผ ๋ˆŒ๋ €์„ ๋•Œ ์กฐ๊ฑด๋ฌธ ๊ฒ€์‚ฌ๋ฅผ ํ•ด์„œ ๋ฐ”๋€Œ์–ด ์žˆ๋Š” ๊ฒƒ๋“ค๋งŒ ๋ฎคํ…Œ์ด์…˜ ๋ณด๋‚ด๊ณ  ๋นผ๋ฒ„๋ฆฌ์ž!

// ๋ฎคํ…Œ์ด์…˜์— ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ ๋ณด๋‚ด์ฃผ๊ธฐ
const onClickUpdate = async () => {
    const myVariables = {
      number: Number(router.query.number),
    };
  //writer๊ฐ€ ๋น„์–ด์žˆ์ง€ ์•Š์œผ๋ฉด writer์ถ”๊ฐ€(๋ฌด์—‡์ธ๊ฐ€๋ฅผ ์ž…๋ ฅํ–ˆ๋‹ค๋ฉด)
    if (writer) myVariables.writer = writer;
    if (title) myVariables.title = title;
    if (contents) myVariables.contents = contents;
    const result = await updateBoard({
      variables: myVariables,
    });
  };
  1. ์–ด๋–ค ๊ฒŒ์‹œ๊ธ€์„ ์ˆ˜์ •ํ• ๊ฑด์ง€ ๋„˜๋ฒ„๊ฐ€ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— myVariables๋ผ๋Š” {๋นˆ ๊ฐ์ฒด}๋ฅผ ์„ ์–ธํ•˜์—ฌ ๊ผญ ๋“ค์–ด๊ฐ€์•ผ ํ•˜๋Š” number๋Š” ๋ฏธ๋ฆฌ ๋„ฃ์–ด๋‘”๋‹ค.
  2. ์กฐ๊ฑด๋ฌธ์„ ์ด์šฉํ•ด state๊ฐ€ ๋นˆ ๊ฐ’์ด ์•„๋‹ ๊ฒฝ์šฐ์—๋งŒ ๊ฐ์ฒด์— key์™€ value๋ฅผ ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.
  3. ๊ทธ๋ ‡๊ฒŒ ์™„์„ฑ๋œ ๊ฐ์ฒด๋ฅผ variables์— ๋„ฃ์–ด์„œ ๋ฎคํ…Œ์ด์…˜์„ ๋‚ ๋ ค์ค€๋‹ค(API์š”์ฒญ)
    -> writer์™€ contents ๋นˆ๋ฌธ์ž๋‹ˆ๊นŒ ์‹คํ–‰์•ˆ๋จ
    ์ˆ˜์ •ํ• ๋ž˜์š”๋ผ๋Š” ์ƒˆ๋กœ์šด ์ˆ˜์ •๊ฐ’์ด ์žˆ์œผ๋‹ˆ๊นŒ ํƒ€์ดํ‹€์— ๋“ค์–ด๊ฐ.
    variables์—๋Š” number๋ž‘ title"์ˆ˜์ •ํ• ๋ž˜์š”"๊ฐ€ ๋“ค์–ด์žˆ๋‹ค.
    ์•„๋ž˜ result์— variables๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์Œ.

<ํ•ด๊ฒฐ๋ฐฉ๋ฒ• ์ •๋ฆฌโ—๏ธ>
1. defaultValue๋ฅผ state์˜ ์ดˆ๊นƒ๊ฐ’์œผ๋กœ ๋„ฃ๋Š” ๊ฒƒ(๋น„ํšจ์œจ์ )
2. ๋ฎคํ…Œ์ด์…˜ ํ•  ๋•Œ ๋ณ€๊ฒฝ๋œ ๋ถ€๋ถ„๋งŒ ๋ฐฑ์—”๋“œ์— ๋ณด๋‚ด์ค€๋‹ค.(ํšจ์œจ์ )
-> ๋‘˜ ์ค‘ ์ข‹์€ ๋ฐฉ๋ฒ•์€ 2๋ฒˆ!



๐Ÿฅš MEMO

  1. ์ˆ˜์ •/๋“ฑ๋ก - ๋™๊ธฐ์‹คํ–‰,
    ์ƒ์„ธ๋ณด๊ธฐ๋Š” ๋น„๋™๊ธฐ!
    ์ด์œ ? ์ž‘์„ฑ๋œ ๊ธ€์˜ number๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค.
  2. el.createAt์€ ๋ฐฑ์—”๋“œ์—์„œ ๋ฐ›์•„์˜ฌ ๋‚ ์งœ api์ด๋‹ค.
    getDateํ•จ์ˆ˜๋กœ ์ฒ˜๋ฆฌํ•ด์คŒ.
  3. onChange๋Š” ์˜ˆ๋ฅผ๋“ค์–ด !๋งŒ ์ถ”๊ฐ€๋กœ ์ž…๋ ฅํ•˜๋ฉด !๋งŒ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒŒ ์•„๋‹˜. ๊ทธ ๋ฌธ์žฅ ์ „์ฒด๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
profile
JUST DO WHATEVER

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