객체 및 배열 state 업데이트 state에는 객체와 배열도 넣을 수 있다. 리액트에서 state는 읽기 전용으로 간주되기 때문에 기존 객체를 바꾸지 않고 교체를 해야한다. state에 form객체가 있는 경우에는 바꾸지마라. 대신 새로운 객체를 생성하여 전체 객채를 교체하면 된다. 초기 state 다시 생성하지 않기리액트는 초기 state를 한번 저장하고 다음 렌더링부터는 이를 무시한다.createInitialTodos()의 결과는 초기 렌더링에만 사용되지만, 여전히 모든 렌더링에서 이 함수를 호출한다. 이는 큰 배열을 생성하거나 복잡한 계산을 수행하는 경우 낭비가 될 수 있다. 이 문제를 해결하려면 useState에 초기화 함수로 전달하면 된다. 함수를 호출한 결과인 createInitialTod..