โ๏ธ ์ค๋ ๋ฐฐ์ด ๊ฒ
์ฌ๊ท์ ํ์ฉ
์ฌ๊ท๋ ์ด์ ๋ฐฐ์ ๋ ๊ฒ์ฒ๋ผ ์๊ธฐ ์์ ์ ํธ์ถํ๋ ํ์๋ฅผ ์๋ฏธํ๋๋ฐ~
์ด๊ฒ์ ํ์ฉํด์ ์ค๋์ ์ง์ ์ฌ๊ท ํจ์๋ฅผ ์์ฑํด๋ณด์๋ค.. ๋ฌผ๋ก ์ด์ ๋ ์ฝํ๋ฆฟ์ผ๋ก ์์ฑํด๋ณด์์ง๋ง…ใ ใ
์ด์จ๋ ์ค๋ ํ ๊ฒ์ JSON.stringify()
๋ฅผ ์ง์ ํจ์๋ก ๊ตฌํํด๋ณด๋ ๊ฒ๊ณผ, DOM์ ์ด์ฉํด li
๋ด์ ul
์ ๊ณ์ ๋ถ๋ฌ์ค๋ ๊ฒ..
JSON.stringify()
JSON
์ JavaScript Object Notation์ ์ค์๋ง๋ก, ์๋ก ๋ค๋ฅธ ํ๋ก๊ทธ๋จ ์ฌ์ด์์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ๊ธฐ ์ํ ํฌ๋งท์ด๋ค.
JSON
์ ๊ฐ์ฒดํ ํ๊ธฐ ์ํด์๋ JSON.stringify()
๋ฅผ, ๊ฐ์ฒด๋ฅผ JSON
ํ ํ๊ธฐ ์ํด์๋ JSON.parse()
๋ฅผ ์ฌ์ฉํ๋ค.
๐ก ์ฐธ๊ณ ๋ก ๊ฐ์ฒด๋ฅผ JSON์ฒ๋ผ ๋ฌธ์์ด๋ก ๋ฐ๊พธ๊ฒ ๋ค๊ณ ๊ฐ์ฒด ์์ฒด์ toString() ๋ฉ์๋๋ String()์ ์ด์ฉํ ํ๋ณํ์ ์๋ํ๋ฉด [object Object]๋ฅผ ๋ฆฌํดํ๋ค.
const message = {
sender: "์ดํผ์น",
receiver: "์ถ์์ด",
message: "์ถ์์ ์ค๋ ์ธ๋ฅด ํ ๋ฐ์ค ๋จน์๋?",
createdAt: "2022-10-21 10:10:10"
}
const transferableMessage = JSON.stringify(message);
// '{"sender":"์ดํผ์น","receiver":"์ถ์์ด","message":"์ถ์์ ์ค๋ ์ธ๋ฅด ํ ๋ฐ์ค ๋จน์๋?","createdAt":"2022-10-21 10:10:10"}'
typeof transferableMessage; // 'string'
const obj = JSON.parse(transferableMessage);
// { sender: "์ดํผ์น", receiver: "์ถ์์ด", message: "์ถ์์ ์ค๋ ์ธ๋ฅด ํ ๋ฐ์ค ๋จน์๋?", createdAt: "2022-10-21 10:10:10" }
typeof obj; // 'object'
JSON
์ ๊ฐ์ฒด๋ ๋น์ทํด ๋ณด์ด์ง๋ง…. ์์ฃผ ๋ฏธ์ธํ ์ฐจ์ด๊ฐ ์กด์ฌํ๋ค ๐
์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด | JSON | |
key | ํค๋ ๋ฐ์ดํ ์์ด ์ฌ์ฉํ ์ ์๋ค.{ key: "value"} |
๋ฐ๋์ ํฐ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.'{"key":"value"}' |
value | ๊ฐ์ ์์๋ฐ์ดํ๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.{ "key": 'value'} |
๋ฐ๋์ ํฐ๋ฐ์ดํ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.'{"key":"value"}' |
key์ value ์ฌ์ด ๊ณต๋ฐฑ | ํค์ ๊ฐ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์กด์ฌํ ์ ์๋ค.{ "key" : "value"} |
ํค์ ๊ฐ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์กด์ฌํ ์ ์๋ค.'{"key":"value"}' |
key-value ์ ์ฌ์ด ๊ณต๋ฐฑ | ํค-๊ฐ ์ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์กด์ฌํ ์ ์๋ค.{ "key": "value", num: 1} |
ํค-๊ฐ ์ ์ฌ์ด์ ๊ณต๋ฐฑ์ด ์กด์ฌํ ์ ์๋ค.'{"key":"value","num":1}' |
์ฝ๊ฒ ์ค๋ช
ํ์๋ฉด… ๊ฐ์ฒด๋ฅผ JSON
ํ ํ์ ๋ JSON
์๋ ๋ฐ๋์ ๊ณต๋ฐฑ ์์ด ํฐ๋ฐ์ดํ๋ฅผ ๋ถ์ฌ์ฃผ์ด์ผ ํ๋ค!
๐ ์๋กญ๊ฒ ์๊ฒ ๋ ๊ฒ
append()
์ appendChild()
Section2๊ฐ ์๋ฌด๋๋ React
์ ์๋ฒ ํต์ ์์ฃผ์ ์์
์ด์ด์ DOM์ ๋ ๋ณด๋ฏ์ด ํ์๋๋ฐ.. ์ค๋ ๊ณผ์ ๋๋ฌธ์ ๋ค์ ๋ณด๊ฒ ๋์๋ค..ใ
ใ
์ค๋ ๊ณผ์ ๋ DOM์์ ์ฌ๊ท ํจ์๋ฅผ ์ฌ์ฉํด ul
๋ด๋ถ์ ๊ณ์ํด์ ์๋ก์ด li
๋ฅผ ์ถ๋ ฅํด์ฃผ๋ ๊ฒ์ด์๋ค.
๋๋ฌด ์ค๋๋ง์ DOM์ ๋ค๋ฃจ๋๊ฑฐ๋ผ ๋ฉ์๋๋ ๋ค ๊น๋จน์๊ณ (ใ ใ ), ๊ทธ ์ํ์์ ๊ฐ์๊ธฐ ์ฌ๊ท ํจ์๋ฅผ ์ด์ฉํ์๋ ์ฒซ ๊ณผ์ ๋ณด๋ค ๋ ์ ๊ทผ์ด ์ด๋ ต๊ฒ ๋๊ปด์ง ๊ฒ ๊ฐ๋ค.
์ด๊ฑด ์ด๋ ค์ ๋ ๊ฒ์์ ๋ค๋ค๋ณด๊ธฐ๋ก ํ๊ณ ~~ ๊ทธ๋์ ์๋กญ๊ฒ(???) ์๊ฒ ๋ append()
์ appendChild()
์ ์ฌ์ฉ๋ฒ ใ
ใ
(๋ถ๋ช
Section1์์ ์ฌ์ฉํ๋๋ฐ ๋ง์ด์ง…)
ul
๋ด๋ถ์ li
๋ฅผ ์ถ๋ ฅํ๊ธฐ ์ํด์๋ ul
์ด๋ ์๋ฆฌ๋จผํธ ์์ li
๋ฅผ ๋ฃ์ด์ฃผ์ด์ผ ํ๋ค.
์ด๊ฑธ html๋ก ์์ฑ์ ํด์ฃผ๋ฉด
<ul>
<li></li>
</ul>
์ด๋ ๊ฒ ์์ฑ์ ํด์ฃผ๋ฉด ๋์ง๋ง,
๋๋ DOM์ผ๋ก ์ด๊ฒ์ ์์ฑํด์ค ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ผ๋จ ul
๊ณผ li
์๋ฆฌ๋จผํธ๋ค์ ์์ฑํด์ค ๋ค ๋ถ๋ชจ๊ฐ ๋ ul
์ ์์ ์์๊ฐ ๋ li
๋ฅผ ๋ฃ์ด์ค ๊ฒ์ด๋ค..
// ul๊ณผ li ์๋ฆฌ๋จผํธ ์์ฑ
const ul = document.createElement('ul');
const li = document.createElement('li');
// ul์ li๋ฅผ ๋ฃ์ด์ฃผ๊ธฐ
ul.append(li);
์ด๋ ๊ฒ ์์ฑ์ ํ๋ฉด html์ ์์ฑํด์ค๊ฒ๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฌ์ค๋ค!
๊ทผ๋ฐ ๊ทธ๋์ append()
์ appendChild()
์ ์ฐจ์ด๊ฐ ๋ญ๋ฐ?
appendChild()
๋ ์์ ์์๋ฅผ ํ๋’๋ง’ ์ถ๊ฐํ ์ ์๊ณ , append()
๋ ์ฌ๋ฌ ๊ฐ์ ์์ ์์๋ฅผ ํ๊บผ๋ฒ์ ์ถ๊ฐํ ์ ์๋ค.
const ul = document.createElement('ul');
const li = document.createElement('li');
const span = document.createElement('span');
const div = document.createElement('div');
ul.appendChild(li);
ul.append(span, div);
append(li);
์ appendChild(li);
๋ ๊ฒฐ๊ณผ์ ์ผ๋ก ๊ฐ์ ์์ฉ์ ํ๊ธด ํ๋..
์ฌ๋ฌ ๊ฐ์ ์์๋ฅผ ํ๊บผ๋ฒ์ ๋ฃ์ ๊ฒฝ์ฐ append(span, div);
๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ํธํ๋ค!
์ด๊ฒ์
<ul>
<li></li>
<span></span>
<div></div>
</ul>
์ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ธ๋ค!
DOM์ผ๋ก checkbox
์์ฑํ๊ธฐ
DOM์ผ๋ก checkbox
์์ฑ์ ํด๋ณธ ์ ์ด ์์ด์ ์ด๋ฒ์ ์ ๋ง ์ฒ์์ผ๋ก ์๊ฒ ๋๋ค! ์ฌ์ค html์ DOM์ผ๋ก ๊ทธ๋๋ก ์ฎ๊ธฐ๋ฉด ๋์ง๋ง ์๊ณ ์์๊ธฐ ๋๋ฌธ์..๐
checkbox
๋ฅผ html๋ก ์์ฑํ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
<input type="checkbox">
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ DOM์ผ๋ก checkbox
๋ฅผ ์์ฑํ๋ ค๋ฉด ์ผ๋จ input
์๋ฆฌ๋จผํธ๋ฅผ ๋จผ์ ์์ฑํด์ผ ํ๋ค.
const checkbox = document.createElement('input');
html ์ฝ๋๋ฅผ ์ ๋ณด๋ฉด input
์ type
์ ์ํด ํด๋น ์๋ฆฌ๋จผํธ๊ฐ checkbox
๋ก ๋ณ๊ฒฝ์ด ๋๋ค.
๋ฐ๋ผ์ DOM์์๋ type
์ ๋ณ๊ฒฝํด์ฃผ๋ฉด checkbox
๋ก ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค!
// 1๋ฒ ๋ฐฉ๋ฒ
checkbox.type = 'checkbox';
// 2๋ฒ ๋ฐฉ๋ฒ
checkbox.setAttribute('type', 'checkbox');
Array.prototype().sort();
sort()
๋ฉ์๋๋ ์ค๋ ๋ฐ์ผ๋ฆฌ ์ฝ๋ฉ ๋ฌธ์ ์ ๋ ํผ๋ฐ์ค์์ ์ฌ์ฉ๋ ๋ฉ์๋์ด๋ค.
๋ฐฐ์ด์ ์์๋ฅผ ์ ์ ํ ์์น์ ์ ๋ ฌํ ํ ๊ทธ ๋ฐฐ์ด์ ๋ฐํํ๋ค๋๋ฐ..
๊ธฐ๋ณธ ์ ๋ ฌ ์์๋ ๋ฌธ์์ด์ ์ ๋์ฝ๋ ์ฝ๋ ํฌ์ธํธ๋ฅผ ๋ฐ๋ฅธ๋ค๊ณ ํ๋ค.
์์ ์ฝ๋๋ฅผ ๋ณด๋
const months = ['March', 'Jan', 'Feb', 'Dec'];
months.sort(); // ["Dec", "Feb", "Jan", "March"]
const array1 = [1, 30, 4, 21, 100000];
array1.sort(); // [1, 10000, 21, 30, 4]
์์ด๋ ์ํ๋ฒณ ์์ผ๋ก, ์ซ์๋ ๋งจ ์์ ์ซ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌ๋จ์ ์ ์ ์์๋ค.
sort()
์ ๊ธฐ๋ณธ ๊ตฌ๋ฌธ์ ๋ค์๊ณผ ๊ฐ๋ค.
arr.sort([compareFunction])
์ฌ๊ธฐ์ compareFunction
์ด ์์ผ๋ฉด ์์ ๊ฐ์ด ๊ธฐ๋ณธ ์ ๋์ฝ๋ ์ ๋ ฌ ์์๋ฅผ ๋ฐ๋ฅด๋ ๊ฒ์ด๊ณ , ์ ๊ณต์ด ๋ ๊ฒฝ์ฐ๋
compareFunction(a, b) < 0
์ธ ๊ฒฝ์ฐ a๋ฅผ b๋ณด๋ค ์์ ์ธ๋ฑ์ค์ ์์นcompareFunction(a, b) = 0
์ธ ๊ฒฝ์ฐ a, b๋ฅผ ์๋ก์ ๋ํด ๋ณ๊ฒฝํ์ง ์๊ณ ๋ค๋ฅธ ๋ชจ๋ ์์์ ๋น๊ตํด ์ ๋ ฌcompareFunction(a, b) > 0
์ธ ๊ฒฝ์ฐ b๋ฅผ a๋ณด๋ค ์์ ์ธ๋ฑ์ค์ ์์น
๋ฐ๋ผ์ ๋ ํผ๋ฐ์ค์์ ์ฌ์ฉ๋ arr.slice().sort((a, b) => a - b);
๋ ์
๋ ฅ๋ ๋ฐฐ์ด์ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๊ธฐ ์ํด ์ฌ์ฉ๋ ์ฝ๋๋ผ๊ณ ๋ณผ ์ ์๋ค!
const arr = [1, 4, 5, 3, 2];
arr.sort((a, b) => a - b); // [1, 2, 3, 4, 5]
๐ ์ด๋ ค์ ๋ ๊ฒ
์ฌ๊ท์ ์ผ๋ก ์๊ฐํ๋ ๊ณผ์ ์ด ์ฌ์ ํ ์กฐ๊ธ ์ด๋ ต๋ค ใ .ใ ~
์ด๋ฌํ ๊ตฌ์กฐ๋ฅผ DOM์ผ๋ก ์์ฑํ๋ ๊ฒ์ด ๊ณผ์ ์๋๋ฐ, html๊ณผ ํฉ์ณ์ง๋ ์ฝ๊ฐ ๋จธ๋ฆฌ๊ฐ ์ํ ๋ค…
๋จธ๋ฆฌ์์ผ๋ก๋ง ์๊ฐํ๋ ค๋ ์ด๋ ค์ ๋ ๊ฒ ๊ฐ์๋ฐ, ํฌ๋กฌ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ ํ์ฉํ๋ฉด ์กฐ๊ธ์ ์ฝ๊ฒ ์๊ฐํ ์ ์์์์ง๋..
์ html์ ์ด์ด๋ณด๋ฉด
์ด๋ฌํ ํํ๋ก ์์ฑ๋์ด ์๋๋ฐ, ์์ ์๋ฆฌ๋จผํธ๊ฐ ์กด์ฌํ๋ ul
์ ๋ชจ๋ li
๋ฅผ ์์์ผ๋ก ๊ฐ๊ณ ์๊ณ , ์์ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ง li
๋ ๋ํ ๋ชจ๋ ul
์ ์์์ผ๋ก ๊ฐ๊ณ ์๋ค.
๋ ์ด์ ์์์ ๊ฐ์ง ์๋ ์๋ฆฌ๋จผํธ๋ ์ค์ค๋ก์ ์์๋ฅผ li
๋ก ๊ฐ๊ณ ๋์ด ๋๋ค!
๊ฒฐ๊ตญ ์ด ๊ฒฝ์ฐ์ ์ฌ๊ท base case๋ ์์ ์๋ฆฌ๋จผํธ๋ฅผ ๊ฐ์ง ์๋ ๊ฒฝ์ฐ๋ผ๊ณ ํ ์ ์๋ค.
์ค๋๋ ํ์ด๋๊ณผ ์๊ธฐํ๋ฉด์ ๋๋๊ฑฐ์ง๋ง base case์ ์ค์ ์ด ์ ๋ง ์ค์ํ ๊ฒ ๊ฐ๋ค…!!!
โจ ๋๋์
์ฌ๊ท์ ์บ๋๋ ๋ฐ ์ฑ๊ณต ๋ฐ ์คํจ ใ ใ ใ ใ ใ
์์ผ๋ก ์๊ณ ๋ฆฌ์ฆ ๊ณต๋ถํ๋ฉด์ ๊ณ์ ์ฌ์ฉํด์ผ ํ ํํธ์ผํ ๋ฐ, ์ฝ๋ฉ ๋ฌธ์ ๋ฅผ ๋ ํ์ด๋ณด๋ฉด์ ์ฌ๊ณ ๋ ฅ์ ๋ ํค์์ผ๊ฒ ๋ค๋ ์๊ฐ์ด ๋ ๋ค..
๊ทธ๋ฆฌ๊ณ ์ค๋ ์ฒซ๋ฒ์งธ ๊ณผ์ ์ธ JSON.stringify()
์ ๊ตฌํ์ ์ดํดํ๊ธฐ ์ํด ๋ฐ๋ฒ๋ฅ์น ๋์ ํ์ ใ
ใ
๊ฐ๋จํ ํ์
์ธ number
, string
๋ฑ์ ๊ธ๋ฐฉ ๊ตฌํ์ด ๋์ง๋ง ๋ฐฐ์ด๊ณผ ๊ฐ์ฒด๋ ์กฐ๊ธ ๋ ์๊ฐ์ ์๊ตฌํด์..ใ
ใ
ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ํ ๋ ๋ฐ์ดํ๋ฅผ ํ ๊ฒน ๋ฒ๊ธฐ๊ณ ๋์ค๋ ๊ฑธ ์ ๋๋ก ์๊ฐํ์ง ๋ชปํด์ ์กฐ๊ธ ์ ๋ฅผ ๋จน์๋ค ํํ..
์ค๋์ ํฌ๋ฃจ๋์ TMI
Tree UI ๊ณผ์ ์ ์๋ฃ - ์ฃผ์ค - ๋์์ฃผ ํํ
์… ๋ฌธ์ ๊ฐ๋ฐํ๋ค๊ฐ ์ง์ณ์ ์ฌ๋ฆฌ์ ๊ฒ ์๋๋ผ
์ค์ ์คํ๋ฒ ์ค์์ ํ๋งคํ๋ ์๋ฃ๋ผ๊ณ ํ๋ค ใ ใ ใ ใ ใ ๐คญ
'๐ถ FE 41๊ธฐ > Daily' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๐ฐย [221025 TIL] ์! ํผ๊ทธ๋ง ์ฝ๋ฉ๋ณด๋ค ์ด๋ ต๋ค! (3) | 2022.10.25 |
---|---|
๐ฐ [221024 TIL] For the users, by the users, of the usersโฆ (0) | 2022.10.24 |
๐ฐ [221020 TIL] ์ฌ ๊ท์...๐ญ... (0) | 2022.10.20 |
๐ฐ [SEB FE 41๊ธฐ] ํ๋ฃจ ์ผ๊ธฐ - 22.09.30 (0) | 2022.09.30 |
๐ฐ [SEB FE 41๊ธฐ] ํ๋ฃจ ์ผ๊ธฐ - 22.09.29 (0) | 2022.09.29 |