TIL 25: StringifyJSON / Tree UI

์˜ค๋Š˜์€ ์–ด์ œ ๋ฐฐ์šด ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ Sprint์— ํ™œ์šฉํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค. ํ™•์‹คํžˆ ์ฝ”ํ”Œ๋ฆฟ ๋ฌธ์ œ ํ‘ธ๋Š” ๊ฒƒ๋ณด๋‹ค ์žฌ๊ท€ํ•จ์ˆ˜์˜ ํ™œ์šฉ์„ฑ์„ ์ž˜ ์•Œ์•„๊ฐˆ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์–ด์ œ ์ฝ”ํ”Œ๋ฆฟ ํ’€๋ฉด์„œ ์–ด๋–ป๊ฒŒ ์“ฐ๋Š”๊ฑด์ง€ ์ž˜ ์•Œ๊ฒŒ๋˜์—ˆ์ง€๋งŒ "์™œ" ์ด๋ฏธ ์žˆ๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ๋‚ด๊ฐ€ ์ง์ ‘ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์จ์„œ ๋‹ค์‹œ ์ฝ”๋“œ๋ฅผ ์งœ์•ผํ•˜๋Š”๊ฐ€์— ๋Œ€ํ•ด ์˜๋ฌธ์„ ๊ณ„์† ๊ฐ€์กŒ์—ˆ์–ด์š”. ํ•˜์ง€๋งŒ ์˜ค๋Š˜ Tree UI๋ฅผ ํ’€๋ฉด์„œ ์•„ ์ด๋Ÿฐ ๊ณณ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๊ฒ ๊ตฌ๋‚˜! ๋ผ๋Š” ์ƒ๊ฐ์„ ํ–ˆ์Šต๋‹ˆ๋‹น :)

 

JSON (JavaScript Object Notation)

JSON์€ JavaScript Object Notation์˜ ์ค„์ž„๋ง๋กœ, ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ ์‚ฌ์—์„œ ๋ฐ์ดํ„ฐ ๊ตํ™˜์„ ์œ„ํ•ด ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด ํ˜•ํƒœ์˜ ํฌ๋งท์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  JSON ํฌ๋งท์€ JS๋ฅผ ํฌํ•จํ•œ ๋งŽ์€ ์–ธ์–ด์—์„œ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฒ”์šฉ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค. 

JSON์œผ๋กœ ๋ณ€ํ™˜๋œ ๊ฐ์ฒด์˜ ํƒ€์ž…์€ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ๋ฐœ์‹ ์ž๋Š” ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํ™”ํ•œ ๋ฌธ์ž์—ด์„ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๊ฐ์ฒด์˜ ๋‚ด์šฉ์„ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜์‹ ์ž๋Š” ๊ฐ์ฒด๋ฅผ ์ง๋ ฌํ™”ํ•œ ๋ฌธ์ž์—ด์„ ์—ญ์ง๋ ฌํ™”ํ•จ์œผ๋กœ์จ ๋‹ค์‹œ ๊ฐ์ฒดํ˜•ํƒœ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

 

JSON.stringify : Object type์„ JSON์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. (์ง๋ ฌํ™”)

JSON.parse : JSON์„ Object type์œผ๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค. (์—ญ์ง๋ ฌํ™”)

 

  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด JSON
ํ‚ค ํ‚ค๋Š” ๋”ฐ์˜ดํ‘œ ์—†์ด ์“ธ ์ˆ˜ ์žˆ์Œ ๋ฐ˜๋“œ์‹œ ํฐ๋”ฐ์˜ดํ‘œ๋ฅผ ๋ถ™์—ฌ์•ผ ํ•จ
๋ฌธ์ž์—ด ๊ฐ’ ๋ฌธ์ž์—ด ๊ฐ’์€ ์–ด๋– ํ•œ ํ˜•ํƒœ์˜ ๋”ฐ์˜ดํ‘œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฐ˜๋“œ์‹œ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์•ผ ํ•จ
๊ณต๋ฐฑ ๊ณต๋ฐฑ ์žˆ์–ด๋„ ๋จ ํ‚ค์™€ ๊ฐ’ ์‚ฌ์ด, ๊ทธ๋ฆฌ๊ณ  ํ‚ค-๊ฐ’ ์Œ ์‚ฌ์ด์—๋Š” ๊ณต๋ฐฑ์ด ์žˆ์œผ๋ฉด ์•ˆ๋จ

Sprint ํ’€๊ณ  ์ € ํ˜•์‹์„ ํ•˜๋‚˜ํ•˜๋‚˜ ๊ผญ ์ง€์ผœ์ค˜์•ผ ํ•จ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

Tree UI

๋ธ”๋กœ๊ทธ๋งŒ ๋ด๋„ ์‚ฌ์šฉ์ž๊ฐ€ ์ข€ ๋” ์‰ฝ๊ฒŒ ํŽ˜์ด์ง€๋ฅผ ์ฐพ์•„๋ณผ ์ˆ˜ ์žˆ๋„๋ก ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ๋‚˜๋‰˜์–ด์ ธ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์นดํ…Œ๊ณ ๋ฆฌ ์•ˆ์— ์„ธ๋ถ„ํ™”๋œ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ์žˆ๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ๊ฐ€ ๋ฐ”๋กœ ์žฌ๊ท€ํ•จ์ˆ˜๊ฐ€ ์“ฐ์ผ ์ˆ˜ ์žˆ๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.

  1. ์ฃผ์–ด์ง„ ๋ฌธ์ œ๋ฅผ ๋น„์Šทํ•œ ๊ตฌ์กฐ๋กœ ๋” ์ž‘๊ฒŒ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ
  2. ์ค‘์ฒฉ๋œ ๋ฐ˜๋ณต๋ฌธ์ด ๋งŽ๊ฑฐ๋‚˜ ๋ฐ˜๋ณต๋ฌธ์˜ ์ค‘์ฒฉ ํšŸ์ˆ˜(number of loops)๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฒฝ์šฐ

์–ด์ œ ์œ„์™€ ๊ฐ™์€ ์ƒํ™ฉ์— ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์“ธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ฐฐ์› ๋Š”๋ฐ์š”. ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์ € ์ƒํ™ฉ์— ์•Œ๋งž๋Š” ์ƒํ™ฉ์ด๊ธฐ์—, ์˜ค๋Š˜ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค!

ํ’€ ๋•Œ currentNode์˜ ์—ญํ• ์— ๋Œ€ํ•ด ๊ณ ๋ฏผ์ด ๋งŽ์•˜์ง€๋งŒ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์‹œ๋„ ๋์— ์ž˜ ์•Œ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

 

์˜ค๋Š˜ ํŽ˜์–ด๋ถ„๊ณผ ์Šคํ”„๋ฆฐํŠธ ๋๋‚˜๊ณ  ์ถ”๊ฐ€์ ์œผ๋กœ ๋‹ค๋ฅธ ์–˜๊ธฐ๋„ ํ–ˆ์—ˆ๋Š”๋ฐ์š”! ๋Œ€ํ™” ํ›„ ์ž๊ธฐ๋ง๋กœ ๋ฐฐ์šด ๊ฑธ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋“ค์—ˆ์Šต๋‹ˆ๋‹น