๐ช Programming
[Algorithm] ์ด์ง ํ์ ๋ฐ ๋ณํ ์๊ณ ๋ฆฌ์ฆ Binary Search Algorithm
[Algorithm] ์ด์ง ํ์ ๋ฐ ๋ณํ ์๊ณ ๋ฆฌ์ฆ Binary Search Algorithm
2024.06.02์ด์ง ํ์ ์๊ณ ๋ฆฌ์ฆ์ ์ ๋ ฌ๋ ๋ฐฐ์ด์์ ํน์ ๊ฐ์ ํจ์จ์ ์ผ๋ก ์ฐพ๊ธฐ ์ํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ์ด์ง ํ์์ ๊ฐ์ ํฌ๊ธฐ์ ๋ฐ๋ผ ํ์ ๋ฒ์๋ฅผ ์ ๋ฐ์ผ๋ก ์ค์ฌ๊ฐ๋ฉฐ ์ํ๋ ๊ฐ์ ์ฐพ์๋ด๋ ๋ฐฉ์์ผ๋ก ์๋ํ๊ธฐ ๋๋ฌธ์ ์๊ฐ ๋ณต์ก๋๋ $O(\log n)$์ผ๋ก ํจ์จ์ ์ด๋ค. ์๋ฅผ ๋ค์ด 1024๊ฐ ์์๋ฅผ ๊ฐ์ง ๋ฐฐ์ด์์ ์ํ๋ ๊ฐ์ ์ฐพ์ ๋ ์ต๋ 10๋ฒ์ ๋น๊ต๋ง ํ์ํ๋ค. ํ์ง๋ง ๋ฐ์ดํฐ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๋ค๋ฉด ๋งค๋ฒ ์ ๋ ฌ์ ํด์ค์ผ ํ๊ธฐ ๋๋ฌธ์ ํจ์จ์ฑ์ด ๋จ์ด์ง ์ ์๋ค. ๋ฐ์ดํฐ ์ฝ์
/์ญ์ ๊ฐ ๋น๋ฒํ ๊ฒฝ์ฐ์ ํด์ ํ
์ด๋ธ ๊ฐ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋๊ฒ ๋ ๋์ ์ ์๋ค. ๐ก ์ด์ง ํ์์ ์ด๋ถ ํ์์ด๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค. ์ด์ง ํ์ ๊ธฐ๋ณธ์ค์๊ฐ ๊ณ์ฐ๋ฐฐ์ด์ ์ค๊ฐ ์ธ๋ฑ์ค๋ฅผ ๊ณ์ฐํ๋ค mid = Math.floor((left + right) / 2)์ค์๊ฐ๊ณผ ์ฐพ๊ณ ์ ํ๋ ..
[Network] ์ฃ์ง ํ๋ซํผ ์ํคํ
์ฒ Edge Platform Architecture
[Network] ์ฃ์ง ํ๋ซํผ ์ํคํ ์ฒ Edge Platform Architecture
2024.06.02์๋ฒ-ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ๋ ๊ฐ์ฅ ์ ํต์ ์ธ ์ํคํ
์ฒ ์ค ํ๋๋ก, ์ค์ ์๋ฒ๊ฐ ๋ชจ๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๊ฐ๋
์ด๋ค. ์ฆ, ๋ชจ๋ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์ค์ ์๋ฒ๋ก ์ ์ก๋๋ค. ์๋ฒ - ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ๋ ๊ฐ๋จํ๊ณ ๊ตฌํํ๊ธฐ ์ฌ์ด ์ฅ์ ์ด ์์ง๋ง, ์ค์ ์๋ฒ๊ฐ ๋จ์ผ ์์กด ์ง์ ์ด๋ผ๋ ๋จ์ ์ด ์๋ค. ์ ์๋์ด ๋ง์ ๊ฒฝ์ฐ ์ฑ๋ฅ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์๋น์ค๊ฐ ์ค๋จ๋ ์๋ ์๋ค. ๋ํ, ์ค์ ์๋ฒ์ ๋ฌผ๋ฆฌ์ ์์น๊ฐ ๊ณ ์ ๋์ด ์์ด ์ฌ์ฉ์์ ์ก์ธ์ค ์๋๊ฐ ์ง๋ฆฌ์ ์์น์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฐ๋๋ค. ๋์ผ ์กฐ๊ฑด์์ ์๋ฒ์ ๊ฐ๊น์ธ์๋ก ์ก์ธ์ค ์๋๊ฐ ๋นจ๋ผ์ง๊ณ , ์๋ฒ์์ ๋ฉ์ด์ง์๋ก ์ก์ธ์ค ์๋๊ฐ ๋๋ ค์ง๋ค. CDN์ ์ถํ์ค์ ์๋ฒ์ ๋ถ๋ด์ ์ค์ด๊ณ , ์ฌ์ฉ์์์ ์ง๋ฆฌ์ ๊ฑฐ๋ฆฌ๋ฅผ ๋จ์ถํ๊ธฐ ์ํด CDN ์ํคํ
์ฒ๊ฐ ๋ฑ์ฅํ๋ค. CDN..
[HTML/CSS] ์ํ๋ ์์น์ ๋
ธ๋ ์ฝ์
ํ๊ธฐ — insertAdjacentHTML
[HTML/CSS] ์ํ๋ ์์น์ ๋ ธ๋ ์ฝ์ ํ๊ธฐ — insertAdjacentHTML
2024.06.02insertAdjacentHTML vs innerHTMLelement.insertAdjacentHTML(position, htmlString) element.insertAdjacentHTML() ๋ฉ์๋๋ ์ธ์๋ก ์ ๋ฌํ ๋ฌธ์์ด(htmlString)์ HTML๋ก ํ์ฑํด์ ์ง์ ๋ ์์น(position)์ ์ฝ์
ํ๋ ๋ฉ์๋๋ค. ์ฌ์ฉ์ ์
๋ ฅ์ ๋ฐ์ง ์๋ ๊ณณ์ ์ฌ์ฉํ๋ฉด createElement() ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ ๋ณด๋ค ๊ฐํธํ๊ฒ ์์๋ฅผ ์ฝ์
ํ ์ ์๋ค. ์ฌ์ฉ์ ์
๋ ฅ์ ๋ฐ์์ ์ฒ๋ฆฌํ ๋๋ XSS ๊ณต๊ฒฉ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ณ๋์ sanitizing์ด ํ์ํ๋ค. ๋น์ทํ ๋ฉ์๋๋ก element.innerHTML()์ด ์์ง๋ง ์ฝ์
์์น๋ฅผ ์ง์ ํ ์ ์๊ณ , ๊ธฐ์กด ์์๋ฅผ ๋ฎ์ด์ฐ๊ธฐ ๋๋ฌธ์ ์ ์ฒด ์์๋ฅผ ๋ค์ ํ์ฑํด์ผ ํ๋ ๋จ์ ์ด ์..
[Next.js] App Router / ์๋ฒ ์ปดํฌ๋ํธ ์ฃผ์ ๋ด์ฉ ์ ๋ฆฌ
[Next.js] App Router / ์๋ฒ ์ปดํฌ๋ํธ ์ฃผ์ ๋ด์ฉ ์ ๋ฆฌ
2024.06.01App Router vs Page Router๊ธฐ๋ฅ์ฑ ๋ผ์ฐํฐํ์ด์ง ๋ผ์ฐํฐ๋ผ์ฐํ
ํ์
์๋ฒ ์ค์ฌํด๋ผ์ด์ธํธ ์ฌ์ด๋์๋ฒ ์ปดํฌ๋ํธ ์ง์OX๋ณต์ก๋๋ ๋ณต์กํจ๋ ๊ฐ๋จํจ์ฑ๋ฅ๋ ์ข์๋ ๋์จ์ ์ฐ์ฑ๋ ์ ์ฐํจ๋ ์ ์ฐํจํ์ผ ๊ธฐ๋ฐ ๋ผ์ฐํ
์ค์ฒฉ ํด๋๋ฅผ ์ฌ์ฉํด ๋ผ์ฐํธ ์ ์ํ์ผ์ด ์ง์ ๋ผ์ฐํธ๋ฅผ ๋ํ๋์ปดํฌ๋ํธ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ฒ ์ปดํฌ๋ํธ๊ธฐ๋ณธ์ ์ผ๋ก ํด๋ผ์ด์ธํธ ์ปดํฌ๋ํธ๋ฐ์ดํฐ ํ์นญfetch ํจ์ ์ฌ์ฉgetServerSideProps, getStaticProps, getInitialProps ์ฌ์ฉ๋ ์ด์์๋ ์ด์์ ์ค์ฒฉ / ๋์ ๋ ์ด์์์ ์ ๋ ์ด์์๋์ ๋ผ์ฐํธ์ง์ํ์ง๋ง ๋ฌธ๋ฒ ๋ค๋ฆLink ์ปดํฌ๋ํธ๋ก ์ง์์ฐ์ ์์ํ์ด์ง ๋ผ์ฐํฐ๋ณด๋ค ์ฐ์ ์ฑ ๋ผ์ฐํธ๊ฐ ์์ ๊ฒฝ์ฐ ๋์ฒด ์๋ฒ ์ปดํฌ๋ํธNext.js ๋ฒ์ 13~๋ถํฐ ์ ๊ณตํ๋ App Router๋ฅผ ์ฌ์ฉํ๋ฉด ์๋ฒ ์ปดํฌ๋ํธ๊ฐ ..
[Algorithm] ๋ฏธ๋๋งฅ์ค / ์ํ-๋ฒ ํ ๊ฐ์ง์น๊ธฐ ์๊ณ ๋ฆฌ์ฆ ํบ์๋ณด๊ธฐ
[Algorithm] ๋ฏธ๋๋งฅ์ค / ์ํ-๋ฒ ํ ๊ฐ์ง์น๊ธฐ ์๊ณ ๋ฆฌ์ฆ ํบ์๋ณด๊ธฐ
2024.06.01๋ฏธ๋๋งฅ์ค ์๊ณ ๋ฆฌ์ฆ๊ฐ๋
๐ก ์ ๋ก์ฌ ๊ฒ์์ ํ ํ๋ ์ด์ด๊ฐ ์ด๋์ ์ป์ผ๋ฉด ๋ค๋ฅธ ํ๋ ์ด์ด๋ ๊ทธ๋งํผ ์ํด๋ฅผ ๋ณด๋ ๊ฒ์์ ๊ฐ๋ฆฌํจ๋ค. ๋ฏธ๋๋งฅ์ค ์๊ณ ๋ฆฌ์ฆ์ ํฑํํ , ์ฒด์ค์ฒ๋ผ 2๋ช
์ด ์ฐธ์ฌํ๋ ์ ๋ก์ฌ ๊ฒ์์์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉํ๋ ์๊ณ ๋ฆฌ์ฆ์ผ๋ก, ๋ชจ๋ ํ๋ ์ด์ด๊ฐ ์ต์ ์ ์๋ฅผ ๋๋ค๊ณ ๊ฐ์ ํ๊ณ ๊ฐ๋ฅํ ๋ชจ๋ ์๋ฅผ ๊ณ ๋ คํ์ฌ ์น๋ฆฌํ ์ ์๋ ์ ๋ต์ ๋์ถํ ๋ ์ฌ์ฉํ๋ค. X ํ๋ ์ด์ด๋ ์น๋ฆฌํ๊ธฐ ์ํด ์ต๋ ์ ์๋ฅผ ์ป์ผ๋ ค ํ๊ณ , O ํ๋ ์ด์ด๋ ํจ๋ฐฐํ์ง ์๊ธฐ ์ํด ์ต์ ์ ์๋ฅผ ์ป์ผ๋ ค ํ๋ ์ํฉ์์ ์ต์ ์ ํด๋ฅผ ์ฐพ๋ ๋ฐฉ๋ฒ์ด๋ค. ํ์ฌ X ํ๋ ์ด์ด ์ฐจ๋ก์ด๊ณ , X ํ๋ ์ด์ด๊ฐ ์ ํํ ์ ์๋ ๊ณณ์ 1, 4, 5๋ฒ ์ธ๋ฑ์ค(Zero-Based)๋ผ๊ณ ๊ฐ์ ํด ๋ณธ๋ค. X๊ฐ ์ด๊ธฐ๋ฉด +100์ , O๊ฐ ์ด๊ธฐ๋ฉด -100์ ์ ํ๋ํ๋ค. ๋ณด๋์ ๋ชจ๋ ์๋ฅผ ๋์ง๋ง ๋ฌด์น..
[React] ํฑํํ (Tic-Tac-Toe) ๊ฒ์ ์ฃผ์ ๋ก์ง ํบ์๋ณด๊ธฐ
[React] ํฑํํ (Tic-Tac-Toe) ๊ฒ์ ์ฃผ์ ๋ก์ง ํบ์๋ณด๊ธฐ
2024.05.30ํฑํํ ์๊ฐํฑํํ ๋ 2๋ช
์ ํ๋ ์ด์ด๊ฐ ์์ ์ ๊ธฐํธ(X, O) 3๊ฐ๋ฅผ ๊ฐ๋ก, ์ธ๋ก, ๋๊ฐ์ ์ผ๋ก ์ฐ์ํด์ ๋์ด๋๋ก ํ๋ ๋ณด๋ ๊ฒ์์ด๋ค. ๊ฒ์์ ์ฃผ๋ก 3x3 ๊ฒฉ์ ๋ณด๋์์ ์งํ๋๋ค. ํ๋ ์ด์ด๋ ๋ฒ๊ฐ์๊ฐ๋ฉด์ ์์ ์ ๊ธฐํธ๋ฅผ ๋๊ณ , ํ ์นธ์ ํ ๊ฐ์ ๊ธฐํธ๋ง ๋์ ์ ์๋ค. ๋ชจ๋ ์นธ์ ๊ธฐํธ๋ฅผ ๋์์ง๋ง ์ด๋ ํ์ชฝ๋ ์ฐ์์ ์ธ ์ธ ๊ฐ์ ๊ธฐํธ๋ฅผ ๋ฐฐ์ดํ์ง ๋ชปํ๋ฉด ๊ฒ์์ ๋ฌด์น๋ถ๋ก ๋๋๋ค(๋ฌด์น๋ถ๊ฐ ๋ง์ ๊ฒ์). ์น๋ฆฌ ์กฐ๊ฑด ์ฒดํฌํฑํํ ๋ ํ๋ ฌ๋ก ์ด๋ค์ง 2์ฐจ์ ๋ณด๋์์ ์งํํ์ง๋ง, 1์ฐจ์ ๋ฐฐ์ด๋ก ๊ด๋ฆฌํ๋ฉด ๊ฐ ์นธ์ ๋จ์ผ ์ธ๋ฑ์ค๋ก ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๋ ์์ํ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค. ๊ฒ์ ๋ก์ง์ ๊ตฌํํ ๋๋ ์ธ๋ฑ์ค ๊ณ์ฐ์ ๋จ์ํ์์ผ ์ฝ๋์ ๋ณต์ก์ฑ์ ์ค์ด๋ ๋ฐ ๋์์ด ๋๋ค. ๋ํ, 1์ฐจ์ ๋ฐฐ์ด์ ๊ทธ๋ฆฌ๋ ์คํ์ผ์ ์ด์ฉํด 2์ฐจ์ ๋ณด..
[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..