[TIL/React] 2023/02/18
State: 리액트가 리액트인 이유해당 강의에서는, '클릭을 할 때마다 숫자가 1씩 늘어나는' 버튼을 만들었다. 버튼을 만드는 과정을 통해 state를 이해해 봤다.버튼 태그를 통해 '클릭 버튼'을 만들었고, 숫자가 올라가는 것을 보여주기 위해 'counter'라는 변
State: 리액트가 리액트인 이유
해당 강의에서는, '클릭을 할 때마다 숫자가 1씩 늘어나는' 버튼을 만들었다. 버튼을 만드는 과정을 통해 state를 이해해 봤다.

버튼 태그를 통해 '클릭 버튼'을 만들었고, 숫자가 올라가는 것을 보여주기 위해 'counter'라는 변수를 선언하고 div 태그에 작동할 수 있도록 추가해 줬다.

클릭을 하면 숫자가 증가하는 작동방식이 필요하기 때문에, increase라는 이름의 변수를 선언하고 해당 변수를 onClick에 적용했다.
그런데 클릭을 하면 콘솔창에는 counter가 증가하는 모습을 볼 수 있지만, UI에는 반영이 되지 않았다.

리액트는 '반응'을 하기 때문에 리액트이다. 값이 변하면 자동으로 UI를 바꿔주는 '반응'을 하는 것이 React의 본질이다. 그런데 변수가 바뀔 때마다 매번 반응을 해야 하는 것은 지나치게 비효율적이다.
그래서 '변수'가 바뀔 때마다 UI를 업데이트 하는 것이 아니라, 'State'가 바뀔 때 UI를 업데이트하게 된 것이다. 즉, 반응의 대상은 'State'이다.
리액트에서 제공하는 유용한 함수들을 'React Hook'이라고 하는데 그 중 하나인 'useState'를 활용하여 숫자의 증가를 UI에 반영해 봤다.

위 코드에서 'counter2'는 초기값이 담긴 state이고, 'setCounter2'는 state값을 변경해주는 함수이다.

UI가 바뀌기는 했는데, 숫자들이 이상하다.
기본적으로 State가 바뀌면, UI가 다시 렌더링된다. 상태를 바꾸기 위해 'setState 함수'를 실행시켰지만 바로 바뀌는 것이 아니다. 이러한 작동 방식을 '비동기적 작동 방식'이라고 한다. 함수가 한바퀴 다 돌아야 실행된다.
'비동기적 작동 방식'에 대한 이해는 더 필요하겠지만, 현재로서는 "UI 렌더링을 바로 해주기 어려워서 한 박자 느리게 동작하는구나..." 정도로 만족하고 넘어갔다.
그런데 counter는 왜 계속 1일까...?
상태가 변경돼서 다시 컴포넌트를 그려주는 것을 '리렌더링'이라고 하는데, 리렌더링 과정에서 component가 처음부터 다시 실행이 되면서 0으로 초기화시킨다. state값은 초기화를 시키지 않는다.
가위바위보 게임 기본 세팅

회고
코드 복습을 열심히 하자! 내일도 화이팅!
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은 그