For the complete documentation index, see llms.txt. This page is also available as Markdown.

테스트 및 성능

이 페이지는 Redux/RTK Query 애플리케이션의 테스트 전략과 성능 최적화 기법을 다룹니다.

Redux 슬라이스 테스트

기본 리듀서 테스트

// user.slice.test.ts
import reducer, { userLoggedIn, userLoggedOut } from './user.slice';

describe('user 슬라이스', () => {
  const initialState = {
    account: null,
    isAuthenticated: false,
  };

  it('userLoggedIn을 처리해야 함', () => {
    const account = '0x123...';
    const actual = reducer(initialState, userLoggedIn({ account }));
    
    expect(actual.account).toBe(account);
    expect(actual.isAuthenticated).toBe(true);
  });

  it('userLoggedOut을 처리해야 함', () => {
    const loggedInState = {
      account: '0x123...',
      isAuthenticated: true,
    };
    
    const actual = reducer(loggedInState, userLoggedOut());
    
    expect(actual.account).toBeNull();
    expect(actual.isAuthenticated).toBe(false);
  });
});

엔티티 어댑터 테스트

셀렉터 테스트

단순 셀렉터

메모이제이션된 셀렉터

MSW로 RTK Query 테스트

MSW 설정

쿼리 테스트

뮤테이션 테스트

낙관적 업데이트 테스트

성능 최적화

사용 selectFromResult 리렌더를 방지하려면

전체 상태 선택을 피하기

비용이 큰 셀렉터 메모화하기

정규화된 데이터에는 엔티티 어댑터 사용

RTK Query 캐시 설정 조정

더 나은 UX를 위한 사전 가져오기

폴링 전략

Redux DevTools

개발 환경에서 활성화

액션 정리기

DevTools에서 민감한 데이터를 정리:

모범 사례 체크리스트

성능

테스트

코드 품질

피해야 할 안티 패턴

성능 모니터링

셀렉터 호출 추적

리렌더 모니터링

다음 단계

마지막 업데이트