์ ์ฒด ๊ธ
-
React.js json() ์ ํธ๋ฆฌํฐ ํจ์ (React Router)
json() ์ ํธ๋ฆฌํฐ ํจ์ (React Router)๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ผ์ฐํฐ(React Router)์์ ์ ๊ณตํ๋ json() ์ ํธ๋ฆฌํฐ ํจ์์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. json()๊ฐ๋ ๋ฆฌ์กํธ ๋ผ์ฐํฐ(React Router)์์ ์ ๊ณตํ๋ ํจ์React Router v6.4์์ ์ถ๊ฐ๋ ์ ํธ๋ฆฌํฐ ํจ์์ฃผ๋ก ๋ผ์ฐํฐ ํธ๋ค๋ฌ์์ ์ฌ์ฉ๋๋ฉฐ, JSON ํ์์ ๋ฐ์ดํฐ๋ฅผ ์๋ต(Response)์ผ๋ก ๋ฐํํ๋ค. ํน์ง์๋ ์ค์ ๋ Content-Typejson() ํจ์๋ ๋ฐํ๋ ์๋ต์ Content-Type ํค๋๋ฅผ application/json์ผ๋ก ์๋์ผ๋ก ์ค์ ํ๋ค.๊ฐํธํ ์ฌ์ฉJSON ํ์์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํํ๋๋ฐ ํ์ํ ์ฝ๋๋ฅผ ๊ฐ์ํํ์ฌ, ๊ฐ๋ฐ์๊ฐ ๋ณด๋ค ์ง๊ด์ ์ด๊ณ ๊ฐํธํ๊ฒ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค.์ํ(Status) ์ฝ๋ ์ค์ ๊ฐ๋ฅ..
0 2024.07.05 -
JavaScript JSON(JavaScript Object Notation) ๋ค๋ฃจ๊ธฐ
JSON(JavaScript Object Notation) ๋ค๋ฃจ๊ธฐ๋ค์ด๊ฐ๋ฉฐ์น ์๋ฒ ๋ฟ๋ง ์๋๋ผ ๋ค์ํ ๊ณณ์์ ๋ฐ์ดํฐ๋ฅผ ๊ตํํ ๋ ์ฌ์ฉ๋๋ ํ์ผ ํ์์ธ JSON(JavaScript Object Notation)์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. JSON(JavaScript Object Notation)๊ฐ๋ ๋ฐ์ดํฐ ๊ตํ ํ์์ผ๋ก ๋๋ฆฌ ์ฌ์ฉ๋๋ฉฐ, ๋ฌธ์์ด๋ก ์ธ์ฝ๋ฉ๋ ๊ฐ์ฒด๋ฅผ ํฌํจํ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ๋ฅผ ํํํ๋ค.์๋ฐ์คํฌ๋ฆฝํธ๋ JSON ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํด JSON ๊ฐ์ฒด๋ฅผ ์ ๊ณตํ๋ค. ์ฃผ์ ๋ฉ์๋JSON ๊ฐ์ฒด์ ์ฃผ์ ๋ฉ์๋๋ก๋ JSON.stringify()์ JSON.parse()๊ฐ ์๋ค. โ JSON.stringfy()์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด({ prop: value, ... })๋ ๋ฐฐ์ด([value1, ..., valueN])..
0 2024.07.05 -
React.js useRouterError ํ (React Router)
useRouterError ํ ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ผ์ฐํฐ(React Router)์ useRouterError ํ ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. useRouterError ํ ๊ฐ๋ ๋ฆฌ์กํธ ๋ผ์ฐํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ(react-router-dom)์์ ์ ๊ณตํ๋ ํ ๋ผ์ฐํธ ์ฒ๋ฆฌ ์ค ๋ฐ์ํ ์๋ฌ๋ฅผ ์ก์์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.์ฃผ๋ก ์ค๋ฅ ๊ฒฝ๊ณ(Error Boundary)์ ํจ๊ป ์ฌ์ฉ๋์ด, ๋ผ์ฐํธ ๋ด์์ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ฌ์ฉ์์๊ฒ ์ ์ ํ ํผ๋๋ฐฑ์ ์ ๊ณตํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์ฃผ์ ๊ธฐ๋ฅ์ค๋ฅ ๊ฐ์ง: ๋ผ์ฐํธ ์ปดํฌ๋ํธ์์ ๋ฐ์ํ๋ ์ค๋ฅ๋ฅผ ๊ฐ์งํ ์ ์๋ค.์๋ฌ ํธ๋ค๋ง: ๊ฐ์ง๋ ์ค๋ฅ๋ฅผ ์ฌ์ฉ์ ์ ์ ์๋ฌ ๋ฉ์์ง๋ ์ปดํฌ๋ํธ๋ก ๋ ๋๋งํ ์ ์๋ค.์ค๋ฅ ์ ๋ณด ์ ๊ณต: ์ค๋ฅ ๊ฐ์ฒด๋ฅผ ๋ฐํํ์ฌ ์ค๋ฅ ๋ฉ์์ง, ์คํ ํธ๋ ์ด์ค ๋ฑ์ ํ์ฉํ ์ ์๋ค. ์ฌ์ฉ ์์ ์์ 1..
0 2024.07.05 -
React.js React Router์ loader ์์ฑ
React Router์ loader ์์ฑ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ ๋ผ์ฐํฐ(react-router-dom)์ loader ์์ฑ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. React Router์ loader ์์ฑReact Router Version 6 ๋ถํฐ ์ฌ์ฉํ ์ ์๋ค.์ปดํฌ๋ํธ๊ฐ ๋๋๋ง๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋ค.๋ก๋ ํจ์์์ ๋ฐํ๋ ๋ฐ์ดํฐ๋ ์๋์ผ๋ก ํด๋น ์ปดํฌ๋ํธ์์ ์ฌ์ฉํ ์ ์๊ฒ ๋๋ค.๋ก๋๋ ํจ์๋ก ์ ์๋๋ฉฐ, ํด๋น ํจ์์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ ์ปดํฌ๋ํธ์ ์ ๋ฌํ๋ค.๋ก๋ ํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ๊ฐ ๋ ๋๋ง๋๊ธฐ ์ ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ด, ์ปดํฌ๋ํธ๊ฐ ์ด๊ธฐ ๋ก๋ฉ ์ํ๋ฅผ ํ์ํ์ง ์๊ณ ๋ฐ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋งํ ์ ์๋ค.๋ฐ๋ผ์ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์๋ค. ์์ ์ฝ๋import { RouterProvider, cre..
0 2024.07.03 -
React.js ๋ผ์ฐํฐ ์ค์ ๋ฐฉ๋ฒ (React Router)
๋ผ์ฐํฐ ์ค์ ๋ฐฉ๋ฒ (React Route)๋ค์ด๊ฐ๋ฉฐReact Router(react-router-dom)์ ์ด์ฉํ์ฌ ๋ผ์ฐํฐ๋ฅผ ์ค์ ํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒํจํค์ง ์ค์นํ๊ธฐreact-router-dom ํจํค์ง๋ฅผ ์ค์นํ๋ ค๋ฉด ํฐ๋ฏธ๋์ ์๋ ๋ช ๋ น์ ์คํํ๋ค.$ npm install react-router-dom # yarn add react-router-dom ๋ฐฉ๋ฒ 1createBrowserRouter๋ฅผ ์ด์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค.import { createBrowserRouter, RouterProvider,} from "react-router-dom";import HomePage from "./pages/Home";import ProductsPage from "./pages/Products";co..
0 2024.07.02 -
React.js ๋ฆฌ์กํธ์์์ ์ํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ
๋ฆฌ์กํธ์์์ ์ํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ๋ฆฌ์กํธ(React)์์ ์ํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ณด์.๋ฆฌ์กํธ์์๋ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด ์ฌ๋ฌ ๊ฐ์ง ๋ฐฉ๋ฒ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ์ํฉ์ ๋ฐ๋ผ ์ ์ ํ ๋ฐฉ๋ฒ์ ์ ํํ๋ ๊ฒ์ด ์ค์ํ๋ค. ์ํ ๊ด๋ฆฌ ๋ฐฉ๋ฒ1. ์ง์ญ ์ํ(Local State)๋ฆฌ์กํธ์ useState ํ ์ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ ๋ด๋ถ์์ ์ํ๋ฅผ ๊ด๋ฆฌํ ์ ์๋ค.์์ ๊ท๋ชจ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด๋ ๋จ์ผ ์ปดํฌ๋ํธ์์ ์ํ ๊ด๋ฆฌ๊ฐ ํ์ํ ๊ฒฝ์ฐ ์ ํฉํ๋ค.import React, { useState } from 'react';function Counter() { const [count, setCount] = useState(0); return ( You clicked {count} times setCount(count..
0 2024.06.30 -
React.js <form> ์์์์ ์ ์ถ(Submit) ๋ฒํผ ์ฌ์ฉ ์ ๊ธฐ๋ณธ ๋์ ๋ง๋ ๋ฐฉ๋ฒ
์์์์ ์ ์ถ(Submit) ๋ฒํผ ์ฌ์ฉ ์ ๊ธฐ๋ณธ ๋์ ๋ง๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ ์์ ์์ type์ด submit์ธ ๋ฒํผ์ ๋๊ณ , ํด๋ฆญํ ๋, ํผ ์ ์ถ ํจ๊ณผ๊ฐ ๋ฐ์ํ๋ค.ํด๋น ๋ฒํผ์ ํด๋ฆญํ ๋ ํผ ๋ฐ์ดํฐ๊ฐ ์๋ฒ๋ก ์ ์ก๋๋ฉด์ ํ์ด์ง๊ฐ ์๋ก๊ณ ์นจ ๋๋๋ฐ, ์ด๊ฒ์ ํผ์ ๊ธฐ๋ณธ ๋์์ด๋ค. // ... ์ ์ถ ์ด๋ ํผ ์ ์ถ ํจ๊ณผ ๋ง์ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ๋ฐฉ๋ฒ 1 : ์์์ type ์์ฑ์ button์ผ๋ก ์ง์ ํ๊ธฐ ์์์ type ์์ฑ์ submit์ด ์๋ button์ผ๋ก ์ง์ ํ๋ ๋ฐฉ๋ฒ์ด๋ค.function handleSubmit() { console.log("Submitted!");} ๋ก๊ทธ์ธ ๋ฐฉ๋ฒ 2 : ์์์ onClick ์ด๋ฒคํธ ํจ์์ event...
0 2024.06.28 -
JavaScript Intl.NumberFormat ๊ฐ์ฒด
Intl.NumberFormat ๊ฐ์ฒด๋ค์ด๊ฐ๋ฉฐ์๋ฐ์คํฌ๋ฆฝํธ(JavaScript)์ Intl.NumberFormat ๊ฐ์ฒด์ ๋ํด ์์๋ณด์.Intl.NumberFormat ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๋ฉด ์ซ์๋ฅผ ํน์ ๋ก์ผ์ผ๊ณผ ์ต์ ์ ๋ง์ถฐ ํฌ๋งทํ (Formatting) ํ ์ ์๋ค. Intl.NumberFormat ๊ฐ์ฒด๊ฐ๋ ์ํฌ๋ง์คํฌ๋ฆฝํธ(ECMAScript) ๊ตญ์ ํ API์ ์ผ๋ถ๋ก, ์ซ์์ ํ์์ ์ง์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.๋ก์ผ์ผ(Locale)๊ณผ ์ต์ (Option)์ ์ฌ์ฉํ์ฌ ์ซ์์ ํ์์ ์ธ๋ถ์ ์ผ๋ก ์ง์ ํ ์ ์๋ค. ์ฃผ๋ก ํตํ, ์์์ ์๋ฆฌ์, ์ซ์ ๊ทธ๋ฃนํ ๋ฑ์ ํ์์ ์ง์ ํ๋๋ฐ ์ฌ์ฉ๋๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒnew Intl.NumberFormat(locales, options) locales๋ก์ผ์ผ ์ง์ ๋ก์ผ์ผ(Locale)์ปดํจํฐ ํ๋ก๊ทธ..
0 2024.06.28 -
React.js memo() ์ฌ์ฉํ ๋ ์ฃผ์ํ ์
memo() ์ฌ์ฉํ ๋ ์ฃผ์ํ ์ ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์ memo()๋ฅผ ์ฌ์ฉํ ๋ ์ฃผ์ํ ์ ์ ์ ๋ฆฌํด๋ณธ๋ค. memo()๊ฐ๋ ํจ์ํ ์ปดํฌ๋ํธ๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ (Memoization)ํ์ฌ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ๋ฐฉ์งํ๋ ์ญํ ์ ํ๋ค.์ฃผ๋ก ์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํด ์ฌ์ฉ๋๋ค.import { memo } from 'react';const MyComponent = memo(function MyComponent({ prop1, prop2 }) => { // ...});export default MyComponent; ๊ธฐ๋ณธ์ ์ผ๋ก ์ปดํฌ๋ํธ์ props๊ฐ ๋ณ๊ฒฝ๋์ง ์์ผ๋ฉด ์ปดํฌ๋ํธ๋ฅผ ๋ค์ ๋ ๋๋งํ์ง ์๋๋ค.props์ ์์ ๋น๊ต(Shallow Comparison)๋ฅผ ํตํด ์ด๋ฃจ์ด์ง๋ค.์์ ๋น๊ต๋ ๊ธฐ๋ณธ ์๋ฃํ(์ซ์, ๋ฌธ..
0 2024.06.25 -
VS Code JavaScript ๊ธฐ๋ณธ ํญ ๋ค์ฌ์ฐ๊ธฐ(Indent) ๊ฐ๊ฒฉ ์ค์ ๋ฐฉ๋ฒ (settings.json)
JavaScript ํญ ๊ธฐ๋ณธ ๋ค์ฌ์ฐ๊ธฐ(Indent) ๊ฐ๊ฒฉ ์ค์ ๋ฐฉ๋ฒ (settings.json)๋ค์ด๊ฐ๋ฉฐJavaScript ์ฝ๋๋ฅผ VS Code์์ ์์ฑํ ๋, ๊ธฐ๋ณธ ํญ ๋ค์ฌ์ฐ๊ธฐ(Indent)๋ฅผ ์ง์ ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ๋ฐฉ๋ฒVS Code์์ [Ctrl]([Cmd]) + [Shift] + [P]๋ฅผ ๋๋ฌ์ Settings์ ๊ฒ์ํ์ฌ [Preferences: Open User Settings (JSON)] ํญ๋ชฉ์ ํด๋ฆญํ๋ค. Settings.json ํ์ผ ์์ ๋ด์ฉ์ด ์๋ํฐ์ ํ์๋๋๋ฐ, ์๋์ ๋ด์ฉ์ ์ถ๊ฐํด์ค๋ค.{ // ... // I want my default to be 4, but JavaScript/JSON to be 2 "editor.tabSize": 4, "[javasc..
0 2024.06.25 -
React.js useEffect์ useCallback
useEffect์ useCallback๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ์์ ์ฌ์ฉ๋๋ useCallback๊ณผ useEffect์ ๋ํด ์์๋ณด์. useCallback๋ฆฌ์กํธ์์ ํจ์๋ฅผ ๋ฉ๋ชจ์ด์ ์ด์ (Memoization)ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.๋ถํ์ํ ํจ์์ ์ฌ์์ฑ์ ๋ฐฉ์งํ๊ณ , ํจ์๊ฐ ์์กดํ๋ ๊ฐ์ด ๋ณ๊ฒฝ๋ ๋๋ง ์๋ก์ด ํจ์๋ฅผ ์์ฑํ๋๋ก ํ ์ ์๋ค. ์์ ์ฝ๋์๋์ ์ฝ๋์์ handleClick ํจ์๋ count ๋ณ์๊ฐ ๋ณ๊ฒฝ๋ ๋๋ง ์ฌ์์ฑ ๋๋ค.๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ handleClick ํจ์๋ ์ฌ์์ฑ๋์ง ์์ผ๋ฉฐ, ๊ฐ์ ํจ์๋ฅผ ๊ณ์ ์ฌ์ฉํ๊ฒ ๋๋ค.์ด๋ ๊ฒ ํ ๊ฒฝ์ฐ ํจ์์ ์ฌ์์ฑ์ ์ต์ํํ์ฌ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํ๋๋ฐ ๋์์ ์ค ์ ์๋ค.import React, { useCallback, useState } from 'rea..
0 2024.06.24 -
Python ๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ํ ๋ ๊ฒฐ์ธก๊ฐ ์ ๊ฑฐ ๋ฐฉ๋ฒ (Pandas)
๋ฐ์ดํฐ ์ ์ฒ๋ฆฌ ํ ๋ ๊ฒฐ์ธก๊ฐ ์ ๊ฑฐ ๋ฐฉ๋ฒ (Pandas)๋ค์ด๊ฐ๋ฉฐ๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌํ ๋ ํ๋ค์ค(Pandas)๋ฅผ ์ด์ฉํ์ฌ ๊ฒฐ์ธก๊ฐ์ ์ ๊ฑฐํ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ๋ณดํต ๋ค์๊ณผ ๊ฐ์ด df.dropna()๋ฅผ ์ด์ฉํ ์๋ ์์ผ๋, ๋ฐ์ดํฐ์ ๊ณต๋ฐฑ(' ')์ด ์์ ๊ฒฝ์ฐ ์ ๊ฑฐํ์ง ๋ชปํ๋ค๋ ๋จ์ ์ด ์๋ค.df['column'] = df['column'].dropna() ๊ทธ๋์ ๋ค์๊ณผ ๊ฐ์ด pd.to_numeric()์ ๋จผ์ ์จ์ ๊ณต๋ฐฑ(' '), NaN ๋ฑ ๊ฒฐ์ธก๊ฐ์ ์ ๋ถ NaN์ผ๋ก ๋ฐ๊ฟ์ค ํ, dropna()๋ฅผ ์ ์ฉ์์ผ์ฃผ๋ฉด ๋ชจ๋ ๊ฒฐ์ธก์น๋ค์ ์ ๊ฑฐํ ์ ์๋ค.df['column'] = pd.to_numeric(df['column']) # ๊ณต๋ฐฑ, NaN ๋ฑ ๋ชจ๋ ๊ฒฐ์ธก์น๋ค์ NaN์ผ๋ก ๋ฐ๊พธ๊ธฐdf['colu..
1 2024.06.21 -
React.js useReducer ํ
useReducer ํ ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ ์ฌ์ฉ๋๋ useReducer ํ ์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค. useReducer ๊ฐ๋ ์ปดํฌ๋ํธ์ ๋ฆฌ๋์(Reducer)๋ฅผ ์ถ๊ฐํ๋ ๋ฆฌ์กํธ ํ const [state, dispatch] = useReducer(reducer, initialArg, init?) (์ฐธ๊ณ ) ๋ฆฌ๋์ค(Reduce, reduce())๋ฐฐ์ด์ ๊ฐ ์์์ ๋ํด ์ ๊ณต๋ ํจ์(callback ํจ์)๋ฅผ ์คํํ๊ณ ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํํ๋ ๋ฉ์๋๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ๋์ (Accumulate)ํ์ฌ ๋จ์ผ ๊ฐ์ผ๋ก ์ค์ด๋ ์ญํ ์ ํ๋ค.์ฃผ๋ก ํฉ๊ณ, ํ๊ท , ์ต๋๊ฐ, ์ต์๊ฐ, ๊ฐ์ฒด ์์ฑ ๋ฑ ๋ค์ํ ๊ฒฝ์ฐ์ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.const array = [1, 2, 3, 4, 5];const result = a..
0 2024.06.07 -
Tailwind CSS whitespace-pre-wrap ํด๋์ค
whitespace-pre-wrap ํด๋์ค๋ค์ด๊ฐ๋ฉฐํ ์ผ์๋(Tailwind) CSS์ whitespace-pre-wrap ํด๋์ค์ ๋ํด ์์๋ณด์. whitespace-pre-wrapTailwind CSS์์ ์ฌ์ฉํ๋ ์ ํธ๋ฆฌํฐ ํด๋์ค ์ค ํ๋๋ก, HTML ์์ ๋ด์ ํ ์คํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ง์ ํ๋ค.์ด ํด๋์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํ ์คํธ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ฒ๋ฆฌํ ์ ์๋ค. ๊ณต๋ฐฑ ์ ์งํ ์คํธ ๋ด์ ์ฐ์๋ ๊ณต๋ฐฑ์ ์ ์งํ๋ค.์ฌ๋ฌ ๊ฐ์ ๊ณต๋ฐฑ์ด ์์ด๋ ํ๋๋ก ์ถ์ฝ๋์ง ์๋๋ค. ๊ฐ์ ์ค๋ฐ๊ฟํ ์คํธ ๋ด์ ์ค๋ฐ๊ฟ ๋ฌธ์๋ฅผ ์ ์งํ๋ค.ํ ์คํธ์ ํฌํจ๋ ์ค๋ฐ๊ฟ(\n)์ ์ค์ ๋ก ์ค๋ฐ๊ฟ์ด ๋๋ค. ์๋ ์ค๋ฐ๊ฟํ ์คํธ๊ฐ ์์์ ๋๋น๋ฅผ ์ด๊ณผํ๋ฉด ์๋์ผ๋ก ์ค์ด ๋ฐ๋๋ค.์ด ํด๋์ค๋ white-space: pre-wrap; CSS ์์ฑ๊ณผ ๋์ผํ ํจ..
0 2024.06.02 -
React.js map ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ค๊ดํธ({})์ ์๊ดํธ(())
map ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ค๊ดํธ({})์ ์๊ดํธ(())๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React)์์ ์ค๊ดํธ {}์ ์๊ดํธ ()๋ ์ฃผ๋ก JSX ์์์ ์ฌ์ฉ๋๋ฉฐ, ํนํ map() ๋ฉ์๋์ ํจ๊ป ์ฌ์ฉ๋ ๋ ์ฃผ์ํด์ผ ํ ์ ์ด ๋ช๊ฐ์ง ์๋ค.map ํจ์๋ฅผ ์ฌ์ฉํ ๋ ์ค๊ดํธ({})์ ์๊ดํธ(())๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ์ ์ฐจ์ด์ ๋ํด ์์๋ณด์. ์ค๊ดํธ({})์๋ฐ์คํฌ๋ฆฝํธ ํํ์(Expression)์ ๊ฐ์ธ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.์ค๊ดํธ๋ฅผ ์ฌ์ฉํ ๋๋ ๋ฐ๋์ ๋ฐํ๊ฐ์ด ์์ด์ผ ํ๋ฉฐ, ๋ช ์์ ์ผ๋ก return ํค์๋๋ฅผ ์ฌ์ฉํด์ ๊ฐ์ ๋ฐํํด์ผ ํ๋ค.์ฌ๋ฌ ์ค์ ์ฝ๋๊ฐ ํ์ํ๊ฑฐ๋ ์กฐ๊ฑด๋ฌธ ๋ฑ ๋ณต์กํ ๋ก์ง์ ์์ฑํด์ผ ํ ๋ ์ฌ์ฉํ๋ค.const items = ['Apple', 'Banana', 'Cherry'];const listItem..
0 2024.05.29 -
Python or ์ฐ์ฐ์์ | ์ฐ์ฐ์์ ์ฐจ์ด
or ์ฐ์ฐ์์ | ์ฐ์ฐ์์ ์ฐจ์ด๋ค์ด๊ฐ๋ฉฐํ์ด์ฌ(Python)์์ or ์ฐ์ฐ์์ | ์ฐ์ฐ์์ ์ฐจ์ด์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค.or ์ฐ์ฐ์์ | ์ฐ์ฐ์ ๋ชจ๋ ๋ ผ๋ฆฌ ์ฐ์ฐ์(Logical Operator)์ด์ง๋ง, ์ฌ์ฉ ๋ชฉ์ ๊ณผ ๋์ ๋ฐฉ์์ ์ฐจ์ด๊ฐ ์๋ค. or ์ฐ์ฐ์์ ํ : ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ ผ๋ฆฌ์ OR ์ฐ์ฐ์ ์ํํ์ฌ, ๋ ํผ์ฐ์ฐ์ ์ค ํ๋๋ผ๋ True์ผ ๊ฒฝ์ฐ True๋ฅผ ๋ฐํํ๋ค.๋จ์ถ ํ๊ฐ(Short-Circuit Evaluation) : ์ฒซ ๋ฒ์งธ ํผ์ฐ์ฐ์๊ฐ True์ด๋ฉด ๋ ๋ฒ์งธ ํผ์ฐ์ฐ์๋ ํ๊ฐ๋์ง ์๋๋ค.ํผ์ฐ์ฐ์ ํ์ : bool ๋๋ bool๋ก ํ๊ฐ๋ ์ ์๋ ํ๊ฐ์ (๊ฑฐ์ ๋ชจ๋ ํ์ด์ฌ ๊ฐ์ฒด)๋ฐํ๊ฐ : True ๋๋ False | ์ฐ์ฐ์์ ํ : ๋นํธ ์ฐ์ฐ์๋นํธ ๋จ์ OR ์ฐ์ฐ์ ์..
0 2024.05.29 -
VS Code ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋(VS Code)์์ JSX ์๋ ์์ฑ ๊ธฐ๋ฅ ์ผ๋ ๋ฐฉ๋ฒ
๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋(VS Code)์์ JSX ์๋ ์์ฑ ๊ธฐ๋ฅ ์ผ๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋(VS Code)์์ return ๋ฌธ ์์ JSX๋ฅผ ์์ฑํ ๋, ์๋ ์์ฑ ๊ธฐ๋ฅ(Auto Complete)์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ๋ฐฉ๋ฒ์ด ๋ฐฉ๋ฒ์ ์ํด์๋ VS Code ์ค์ ์ ๋ฐ๋ก ํด์ค์ผ ํ๋ค.์ฐ์ , Ctrl(Cmd) + ,๋ฅผ ๋๋ฌ์ VS Code ์ค์ ํ์ด์ง๋ฅผ ์ฐ๋ค. ๊ทธ๋ฆฌ๊ณ ์๋จ์ [Open Settings (JSON)] ์์ด์ฝ์ ํด๋ฆญํ๋ค.๊ทธ๋ฆฌ๊ณ ์๋์ ์ฝ๋๋ฅผ settings.json ์ฝ๋ ์์ ๋ฃ์ด์ค๋ค.{ ... "emmet.includeLanguages": { "javascript": "javascriptreact" }, "emmet.syntaxProfiles"..
0 2024.05.28 -
React.js ํ ์คํธ ๋ฉ์์ง ๋์ฐ๊ธฐ ๊ฐ๋จ ์์ (ReactDOM.createPortal)
ํ ์คํธ ๋ฉ์์ง ๋์ฐ๊ธฐ ๊ฐ๋จ ์์ (ReactDOM.createPortal)๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํํด๋ณธ ํ ์คํธ(Toast) ๋ฉ์์ง ๋์ฐ๊ธฐ ๊ฐ๋จ ์์ ์ฝ๋๋ฅผ ์ฌ๋ ค๋ณธ๋ค.๊ธฐ๋ฅ์ ๊ตฌํํ๊ธฐ ์ํด react-dom ํจํค์ง์ createPortal ํจ์๋ฅผ ์ฌ์ฉํ์๋ค. ์ฝ๋ App.jsximport React from 'react';import Toast from './Toast';function App() { const [isToastVisible, setIsToastVisible] = React.useState(false); function handleEnrol() { setIsToastVisible(true); setTimeout(() => { setIs..
0 2024.05.21 -
React.js useImperativeHandle๊ณผ forwardRef
useImperativeHandle๊ณผ forwardRef๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ(React.js)์์ ์ฌ์ฉ๋๋ useImperativeHandle๊ณผ forwardRef์ ๋ํด ์์๋ณด์.forwardRef์ useImperativeHandle์ ์ปดํฌ๋ํธ ๊ฐ์ ์ฐธ์กฐ๋ฅผ ๋ค๋ฃจ๊ธฐ ์ํ ๋๊ตฌ์ด๋ค.์ด ๋๊ฐ์ง ๊ฐ๋ ์ ์ดํดํ๋ฉด ์ปดํฌ๋ํธ ์ธ๋ถ์์ ๋ด๋ถ์ DOM ์์๋ ๋ฉ์๋์ ์ ๊ทผํ ์ ์๊ฒ ๋์ด, ๊ณ ๊ธ ์ปดํฌ๋ํธ ์ค๊ณ์ ์ ์ฉํ๋ค๊ณ ํ๋ค. forwardRef๊ฐ๋ ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก๋ถํฐ ์ ๋ฌ๋ ref๋ฅผ ์์ ์ปดํฌ๋ํธ๊ฐ ๋ฐ์ ์ ์๊ฒ ํด์ค๋ค.forwardRef๋ฅผ ์ฌ์ฉํ์ง ์๊ณ ์์ ์ปดํฌ๋ํธ์ ref๋ฅผ ์ ๋ฌํ ์ ์๋ค.ref๋ DOM ์์์๋ง ๋ถ์ผ ์ ์๋ค.ํ์ง๋ง forwardRef๋ฅผ ์ฌ์ฉํ๋ฉด, ๋ถ๋ชจ ์ปดํฌ๋ํธ๊ฐ ..
0 2024.05.21 -
JavaScript ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์(Optional Chaining Operator), null ๋ณํฉ ์ฐ์ฐ์(Nullish Coalescing Operator) (ES11(ECMAScript2020))
์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์(Optional Chaining Operator), null ๋ณํฉ ์ฐ์ฐ์(Nullish Coalescing Operator) (ES11(ECMAScript2020))๋ค์ด๊ฐ๋ฉฐES11(ECMAScript2020)์์ ๋์ ๋ ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์์ null ๋ณํฉ ์ฐ์ฐ์์ ๋ํด ์ ๋ฆฌํด๋ณธ๋ค.์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์์ null ๋ณํฉ ์ฐ์ฐ์๋ ๋ชจ๋ ๋จ์ถ ํ๊ฐ(Shortcut Evaluation)์ ์ํด ์ฌ์ฉ๋๋ ์ฐ์ฐ์์ด๋ค. ์ต์ ๋ ์ฒด์ด๋ ์ฐ์ฐ์(Optional Chaining Operator, ?.)์ขํญ์ ํผ์ฐ์ฐ์๊ฐ null ๋๋ undefined์ธ ๊ฒฝ์ฐ undefined๋ฅผ ๋ฐํํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์ฐํญ์ ํ๋กํผํฐ ์ฐธ์กฐ๋ฅผ ์ด์ด๊ฐ๋ค.ํ๋กํผํฐ ์ฐธ์กฐ : ๋ณ์๋ฅผ ํตํด ๋ณ์๊ฐ์ ์ฐธ์กฐํ๋ฏ์ด,..
0 2024.05.16 -
React.js ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ์์ ๋๊ธฐ๋ ๋ฐฉ๋ฒ
๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ์์ ๋๊ธฐ๋ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ์์ ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ์์๋ฅผ ๋๊ธฐ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ๋ฐฉ๋ฒ๋ถ๋ชจ ์ปดํฌ๋ํธ์์ ์์ ์ปดํฌ๋ํธ๋ก ๋๊ธธ ์์์ ํ์ ์ ์ง์ ํ ์ ์๋๋ฐ, string ํํ๋ก ์ง์ ํด์ฃผ๋ฉด ๋๋ค.์ด๋, prop ์ด๋ฆ์ ์ฒซ ๊ธ์๋ ํญ์ ๋๋ฌธ์์ด์ด์ผ ํ๋ค.App.jsxButtonsContainer prop์ "menu"๋ก ์ง์ ํด๋ณด์๋ค.return ( handleSelect("components")} > Components handleSelect("jsx")} > JSX ..
0 2024.05.14 -
React.js ์ค์๊ฐ์ผ๋ก ํน์ ์์์ ๊ธธ์ด๊ฐ ๊ฐ์ ธ์ค๊ธฐ
์ค์๊ฐ์ผ๋ก ํน์ ์์์ ๊ธธ์ด๊ฐ ๊ฐ์ ธ์ค๊ธฐ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ์ ์ ์ค์๊ฐ์ผ๋ก ํน์ ์์์ ๊ธธ์ด๊ฐ์ ๊ฐ์ ธ์ค๋ ๋ฐฉ๋ฒ์ ์์๋ณด์. ๋ฐฉ๋ฒ์ฐ์ useRef๋ฅผ ์ด์ฉํ์ฌ ์ค์๊ฐ์ผ๋ก ๊ธธ์ด๊ฐ์ ๊ฐ์ ธ์ฌ ์์๋ฅผ ์ง์ ํด์ค๋ค.import {useRef} from 'react';// ...const horiRef = useRef(null);// ...return ( {/* ... */} ); ๋ค์๊ณผ ๊ฐ์ด useEffect์ ResizeObserver๋ฅผ ์ด์ฉํ์ฌ ํด๋น ์์์ ์ฌ์ด์ฆ๊ฐ์ ์ค์๊ฐ์ผ๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค.import { useEffect } from 'react';useEffect(() => { const resizeObserver = new ResizeObserver((entries) => ..
0 2024.03.26 -
React.js state์ ref ๋น๊ตํ๊ธฐ
state์ ref ๋น๊ตํ๊ธฐ๋ค์ด๊ฐ๋ฉฐ๋ฆฌ์กํธ์์ ์์ฃผ ์ฌ์ฉ๋๋ ref์ state๋ฅผ ๋น๊ตํด๋ณด์. ๋น๊ตuseState๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์ฒด๋ ๋ฆฌ๋ ๋๋ง ์ค์ ์ด๊ธฐํ๊ฐ ๋์ง๋ง, useRef๋ฅผ ํตํด ์์ฑ๋ ๊ฐ์ฒด๋ ๋ฆฌ๋ ๋๋ง ์ค์ ์ด๊ธฐํ๊ฐ ๋์ง ์๋๋ค.useState๋ [value, setValue]๋ฅผ ๋ฐํํ๊ณ , useRef๋ { current : value }๋ฅผ ๋ฐํํ๋ค. refstateuseRef(initialValue)๋ { current: initialValue }์ ๋ฐํuseState(initialValue)๋ state ๋ณ์์ ํ์ฌ๊ฐ๊ณผ state ์ค์ ์ ํจ์([value, setValue])๋ฅผ ๋ฐํMutable โ ๋ ๋๋ง ํ๋ก์ธ์ค ์ธ๋ถ์์ curren..
0 2024.03.02 -
Git ๋ธ๋์น : ์๊ฒฉ ์ ์ฅ์์ ์ต์ ๋ด์ฉ์ ๊ฐ์ ธ์ค๊ณ , ๊ธฐ์กด์ ๋ธ๋์น ๋ด์ฉ ์ง์ฐ๊ธฐ
๋ธ๋์น : ์๊ฒฉ ์ ์ฅ์์ ์ต์ ๋ด์ฉ์ ๊ฐ์ ธ์ค๊ณ , ๊ธฐ์กด์ ๋ธ๋์น ๋ด์ฉ ์ง์ฐ๊ธฐ๋ค์ด๊ฐ๋ฉฐํ์๋ค๊ณผ ํ์ ํ ๋ ํ์ํ ๋ธ๋์น ์์ ์ค, ๊ธฐ์กด์ ๋ด๊ฐ ๋ง๋ค์๋ ๋ธ๋์น ๋ด์ฉ์ ์ง์ฐ๊ณ , ์๊ฒฉ ์ ์ฅ์์ ์ต์ ๋ด์ฉ์ ๋ฐ์์ค๋ ๋ฐฉ๋ฒ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋ณธ๋ค.์ฐ์ ์๊ฒฉ ์ ์ฅ์์ ๋ธ๋์น๋ฅผ ์ ๊ฑฐํด์ค ํ, ๊ทธ ๋ค์ ๋ก์ปฌ ์ ์ฅ์์ ๋ธ๋์น๋ฅผ ์ ๊ฑฐํด์ค์ผ ํ๋ค. ๋ฐฉ๋ฒ1๏ธโฃ ์๊ฒฉ ์ ์ฅ์ ๋ธ๋์น ์ญ์ ํ๊ธฐ์๊ฒฉ ์ ์ฅ์์ ๋ด์ฉ ์ญ์ ํ๊ธฐgitpushโdorigin2๏ธโฃ์๊ฒฉ์ ์ฅ์์๋ด์ฉ์๋ก์ปฌ์ ์ฅ์๋ก๊ฐ์ ธ์ค๊ธฐ์๊ฒฉ์ ์ฅ์์์ ์ฅ๋(์ต๊ทผ์)๋ด์ฉ์๋ก์ปฌ์ ์ฅ์๋ก๊ฐ์ ธ์ค๊ธฐ git pull 3๏ธโฃ ๋ก์ปฌ ์ ์ฅ์ ๋ธ๋์น ์ญ์ ํ๊ธฐ๋ก์ปฌ ์ ์ฅ์์ ์ ์ฅ๋ ๋ธ๋์น ์ญ์ ํ๊ธฐ$ git branch -d branch_name ๋ง์ฝ ๋ธ๋์น๊ฐ ๋ณํฉ๋์ง ์์..
0 2024.02.27 -
React.js ๋ง์ฐ์ค ํธ๋ฒ ํจ๊ณผ๋ฅผ ์ ์ฉํ๊ธฐ ์ํ ์ปค์คํ ํ ๋ง๋ค๊ธฐ (useHover.js)
๋ง์ฐ์ค ํธ๋ฒ ํจ๊ณผ๋ฅผ ์ ์ฉํ๊ธฐ ์ํ ์ปค์คํ ํ ๋ง๋ค๊ธฐ (useHover.js) ๋ค์ด๊ฐ๋ฉฐ ์์ ์์ ๋ง์ฐ์ค ์ปค์๋ฅผ ํธ๋ฒ ์, ํจ๊ณผ๊ฐ ์๋ํ ์ ์๋๋ก ์ปค์คํ ํ ์ ๋ง๋ค์ด๋ณด์. ๋ฐฉ๋ฒ ๊ธฐ์กด์ ๋ฐฉ๋ฒ ์ปค์คํ ํ ์ ์ฌ์ฉํ์ง ์์ ๊ฒฝ์ฐ, mouseover, mouseout์ ๋ํ ๊ฐ๊ฐ์ ์ด๋ฒคํธ ํธ๋ค๋ฌ ํจ์๋ฅผ ๋ง๋ค์ด์ ๋ง์ฐ์ค ํธ๋ฒ ํจ๊ณผ๋ฅผ ์ ์ฉ์ํค๊ณ ์ถ์ ๋์์ ์ฐ๊ฒฐํด ์ฃผ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์์๋ค. import React, { useState } from react; const MyComponent = () => { const [isHovered, setIsHovered] = useState(false); const handleMouseOver = () => { setShowPopup(true); }; cons..
0 2024.02.20 -
React.js Node.js ์ค์น๋ถํฐ ๋ฆฌ์กํธ ํ๋ก์ ํธ ํ ์คํธ๊น์ง ์ ๋ฆฌ
Node.js ์ค์น๋ถํฐ ๋ฆฌ์กํธ ํ๋ก์ ํธ ํ ์คํธ๊น์ง ์ ๋ฆฌ ๋ค์ด๊ฐ๋ฉฐ Node.js ์ค์น, NVM ์ค์น, ๋ฆฌ์กํธ ํ๋ก์ ํธ ์์ฑ ๋ฐ ํ ์คํธ๊น์ง์ ๊ณผ์ ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ (1) Node.js ์ค์น ํ์ฌ ๋๋ ํ์์ ์ฌ์ฉํ๊ณ ์๋ ๋ฒ์ ์ Node.js๋ฅผ ์ค์นํ๋๋ก ํ๋ค. Node.js Node.jsยฎ is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org (2) nvm ์ค์น NVM(Node Version Manager)์ Node.js์ ๋ฒ์ ์ ๊ด๋ฆฌํด์ฃผ๋ ํ๋ก๊ทธ๋จ์ด๋ค. nvm-setup.exe ์ค์น ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์ ์คํํ๋ค. Releases ยท coreybutler/nvm-windows A node.js version mana..
0 2024.02.05 -
PyQt QTableWidget ์์ ํญ๋ชฉ ๊ฒ์ ๋ฐ ๋ณต์ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐฉ๋ฒ
QTableWidget ์์ ํญ๋ชฉ ๊ฒ์ ๋ฐ ๋ณต์ ๊ธฐ๋ฅ ๊ตฌํ ๋ฐฉ๋ฒ๋ค์ด๊ฐ๋ฉฐPyQt์ QTableWidget ์์ ํญ๋ชฉ์ ๊ฒ์ํ๊ณ , ์๋์ ๋ด์ฉ์ ๋ณต์ ์ํค๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ๊ฒ์ํ๊ณ ์ ํ๋ ๋ด์ฉ์ด ํด๋น ํ์ ์์ ๊ฒฝ์ฐ ํ์ํ๊ณ , ๊ทธ๋ ์ง ์์ ๊ฒฝ์ฐ ์จ๊ธฐ๋ ๋ฐฉ๋ฒ์ ์ด์ฉํ๋ค.from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QTableWidget, QTableWidgetItem, QPushButton, QLineEditclass SearchResetTableApp(QWidget): def __init__(self): super(SearchResetTableApp, self).__init__() self.ini..
0 2024.01.29 -
JavaScript ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ(Asynchronous Programming)
์๋ฐ์คํฌ๋ฆฝํธ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ(Asynchronous Programming) ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ(Asynchronous Programming)์ ๋ํด ๊ณต๋ถํ๋ ๋ด์ฉ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋น๋๊ธฐ ํ๋ก๊ทธ๋๋ฐ(Asynchronous Programming) ๊ฐ๋ ์๋ฐ์คํฌ๋ฆฝํธ์์ ์๋ฒ์ ํต์ ์ ํ๋ค ๋ณด๋ฉด ์ด๋ค ์๋ฃ๋ฅผ ์์ฒญํ๊ณ ๋ฐ๋์ง์ ๋ฐ๋ผ, ๋๋ ๋คํธ์ํฌ ์๋์ ๋ฐ๋ผ ์กฐ๊ธ์ฉ ์ฒ๋ฆฌ ์๊ฐ์ด ๋ฌ๋ผ์ง๋ค. ๊ทธ๋ฆฌ๊ณ ์๊ฐ ์ฐจ์ด๊ฐ ๋๋ ์ฒ๋ฆฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ์์ ์์๋๋ก ์ฒ๋ฆฌํด์ผ ํ๋๋ฐ, ์ด๋ฌํ ์ฒ๋ฆฌ ๋ฐฉ์์ '๋น๋๊ธฐ ์ฒ๋ฆฌ ๋ฐฉ์'์ด๋ผ๊ณ ํ๋ค. ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋จ์ ๋ง์ ํจ์๋ค์ด ๋ชจ์ฌ์ ํ๋์ ๊ธฐ๋ฅ์ ๋ง๋ ๋ค. ๊ทธ๋ฐ๋ฐ ์ด๋ค ํจ์์ ์คํ ์๊ฐ์ด ์๋ก ๋ค๋ฅด๋ฏ๋ก ํน์ ์์ ์ด ๋๋๋ฉด ๋ค๋ฅธ ์์ ์ ํ๊ณ , ๊ทธ ์์ ์ด ๋๋๋ฉด ์ด์ด์ ๋..
0 2024.01.24 -
VS Code ํ๋ฉด ์ค๋ฅธ์ชฝ์ Live Server ๋์ฐ๊ธฐ
VS Code ํ๋ฉด ์ค๋ฅธ์ชฝ์ Live Server ๋์ฐ๊ธฐ ๋ค์ด๊ฐ๋ฉฐ ๋น์ฃผ์ผ ์คํ๋์ค ์ฝ๋(Visual Studio Code) ํ๋ฉด ์ค๋ฅธ์ชฝ์ ๋ผ์ด๋ธ ์๋ฒ(Live Server)๋ฅผ ๋์ฐ๋ ๋ฐฉ๋ฒ์ ์ ๋ฆฌํด๋ณธ๋ค. ๋ฐฉ๋ฒ ๋ฐฉ๋ฒ โ [Ctrl] + [Shift] + [P]๋ฅผ ๋๋ฌ ๋ช ๋ น ํ๋ ํธ(Command Palette)๋ฅผ ์คํํ ํ, Simple Browser: Preview๋ฅผ ํด๋ฆญํ๋ค. ๋ฐฉ๋ฒ โก VS Code์์ ๊ณต์์ ์ผ๋ก ์ง์ํ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ด ๋ฐฉ๋ฒ์ ํธ์ง๊ธฐ์ .html ํ์ผ ๋๋ .md ํ์ผ์ ์ด์์ ๋ ๊ฐ๋ฅํ ๋ฐฉ๋ฒ์ด๋ค. ์ฐ์ธก ์๋จ์ [Show Preview] ์์ด์ฝ์ ํด๋ฆญํ๋ค. ์ฐธ๊ณ ์ฌ์ดํธ Can I use Live Server inside Vscode editor? I know live ..
0 2024.01.22 -
JavaScript ๋ณ์ ์ฌ์ ์ธ๊ณผ ์ฌํ ๋น (var, let, const)
๋ณ์ ์ฌ์ ์ธ๊ณผ ์ฌํ ๋น (var, let, const) ๋ค์ด๊ฐ๋ฉฐ ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ณ์(var, let, const)์ ์ฌ์ ์ธ๊ณผ ์ฌํ ๋น์ ๋ํ์ฌ ์์๋ณด์. ์ฌ์ ์ธ๊ณผ ์ฌํ ๋น โ var ์ฌ์ ์ธ ๋ฐ ์ฌํ ๋น์ด ๋ชจ๋ ๊ฐ๋ฅํ๋ค. var sum = add(10, 20); console.log(sum); // 30 var sum = 100; // ์ฌ์ ์ธ (๊ฐ๋ฅ) console.log(sum); // 100 sum = 200; // ์ฌํ ๋น (๊ฐ๋ฅ) console.log(sum); // 200 ํ์ง๋ง var์ ์ฌ์ฉํ ๊ฒฝ์ฐ, ๋ค์๊ณผ ๊ฐ์ด ํธ์ด์คํ (Hoisting)์ด ๋ฐ์ํ ์ ์๋ค. var x = 10; var sum = x + y; // y ๋ณ์๊ฐ ์ ์ธ๋๊ธฐ ์ ์ ์คํ var y = 20; console.log..
1 2024.01.18