[TIL/React] 2023/07/03
오늘 한 일파일 구조 변경에 따른 recent todo 재구성회고width와 height를 설정하며, 부모 컴포넌트로부터 논리적으로 접근했다. 평소 css는 단순히 view를 꾸며주는 것 그 이상도 이하도 아니라고 생각했는데, 처음부터 논리적으로 접근하지 않으면 코드가
오늘 한 일
import React, { forwardRef } from "react";
import { useSelector } from "react-redux";
import { styled } from "styled-components";
import { ComponentWrapper } from "../common";
const RecentTodoComponentWrapper = styled.div`
height: 1000px;
background-color: #f1e3d9;
`;
const RecentTodoTitle = styled.h1`
font-weight: bolder;
font-size: 70px;
text-align: center;
border-bottom: 9px solid #c07848;
margin-bottom: 100px;
`;
const RecentTodoImage = styled.img`
width: 100%;
height: 100%;
object-fit: cover;
`;
const RecentTodoContent = styled.div`
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
`;
const RecentTodoText = styled.p`
font-size: 24px;
margin-bottom: 16px;
`;
const RecentTodoComponent = forwardRef((props, ref) => {
const { todo } = useSelector((state) => state.todos);
const mostRecentTodo = todo.length > 0 ? todo[todo.length - 1] : null;
return (
<RecentTodoComponentWrapper ref={ref}>
<ComponentWrapper
style={{
padding: "200px",
boxSizing: "border-box",
}}
>
{/* recent todo area */}
<div
style={{
height: "100%",
width: "55%",
display: "flex",
justifyContent: "center",
alignItems: "center",
backgroundColor: "#fff",
}}
>
<RecentTodoContent>
<RecentTodoTitle>{mostRecentTodo?.Title}</RecentTodoTitle>
<RecentTodoText>{mostRecentTodo?.Subtitle}</RecentTodoText>
<RecentTodoText>{mostRecentTodo?.Desc}</RecentTodoText>
</RecentTodoContent>
</div>
{/* image area */}
<div
style={{
height: "100%",
width: "45%",
display: "flex",
justifyContent: "center",
alignItems: "center",
}}
>
<RecentTodoImage
src="https://kormedi.com/wp-content/uploads/2021/10/211025_02_01-580x410.jpg"
alt="Recent Todo Image"
/>
</div>
</ComponentWrapper>
</RecentTodoComponentWrapper>
);
});
export default RecentTodoComponent;파일 구조 변경에 따른 recent todo 재구성

회고
width와 height를 설정하며, 부모 컴포넌트로부터 논리적으로 접근했다. 평소 css는 단순히 view를 꾸며주는 것 그 이상도 이하도 아니라고 생각했는데, 처음부터 논리적으로 접근하지 않으면 코드가 무너지는 것을 목도하고, css도 상태관리와 다를 바 없다는 생각이 들었다. 추가적으로, 텍스트와 이미지 모두를 감싸는 div가 없어 border-radius를 줄 수 없었다는 아쉬움이 있었다.
인스타그램은 사진 게시판이다. 트위터는 텍스트 게시판, 유튜브는 영상 게시판이고 쿠팡은 상품 게시판이며 당근마켓은 중고거래 게시판이다. 세상 웬만한 서비스들의 프로토타입은 게시판이라는 뜻이다. 즉, 본질은 결국 게시판을 통한 CRUD 구현이다.
나를 둘러싸고 있는 문제들이 복잡하게 느껴질 때 가장 먼저 떠올려야 하는 문장, "Back to Basics". 오늘도 감사합니다.
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은 그