Sam Park Blog.

Sam의 워드프레스 블로그

Sam Park Blog.

Sam의 워드프레스 블로그

미분류

코딩자율학습 리액트 프런트엔드 개발 입문 3주차 학습 후기


이번주에는 리액트 훅과 성능 상태 관리에 대한 부분을 공부했습니다. useId와 useEffect로 접근성과 사이트이펙트를 정리하고, React.memo, useCallback, useMemo로 불필요한 리렌더링을 줄였으며, React.lazy/Suspense등과 Context, Redux Toolkit, Zustand를 비교해 프로젝트에 맞는 전역 상태 전략을 정리해봤습니다.




11일차 : 고유 아이디와 사이드 이펙트



useId 훅을 공부하면서 input과 label을 안전하게 연결하는 방법과 라디오 그룹처럼 id가 필요한 요소들을 직접 관리할 때 생기는 중복 문제를 훅이 어떻게 해결해주는지 이해했습니다. 그리고 useEffect를 통해 컴포넌트가 마운트 될 때 데이터 패치, 상태가 바뀔 때 특정 동작 실행, 언마운트 시 정리 작업을 어떻게 구조화할지 연슴했습니다.

의존성 배열을 잘못 관리하면 의도치 않은 반복 호출이나 누수가 생길 수 있다는 점을 알게 되며, 빈 배열로 마운트 시만 실행하거나 특정 상태를 의존하게 하는 패턴을 이해했습니다.




12~13일: 컴포넌트 최적화



리렌더링과 성능 최적화에 대해 이해하는 시간이였습니다. 컴포넌트 메모이제이션(React.memo)으로 props가 변하지 않을 때 재렌더링을 막고, props로 내려주는 함수를 useCallback으로 감싸 재생성을 방지하는 식으로 부모-자식간 불필요한 렌더링을 줄이는 방법을 배웠습니다. 또한 값 계산 비용이 큰 부분은 useMemo로 캐싱해 필요한 시점에만 재계산하도록 해 성능을 개선했고, 이 모든 메모이제이션은 실제 성능에 도움될 때만 쓰는게 중요하다는 것을 알게되었습니다.

초기 로딩 최적화는 React.lazy와 Suspense로 코드 스플리팅을 적용해 보고, 로딩 중 보여줄 UI와 에러 처리에 ErrorBoundary를 적용해 사용자 경험을 매끄럽게 만드는 연습을 했으며, 리액트 19 이후에 도입된 useDeferredValue와 useTransition의 활용법도 살펴보았습니다.




14~15일차: 전역 상태 관리



전역 상태 관리를 공부했는데, 로컬 상태와 전역 상태의 차이를 이해하고, 간단한 전역값은 Context API로 빠르게 고유하며, Context가 값 변경 시 하위 전체를 렌더링할 수 있다는 점을 알게 되었습니다. 규모가 커질 경우 Redux Toolkit으로 슬라이스 단위의 구조적 상태 관리와 디버깅 툴을 활용하는 방법을 배웠으며, 더 간단하고 선언적인 대안으로 Zustand를 이용해 스토어를 만들고 필요한 컴포넌트만 활용하는 방법을 배웠습니다.




3주차 마무리


이번 주는 useId, useEffect로 폼 접근성을 다듬고, 메모이제이션과 코드 스플리팅으로 성능을 개선해 즉시 가시적 효과를 봤습니다. Context, Redux Toolkit, Zustand를 비교 적용해 전역 상태 구조를 단순화했습니다.

빌드 후 실제 페이지에서 동작을 확인하며 실제 적용한 최적화등이 어떻게 작동되는지 이해할수 있는 시간이였습니다.



답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다