WIL 10์ฃผ์ฐจ

hyena_leeยท2023๋…„ 2์›” 19์ผ
0

WIL

๋ชฉ๋ก ๋ณด๊ธฐ
14/21
post-thumbnail

๐Ÿ—“๏ธ ๋ฐฐ์šด ๋‚ด์šฉ

  • ์žฌ๊ท€์˜ ์ดํ•ด, ํ™œ์šฉ,
  • JSON.stringify
  • Tree UI
  • UX/UI
  • Figma ์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„
  • Figma ํด๋ก 

๐ŸŒˆํšŒ๊ณ 

์„น์…˜2 ๋Œ€์œค๋‹˜๊ป˜์„œ ๋ง์”€ํ•˜์…จ๋‹ค. ์„น์…˜3์€ ์ฃฝ์„๊ฒƒ์ด๋ผ๊ณ ...์ •๋ง ํ•˜์ฐจํ• ๋ป”... ํ”ผ๊ทธ๋งˆ ๋•Œ๋ฌธ์ด๋ผ๊ณ ..
ํŽ˜์–ด๋ถ„๋„ ํ”ผ๊ทธ๋งˆ์— ๋Œ€ํ•ด์„œ ์ž˜ ๋ชจ๋ฅด์‹ ๋‹ค๋Š” ๋ง์”€์— ํ›„๋‹ค๋‹ฅ ํ”ผ๊ทธ๋งˆ ๊ฒฐ์ œ์™„๋ฃŒ!!! ์‚ฌ์‹ค์ƒ ํ”ผ๊ทธ๋งˆ์— ๋Œ€ํ•ด์„œ ๋งŽ์€ ์ •๋ณด๊ฐ€ ์—†๋‹ค๋ณด๋‹ˆ ์œ ๋ฃŒ ์ฐฌ์Šค๋ฅผ ์“ธ ์ˆ˜ ๋ฐ–์— ์—†์—ˆ๋‹ค. ํ•˜๋ฃจ ์˜จ์ข…์ผ ํ”ผ๊ทธ๋งˆ ๊ฐ•์˜๋ฅผ ๋Œ๋ฆฌ๊ณ  ๋Œ๋ ค์„œ ๊พธ์—ญ๊พธ์—ญ ๊ณผ์ œ๋ฅผ ๋งˆ์น˜๋‹ค๋ณด๋‹ˆ ๋งจ๋•…์— ํ—ค๋”ฉ ์ œ๋Œ€๋กœ ํ–ˆ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค. ๋ฌผ๋ก  ๋‚˜์˜ ํŽ˜์–ด๋ถ„์ด ์ปด๊ณต๊ณผ๋ผ ์กฐ๊ธˆ๋งŒ ์•Œ๋ ค์ค˜๋„ ๋ฐ”๋กœ ์Šต๋“ํ•˜๋Š” ๋Šฅ๋ ฅ์— ๋†€๋ผ์›€์„ ์—ฐ์†์ด์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์žฌ๊ท€ํ•จ์ˆ˜ ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ JSON.stringify๊นŒ์ง€ ๋ฐฐ์šด ์ง€์‹์„ ๊ณต์œ ํ•˜๊ณ  ์ด๋ณด๋‹ค ๋” ์ข‹์€ ์ž๋ฃŒ๊ตฌ์กฐ ๋ฐ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ณด๋„ ๊ณต์œ ํ•˜๋ฉด์„œ ์ •๋ง ์žฌ๋ฏธ์žˆ๊ฒŒ ํ•œ์ฃผ๋ฅผ ๋ณด๋‚ธ๊ฒƒ๊ฐ™๋‹ค. ๋Œ€์ถฉ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ณต๋ถ€ํ•ด์„œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€๋ฉด๋˜์ง€ ๋ผ๊ณ  ์ƒ๊ฐ ๋‹ฌ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์— ๋Œ€ํ•ด์„œ ์ข€๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ๊ณต๋ถ€ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ณ„๊ธฐ์˜€๊ณ  ํŽ˜์–ด๋ถ„ ๋•๋ถ„์— ์ •๋ ฌ๊ตฌ์กฐ ์ค‘ sort() ์—๋„ ๋‹ค์–‘ํ•œ ํŠน์ง•๊ณผ ์ข…๋ฅ˜๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์„ ๋•Œ ๊ฐํžˆ ๋†€๋ผ์šธ ์ˆ˜๋ฐ–์—...์œ ๋ ˆ์นด~๋ผ๊ณ  ์™ธ์น ๋ป”ํ–ˆ๋‹ค. ์ด๋กœ์จ ๋‚˜์˜ ๊ณต๋ถ€ํ•  ์–‘์€ ์ ์  ๋Š˜์–ด๋‚˜๋Š” ๊ตฌ๋‚˜!!! ๋˜ํ•œ sad์†Œ์‹!! ์ถ”๊ฐ€!!!์†๋ณด!!!! 2์ฃผ๋’ค ๋‹ค์‹œ ํ”ผ๊ทธ๋งˆ๋กœ ๋‚˜๋งŒ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋งŒ๋“ค๊ธฐ ๋ณด๊ณ !!OMG !!! ์†”๋กœ ํ”„๋กœ์ ํŠธ๋ผ ํฌ๋ง์˜ ๋ˆ์„ ๋†“๋Š” ๊ฑด๊ฐ€...์‹ถ๋‹ค..ํ•˜...์ด๋ฒˆ ์ฃผ๋ง๋„ ์‰ฌ๊ธฐ๋Š” ํ‹€๋ ธ๊ตฌ๋‚˜..ํ—ค๋กฑํ—ค๋กฑ...๐Ÿคฎ

