리덕스의 3가지 원칙

메론맛캔디·2021년 11월 8일
0

기술면접

목록 보기
20/30

리덕스란?

리덕스는 상태 관리 라이브러리 중 하나로, 컴포넌트에서 상태 업데이트 관련 로직들을 따로 분리시켜 더욱 효율적으로 관리할 수 있다.


상태란?

로컬에서 생성하고 사용하고 있지만, 서버에 저장되지 않은 값을 의미한다.
캐시 데이터, 로딩 표시 여부, 활성화된 라우트, 서버에서 온 응답 등.


리덕스의 장점

  • 상태를 언제, 왜, 어떻게 업데이트 해야하는지 명확해진다.(= 상태 변화가 예측 가능해진다)
  • Context API가 제공하지 못하는 기능을 미들웨어에서 제공하는 경우가 있다. (비동기 작업, 로깅)
  • 상태를 직접 바꾸지 못하고, 액션 객체에서만 상태를 바꿀 수 있다. 따라서 보장할 수 있어 기록을 남기거나, 직렬화하여 테스트와 디버깅에 용이하게 할 수 있다.
  • 여러 컴포넌트를 거치지 않고 손쉽게 상태 값을 전달하거나 업데이트할 수 있다. (props drilling 방지)
    redux는 observer 패턴으로 다수의 컴포넌트가 한 저장소를 바라보는 형태로, 상태의 변화를 여러 컴포넌트들에게 전달할 수 있다.

리덕스에서 준수해야 할 3가지 원칙

  1. 스토어는 글로벌 상에서 하나만 존재해야한다. (= 하나의 스토어에 모든 상태가 관리되어야 한다)
  2. 상태는 읽기 전용으로, 액션 객체에 전달해야지만 변화할 수 있다.
  3. 변화는 순수함수로 작성해야한다.
  • 순수함수 : 외부의 개입 없이 동일한 인풋값에 따라 항상 동일한 아웃풋을 반환하는 함수
  • 리듀서 : 이전 상태의 액션을 받아 다음 상태를 반환하는 순수 함수 이다. 이전 상태값을 변경하는 것이 아닌 새로운 상태값을 반환한다.

프로젝트에서 상태 관리를 어떻게 했는지?



참고

https://coffeeandcakeandnewjeong.tistory.com/14

https://steadily-worked.tistory.com/384

0개의 댓글