[TIL/Coin Site Project] 2023/12/05
Home Page Layout โ๏ธ PageContainer.jsx ๐ข
Home Page Layout โ๏ธ
import React from "react";
import { Box } from "@mui/material";
import PageContainer from "../components/layout/common/PageContainer";
import ComponentWrapper from "../components/layout/common/ComponentWrapper";
import Table from "../components/home/Table";
const Home = () => {
return (
<>
<PageContainer>
<ComponentWrapper>
<Box sx={{ height: "auto" }}>
{/* Card Area */}
<Box sx={{ display: "flex", columnGap: "60px", padding: "60px 0" }}>
<Box
sx={{
backgroundColor: "#0e1821",
width: "360px",
border: "none",
height: "200px",
borderRadius: "15px",
transition: "opacity 0.3s ease",
"&:hover": {
opacity: 0.8,
},
}}
>
<p
style={{
textAlign: "center",
color: "white",
fontWeight: "bolder",
}}
>
'Trending' rendering
</p>
<p
style={{
textAlign: "center",
color: "white",
fontWeight: "bolder",
}}
>
์ค๋ฅด๋ฅต ์์
</p>
</Box>
<Box
sx={{
backgroundColor: "#0e1821",
width: "360px",
border: "none",
height: "200px",
borderRadius: "15px",
transition: "opacity 0.3s ease",
"&:hover": {
opacity: 0.8,
},
}}
>
<p
style={{
textAlign: "center",
color: "white",
fontWeight: "bolder",
}}
>
'News' rendering
</p>
<p
style={{
textAlign: "center",
color: "white",
fontWeight: "bolder",
}}
>
์ค๋ฅด๋ฅต ์์
</p>
</Box>
<Box
sx={{
backgroundColor: "#0e1821",
width: "360px",
border: "none",
height: "200px",
borderRadius: "15px",
transition: "opacity 0.3s ease",
"&:hover": {
opacity: 0.8,
},
}}
>
<p
style={{
textAlign: "center",
color: "white",
fontWeight: "bolder",
}}
>
'Fear & Greed Index' rendering
</p>
<p
style={{
textAlign: "center",
color: "white",
fontWeight: "bolder",
}}
>
์ค๋ฅด๋ฅต ์์
</p>
</Box>
</Box>
{/* Table Area */}
<Table />
</Box>
</ComponentWrapper>
</PageContainer>
</>
);
};
export default Home;
PageContainer.jsx ๐ข
Appbar์ Footer ์ฌ์ด์ ์ถ๊ฐ๋ Box Area์ ๊ดํ ๋ ผ์์ด๋ค.
PageContainer๋ฅผ ํตํด ๋ง ๊ทธ๋๋ก 'ํ์ด์ง๋ฅผ ๊ฐ์ ๊ฒฝ์ฐ', ํด๋น ํ์ด์ง์ ๋ด์ฉ์ Appbar์ Footer ์ฌ์ด์ ์์นํ๊ฒ ๋๋ค.
์ด๋, ๋ณด์ฌ์ง๋ ์ต์ํ์ ๋์ด์ ๋์ด๋ '์ฌ์ฉ์ ๊ธฐ๊ธฐ์ view'๋งํผ์ผ๋ก ์ค์ ๋๋ค. ์ถ๊ฐ์ ์ผ๋ก 'flex-grow: 1'์ ํตํด ํ์ด์ง์ ๋ด์ฉ์ด Appbar์ Footer ์ฌ์ด์ ๋ชจ๋ ๋ด์์ง๋๋ก ๋ด์ฉ์ ๊ตฌ์ฑํ๋ค.
import Appbar from "../appbar/Appbar";
import Footer from "../footer/Footer";
import { Box } from "@mui/material";
const PageContainer = ({ children }) => {
return (
<>
<Appbar />
<Box
sx={{
minHeight: "100vh",
minWidth: "100vw",
flexGrow: 1,
backgroundColor: "#232531",
}}
>
{children}
</Box>
<Footer />
</>
);
};
export default PageContainer;
ComponentWrapper.jsx ๐ข
๊ฒฝ์ฐ์ ๋ฐ๋ผ์, page์ ์ ์ฒด px์ ์ฐจ์งํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์์ง๋ง, component๋ฅผ 1200px๋ก ์ ํํ ํ์๋ ์๋ค.
๊ฐ๋ น 'banner'๋ ์ ์ฒด ํ์ด์ง width๋ฅผ ์ฐจ์งํ๋๋ก ์ค์ ํ๊ณ ์ถ๊ณ , ๋์์ 'page์ ๋ด์ฉ'์ ๊ดํ ๋ถ๋ถ์ 1200px์ด๋ผ๋ ์ผ๊ด๋ layout์ ํตํด ๋ณด์ฌ์ฃผ๊ณ ์ถ๋ค๋ฉด, banner๋ PageContainer์ ์ ํ ํ๊ณ , ๋๋จธ์ง ๋ด์ฉ์ ComponentWrapper๋ก ๊ฐ์ธ๋ฉด ๋๋ค.
import React from "react";
import { Box } from "@mui/material";
const ComponentWrapper = ({ style, children }) => {
return (
<Box
style={style}
sx={{
maxWidth: "1200px",
margin: "0 auto",
height: "auto",
width: "100%",
}}
>
{children}
</Box>
);
};
export default ComponentWrapper;ํ์ฌ ๋ชจ์ต ๐ข