๐ŸŒณJSON.stringify()

: JSON.stringify() ๋ฉ”์„œ๋“œ๋Š” JavaScript ๊ฐ’์ด๋‚˜ ๊ฐ์ฒด๋ฅผ JSON ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์„ ํƒ์ ์œผ๋กœ, replacer๋ฅผ ํ•จ์ˆ˜๋กœ ์ „๋‹ฌํ•  ๊ฒฝ์šฐ ๋ณ€ํ™˜ ์ „ ๊ฐ’์„ ๋ณ€ํ˜•ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฐฐ์—ด๋กœ ์ „๋‹ฌํ•  ๊ฒฝ์šฐ ์ง€์ •ํ•œ ์†์„ฑ๋งŒ ๊ฒฐ๊ณผ์— ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

JSON.stringify(value[, replacer[, space]])

์ •๋ฆฌํ•˜์ž๋ฉด,

  • JSON.stringify : ๊ฐ์ฒด๋ฅผ JSON ์œผ๋กœ ๋ฐ”๊พผ๋‹ค.
  • JSON.parse : JSON์„ ๊ฐ์ฒด๋กœ ๋ฐ”๊พผ๋‹ค.
let bts = {
  name: 'ํƒœํƒœ',
  age: 29,
  isSinger: true,
  group: ['dance', 'vocal', 'actor'],
}

let json = JSON.stringify(bts);

console.log(typeof json); //string
console.log(json);

JSON.stringify(bts)๋ฅผ ํ˜ธ์ถœํ•˜์ž bts๊ฐ€ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๋€๋‹ค.
JSON ์œผ๋กœ ์ธ์ฝ”๋”ฉ๋œ ๊ฐ์ฒด๋Š” ์ผ๋ฐ˜ ๊ฐ์ฒด์™€ ๋‹ค๋ฅธ ํŠน์ง•์„ ๋ณด์ธ๋‹ค.

  • ๋ฌธ์ž์—ด์€ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์•ผ ํ•œ๋‹ค. JSON ์—์„  ์ž‘์€ ๋”ฐ์˜ดํ‘œ๋‚˜ ๋ฒกํ‹ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ('ํƒœํƒœ' >> "ํƒœํƒœ" ์œผ๋กœ ๋ณ€๊ฒฝ๋œ ๊ฒƒ์„ ํ†ตํ•ด ์ด๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค. )
  • ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ ์ด๋ฆ„์€ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์•ผํ•œ๋‹ค. (age:29 >. "age": 29 ์œผ๋กœ ๋ณ€๊ฒฝ๋œ๊ฒƒ์„ ํ†ตํ•ด ์ด๋ฅผ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.)

