[JS] Bitwise ๋นํธ ์ฐ์ฐ์ ํบ์๋ณด๊ธฐ (feat. ๋นํธ๋ง์คํฌ)
๋นํธ ์ฐ์ฐ์๋ ์ ์์ ์ด์ง ํํ, ์ฆ ๋นํธ(0๊ณผ 1) ๋จ์๋ก ๊ณ์ฐํ๋ ์ฐ์ฐ์๋ค. ์ฃผ๋ก ์ฑ๋ฅ ์ต์ ํ, ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ, ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ๋ฑ์์ ์ฌ์ฉํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ผ๋ก ์ซ์๋ฅผ ์ ์ฅํ์ง๋ง, ๋นํธ ์ฐ์ฐ์ ์ํํ ๋ ๋ด๋ถ์ ์ผ๋ก ํผ์ฐ์ฐ์๋ฅผ 32๋นํธ ์ ์๋ก ๋ณํํ๋ค. ์ด๋ ๋นํธ ์ฐ์ฐ์ด ์ ์์๋ง ์ ์ฉ๋๊ธฐ ๋๋ฌธ. ๋ณํ ๊ณผ์ ์์ ์์๋ถ๋ ๋ฒ๋ ค์ง๊ณ 32๋นํธ ์ ์๋ง ์ฐ์ฐ์ ์ฌ์ฉ๋๋ค.
2์ ๋ณด์ ํํ๋ฒ
2์ ๋ณด์ ํํ๋ฒ์ ๋นํธ๋ฅผ ์ด์ฉํด ์์๋ฅผ ๋ํ๋ด๋ ํ์ค ๋ฐฉ์์ผ๋ก, ์ ์์ ์ด์ง ํํ์์ ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ ์ํจ ํ(1์ ๋ณด์) 1์ ๋ํ๋ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํ๋ค. ์ฆ, 1์ ๋ณด์์ 1์ ๋ํ๋ฉด 2์ ๋ณด์๊ฐ ๋๋ค.
์ด๋ ์ต์์ ๋นํธ(Most Significant Bit; ๋ถํธ ๋นํธ; ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ๋นํธ)๊ฐ 0์ด๋ฉด ์์, 1์ด๋ฉด ์์๋ฅผ ๋ํ๋ธ๋ค. 2์ ๋ณด์ ํํ๋ฒ์ ์์๋ฅผ ๋ํ๋ด๋ ๋ฐฉ์์ด๋ฏ๋ก ์์๋ ์ด์ง์ ํํ์ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
์์ -5๋ฅผ 2์ ๋ณด์๋ก ํํํ๋ ๊ณผ์ ์ ์๋์ ๊ฐ๋ค.
โถ ์ ๋๊ฐ(5)์ ์ด์ง ํํ์ ๊ตฌํ๋ค.
โท 1์ ๋ณด์๋ก ๋ณํ: ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ ์ํจ๋ค.
โธ 2์ ๋ณด์๋ก ๋ณํ: ๋ฐ์ ๋ ์ซ์์ 1์ ๋ํ๋ค. ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ ์์ผ์ 1์ ๋ณด์๋ฅผ ๋ง๋ค๋ฉด ์๋ ์ ๋๊ฐ์์ 1์ด ๊ฐ์ํ๊ฒ ๋๋ค(5 → 4). ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํด 1์ ๋ํ๋ ๊ฒ.
๋ฐ๋๋ก 2์ ๋ณด์๋ก ํํ๋ ์์๋ฅผ 10์ง์๋ก ๋ณํํ ๋, โ ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ ์ํจ ํ(1์ ๋ณด์๋ก ๋ณํ) โก1์ ๋ํ ๋ค์(2์ ๋ณด์๋ก ๋ณํ) โข10์ง์๋ก ๋ณํํ๋ค. ๋ง์ง๋ง์ผ๋ก โฃ๊ฒฐ๊ณผ๊ฐ์ ์์ ๋ถํธ๋ฅผ ์ถ๊ฐํ๋ค.
๋นํธ ์ฐ์ฐ์
AND, OR, XOR ์์๋ ํธ์๋ฅผ ์ํด 4๋นํธ๋ก๋ง ํํํ๋ค. e.g. 5โโโโ → 0101โโโ
AND &
ํน์ ๋นํธ๋ฅผ ํ์ธํ๊ฑฐ๋ 0์ผ๋ก ์ค์ ํ ๋ ์์ฃผ ์ฌ์ฉ (๋นํธ๋ง์คํฌ์์ ๊ต์งํฉ)
๋ ํผ์ฐ์ฐ์์ ๊ฐ ๋นํธ๋ฅผ ๋น๊ตํ์ฌ ๋ ๋ค 1์ด๋ฉด 1 ๋ฐํ, ์๋๋ฉด 0 ๋ฐํ(๊ณฑ์ฐ์ฐ).
const result = 5 & 3; // 1
AND
์ฐ์ฐ์ ๋นํธ๋ง์คํฌ ์งํฉ ์ฐ์ฐ์์ ํน์ ๋นํธ๋ฅผ ํฌํจํ๋์ง ์ฌ๋ถ๋ฅผ ๊ฒ์ฌํ ๋ ์ฌ์ฉํ๋ค. ๋นํธ๋ง์คํฌ๋ 2์ง์์ ๊ฐ ๋นํธ๋ฅผ ์กฐ์ํ์ฌ ํน์ ํ ์ํ๋ ๊ฐ์ ํํํ๋ ๋ฐฉ๋ฒ์ด๋ค.
let set = 10; // 2์ง์ 1010
let flag = 8; // 2์ง์ 1000
console.log((set & flag) === flag); // true
/*
1010 (set) - 1010์ 1000๊ณผ 10์ ํฉํ ๊ฒ๊ณผ ๊ฐ๋ค
& 1000 (flag)
------
1000 (๊ฒฐ๊ณผ)
*/
OR |
์ฌ๋ฌ ๋นํธ ํ๋๊ทธ๋ฅผ ๊ฒฐํฉํ ๋ ์์ฃผ ์ฌ์ฉ (๋นํธ๋ง์คํฌ์์ ํฉ์งํฉ)
๋ ํผ์ฐ์ฐ์์ ๊ฐ ๋นํธ๋ฅผ ๋น๊ตํ์ฌ ํ๋๋ผ๋ 1์ด๋ฉด 1 ๋ฐํ, ๋ ๋ค 0์ด๋ฉด 0 ๋ฐํ(ํฉ์ฐ์ฐ).
const result = 5 | 3; // 7
OR
์ฐ์ฐ์ ๋นํธ๋ง์คํฌ ์งํฉ ์ฐ์ฐ์์ ํน์ ๋นํธ๋ฅผ ์ถ๊ฐํ ๋ ์ฌ์ฉํ๋ค.
let set = 8; // 2์ง์ 1000
let flag = 2; // 2์ง์ 0010 (ํธ์๋ฅผ ์ํด 4๋นํธ๋ก ํํ)
set = set | flag; // set ์งํฉ์ flag ์ถ๊ฐ
console.log(set); // 10 (2์ง์ 1010)
/*
1000 (set)
| 0010 (flag)
------
1010 (๊ฒฐ๊ณผ)
*/
๋ง์ฝ {1, 2, 3, 4, 5}
์งํฉ์์ 1, 3, 5๋ฅผ ๋ถ๋ถ ์งํฉ์ ์ ํํ์ฌ ๋นํธ๋ง์คํฌ๋ก ํํํ๋ฉด 21(2์ง์ 10101)์ด ๋๋ค. ์ฆ, 21์ 0๋ฒ์งธ, 2๋ฒ์งธ, 4๋ฒ์งธ ๋นํธ๊ฐ ์ค์ ๋ ๊ฒ์ ์๋ฏธํ๋ค. ๋นํธ ์ฐ์ฐ์ O(1) ์์ ์๊ฐ ์์ ์ํ๋๊ธฐ ๋๋ฌธ์ ๋ถ๋ถ ์งํฉ์ ๋ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ์กฐ์ํ ์ ์๋ค.
let set = 0;
set = set | (1 << 4); // 4๋ฒ ์ธ๋ฑ์ค(5) ์ถ๊ฐ -> 10000 (10์ง์ 16)
set = set | (1 << 2); // 2๋ฒ ์ธ๋ฑ์ค(3) ์ถ๊ฐ -> 10100 (10์ง์ 20)
set = set | (1 << 0); // 0๋ฒ ์ธ๋ฑ์ค(1) ์ถ๊ฐ -> 10101 (10์ง์ 21)
// {1, 3, 5} ์งํฉ์ ๋นํธ๋ง์คํฌ๋ก ํํํ๋ฉด 10101(10์ง์ 21)์ด ๋๋ค
XOR ^
๋ ๊ฐ์ ์ฐจ์ด์ ์ ์ฐพ๊ฑฐ๋ ๋นํธ๋ฅผ ํ ๊ธํ ๋ ์์ฃผ ์ฌ์ฉ
๋ ํผ์ฐ์ฐ์์ ๊ฐ ๋นํธ๋ฅผ ๋น๊ตํ์ฌ ์๋ก ๋ค๋ฅด๋ฉด 1 ๋ฐํ, ๊ฐ์ผ๋ฉด 0 ๋ฐํ. ๊ฐ ๋นํธ์ ๋ํ ๋น๊ต๋ ๋ ๋นํธ๋ฅผ ๋ํ ๋ค mod(๋๋จธ์ง ์ฐ์ฐ) 2 ํ ๊ฒ๊ณผ ๊ฐ๋ค.
const result = 5 ^ 3; // 6
NOT ~
ํน์ ๋นํธ๋ฅผ 0์ผ๋ก ์ค์ ํ ๋ ์์ฃผ ์ฌ์ฉ
NOT ์ฐ์ฐ์๋ ํผ์ฐ์ฐ์์ ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ ์ํจ๋ค. (1 → 0, 0 → 1)
const result = ~5; // -6
์ด๋ค ์ x
์ NOT ๋นํธ ์ฐ์ฐ์ ํ๋ฉด -(x + 1)
์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ๋ค. ์๋ฅผ๋ค์ด ~5
๋ -(5 + 1) = -6
์ผ๋ก ๊ณ์ฐ๋๋ค. 2์ ๋ณด์ ํํ๋ฒ์์ ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ ์ํค๊ณ 1์ ๋ํ์ง๋ง, NOT ๋นํธ ์ฐ์ฐ์์ 1์ ๋ํ๋ ๋จ๊ณ๊ฐ ์๋ค. ๋ฐ๋ผ์ NOT ์ฐ์ฐ์์ ๊ฒฐ๊ณผ๋ 1์ ๋ณด์์ ๋์ผํ๋ฉฐ, 2์ ๋ณด์์์ 1์ ๋บ ๊ฒ๊ณผ๋ ๊ฐ๋ค.
$$-(x+1) = -x-1$$
โถ ์ ๋๊ฐ(5)์ 32๋นํธ ์ด์ง ํํ์ผ๋ก ๋ณํ
โท NOT ์ฐ์ฐ ์ํ (๋นํธ ๋ฐ์ ; 1์ ๋ณด์๋ก ๋ณํ)
โธ 10์ง์๋ก ๋ณํ: 2๋ฒ์์ ๋ฐ์ ๋ ๋นํธ์ ๊ฒฐ๊ณผ๋ 2์ ๋ณด์ ํํ๋ฒ์์ ์์๋ฅผ ๋ํ๋ธ๋ค. ๋ฐ๋ผ์ ์์๋ฅผ ํํํ๊ธฐ ์ํด ๋ชจ๋ ๋นํธ๋ฅผ ๋ค์ ๋ฐ์ ํ๊ณ 1์ ๋ํด์ 2์ ๋ณด์๋ก ๋ณํํ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
โถ -5๋ ์์์ด๋ฏ๋ก 2์ ๋ณด์๋ก ๋ณํ
โท NOT ์ฐ์ฐ ์ํ (๋นํธ ๋ฐ์ )
โธ 10์ง์๋ก ๋ณํ (2๋ฒ์์ ๋ฐ์ ๋ ๋นํธ๋ ์์๋ฅผ ๋ํ๋ด๋ฏ๋ก ๊ทธ๋๋ก 10์ง์๋ก ๋ณํ)
NOT
์ฐ์ฐ์ ๋นํธ๋ง์คํฌ ์งํฉ ์ฐ์ฐ์์ AND
์ฐ์ฐ์์ ํจ๊ป ์ฌ์ฉํ์ฌ ํน์ ๋นํธ๋ฅผ ์ญ์ ํ ๋ ์ฌ์ฉํ๋ค.
let set = 10; // 2์ง์ 1010
let flag = 2; // 2์ง์ 0010 (ํธ์๋ฅผ ์ํด 4๋นํธ๋ก ํํ)
set = set & ~flag; // set ์งํฉ์์ flag ์ ๊ฑฐ
console.log(set); // 8 (2์ง์ 1000)
/*
1010 (set)
& 1101 (~flag) - flag๋ฅผ ๋ฐ์ ์ํจ ๊ฒฐ๊ณผ
-------------
1000 (๊ฒฐ๊ณผ)
*/
LEFT SHIFT <<
์๋ก์ด ๋นํธ๋ฅผ ์ถ๊ฐํ๊ฑฐ๋ 2์ ๊ฑฐ๋ญ์ ๊ณฑ์ ๊ณฑํ ๋ ์์ฃผ ์ฌ์ฉ
์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์์ ๋นํธ๋ฅผ ๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ ์ง์ ํ ํ์๋งํผ ์ผ์ชฝ์ผ๋ก ์ด๋์ํจ๋ค. ์ผ์ชฝ์ ์ด๊ณผ๋ ๋นํธ๋ ๋ฒ๋ ค์ง๊ณ , ์ค๋ฅธ์ชฝ์ ์๊ธด ๋น ๊ณต๊ฐ์ ์ด๋ํ๋งํผ 0์ผ๋ก ์ฑ์ด๋ค.
const result = 5 << 3; // 40 (5×2×2×2์ ๋์ผ)
์ผ์ชฝ ์ํํธ ์ฐ์ฐ์ ๊ฐ ๋นํธ๋ฅผ ์ผ์ชฝ์ผ๋ก 1์นธ ์ด๋ํ ๋๋ง๋ค 2๋ฅผ ๊ณฑํ๋ ๊ฒ๊ณผ ๊ฐ๋ค. ์๋ฅผ๋ค์ด 2์ง์ 10(10์ง์ 2)์ ์ผ์ชฝ์ผ๋ก ํ ์นธ ์ด๋์ํค๋ฉด 100(10์ง์ 4)์ด ๋๋ค. ๋ฐ๋ผ์ x << n
์ฐ์ฐ์ x × 2โฟ
๊ณผ ๊ฐ๋ค.
์ ๋ฆฌํ๋ฉด LEFT SHIFT ์ฐ์ฐ์ 1ํ ์งํํ ๋๋ง๋ค ์ด์ง์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ 0์ด ํ๋ ๋ ๋ถ๋๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
RIGHT SHIFT >>
2์ ๊ฑฐ๋ญ์ ๊ณฑ์ผ๋ก ๋๋ ๋ ์์ฃผ ์ฌ์ฉ
๐ก 2์ง์ ๊ธธ์ด์ ๊ฐ๊ฑฐ๋ ๋ ๋ง์ ๋นํธ๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํค๋ฉด ๊ฒฐ๊ณผ๋ ํญ์ 0์ด ๋๋ค. ์๋ฅผ๋ค์ด 2์ง์ 11์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ๋ฒ ์ํํธํ๋ฉด 01์ด ๋๊ณ , ํ ๋ฒ ๋ ์ํํธํ๋ฉด 0์ด ๋๋ค.
์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์์ ๋นํธ๋ฅผ ๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ ์ง์ ํ ํ์๋งํผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํจ๋ค. ์ค๋ฅธ์ชฝ์ ์ด๊ณผ๋ ๋นํธ๋ค์ ๋ฒ๋ ค์ง๊ณ , ์ผ์ชฝ์ ์๊ธด ๋น ๊ณต๊ฐ์ ๊ธฐ์กด ์ต์์ ๋นํธ(๋ถํธ ๋นํธ)์ ๋ณต์ฌ๋ณธ์ผ๋ก ์ฑ์์ง๋ค.
const result = 5 >> 3; // 0
์ค๋ฅธ์ชฝ ์ํํธ ์ฐ์ฐ์ ๊ฐ ๋นํธ๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก 1์นธ ์ด๋ํ ๋๋ง๋ค 2๋ฅผ ๋๋๋ ๊ฒ๊ณผ ๊ฐ๋ค. ์๋ฅผ๋ค์ด 2์ง์ 100(10์ง์ 4)์ ์ค๋ฅธ์ชฝ์ผ๋ก ํ ์นธ ์ด๋์ํค๋ฉด 010(10์ง์ 2)๊ฐ ๋๋ค. ๋ฐ๋ผ์ x >> n
์ฐ์ฐ์ x / 2โฟ
๊ณผ ๊ฐ๋ค.
์ ๋ฆฌํ๋ฉด RIGHT SHIFT ์ฐ์ฐ์ 1ํ ์งํํ ๋๋ง๋ค ์ด์ง์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ์ด ํ๋์ฉ ์๋ฆฐ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
UNSIGNED RIGHT SHIFT >>>
์์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์ฅํ๋ฉด์ 2์ ๊ฑฐ๋ญ์ ๊ณฑ์ผ๋ก ๋๋ ๋ ์์ฃผ ์ฌ์ฉ
์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์์ ๋นํธ๋ฅผ ๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ ์ง์ ํ ํ์๋งํผ ์ค๋ฅธ์ชฝ์ผ๋ก ์ด๋์ํจ๋ค. ์ค๋ฅธ์ชฝ์ ์ด๊ณผ๋ ๋นํธ๋ ๋ฒ๋ ค์ง๊ณ , ์ผ์ชฝ์ ์๊ธด ๋น ๊ณต๊ฐ์ ๋ถํธ ๋นํธ์ ์๊ด์์ด 0์ผ๋ก ์ฑ์ด๋ค. ๋๋ฌธ์ ํญ์ ์์ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ค.
const result = 5 >>> 3; // 0
์ค๋ฅธ์ชฝ ์ํํธ ์ฐ์ฐ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ฐ ๋นํธ๋ฅผ ์ค๋ฅธ์ชฝ์ผ๋ก 1์นธ ์ด๋ํ ๋๋ง๋ค 2๋ก ๋๋๋ ๊ฒ๊ณผ ๊ฐ๋ค. ๋ฐ๋ผ์ x >>> n
์ฐ์ฐ์ x / 2โฟ
๊ณผ ๊ฐ๋ค.
๋ฏธ๋ฆฝ์ ํ
0b
(2์ง์), 0o
(8์ง์), 0x
(16์ง์) ์ ๋์ฌ๋ฅผ ์ด์ฉํด ์ง์๋ฅผ ํํํ ์ ์๋ค. ์ฐธ๊ณ ๋ก ํ์ด์ฌ์์๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋์ผํ ์ ๋์ฌ๋ฅผ ์ฌ์ฉํ๋ค. C/C++, Java ์์ 8์ง์์ ์ฌ์ฉํ๋ 0
์ ๋์ฌ๋ง ๋ค๋ฅด๊ณ ๋๋จธ์ง ๋์ผํ๋ค.
const binary = 0b1100100; // 2์ง์
const octal = 0o144; // 8์ง์
const hex = 0x64 // 16์ง์
console.log(binary, octal, hex); // 100, 100, 100
console.log(binary === 100); // true
console.log(octal === 100); // true
console.log(hex === 100); // true
๋ ํผ๋ฐ์ค
2์ ๋ณด์ ๊ณ์ฐ๊ธฐ | yeecord
์ ๋ฐ ์ฐ์ฐ์ - JavaScript | MDN
๊ธ ์์ ์ฌํญ์ ๋ ธ์ ํ์ด์ง์ ๊ฐ์ฅ ๋น ๋ฅด๊ฒ ๋ฐ์๋ฉ๋๋ค. ๋งํฌ๋ฅผ ์ฐธ๊ณ ํด ์ฃผ์ธ์
'๐ช Programming' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] ํฑํํ (Tic-Tac-Toe) ๊ฒ์ ์ฃผ์ ๋ก์ง ํบ์๋ณด๊ธฐ (0) | 2024.05.30 |
---|---|
[JS] Array.fill() ๋ฉ์๋ ์ฌ์ฉ ์ ์ฃผ์ํ ์ (0) | 2024.05.30 |
[JS] ์ ๋์ฝ๋์ ์ ๋์ฝ๋ ํ๋กํผํฐ (1) | 2024.05.29 |
[TS] ํ์ ์คํฌ๋ฆฝํธ ํด๋์ค(class) ๋ฌธ๋ฒ, ์ถ์ ํด๋์ค์ ๋ฉ์๋ (0) | 2024.05.29 |
[DevTools] ์น์์ VSCode ์ฌ์ฉํ๊ธฐ - github.dev / github1s (0) | 2024.05.29 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[React] ํฑํํ (Tic-Tac-Toe) ๊ฒ์ ์ฃผ์ ๋ก์ง ํบ์๋ณด๊ธฐ
[React] ํฑํํ (Tic-Tac-Toe) ๊ฒ์ ์ฃผ์ ๋ก์ง ํบ์๋ณด๊ธฐ
2024.05.30 -
[JS] Array.fill() ๋ฉ์๋ ์ฌ์ฉ ์ ์ฃผ์ํ ์
[JS] Array.fill() ๋ฉ์๋ ์ฌ์ฉ ์ ์ฃผ์ํ ์
2024.05.30 -
[JS] ์ ๋์ฝ๋์ ์ ๋์ฝ๋ ํ๋กํผํฐ
[JS] ์ ๋์ฝ๋์ ์ ๋์ฝ๋ ํ๋กํผํฐ
2024.05.29 -
[TS] ํ์ ์คํฌ๋ฆฝํธ ํด๋์ค(class) ๋ฌธ๋ฒ, ์ถ์ ํด๋์ค์ ๋ฉ์๋
[TS] ํ์ ์คํฌ๋ฆฝํธ ํด๋์ค(class) ๋ฌธ๋ฒ, ์ถ์ ํด๋์ค์ ๋ฉ์๋
2024.05.29