๐ช Programming
[JS] Array.fill() ๋ฉ์๋ ์ฌ์ฉ ์ ์ฃผ์ํ ์
[JS] Array.fill() ๋ฉ์๋ ์ฌ์ฉ ์ ์ฃผ์ํ ์
2024.05.30Array.fill() ๋ฉ์๋๋ ์ด๋ฆ ๊ทธ๋๋ก ์ฒซ ๋ฒ์งธ ์ธ์์ ์ฃผ์ด์ง ๊ฐ์ผ๋ก ๋ฐฐ์ด์ ๋ชจ๋ ์์๋ฅผ ์ฑ์ฐ๋ ๋ฉ์๋๋ค. ์ฃผ๋ก Array() ์์ฑ์์ ํจ๊ป ์ฌ์ฉํ์ฌ, ์ด๊ธฐ๊ฐ์ด ํ ๋น๋ ๋ฐฐ์ด์ ์์ฑํ ๋ ์ ์ฉํ๊ฒ ์ฐ์ธ๋ค.Array.fill(value, start?, end?)// length๊ฐ 2์ธ ๋น ๋ฐฐ์ด ์์ฑ ํ null๋ก ์ฑ์const filledArray = Array(2).fill(null);console.log(filledArray); // [null, null]const numbers = [1, 2, 3, 4];// 2~3๋ฒ ์ธ๋ฑ์ค๋ฅผ null๋ก ์ฑ์ (start ํฌํจ, end ๋ฏธํฌํจ)numbers.fill(null, 2, 4);console.log(numbers); // [1, 2, null, null]..
[JS] Bitwise ๋นํธ ์ฐ์ฐ์ ํบ์๋ณด๊ธฐ (feat. ๋นํธ๋ง์คํฌ)
[JS] Bitwise ๋นํธ ์ฐ์ฐ์ ํบ์๋ณด๊ธฐ (feat. ๋นํธ๋ง์คํฌ)
2024.05.29๋นํธ ์ฐ์ฐ์๋ ์ ์์ ์ด์ง ํํ, ์ฆ ๋นํธ(0๊ณผ 1) ๋จ์๋ก ๊ณ์ฐํ๋ ์ฐ์ฐ์๋ค. ์ฃผ๋ก ์ฑ๋ฅ ์ต์ ํ, ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ, ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ ๋ฑ์์ ์ฌ์ฉํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ 64๋นํธ ๋ถ๋์์์ ํ์์ผ๋ก ์ซ์๋ฅผ ์ ์ฅํ์ง๋ง, ๋นํธ ์ฐ์ฐ์ ์ํํ ๋ ๋ด๋ถ์ ์ผ๋ก ํผ์ฐ์ฐ์๋ฅผ 32๋นํธ ์ ์๋ก ๋ณํํ๋ค. ์ด๋ ๋นํธ ์ฐ์ฐ์ด ์ ์์๋ง ์ ์ฉ๋๊ธฐ ๋๋ฌธ. ๋ณํ ๊ณผ์ ์์ ์์๋ถ๋ ๋ฒ๋ ค์ง๊ณ 32๋นํธ ์ ์๋ง ์ฐ์ฐ์ ์ฌ์ฉ๋๋ค. 2์ ๋ณด์ ํํ๋ฒ2์ ๋ณด์ ํํ๋ฒ์ ๋นํธ๋ฅผ ์ด์ฉํด ์์๋ฅผ ๋ํ๋ด๋ ํ์ค ๋ฐฉ์์ผ๋ก, ์ ์์ ์ด์ง ํํ์์ ๋ชจ๋ ๋นํธ๋ฅผ ๋ฐ์ ์ํจ ํ(1์ ๋ณด์) 1์ ๋ํ๋ ๋ฐฉ์์ผ๋ก ๊ณ์ฐํ๋ค. ์ฆ, 1์ ๋ณด์์ 1์ ๋ํ๋ฉด 2์ ๋ณด์๊ฐ ๋๋ค. ์ด๋ ์ต์์ ๋นํธ(Most Significant Bit; ๋ถํธ ๋นํธ; ๊ฐ์ฅ ์ผ์ชฝ์ ์๋ ๋นํธ)๊ฐ ..
[JS] ์ ๋์ฝ๋์ ์ ๋์ฝ๋ ํ๋กํผํฐ
[JS] ์ ๋์ฝ๋์ ์ ๋์ฝ๋ ํ๋กํผํฐ
2024.05.29์ ๋์ฝ๋๐ก ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ชจ๋ ๋ฌธ์์ด์ UTF-16์ผ๋ก ์ธ์ฝ๋ฉํ๋ค. UTF-16์ ๊ธฐ๋ณธ์ ์ผ๋ก 2๋ฐ์ดํธ(16๋นํธ)๋ก ์ธ์ฝ๋ฉํ์ง๋ง, 2๋ฐ์ดํธ๋ก ํํํ ์ ์๋ ์ด๋ชจ์ง, ํน์ ๊ธฐํธ ๊ฐ์ ๋ฌธ์๋ ์๋ก๊ฒ์ดํธ ํ์ด๋ฅผ ํตํด 4๋ฐ์ดํธ๋ฅผ ์ฌ์ฉํ๋ค. ์ด๋ฅผ ๋ณด์ถฉ ๋ฌธ์๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์๋ก๊ฒ์ดํธ ํ์ด๋ U+10000(65536) ์ด์์ ์ฝ๋ ํฌ์ธํธ๋ฅผ ํํํ๊ธฐ ์ํด ๋ ๊ฐ์ 2๋ฐ์ดํธ ์ฝ๋ ์กฐํฉ์ผ๋ก ๋ณด์ถฉ ๋ฌธ์๋ฅผ ํํํ๋ ๋ฐฉ์์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ ๋์ฝ๋๋ฅผ ์ฌ์ฉํด์ ๋ฌธ์์ด์ ์ธ์ฝ๋ฉํ๋ค. ์ ๋์ฝ๋๋ ์ ์ธ๊ณ์ ๋ค์ํ ๋ฌธ์์ ๊ธฐํธ๋ฅผ ํํํ ์ ์๋๋ก ์ค๊ณ๋ ๊ตญ์ ํ์ค์ด๋ค. ์ ๋์ฝ๋์์ ๊ฐ ๋ฌธ์๋ ๊ณ ์ ํ ์ฝ๋ ํฌ์ธํธ(ํด๋น ๋ฌธ์์ด์ ๋ํํ๋ ์ซ์)๋ฅผ ๊ฐ์ง๋ค. ์ฝ๋ ํฌ์ธํธ๋ U+ ์ ๋์ฌ์ 16์ง์ ์ซ์๋ฅผ ํฉ์น ํ๊ธฐ๋ฒ์ ์ฌ์ฉํ๋ค. ์๋ฅผ๋ค์ด ์..
[TS] ํ์
์คํฌ๋ฆฝํธ ํด๋์ค(class) ๋ฌธ๋ฒ, ์ถ์ ํด๋์ค์ ๋ฉ์๋
[TS] ํ์ ์คํฌ๋ฆฝํธ ํด๋์ค(class) ๋ฌธ๋ฒ, ์ถ์ ํด๋์ค์ ๋ฉ์๋
2024.05.29ํด๋์ค ์ ์์๋ฐ์คํฌ๋ฆฝํธ์์ ์์ฑ์ ๋ด๋ถ์์ ํ๋กํผํฐ๋ฅผ ์ ์ธํ๊ณ ์ด๊ธฐํํ๋ค. ํด๋์ค ํ๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ฅผ ์ ์ธํ๊ณค ํด๋์ค ๋ฐ๋์ ํ๋กํผํฐ๋ฅผ ๋ฐ๋ก ์ ์ธํ ํ์๊ฐ ์๋ค. ๋ฐ๋ฉด ํ์
์คํฌ๋ฆฝํธ์์ ๋จผ์ ํด๋์ค ๋ฐ๋์ ํ๋กํผํฐ๋ฅผ ๋ฏธ๋ฆฌ ์ ์ธํ๊ณ ํ์
์ ์ง์ ํด์ผ ํ๋ค. ํด๋์ค ๋ฐ๋์ ํ๋กํผํฐ๋ฅผ ์ ์ธํ์ง ์์ผ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.class User { name: string; // ํ๋กํผํฐ ์ ์ธ ๋ฐ ํ์
์ง์ constructor(name: string) { this.name = name; // ํ๋กํผํฐ ์ด๊ธฐํ }}const user = new User('John');console.log(user); // { name: 'John' } ํ์
์คํฌ๋ฆฝํธ์์ public, protected, private ์ ๊ทผ ์ ํ์..
[DevTools] ์น์์ VSCode ์ฌ์ฉํ๊ธฐ - github.dev / github1s
[DevTools] ์น์์ VSCode ์ฌ์ฉํ๊ธฐ - github.dev / github1s
2024.05.29์น์์ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ดํด๋ณด๋ค๊ฐ ์ฝ๋๋ฅผ ์ข ๋ ํธํ๊ฒ ๋ค์ฌ๋ค๋ณด๊ณ ์ถ์ ๋ github1s ์๋น์ค๋ฅผ ์ด์ฉํด์ ์น ๊ธฐ๋ฐ VSCode ํ๊ฒฝ์ผ๋ก ๋ณผ ์ ์๋ค. github1s๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด github ๋๋ฉ์ธ ๋ค์ 1s๋ฅผ ๋ถ์ฌ์ github1s.com/... ์ฃผ์๋ก ์ด๋ํด์ผ ํ๋ค. ๋ณดํต์ ์ฃผ์๋ฅผ ๋ณ๊ฒฝํด์ฃผ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ฆ๊ฒจ์ฐพ๊ธฐ์ ์ถ๊ฐํด ๋๊ณ ์ฌ์ฉํ๋ค.javascript: window.location.href = window.location.href.replace(/github(1s)?.com/, function(match, p1) { return p1 ? 'github.com' : 'github1s.com' }) ๊ทธ๋ฌ๋ค ์ฐ์ฐํ Github์์ ๊ณต์์ผ๋ก ์ ๊ณตํ๋ github.dev๋ผ๋ ์๋น์ค๋ฅผ ๋ฐ๊ฒฌํ๋ค. gi..
[AWS] VSCode์์ AWS EC2 ์๊ฒฉ ์ฐ๊ฒฐ / EC2 ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ํด๊ฒฐ
[AWS] VSCode์์ AWS EC2 ์๊ฒฉ ์ฐ๊ฒฐ / EC2 ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ ํด๊ฒฐ
2024.05.29ํฐ๋ฏธ๋๋ก AWS EC2์ ์ ์ํด์ ์๋ฒ ์ฝ๋๋ฅผ ์์ ํ๋ ค๋ฉด Nano๋ Vim ๋ฑ์ ์ด์ฉํด์ผ ํ๋ค. ์ต์ํ VSCode ํ๊ฒฝ์ด ์๋๊ธฐ ๋๋ฌธ์ ์คํ๊ฐ ๋ฐ์ํ ๊ฐ๋ฅ์ฑ๋ ๋๊ณ , ์ด ์๋ํฐ๋ค์ ๊ธฐ๋ณธ ์ค์ ์ Linter๋ ์๋๊ธฐ ๋๋ฌธ์ ๋ถํธํ๋ค. VSCode ํ์ฅ ๊ธฐ๋ฅ์ ์ด์ฉํด AWS EC2์ ์๊ฒฉ ์ ์ํ ํ VSCode์์ ์ฝ๋๋ฅผ ์ง์ ์์ ํ ์ ์๋ค. VSCode์์ EC2 ์ธ์คํด์ค SSH ์ฐ๊ฒฐโถ VSCode ํ์ฅ๊ธฐ๋ฅ Remote SSH ์ค์น (๋งํฌ) โท CMD SHIFT P ๋ช
๋ น ์ปค๋งจ๋ → Remote-SSH: Connect to Host → Configure SSH Hosts → ์ฌ์ฉ์ ์์ค์ config ํ์ผ ํด๋ฆญ โธ SSH Config ํ์ผ ์ค์ # ์
๋ ฅ ์์Host aws-ec2-seoul-privat..
[JS] ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋ฆฌ์ค ๋ฌ๋ ๊ฒ์ ๊ตฌํํ๊ธฐ
[JS] ๋ฐ๋๋ผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ง๋ฆฌ์ค ๋ฌ๋ ๊ฒ์ ๊ตฌํํ๊ธฐ
2024.05.29๋ฌ๋ ๊ฒ์(๋ฌ๋ฆฌ๊ธฐ ๊ฒ์)์ ํ๋ ์ด์ด๊ฐ ์๋์ผ๋ก ์ ์งํ๋ฉด์ ์ฅ์ ๋ฌผ์ ํํผํ๊ณ , ์ ์๋ฅผ ํ๋ํ๋ ๊ฒ์ ์ ํ์ด๋ค. ๊ฐ๋จํ ๋ฌ๋ ๊ฒ์์ ์บ๋ฒ์ค ์์ด JavaScript, HTML, CSS ๋ง์ผ๋ก๋ ๊ตฌํํ ์ ์๋ค. ๋ฌ๋ ๊ฒ์ ๊ตฌํ์ ํฌ๊ฒ โ ์ด๋(์ ์ง), โก์ ํ, โข์ฅ์ ๋ฌผ ๋ฐฐ์น, โฃ์ฅ์ ๋ฌผ ์ถฉ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ค. ์ํผ ๋ง๋ฆฌ์ค๋ ํ๋ ์ด์ด๊ฐ ์บ๋ฆญํฐ๋ฅผ ์ง์ ์กฐ์ข
ํ๋ ํ๋ซํฌ๋จธ ์ฅ๋ฅด์ ์ํ์ง๋ง ์น์ํ ๋ง๋ฆฌ์ค ์บ๋ฆญํฐ์ ๊ตฌ์กฐ๋ฌผ์ ์ด์ฉํด์ ๋ฌ๋ ๊ฒ์์ผ๋ก ๋ง๋ค์ด๋ณด์. ์ฑ๊ธํค DOM ๊ด๋ฆฌ๋๋ณด๊ธฐ// dom-manager.jsclass DomManager { static instance = null; constructor() { // ์์ฑ์ ํจ์๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ก ์์ฑ๋ ์ธ์คํด์ค(this)๋ฅผ ๋ฐํํ์ง๋ง ๋ช
์์ ์ผ๋ก ๋ฐํ ..
[HTML] select, option ํ๊ทธ ์ฃผ์ ์์ฑ๊ณผ ํน์ง
[HTML] select, option ํ๊ทธ ์ฃผ์ ์์ฑ๊ณผ ํน์ง
2024.05.29Option ์์ฑ์ ํจ์ | MDN๐ก HTML ์ต์
ํ๊ทธ์ selected ์ดํธ๋ฆฌ๋ทฐํธ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ ๊ทผํ๋ option.selected ์์ฑ(ํ๋กํผํฐ)์ ์๋ก ๋
๋ฆฝ์ ์ธ ๊ธฐ๋ฅ์ ๊ฐ์ง๋ค. ์ต์
ํ๊ทธ์ selected ์ดํธ๋ฆฌ๋ทฐํธ๋ ์ด๊ธฐ ์ ํ ์ํ๋ฅผ ๋ํ๋ด๊ณ , option.selected ์์ฑ์ ํ์ฌ ์ ํ ์ํ๋ฅผ ๋ฐ์ํ๊ณ ์ ์ดํ๋๋ฐ ์ฌ์ฉํ๋ค.// Option ์์ฑ์๋ฅผ ์ฌ์ฉํ๋ฉด document.createElement() ๋ณด๋ค ๋ ๊ฐ๊ฒฐํ๊ฒ ์์ฑํ ์ ์๋คnew Option(text?, value?, defaultSelected?, selected?) โผ๏ธ text : ์ต์
์์์ ํ์ํ ํ
์คํธ | ๊ธฐ๋ณธ๊ฐ "" ๋น ๋ฌธ์์ดtext์ ์ง์ ํ ๊ฐ์ option.textContent๋ก ์ค์ ๋๋ค.โผ๏ธ value : ์ต..
[Algorithm] ์์ด / ์กฐํฉ ๊ฐ๋
๊ณผ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
[Algorithm] ์์ด / ์กฐํฉ ๊ฐ๋ ๊ณผ ์๊ณ ๋ฆฌ์ฆ ๊ตฌํ
2024.05.28์์ด Permutation๊ฐ๋
์์ด์ ์๋ก ๋ค๋ฅธ n๊ฐ ์์ ์ค์์ r๊ฐ๋ฅผ ์ ํํ์ฌ ์์๋๋ก ๋์ดํ๋ ๋ฐฉ๋ฒ์ ์๋ฏธํ๋ค. ์์ด์์ ์์๊ฐ ๊ฒฐ๊ณผ์ ์ํฅ์ ๋ฏธ์น๊ธฐ ๋๋ฌธ์ ์์๊ฐ ์ค์ํ๋ค. ๋์ผํ ์์๋ฅผ ์๋ก ๋ค๋ฅธ ์์๋ก ๋์ดํ๋ฉด, ๊ฐ๊ฐ์ ๋ณ๊ฐ์ ์์ด๋ก ๊ฐ์ฃผํ๋ค. ์๋ฅผ ๋ค์ด A, B, C์์ A, B ๋ ์์๋ฅผ ์ ํํ๋ ๊ฒฝ์ฐ AB์ BA๋ ์๋ก ๋ค๋ฅธ ์์ด์ด๋ค. A ์ ํ, ๋จ์ ๊ธ์ B, CB ์ ํ, ๋จ์ ๊ธ์ C (2์๋ฆฌ ์์ด์ด๋ฏ๋ก ๋ฌด์) → ABC ์ ํ, ๋จ์ ๊ธ์ B (2์๋ฆฌ ์์ด์ด๋ฏ๋ก ๋ฌด์) → ACB ์ ํ, ๋จ์ ๊ธ์ A, CA ์ ํ, ๋จ์ ๊ธ์ C (2์๋ฆฌ ์์ด์ด๋ฏ๋ก ๋ฌด์) → BAC ์ ํ, ๋จ์ ๊ธ์ A (2์๋ฆฌ ์์ด์ด๋ฏ๋ก ๋ฌด์) → BCC ์ ํ, ๋จ์ ๊ธ์ A, BA ์ ํ, ๋จ์ ๊ธ์ B (2์๋ฆฌ ์์ด..
[React] ๋ฆฌ์กํธ์์ setTimeout ๋ ํธํ๊ฒ ์ฐ๊ธฐ
[React] ๋ฆฌ์กํธ์์ setTimeout ๋ ํธํ๊ฒ ์ฐ๊ธฐ
2024.05.28React์์ setTimeout ๊ฐ์ ํ์ด๋จธ API๋ฅผ ์ฌ์ฉํ ๋ ์ปดํฌ๋ํธ์ ์๋ช
์ฃผ๊ธฐ๋ฅผ ๊ณ ๋ คํ์ง ์์ผ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์๋ ์๊ธฐ์น ์์ ์์ธ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์๋ฅผ ๋ค์ด ํ์ด๋จธ๋ฅผ ์ค์ ํ ํ ์ปดํฌ๋ํธ๊ฐ ์ธ๋ง์ดํธ๋ผ๋ ํ์ด๋จธ๋ ์ฌ์ ํ ์คํ๋๊ณ , ์ดํ ํ์ด๋จธ ์ฝ๋ฐฑ์์ ์ธ๋ง์ดํธ๋ ์ปดํฌ๋ํธ์ ์ํ๋ฅผ ์
๋ฐ์ดํธํ๋ ค๊ณ ํ๋ฉด ์๋ฌ๊ฐ ๋ฐ์ํ ์ ์๋ค. ์ ๊ฐ์ ์ํฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด useEffect์ ํด๋ฆฐ์
ํจ์์ ํ์ด๋จธ ํด์ ๋ก์ง์ ์ถ๊ฐํ๋ค. ํ์ง๋ง ํ ์ปดํฌ๋ํธ์์ ์ฌ๋ฌ ํ์ด๋จธ๋ฅผ ๊ด๋ฆฌํด์ผ ํ๋ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ๋์ ๋ฟ๋ง ์๋๋ผ ํ์ด๋จธ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๋ก์ง ๋๋ฌธ์ ์ปดํฌ๋ํธ์ ๋ณต์ก์ฑ์ด ๋์์ง ์ ์๋ค. ๋ง์ฝ ๋ณ๋์ ์ปค์คํ
ํ
์์ ํ์ด๋จธ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ปค์คํ
ํ
์ด ์ธ๋ง์ดํธ ๋ ๋ ๋ชจ๋ ํ์ด๋จธ๋ฅผ ์๋์ผ๋ก ํด์ ํ๋ค๋ฉด ํด๋น ํ
์ ์ฌ์ฉํ๋ ๊ณณ์์ ..
[React] ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋ฐฐ๊ฒฝ ์ง์ ๋ฐ ํํ ๋ฆฌ์ผ
[React] ํฌ๋กฌ ํ์ฅ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ ๋ฐฐ๊ฒฝ ์ง์ ๋ฐ ํํ ๋ฆฌ์ผ
2024.05.28ํฌ๋กฌ ํ์ฅ๊ธฐ๋ฅ ์ฃผ์ ๊ธฐ๋ฅ์ฌ์ฉ์ ์ธํฐํ์ด์ค ์ฌ์ฉ์ํ : ๋ธ๋ผ์ฐ์ ํด๋ฐ์ ๋ฒํผ ์ถ๊ฐ, ์ฌ์ฉ์ ์ ์ ํ์
/์ค๋ฒ๋ ์ด ์์ฑ ๋ฑ์ฝํ
์ธ ์คํฌ๋ฆฝํธ : ์นํ์ด์ง์ ์ง์ ์คํฌ๋ฆฝํธ๋ฅผ ์ฝ์
ํ์ฌ DOM ์กฐ์ ๊ฐ๋ฅ๋ฐฑ๊ทธ๋ผ์ด๋ ์คํฌ๋ฆฝํธ : ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๋ ๋์ ์ง์์ ์ผ๋ก ์คํ๋ผ์ ํ์ํ ๊ธฐ๋ฅ ์ ๊ณตAPI ์ ๊ทผ : ๋ถ๋งํฌ/ํญ/์๋์ฐ ๊ด๋ฆฌ, ํ์คํ ๋ฆฌ ์กฐ์ ๋ฑ ๋ธ๋ผ์ฐ์ ์ ๋ค์ํ ์์ญ ์ ๊ทผ ๊ฐ๋ฅ๐ ํญ ์ด๋, capture, zoom ๋ฑ ๋ค์ํ ๋ฐฉ์์ผ๋ก ์ ์ด ๊ฐ๋ฅ๋ฉ์์ง ์์คํ
: ํ์ฅ ๊ธฐ๋ฅ์ ๋ค๋ฅธ ์ปดํฌ๋ํธ ํน์ ์นํ์ด์ง์ ๋ฉ์์ง ๊ตํ ๊ฐ๋ฅ์น ์์ฒญ ์กฐ์ : ๋คํธ์ํฌ ์์ฒญ ๊ฐ๋ก์ฑ๊ธฐ, ๊ด๊ณ ์ฐจ๋จ, ํ๋ผ์ด๋ฒ์ ๋ณดํธ, ์น ํธ๋ํฝ ๊ด๋ฆฌ ๋ฑ๐ chrome.webRequest API๋ก http ์์ฒญ์ ๊ฐ๋ก์ฑ๊ฑฐ๋ request header ์์ ๊ฐ๋ฅ์ฌ..
[Algorithm] ์๋ฐ์คํฌ๋ฆฝํธ Map์ผ๋ก ๊ตฌํํ๋ LRU Cache ์๊ณ ๋ฆฌ์ฆ
[Algorithm] ์๋ฐ์คํฌ๋ฆฝํธ Map์ผ๋ก ๊ตฌํํ๋ LRU Cache ์๊ณ ๋ฆฌ์ฆ
2024.05.28LRU ์บ์ ํน์ง์บ์(Cache)๋ ๋ฐ์ดํฐ๋ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ๋ ๊ฒ์ ๊ฐ๋ฆฌํจ๋ค. ์์ฃผ ์ฌ์ฉํ๋ ๋ฐ์ดํฐ๋ ์ฐ์ฐ ๊ฒฐ๊ณผ๋ฅผ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ณด๊ดํด์ ๋์ผํ ์ ๋ณด๋ฅผ ์์ฒญ๋ฐ์์ ๋ ๋ ๋น ๋ฅธ ์๋๋ก ์ ๊ณตํ ์ ์๋ค. LRU ์บ์๋ ๋ํ์ ์ธ ์บ์ ์๊ณ ๋ฆฌ์ฆ ์ค ํ๋๋ก ์ ํ๋ ์ ์ฅ ๊ณต๊ฐ์ ๊ด๋ฆฌํ๊ธฐ ์ํด ๊ฐ์ฅ ์ค๋์ ์ ์ฌ์ฉํ ๋ฐ์ดํฐ๋ฅผ ์ ๊ฑฐํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. LRU๋ Least Recently Used์ ์ฝ์๋ก ์ฌ์ฉํ์ง ๊ฐ์ฅ ์ค๋๋ ์ ๋๋ก ํด์ํ ์ ์๋ค. LRU ์บ์์์ ์กฐํ/์ฐ๊ธฐ์ ํด๋น ๊ฐ์ ๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉํ ๊ฒ์ผ๋ก ์ฒ๋ฆฌํ๋๊ฒ ํต์ฌ์ด๋ค. ์๋ฐ์คํฌ๋ฆฝํธ Map ๋ฑ์ ์ด์ฉํด์ ๊ตฌํํ ๋ ๊ฐ์ด ๋ค์ ์์นํ ์๋ก ๊ฐ์ฅ ์ต๊ทผ์ ์ฌ์ฉํ ๊ฒ์ผ๋ก ํ์ํ๋ค. ์กฐํ : ์บ์์ ๊ฐ์ด ์กด์ฌํ๋ฉด ํด๋น ๊ฐ์ ์บ์ ๋ง์ง๋ง(์ต์ )์ผ๋ก ์ด๋..