JSON.stringify ๋Š” ๊ฒ์ฒด ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์›์‹œ๊ฐ’์—๋„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • ๊ฐ์ฒด {}
  • ๋ฐฐ์—ด []
  • ์›์‹œํ˜• : ๋ฌธ์žํ˜•, ์ˆซ์žํ˜•, ๋ถˆ๋ฆฌํ˜•(true/false), null

JSON์€ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์–ธ์–ด์— ์ข…์†๋˜์ง€ ์•Š๋Š” ํฌ๋งท์ด๋‹ค. ๋”ฐ๋ผ์„œ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŠน์œ ์˜ ๊ฐ์ฒด ํ”„๋กœํผํ‹ฐ๋Š” JSON.stringify๊ฐ€ ์ฒ˜๋ฆฌํ•  ์ˆ˜์—†๋‹ค.
JSON.stringify ํ˜ธ์ถœ ์‹œ ๋ฌด์‹œ๋˜๋Š” ํ”„๋กœํผํ‹ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ํ•จ์ˆ˜ ํ”„๋กœํผํ‹ฐ (๋ฉ”์„œ๋“œ)
  • symbolํ˜• ํ”„๋กœํผํ‹ฐ (ํ‚ค๊ฐ€ symbol์ธ ํ”„๋กœํผํ‹ฐ)
  • ๊ฐ’์ด undefined์ธ ํ”„๋กœํผใ…ฃ

JSON.stringify์˜ ์žฅ์  ์ค‘ ํ•˜๋‚˜๋Š” ์ค‘์ฒฉ ๊ฐ์ฒด๋„ ์•Œ์•„์„œ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊ฟ” ์ค€๋‹ค๋Š” ์ .
์ด๋•Œ, ์ฃผ์˜ํ•ด์•ผ ํ•˜๋Š” ์‚ฌํ•ญ์€ ์ˆœํ™˜ ์ฐธ์กฐ๊ฐ€ ์žˆ์œผ๋ฉด ์›ํ•˜๋Š” ๋Œ€๋กœ ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ฐ”๊พธ๋Š” ๊ฒŒ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

###โ–ถ๏ธ Replacer๋กœ ์›ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๋งŒ ์ง๋ ฌํ•˜๊ธฐ

let json = JSON.stringify(value[, replacer, space])

  • value = ์ธ์ฝ”๋”ฉ ํ•˜๋ ค๋Š” ๊ฐ’
  • replacer = JSON ์œผ๋กœ ์ธ์ฝ”๋”ฉ ํ•˜๊ธธ ์›ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด, ๋˜๋Š” ๋งคํ•‘ ํ•จ์ˆ˜ function(key, value)
  • space : ์„œ์‹ ๋ณ€๊ฒฝ ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ๋•Œ ๊ณต๋ฐฑ ๋ฌธ์ž ์ˆ˜
    : ๋Œ€๋‹ค์ˆ˜์˜ ๊ฒฝ์šฐ, JSON.stringify ์—” ์ธ์ˆ˜๋ฅผ ํ•˜๋‚˜๋งŒ ๋„˜๊ฒจ์„œ ์‚ฌ์šฉ
    : ์ˆœํ™˜ ์ฐธ์กฐ๋ฅผ ๋‹ค๋ฃฐ ๊ฒฝ์šฐ ์ „ํ™˜ ํ”„๋กœ์„ธ์Šค๋ฅด ์ •๊ตํ•˜๊ฒŒ ์กฐ์ •ํ›„ ๋‘๋ฒˆ ์งธ ์ธ์ˆ˜๋ฅผ ์‚ฌ์šฉ
    : JSON ์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธธ ์›ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ๊ฐ€ ๋‹ด๊ธด ๋ฐฐ์—ด์„ ๋‘๋ฒˆ์งธ ์ธ์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๋ฉด ์ดํ”„๋กœํผํ‹ฐ ๋“ค๋งŒ ์ธ์ฝ”๋”ฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