More to read
AI&ML ๊ธฐ์ด
Reference: https://bettermesol.github.io/ml/2019/09/16/ai-ml-dl/AI: ๊ธฐ๊ณ๊ฐ ์ฌ๋์ฒ๋ผ ์๊ฐํ๊ณ ํ๋จํ๊ฒ ๋ง๋๋ ๊ฐ์ฅ ๋์ ๋ฒ์ฃผ์ ๊ธฐ์ ์ ๋๋ค.ML: ๋ฐ์ดํฐ๋ฅผ ํ์ตํ์ฌ ์ค์ค๋ก ๊ท์น์ ์ฐพ์๋ด๋ AI์ ํ ๋ถ์ผ๋ก,
'AI Agent Economy'Novitas : AI Agent๊ฐ ์ง๊ฐ์ ๊ฐ์ง๋ ์ธ์
์ผ๋ง ์ , ๋ฏธ๋์์ ์ฆ๊ถ ๋ฆฌ์์น ๋ฆฌํฌํธ(์ฌํด๋ ์ด๋๋ฆฌ์์ด๋ค: ์์ด์ ํธ ์๋์ Near Automata)๋ฅผ ์ ํ๊ฒ ๋์์ต๋๋ค. AI Agent๋ฅผ ์ธ๊ฐ๊ณผ ํจ๊ปํ ๊ฒฝ์ ์ฃผ์ฒด๋ก ๋ฐ๋ผ๋ณด๋ ์๊ฐ์ ์ ์์ด ์ถฉ๊ฒฉ์ ๋ฐ์๋๋ฌ์ฃ .ํ ๊ฐ์ง ์ง๊ณ ๋์ด๊ฐ ๋ถ๋ถ์ด ์์ต๋๋ค. ์ฐ๋ฆฌ๊ฐ ํํ 'AI'
'ERC-8004'Novitas: AI ์์ด์ ํธ ๊ฒฝ์ ์ฃผ์ฒด
Web 4.0์ ํ ๋ฌธ์ฅ์ผ๋ก ์ ์ํ๋ฉด Sovereign Transact์ ๋๋ค.AI๊ฐ ์ธ๊ฐ์ ํ๋ฝ ์์ด ์ง๊ฐ์ ์์ ํ๊ณ , ๊ฒฐ์ ๋ฅผ ์ํํ๋ฉฐ, ์ธํ๋ผ๋ฅผ ํต์ ํ๋ ์ฃผ๊ถ์ ๊ฒฝ์ ์ฃผ์ฒด๊ฐ ๋๋ ์ธ๊ณ์ ๋๋ค. Web 3.0์ด ๋ธ๋ก์ฒด์ธ ๊ธฐ๋ฐ์ ํ์ค์ํ๋ฅผ ์คํํ๋ค๋ฉด, Web 4.0์ ๊ทธ