[TIL/React] 2023/03/18
Updating state based on the previous stateuseState를 활용하며 한 가지 의문점이 생겼다. 의문점은 다음과 같다.위 코드에서 setCount 함수를 세 번 연속으로 작성한 까닭은, button을 한 번 클릭할 때마다 숫자가 '3'씩
Updating state based on the previous state

위 코드에서 setCount 함수를 세 번 연속으로 작성한 까닭은, button을 한 번 클릭할 때마다 숫자가 '3'씩 증가하도록 설정하기 위함에 있었다. 그런데 의도한 방향으로 작동하지 않았다.
count가 여전히 '1'씩 증가하는 모습을 보인다.

React의 ```setState 함수```는 일반적으로 ```비동기적```으로 작동한다.

위의 코드는 결국 'setCount(count+1)'이라는 세 가지의 주문을 받은 상태라고 비유할 수 있다. setState 함수는 비동기적으로 작동하기에, 세 줄의 코드는 각각 진동벨을 받고 대기 중인 상태인 것이다.
'setCount(count+1)'이라는 세 가지의 동작은 보장된 순서라는 것이 없기 때문에 각각이 'count'라는 값을 바라보게 된다. ``각각의 작업간에 의존성이 제어되지 않는다``는 뜻이다.
비동기적 처리는 작업을 빠르게 처리할 수 있고, 작업이 끝나지 않아도 다른 작업을 수행할 수 있으므로 성능을 향상시키고, 사용자 경험을 개선할 수 있다. 다만, 비동기적 처리는 ``순서를 보장하지 않기 때문에``, 작업 간의 의존성이 있는 경우에는 작업을 제어하기 어려울 수 있다는 단점이 있다.
작업의 순서를 보장하여 작업 간의 의존성을 제어하기 위해 ``callback function`을 사용하고, 이러한 과정에서 등장하는 핵심적인 개념이 `pending state`이다. 한마디로 `동기적으로 작동하는 척``(=정해진 순서가 보장되어 있는 것처럼 가장)을 하기 위해 활용하는 개념이다.


버튼을 세 번 클릭했고, UI에는 '9 times'로 렌더링된다. 콘솔을 확인해보면 ``여전히 비동기적으로 작동`한다. callback function을 활용한다고 해서 비동기적 방식이 동기적 방식으로 변하는 것은 아니라는 점을 확인할 수 있다. 말 그대로 `동기적으로 작동하는 척``만 하는 것이다. 코드에서의 'prev'가 바로 'pending state'이다.

useNavigate & useLocation
useLocation을 사용하여 컴포넌트에 props를 전달하려면, useLocation 객체의 ``state 속성``을 사용하여 값을 전달할 수 있다.




product 페이지에서 location을 입력해보니, props가 넘어온 것을 확인할 수 있었다. 하지만 이것이 정확이 무엇을 의미하는지는 아직 잘 모르겠다.
아래의 코드들은 useNavigate와 useLocation을 이해하기 위해 작성한 습작이다. 차후에 복습할 때 활용하도록 하자.

회고
뭐 하나 쉬운 개념이 없다 ㅜㅜ 귀여운 개발진스로 힐링하고 공부 마무리, 내일도 화이팅!

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은 그