**Space ๋กœ ๊ฐ€๋…์„ฑ ๋†’์ด๊ธฐ
JSON.stringfy(value, replacer, space)์˜ ์„ธ๋ฒˆ์งธ ์ธ์ˆ˜ space๋Š” ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์šฐํ•ด ์ค‘๊ฐ„์— ์‚ฐ์ž…ํ•ด ์ค„ ๊ณต๋ฐฑ ๋ฌธ์ž ์ˆ˜๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.
space ์—†์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ธ์ฝ”๋”ฉ์ด JSON์— ๋“ค์—ฌ์“ฐ๊ฑฐ๋‚˜ ์—ฌ๋ถ„์˜ ๊ณต๋ฐฑ ๋ฌธ์ž๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋‹ค. space๋Š” ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ์šฉ๋„๋กœ ๋งŒ๋“ค์–ด์กŒ๊ธฐ ๋•Œ๋ฌธ์— ๋‹จ์ˆœ ์ „๋‹ฌ ๋ชฉ์ ์ด๋ผ๋ฉด space ์—†์ด ์ง๋ ฌํ™” ํ•˜๋Š” ํŽธ์ด๋‹ค.

๐ŸŒžJSON.parse

JSON.parse๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด JSON์„ ์ธ์ฝ”๋”ฉ ๊ฐ์ฒด๋ฅผ ๋‹ค์‹œ ๊ฐ์ฒด๋กœ ๋””์ฝ”๋”ฉ ํ•  ์ˆ˜ ์žˆ๋‹ค.

let value = JSON.parse(str, [reviver]);

  • str: JSONํ˜•ํƒœ์˜ ๋ฌธ์ž์—ด
  • reviver : ๋ชจ๋“ (key, value) ์Œ์„ ๋Œ€์ƒ์œผ๋กœ ํ˜ธ์ถœ๋˜๋Š” function(key, value) ํ˜•ํƒœ์˜ ํ•จ์ˆ˜๋กœ ๊ฐ’์„ ๋ณ€๊ฒฝ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค.

โญ๏ธ ์ •๋ฆฌํ•˜๊ธฐ

  • JSON์€ ๋…์ž์ ์ธ ํ‘œ์ค€์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ ํ˜•์‹์œผ๋กœ, ๋Œ€๋ถ€๋ถ„์˜ ์–ธ์–ด์—” JSON์„ ์‰ฝ๊ฒŒ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์žˆ๋‹ค.
  • JSON์€ ์ผ๋ฐ˜ ๊ฐ์ฒด, ๋ฐฐ์—ด, ๋ฌธ์ž์—ด, ์ˆซ์ž, ๋ถˆ๋ฆฐ๊ฐ’, Null์„ ์ง€์›ํ•œ๋‹ค.
  • JSON.stringify์„ ์‚ฌ์šฉํ•˜๋ฉด ์›ํ•˜๋Š” ๊ฐ’์„ JSOM ์œผ๋กœ ์ง๋ ฌํ™” ํ•  ์ˆ˜ ์žˆ๊ณ , JSON.parse๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด JSON์„ ๋ณธ๋ž˜ ๊ฐ’์œผ๋กœ ์—ญ ์ง๋ ฌํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์œ„ ๋‘ ๋ฉ”์„œ๋“œ์— ํ•จ์ˆ˜๋ฅผ ์ธ์ˆ˜๋กœ ๋„˜๊ฒจ์ฃผ๋ฉด ์›ํ•˜๋Š” ๊ฐ’๋งŒ ์ฝ๊ฑฐ๋‚˜ ์“ฐ๋Š”๊ฒŒ ๊ฐ€๋Šฅ
  • JSON.stringify๋Š” ๊ฐ์ฒด์— toJSON ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ์œผ๋ฉด ์ž๋™์œผ๋กœ ํ˜ธ์ถœํ•ด์ค€๋‹ค.
profile
์‹ค์ˆ˜๋ฅผ ๋‘๋ ค์›Œ ๋ง๊ณ  ๊ณ„์† ๋„์ „ ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์˜ ์—ฌ์ •!

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