FRONTEND/React
60
Mui Tree View ์์ labal ์ด๋ฆ ๊ฐ์ง๊ณ ์ค๊ธฐ
2023.08.02
1. MUI ์ค์น MUI ์ค์น ์ ์ผ๊ด ์ค์น๊ฐ ๋๋ ๊ฒ ๊ฐ์๋ฐ.. ์๋์ด ์๋ค๋ฉด @MUI/LAB ์ ์ค์นํด์ฃผ๋๋ก ํ์. $ npm install @mui/lab 2. MUI ํ
์คํธ์ฉ treeview ์์ฑ import React from "react"; import TreeView from "@mui/lab/TreeView"; import ExpandMoreIcon from "@mui/icons-material/ExpandMore"; import ChevronRightIcon from "@mui/icons-material/ChevronRight"; import TreeItem from "@mui/lab/TreeItem"; const TreeViewExample = () => { return ( ); }; ..
BootStrap vs. Material-UI
2023.08.02
"์ฑ๊ณต์ ์ธ ์น ์ดํ๋ฆฌ์ผ์ด์
์ UX ๋์์ธ๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๋ชจ๋์ ๋ํ ๊ฐ๋ ฅํ ๊ธฐ๋ฐ์ ๊ฐ์ถ์ด์ผ ํ๋ค." - Brad Frost BootStrap Material-UI what? ๋ฐ์ํ ์น์ฌ์ดํธ ๊ฐ๋ฐ์ ์ํ CSS, HTML, JS ํ๋ ์์ํฌ Material Design ์์น์ ๋ฐ๋ฅด๋ React UI ํ๋ ์์ํฌ ๊ฐ๋ฐ ์ฃผ์ฒด ํธ์ํฐ Meterial Design - ๊ตฌ๊ธ MUI - unnamed team ์ ์ฉ ์์ ์์ด๋น์ค๋น, ๋๋กญ๋ฐ์ค, ์ ํ๋ฎค์ง, ํธ์ํฐ ... NASA, Amazon, Unity, Google ๋ฐ ๋ชจ๋ ์ ํ... grid sys ์๋ฒฝ ๋ฐ์ํ ๋์์ธ ์ ๊ณต. 12์ด ๊ทธ๋ฆฌ๋ ์์คํ
. infomation layout ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐ์คํฌํฑ(๋ชจ๋ฐ์ผ ์ฐ์ ) ์ฉ ๋ชจ๋ฐ์ผ ๋ฐ ๋ฐ์คํฌํฑ(๋ฐ์คํฌํฑ ์ฐ์ ) ์ฉ dep..
2. React Architecture
2023.07.24
1. MVC Architecture Model(๋ฐ์ดํฐ) - View(ํ๋ฉด) - Controller (์ปจํธ๋กค๋ฌ) * Ajax ๋ก ๋ถํฐ ๋ฐ๋ ๋ฐ์ดํฐ - Model * HTML ๊ณผ CSS ๋ก ๋ง๋ค์ด์ง๋ ํ๋ฉด - View * javascript๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ ์กฐ์ํ์ฌ ์๋ฒ์ ์ ๋ฌ - Conroller Ajax๋ฅผ ํตํด ์๋ฒ์์ HTML์ ๋ง๋ค์ง ์๊ณ ๋ฐ์ดํฐ๋ง ๊ตํ์ด ๊ฐ๋ฅํ๊ฒ ๋์๊ณ , JS๋ก DOM์ ์กฐ์ํ๋ ์์
์ด ์ค์ํจ์ ๋ฐ๋ผ jQuery๋ฅผ ํตํด Ajax์ DOM์ ๋ค๋ฃจ๊ฒ ๋์๋๋ฐ... 2. MVVM ์ํคํ
์ฒ Model(๋ฐ์ดํฐ) - View(ํ๋ฉด) - ViewModel(๋ฐ์ดํฐ๋ฅผ ํ๋ฉด์ ๋ณด์ฌ์ง๋ ๊ฐ์ผ๋ก ๋ณ๊ฒฝ) ๋ฆฌ์กํธ์ ํน์ง ์ค ํ๋์๋ ์ ์ธํ ํ๋ก๊ทธ๋๋ฐ๊ณผ ์ฐ๊ด๋จ. * . ํ๋ก ํธ์๋ ์ํคํ
์ฒ ๋ณํ ์ ๋ฆฌ ํ๋ก ํธ์๋..
1. ๋ฆฌ์กํธ์ ํน์ง๊ณผ ์ฅ๋จ์
2023.07.24
React ๋? Facebook ์์ ์ฃผ๋ํ์ฌ ๊ฐ๋ฐํ์ฌ UI๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ตฌ์ถํ๊ธฐ ์ํด ์ฌ์ฉํ๋ JS ๊ธฐ๋ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. React ์์ฒด๋ก๋ Framework ๋ผ๊ณ ๋ถ๋ฅผ ์ ์๋ ๊ธฐ์ค์ธ Routing, ์ํ๊ด๋ฆฌ ๊ธฐ๋ณธ ์ ๊ณต์ ์ถฉ์กฑํ์ง ๋ชปํด์ '๋ผ์ด๋ธ๋ฌ๋ฆฌ'์ด์ง๋ง, React ์ํ๊ณ๋ก์๋ Framework. React ๋ฑ์ฅ ๋ฐฐ๊ฒฝ ๊ธฐ์กด: ํน์ DOM ์ ์ ํํ ๋ค, ํด๋น DOM์ ์ด๋ค ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ๋ฉด ์ด์ ๋ํ change ๊ฐ ์ผ์ด๋๋๋ก ์ค์ ํ๋ ๋ฐฉ์. - ์ ์ ์์ ์ํธ์์ฉ์ด ์์ฃผ ์ผ์ด๋๋ ๊ฒฝ์ฐ ์ด์ ๋ฐ๋ฅธ ๋ณํ๋ฅผ ๋์ ์ผ๋ก UI์ ํํํด์ผ ํ๋ค๋ฉด ๊ทธ๋งํผ ์ ํ๋ฆฌ์ผ์ด์
์ด ๋ณต์กํด์ง๊ณ ๊ด๋ฆฌ๊ฐ ํ๋ค์ด์ง. React ํน์ง 1. ๊ฐ์ DOM ๊ธฐ์กด์ ๊ฒฝ์ฐ ํ๋์ ๋ฐ์ดํฐ๊ฐ ๋ฐ๋์ด๋ ํ๋ฉด ์ ์ฒด๊ฐ ๋ฆฌ๋ ๋๋ง ๋์ด์ ์ ์ฒด ํ๋ฉด์ด ๋ค์ ..
react create-react-app ์ฌ์ฉํด์ ์ด๊ธฐ์
ํ
ํ๊ธฐ
2023.05.26
์ ์ ์กฐ๊ฑด react ๊ฐ ์ ์ค์น๋์์ผ๋ฉฐ chocolatey ๊ฐ์ ๋ถ๊ฐ ํ๋ก๊ทธ๋จ๋ค์ ๋ชจ๋ ๋ค ์ค์นํด๋์๋ค๋ ์ ์ ํ์ ์์. React ๊ฐ๋ฐํ๊ฒฝ ๊ตฌ์ถ ๋์ถฉ ์ผ๋ ๋ฒ๋ ๊น์์ ๋ฆฌ์กํธ ๊ตฌ์ถํด์ค๋ ๋.. ๋ฆฌ์กํธ ํ๊ฒฝ์ ์ฒ์๋ถํฐ ๊ตฌ์ถํ ๊ธฐํ๊ฐ ์๊ฒผ๋ค. ์ด๊ฑฐ ํฌ์คํ
์ ๋์น ์ ์๋ค๋ ์๊ฐ์ด ๋ค์ด ์ค๋์ ๊ธ ๊ฑด๋์ง๋ฅผ ํ๋ ์ก๊ฒ ๋์๋ค. 1. node.js ์ค์น no bornatnoon.tistory.com ๊ธฐ๋ณธ ์
ํ
์ ๋ํด ๊ถ๊ธํ๋ค๋ฉด, ์ฒจ๋ถ ๊ธ์ ํ์ธํด๋ณด๋๋ก ํ์. 0. ์์ ๋ด๊ฐ react ํ๋ก์ ํธ๋ฅผ ๊ตฌํํ ํด๋๋ฅผ ํ๋ ๊ตฌํํด์ฃผ๊ณ , ๋๋ ๋์ ํด๋๋ฅผ D:\Code ๋ก ์ ์ ํ ๊ฒ์ด๋ค. Code ํด๋ ์ฐํด๋ฆญ > ํฐ๋ฏธ๋์์ ์ด๊ธฐ(T) ์ ํ ์ฌ๊ธฐ์๋ถํฐ ์์. 1. create-react-app ์ค์น ๋ฆฌ์กํธ ๊ธฐ๋ณธํ ๋ง๋ค๊ธฐ์..
๋ค์ด๋ฒ ๋ฉ์ธ์๋ REACT ๊ฐ ์ฌ์ฉ๋๋ค 518 til
2023.05.18
์ด๊ฒ REACT ๊ฒ์ํ์ผ๋ก ๊ฐ์ผํ๋์ง ์ผ๋ฐ ๊ฒ์๊ธ๋ก ์ฐ๋๊ฒ ๋ง์์ง๋ ๋ชจ๋ฅด์ง๋ง ์ผ๋จ TIL ๋ด์ฉ์ด๋ผ ์ด๋๋ ์์ฑํด๋ณธ๋ค. ์ด ๋ํ ๊ฐ๋ฐ ๊ณต๋ถ๋๊น ... ์ด๋ ๋ ์ถ๊ทผํ์ฌ ๋ค์ด๋ฒ ๋ก๊ทธ์ธ์ ํด๋ณด๋ ๋ค์ด๋ฒ ๋ฉ์ธ UI ๋์์ธ์ด ๋ฐ๋ ๋๋์ด ํ ๋ค์๋ค. ๊ธฐ์กด์ ๋์์ธ๋ณด๋ค ์กฐ๊ธ ๋ ๋๊ธ๋๊ธํด์ง๊ณ .. ์น์ฑ์ค๋ฌ์์ง ๋๋์ด ๋ค๋๋ผ ๊ทธ๋ฆฌ๊ณ chrome extension ์ ๋ชป๋ณด๋ ๋ถ์ด ์ผ์ก๋ค. this page is using the production build of React! ๊ฐ๋ฐ์๋๊ตฌ๋ก ์ด์ง๋ง ๊ตฌ๊ฒฝํด๋ดค๋ค. ๋ฆฌ์กํธ 17๋ฒ์ ์ฐ๊ณ ์๊ณ .. ์ญ์ ๋๊ธฐ์
์ธ์ง ์คํ ์์ค ๋ค์ ๋ง์ด ์ ์ด ๊ฒ ๊ฐ๋ค. ๋ญ๊ฐ ์ด์ ๋ฐฐํฌ ๋์๋ง์ ๊ตฌ๊ฒฝํ์ผ๋ฉด ๋ ์ฌ๋ฏธ๋ฅผ ๋ดฃ์ ์๋ ์์ ๊ฒ ๊ฐ์๋ฐ ๋ด๊ฐ ๋ณธ ๊ฒ์๊ธ๋ค์ ๋นํ์ฌ ๋ด๊ฐ ๋ฏ์ด ๋ณผ ์ ์๋ ์์ค์ฝ..
[Javascipt] truthly ์ falsy
2
2023.05.16
๋จ์ด ์ฒ๋ผ -. truthly ๋ true ๊ฐ์ ๊ฒ -. falsy ๋ false ๊ฐ์ ๊ฒ ํ๋ง๋๋ก boolean ๊ฐ์ธ true, false ๋ฅผ ๊ฐ์ง์ง ์์์๋ ๋ถ๊ตฌํ๊ณ "๋น์ทํ" ํจ๊ณผ๋ฅผ ๋ด๋ ๊ฐ์ด๋ค. ์ ๋๋ก ์๊ฐํ๋ฉด ๋ ๊ฒ ๊ฐ๋ค. 1. falsy ๊ฐ์ ์ข
๋ฅ - false / 0 / ์์ / On / "" / null / undefined / NaN * On : BigInt. boolean ์ผ๋ก ์ฌ์ฉ๋ ๊ฒฝ์ฐ ์ซ์์ ๊ฐ์ ๊ท์น์ ๋ฐ๋ฅธ๋ค. * NaN : ์ซ์๊ฐ ์๋ ๊ฐ None of Number 2. falsy ๊ฐ ํ์ if (!๋ณ์) {return;} console.log(๋ณ์) ์ด๋ฐ ์์ผ๋ก ์ฌ์ฉํ๋ฉด ์์ falsy ๊ฐ์ด ์๋ ๊ฐ๋ง console ๋ก ์ฐ๊ฒ ๋๋ค. 3. ์ฌ์ฉ ์์ ๋ณดํต ์ฐ๋ฆฌ๊ฐ ๋ญ๊ฐ ๋ฐ์ดํฐ๋ฅผ ..
React. URL ์ด๋ํ ๋ ์ํญ ์ด์ด์ ์ด๋ํ๋ ๋ฐฉ๋ฒ
2023.05.15
a href={๋งํฌ} ํ์์ ์ด์ฉํ๋ฉด ๊ทธ๋ฅ ํ์ฌ ํญ์์ ํด๋น ๋งํฌ๋ก ์ด๋ํ๊ฒ ๋๋๋ฐ ๋๋ ํญ ํ๋๋ฅผ ์ ๊ท๋ก ์ด์ด์ฃผ๊ณ ์ ๊ท ํญ์์ ํด๋น ๋งํฌ๋ฅผ ์ด๊ณ ์ถ๋ค. window.open('url ๋งํฌ', '_blank')}>ํ์ดํผ๋งํฌ ํ
์คํธ ์์ฑ window.open ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ฉด ๋๊ณ ๋๋ฒ์งธ ๋งค๊ฐ๋ณ์์ _blank ๋ฅผ ์ ๋ฌํด์ฃผ๋ฉด ๋๋ค.
[React] ์ ์์ ip ๋ฐ ์ ์์ ๋ณด ์ผ๋ถ ๊ฐ์ ธ์ค๊ธฐ
2023.05.12
์ ์์ ip ๊ฐ์ ธ์ค๊ธฐ // ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ฌ์ฉ const [ ip , setIp ] = useState(); useEffect( () => { axios.get('https://geolocation-db.com/json/') .then((res) => { setIp(res.data.IPv4) }) },[]) ์ ์์ ๋ณด ๊ฐ์ ธ์ค๊ธฐ (์ ์์ agent ์ ๋ณด) const userAgent = window.navigator.userAgent console.log ์ฐ์ด์ ํ์ธํด๋ณด๋ฉด ๊ฐ ์ ๋ค์ด์จ๋ค. ์ ์์ ์ ๋ณด ๊ฐ์ง๊ณ ์๋ค๊ฐ - ์ผ์ ip ๊ณ์ ์ ์ ์๋ํ๋ฉด - ์ ์ ์ฐจ๋จ ์ํค๋ ๋ฐฉ๋ฒ ๊ตฌํํ ๋ ์ฌ์ฉํ๋ฉด ๋ ๋ฏ
[css] ์๋ค๋ก ๋ด๋ณด๋ด๊ธฐ (๋ฐฐ์น ์์ ๊ฒฐ์ )
2023.04.18
์ฌ๊ฑด์ ๋ฐ๋จ ์น์ ์ด๊ฒ์ ๊ฒ ๋ง๋ค์ด๋๊ณ ๋ฐฐํฌํ๊ณ ๋ณด๋ ์น์์ ๋ณด๋๊ฑฐ๋ ํฐ์์ ๋ณด๋๊ฑฐ๋ ui๊ฐ ์กฐ๊ธ์ฉ ํ๋ฆฌ๊ณ ๋ค๋ฅด๊ฒ ๋ณด์ด๋๋ผ.. ๋ฌธ์ ๋ ์ฌ๊ธฐ์ ์์๋๋ฐ.. ๋ฌธ์ 1 ๋ก๊ณ ๊ฐ ๋ณด์ฌ์ผ ํ๋๋ฐ ์ ๋ณด์ธ๋ค. ๋ฌธ์ 2 transform ์ translate ๋ฅผ ๋จน์ฌ ์์๋ ๊ณต๋ฐฑ ์กฐ์ ์ ์ํด์ ์ปจํธ๋กคํ๋ฉด ์ข๊ฒ ์ง๋ง .. ์น์์๋ ์ด์๊ฒ ์ถ๋ ฅ๋๋ ์ ๋ค์ด ํฐ์์๋ ๋์ด์ฐ๊ธฐ ๊ฐ๊ฒฉ์ด ์ด์ํ๊ฒ ๋ณด์ด๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ผ = ์์ํ ๊ฒ์ฒ๋ผ ๊ตฌํ์ด ์๋๊ณ ๊ธฐ๊ธฐ์ ๋ฐ๋ผ ๋์์ธ์ด ํ๋ ค๋ฒ๋ฆผ = ์ ์ด ๋ถ๊ฐ ( ์ฌ์ด๋๋ฐ height ๊ฐ๊ฒฉ๋ ํฐ์ด๋ ์น์ด๋ ๋ค๋ฅด๊ฒ ๋ณด์ด๋๋ผ ) ๊ทธ๋์ ์ต๋ํ ๋ณ์๊ฐ ์๊ฒ ๋ง๋ค์ด์ผ ํ๋ค ! 1. ์ฌ์ด๋๋ฐ ์๋ ๊ฐ๊ฒฉ์ ์ต๋ํ ๋ง์ด ๋๊ณ (์์ฐ์ค๋ฌ์ด ์ ์์) 2. ์ ๋นํ๊ฒ ์๋ ๊ฐ๊ฒฉ์ ๋์ด ๋ค์ 3. ์ฌ์ด๋๋ฐ๋ฅผ ํธํฐ ๋ฐ ๋ณด๋ค..
[recharts] piechart ๋ฐ์ดํฐ ๊ฐ ๋ฐ์์ ํผ์ผํธ๋ก ๋ฟ๋ ค์ฃผ๊ธฐ with label
2023.04.15
Code import React, { useState } from "react"; import { PieChart, Pie, Legend, Sector, Cell, ResponsiveContainer } from 'recharts'; const PieChartComponent = () => { const data = [ { name: '์ ์', value: 4 }, { name: '์ ์', value: 3 }, { name: '์๋ฃ', value: 2 }, { name: '๋ณด๋ฅ', value: 2 }, ]; const COLORS = ['#0088FE', '#00C49F', '#FFBB28', '#FF8042']; const RADIAN = Math.PI / 180; const renderCustomiz..
[React] Material-UI ๋์
์คํจ
2023.04.15
ํ์ฌ์์ ๊ฐ๋ฐํ๋ ๊ฒ์ํ์ ๋์์ธ์ด ํ์ ๊ทธ์์ฒด๋ค. ๐ป ๋ฐ๊พธ๊ณ ์ถ์ ๋ง์์ ๊ตด๋ ๊ฐ์ผ๋... ์ฝ์ง๊ฐ ์์ ์ด๋์ ์ด์ ๋์์ธ๋ค ๋ค ๊ฐ์ ธ์์ ๋๋ฑ๋๋ฑ ๋ง๋ค๊ณ ํ๋ฐ... 1. ๊ธฐ๋ฅ์ ๋ค ๊ตฌํํด๋๊ณ 2. ๋์์ธ๋ง ์์ผ๋ฉด ๋๋ ์ํ๋ค ๊ทธ๋์ material-UI ๋ฅผ ์ฌ์ฉํด๋ณด๋ ค๊ณ ํ๋๋ฐ ์คํจํ๋ค. ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ง์ถฐ ์ ๊ฐ์ง๊ณ ์จ ๊ฑฐ ๊ฐ์๋ฐ ์๊พธ ์ธ์์ ๋ชปํ๊ธฐ์ ์ ๊ทธ๋ฐ๊ฐ ๋ณด๋ค๋ณด๋ ๋ฆฌ์กํธ ๋ฒ์ ์ฐจ์ด ๋๋ฌธ์ ์ ์ฉ์ด ์ ๋๋๋ผ. ํธํ์ฑ ๋ฌธ์ ํด๊ฒฐ ๋ถ๊ฐ: ์ด๋ฏธ ๋ง๋ค์ด์ง ๊ฒ์ํ์ ๋ฆฌ์กํธ 18.0.1 ๋ฒ์ ์ผ๋ก ๋ง๋ค์ด์ก๋๋ฐ.. Material-UI ๋ ๋ฆฌ์กํธ 16.8.0 ์ด๋ 17.0.0 ๋ฒ์ ์ด๋๋ง ํธํ๋๋ ๋ฏ ํ๋ค.. ์ค๋๋ง์ ์ด์ ์์ด ์ฃผ์์ ๊ธฐ๋ถ ์ข์๋๋ฐ.. ๋๋ ๋ค๋ฅธ ์์ด ์ฐพ์๋ณด๋๋ก ํด์ผ๊ฒ ๋ค. ํน์๋ ๋์ค์ ์ ์์ฌ์ฐ..