유닛 테스트: 독립적으로 진행되는 가장 작은 단위의 테스트, 주로 개별 함수나 메소드를 테스트 할 때 사용된다.
통합 테스트: 모듈을 통합하는 과정에서 모듈 간의 호환성을 확인하기 위해 수행되는 테스트, 통합된 모듈들이 올바르게 연계되어 동작하는지 검증 할때 사용한다.
E2E테스트: 에플리케이션의 흐름을 처음부터 끝까지 테스트한다.
유닛 테스트와 통합 테스트는 모듈의 무결성을 증명할 수 있는 강력한 테스트이지만, 모듈의 무결성이 애플리케이션 동작의 무결성까지는 증명해 줄 수 없기 때문에 E2E테스트를 사용한다.
리액트 테스트에 사용되는 도구들을 비교하여 설명해주세요
Jest: Jest는 페이스북에서 개발한 JavaScript 테스트 프레임워크로, 리액트 애플리케이션을 위한 기본 테스트 도구이다.
React Testing Library: React Testing Library는 사용자 중심 테스트를 위해 설계된 도구로, 실제 사용자가 애플리케이션을 사용하는 것처럼 테스트를 작성한다.
Enzyme: Enzyme은 Airbnb에서 개발한 리액트 테스트 유틸리티 라이브러리로, 주로 컴포넌트 기능을 테스트하는 데 사용된다.
Testing Library: React Testing Library는 사용자 중심 테스트를 위한 일부인데, 일반적인 Testing Library에는 사용자 인터페이스를 테스트하는 데 도움이 되는 여러 언어 및 프레임워크에 사용할 수 있는 테스트 도구가 포함되어 있다.
Cypress: Cypress는 E2E(End-to-End) 테스트를 위한 도구로, 리액트 애플리케이션의 통합 테스트에 사용된다.
최적화
CDN(Content Distributed Network): CDN은 지리적으로 분산된 서버들을 연결한 네트워크로서 웹 컨텐츠의 복사본을 사용자에 가까운 곳에 두거나 동적 컨텐츠(예: 라이브 비디오 피드)의 전달을 활성화하여 웹 성능 및 속도를 향상할 수 있게 한다.
Web Vitals: 웹 비탈은 사용자 경험 측정 지표로, 웹 페이지의 성능과 사용자 상호작용에 영향을 미치는 다양한 측정 요소들을 평가하는 지표이다.
Largest Contentful Paint (LCP): 페이지의 주요 콘텐츠가 브라우저에 표시되기까지 걸리는 시간을 측정한다.
First Input Delay (FID): 사용자가 웹 페이지와 상호작용하기를 원할 때, 해당 상호작용에 대한 브라우저 응답 시간을 측정한다.
Cumulative Layout Shift (CLS): 페이지의 레이아웃 안정성을 측정하는 지표로, 웹 페이지 로드 중에 레이아웃이 얼마나 안정적으로 유지되는지를 나타낸다.
Lighthouse: Google에서 개발한 오픈 소스 웹 성능 평가 도구이며, 웹 페이지의 성능과 사용자 경험을 평가하는 데 사용된다.
유닛테스트 vs 통합테스트 vs E2E테스트를 비교하여 설명해주세요
유닛 테스트와 통합 테스트는 모듈의 무결성을 증명할 수 있는 강력한 테스트이지만, 모듈의 무결성이 애플리케이션 동작의 무결성까지는 증명해 줄 수 없기 때문에 E2E테스트를 사용한다.
리액트 테스트에 사용되는 도구들을 비교하여 설명해주세요
Jest: Jest는 페이스북에서 개발한 JavaScript 테스트 프레임워크로, 리액트 애플리케이션을 위한 기본 테스트 도구이다. React Testing Library: React Testing Library는 사용자 중심 테스트를 위해 설계된 도구로, 실제 사용자가 애플리케이션을 사용하는 것처럼 테스트를 작성한다. Enzyme: Enzyme은 Airbnb에서 개발한 리액트 테스트 유틸리티 라이브러리로, 주로 컴포넌트 기능을 테스트하는 데 사용된다. Testing Library: React Testing Library는 사용자 중심 테스트를 위한 일부인데, 일반적인 Testing Library에는 사용자 인터페이스를 테스트하는 데 도움이 되는 여러 언어 및 프레임워크에 사용할 수 있는 테스트 도구가 포함되어 있다. Cypress: Cypress는 E2E(End-to-End) 테스트를 위한 도구로, 리액트 애플리케이션의 통합 테스트에 사용된다.
최적화 CDN(Content Distributed Network): CDN은 지리적으로 분산된 서버들을 연결한 네트워크로서 웹 컨텐츠의 복사본을 사용자에 가까운 곳에 두거나 동적 컨텐츠(예: 라이브 비디오 피드)의 전달을 활성화하여 웹 성능 및 속도를 향상할 수 있게 한다. Web Vitals: 웹 비탈은 사용자 경험 측정 지표로, 웹 페이지의 성능과 사용자 상호작용에 영향을 미치는 다양한 측정 요소들을 평가하는 지표이다.