๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ384 ๐ ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript) ๊ธฐ๋ณธ ๋ค์ง๊ธฐ - Part 1 ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฌด์์ธ๊ฐ? ๋ณ์, ์ค์ฝํ, ํ์ , ์กฐ๊ฑด๋ฌธ๊น์ง ๊ธฐ์ด ์์ ์ ๋ณต!โ ์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ฌด์์ธ๊ฐ?์๋ฐ์คํฌ๋ฆฝํธ(JavaScript, JS)๋ ์นํ์ด์ง์ ๋์ ์ธ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ์ ์๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋๋ค.HTML์ด ๊ตฌ์กฐ, CSS๊ฐ ์คํ์ผ์ ๋ด๋นํ๋ค๋ฉด, JS๋ ๊ธฐ๋ฅ๊ณผ ์ํธ์์ฉ์ ๋ด๋นํฉ๋๋ค.๋ฒํผ ํด๋ฆญ ์ ํ์ ๋์ฐ๊ธฐ๋ก๊ทธ์ธ ํผ ์ ํจ์ฑ ๊ฒ์ฌ์๋ฒ์์ ๋ฐ์ดํฐ ๋ฐ์์ ํ์ด์ง์ ๋ ๋๋ง์ ๋๋ฉ์ด์ ํจ๊ณผ ๋ฑํ์ฌ๋ ๋ธ๋ผ์ฐ์ ๋ฅผ ๋์ด Node.js ํ๊ฒฝ์์๋ ๋ฐฑ์๋ ๊ฐ๋ฐ๊น์ง ๊ฐ๋ฅํ ์ ๋๋ก ๋ฒ์ฉ์ฑ์ด ๋์ด์.// ๊ฐ๋จํ ์๋ฐ์คํฌ๋ฆฝํธ ์์console.log("Hello, World!"); // ์ฝ์์ ํ ์คํธ ์ถ๋ ฅdocument.getElementById("demo").innerHTML = "ํ์ํฉ๋๋ค!"; // HTML ์์.. 2025. 4. 24. ๐ Git ์์ํ๊ธฐ: ๋ฒ์ ๊ด๋ฆฌ์ ์ฒซ ๊ฑธ์ ๊ฐ๋ฐ์ ์ฒ์ ์์ํ๋ฉด, ํ์ผ์ ๋ณต์ฌํด์ "์ต์ข ", "์ง์ง ์ต์ข ", "์ต์ต์ข "... ์ด๋ฐ ์์ผ๋ก ๋ฒ์ ๊ด๋ฆฌ๋ฅผ ํด๋ณธ ์ ์์ผ์ค ๊ฒ๋๋ค. ํ์ง๋ง ํ ํ๋ก์ ํธ๊ฐ ์์๋๋ฉด ์ด์ผ๊ธฐ๊ฐ ๋ฌ๋ผ์ง์ฃ . ์ฌ๋ฌ ๋ช ์ด ๋์์ ํ์ผ์ ์์ ํ๊ณ , ๊ธฐ๋ฅ์ ๋๋ ์ ๊ฐ๋ฐํ๋ค ๋ณด๋ฉด ์ฝ๋ ์ถฉ๋์ ๋ฌผ๋ก ์ด๊ณ "์ด๋ ๋ฒ์ ์ด ์ต์ ์ด์ง?"๋ผ๋ ํผ๋์ด ๋์ด์ง ์์ต๋๋ค. ์ด๋ ํ์ํ ๊ฒ ๋ฐ๋ก ๋ฒ์ ๊ด๋ฆฌ ์์คํ (VCS)์ด๊ณ , ๊ทธ์ค ๊ฐ์ฅ ๋๋ฆฌ ์ฐ์ด๋ ๋๊ตฌ๊ฐ ๋ฐ๋ก Git์ ๋๋ค.๐น Git์ด๋ ๋ฌด์์ธ๊ฐ?Git์ ๋ถ์ฐํ ๋ฒ์ ๊ด๋ฆฌ ์์คํ (Distributed Version Control System, DVCS)์ ๋๋ค.๋ฆฌ๋์ค ํ ๋ฅด๋ฐ์ฆ(Linus Torvalds)๊ฐ ๋ฆฌ๋ ์ค ์ปค๋ ๊ฐ๋ฐ์ ์ํด 2005๋ ์ ๋ง๋ ๋๊ตฌ๋ก, ํ๋ก์ ํธ์ ๋ณ๊ฒฝ ์ด๋ ฅ์ ์ฒด๊ณ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์.. 2025. 4. 24. ์น ํ์ด์ง ๋ ์ด์์ ์ ๋๋ก ์ก๊ธฐ ์คํ์ผ์ ๋ฉ์ง๊ฒ ์ ํ๋๋ฐ, ์์๋ค์ ์์น๊ฐ ์๋ง์ด๋ผ๋ฉด ์ฌ์ฉ์ ์ ์ฅ์์ ๋ถํธํ UI๊ฐ ๋ ์๋ฐ์ ์์ฃ .๊ทธ๋์ ์น ๊ฐ๋ฐ์์ ๊ฐ์ฅ ์ค์ํ๋ฉด์๋ ํท๊ฐ๋ฆฌ๋ ๋ถ๋ถ์ด ๋ฐ๋ก ๋ ์ด์์ ๊ตฌ์ฑ์ ๋๋ค. ์ด๋ฒ ๊ธ์์๋ ์ค๋ฌด์์๋ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ๋ ์ด์์ ๊ธฐ๋ฒ๋ค์ ์ ๋ฆฌํด ๋ณผ๊ฒ์.โ Flexbox๋ก ์์๋ฅผ ์ ์ฐํ๊ฒ ์ ๋ ฌํด ๋ณด์Flexbox๋ ์ผ๋ ฌ๋ก ์ ๋ ฌ๋๋ ์ฝํ ์ธ ๋ฅผ ๋ฐฐ์นํ ๋ ์ ๋ง ์ ์ฉํด์.ํนํ ์ ์ค์ ์ ๋ ฌ, ๊ฐ๊ฒฉ ์กฐ์ , ๋ฐ์ํ ๋ ์ด์์ ๋ฑ์ ํ์ํ์ฃ ..container { display: flex; justify-content: center; /* ๊ฐ๋ก ์ ๋ ฌ */ align-items: center; /* ์ธ๋ก ์ ๋ ฌ */ height: 100vh;} ๐ ์ฃผ์ ์์ฑ ์์ฝ์์ฑ์ค๋ช flex-direction์ฃผ์ถ ๋ฐฉ.. 2025. 4. 23. [DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 15์ผ์ฐจ ์ค๋์ ์ฒ์์ผ๋ก TypeScript(ํ์ ์คํฌ๋ฆฝํธ)๋ฅผ ์ ํ๋ค.๊ทธ๋์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก๋ง ์์ ํ๋ฉด์ “ํ์ ์ด ์์ด์ ํธํ๋ค”๋ ์๊ฐ๋ ์์์ง๋ง,์ค์ ๋ก ํ๋ก์ ํธ ๊ท๋ชจ๊ฐ ์ปค์ง์๋ก ์ฝ๋์ ๊ตฌ์กฐ๋ฅผ ๋ช ํํ ํํํ ์ ์๋ ๋๊ตฌ๊ฐ ํ์ํ๋ค๋ ๊ฑธ ์ค๋ ์ค์ต์ ํตํด ์ ๋๋ก ๋๊ผ๋ค.๐ ์ค๋ ๋ฐฐ์ด ๋ด์ฉ ์์ฝ1. TypeScript ๊ฐ์์ ๊ธฐ๋ณธ ๋ฌธ๋ฒTypeScript๋ JavaScript์ ์์ ์งํฉ(Superset)์ผ๋ก, ์ ์ ํ์ ์ ์ถ๊ฐํด ์ฝ๋์ ์์ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ฌ์ค๋ค.string, number, boolean ๊ฐ์ ๊ธฐ๋ณธ ํ์ ์ ์ธ ๋ฐฉ์๋ถํฐ, "north" | "south"์ฒ๋ผ ๋ฆฌํฐ๋ด ํ์ , interface๋ฅผ ํตํ ๊ฐ์ฒด ๊ตฌ์กฐ ์ ์, ํจ์ ๋งค๊ฐ๋ณ์ ๋ฐ ๋ฐํ๊ฐ์ ๋ช ํํ๊ฒ ํ์ ์ ์ง์ ํ๋ ๋ฐฉ์๊น์ง ์ค์ตํ๋ค.2. React.. 2025. 4. 23. [DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 14์ผ์ฐจ ์ค๋์ ๋๋์ด React๋ก ์ธ๋ถ API๋ฅผ ๋ถ๋ฌ์ค๊ณ , ์ค์ ๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ์ถ๋ ฅํด ๋ณด๋ ์ค์ต์ ์งํํ๋ค.๋ด์ค API๋ฅผ ์ฐ๋ํด์ ์นดํ ๊ณ ๋ฆฌ๋ณ ๋ด์ค๋ฅผ ๋ณด์ฌ์ฃผ๋ ๋ด์ค ๋ทฐ์ด ํ์ด์ง๋ฅผ ์ง์ ๋ง๋ค๋ฉด์,๊ทธ๋์ ๋ฐฐ์์๋ ๊ฐ๋ ๋ค์ด ์ด๋ป๊ฒ ์ฐ๊ฒฐ๋๋์ง๋ฅผ ์ค๊ฐํ ์ ์์๋ค.๐ ์ค๋ ๋ฐฐ์ด ์ฃผ์ ๋ด์ฉ ์ ๋ฆฌ1. ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๊ฐ๋ ๊ณผ ํ๋ฆsetTimeout์ผ๋ก ๊ตฌํ๋ ์ฝ๋ฐฑ ํจํด → Promise → async/await ์์ผ๋ก ๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์์ ํ๋ฆ์ ์ ๋ฆฌํ๋ค.async/await๋ฅผ ํ์ฉํ๋ฉด ๋ณต์กํ ๋น๋๊ธฐ ๋ก์ง๋ ๋๊ธฐ ์ฝ๋์ฒ๋ผ ์ฝํ๊ธฐ ์ฝ๊ฒ ์์ฑํ ์ ์์ด, ์ค์ ๋ก ์จ๋ณด๋ ์ ๋ง ๊น๋ํ๋ค๋ ์ธ์์ ๋ฐ์๋ค.2. ๋ด์ค API ์ฐ๋ ์ค์ตaxios๋ฅผ ์ด์ฉํด ๋ด์ค ๋ฐ์ดํฐ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋ถ๋ฌ์ค๊ณ ,์นดํ ๊ณ ๋ฆฌ ์ ํ์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ์กฐ๊ฑด๋ถ๋ก ์ถ๋ ฅํ๋ ๋ด.. 2025. 4. 22. [DevCourse] ์์ฑํ AI ํ์ฉ ๋ฐฑ์๋ ๋ฐ๋ธ์ฝ์ค 13์ผ์ฐจ ์ง๋ 12์ผ ์ฐจ ์์ ์ ๊ฑด๊ฐ ๋ฌธ์ ๋ก ์์ ์ ์ฐธ์ฌํ์ง ๋ชปํ์ง๋ง,๋คํํ ์ค๋ ์์ ์์ ์ ์ง๋ ์๊ฐ ๊ฐ๋ ์ ๋ค์ ๋ณต์ตํ๋ ์๊ฐ์ด ์์ด ํฐ ๋ฌด๋ฆฌ ์์ด ๋ฐ๋ผ๊ฐ ์ ์์๋ค.React์ Hook ๊ฐ๋ ๊ณผ Router ๊ตฌ์กฐ๋ฅผ ๋ฐฐ์ฐ๊ณ , Todo ๋ฆฌ์คํธ์ SPA๋ฅผ ์ง์ ๊ตฌํํ๋ ์ค์ต์ ํ๋ฉด์์กฐ๊ธ์ฉ React์ ์ค์ ํ์ฉ ๋ฐฉ์์ด ๊ฐ ์กํ๊ธฐ ์์ํ๋ค.๐ ์ค๋ ๋ฐฐ์ด ์ฃผ์ ๋ด์ฉ ์ ๋ฆฌ1. React์ ๋ค์ํ Hook ํ์ฉ๋ฒuseState์ useEffect๋ ์ด์ ์ต์ํด์ก๊ณ ,์ค๋์ ์ฌ๊ธฐ์ ๋ํด useReducer, useMemo, useCallback, useRef ๊ฐ์์ค์ ์์์ ์ํ ๊ด๋ฆฌ์ ์ต์ ํ๋ฅผ ์ํ ๊ณ ๊ธ Hook์ ๋ฐฐ์ ๋ค.ํนํ useReducer๋ ์ํ๊ฐ ์ฌ๋ฌ ๊ฐ์ด๊ฑฐ๋ ๋ณต์กํ ํผ ๋ก์ง์ ์ ์ฉํ๋ค๋ ๊ฑธ,์ง์ ์์ ๋ฅผ ๋ฐ๋ผ .. 2025. 4. 21. ์ด์ 1 ยทยทยท 8 9 10 11 12 13 14 ยทยทยท 64 ๋ค์ ๋ฐ์ํ