유닛테스트 : 개별 함수, 메서드, 클래스, 컴포넌트와 같은 작은 코드 단위를 독립적으로 테스트
통합 테스트 : 연결된 여러 단위들을 함께 테스트하여 시스템 내의 상호작용, 데이터 전달 기능을 확인
E2E 테스트 : 사용자의 관점에 위치하며 어플리케이션의 완전한 실행 작업이 정확하게 작동하는지 확인하는 테스트
리액트 테스트에 사용되는 도구들을 비교하여 설명해주세요
Jest: Facebook이 개발한 자바스크립트 테스팅 프레임워크로, 리액트 애플리케이션에서 흔히 사용되며 유닛 및 통합 테스팅에 적합합니다. 빠르고 사용이 쉽습니다.
React Testing Library: 사용자 관점에서 컴포넌트를 테스트하는 유틸리티 세트로, 주로 유닛 테스트와 통합 테스트에 사용됩니다.
Enzyme: Airbnb에서 개발한 리액트 컴포넌트 테스팅 라이브러리로, 가상 DOM을 이용해 컴포넌트를 관찰하고 조작할 수 있습니다.
Cypress: 자바스크립트 기반 E2E 테스팅 도구로, 리액트 및 다른 프레임워크에서 사용 가능하며, 시뮬레이션된 디바이스와 브라우저 네트워크 요청을 조작합니다.
최적화
CDN(Content Distributed Network)에 대해 설명해주세요
CDN(Content Delivery Network)은 지리적으로 분산된 서버들을 연결한 네트워크로서 웹 컨텐츠의 복사본을 사용자에 가까운 곳에 두거나 동적 컨텐츠의 전달을 활성화하여 웹 성능 및 속도를 향상할 수 있게 합니다.
Web Vitals에 대해 설명해주세요
Web Vitals: 사용자 경험을 대표하는 성능 지표로 LCP(로딩 성능), FID(상호 작용성), CLS(시각적 안정성) 세 가지 지표가 포함됩니다.
LCP (Largest Contentful Paint): 페이지가 로딩된 이후 큰 콘텐츠가 그려지는 데 걸리는 시간을 측정합니다. 이 지표는 로딩 성능에 직접 영향을 줍니다.
FID (First Input Delay): 사용자와 상호작용할 수 있는 첫 번째 시점에서 페이지가 실제로 인터랙션에 반응하는 데 걸리는 시간을 측정합니다. 이 지표는 상호 작용성에 직접 영향을 줍니다.
CLS (Cumulative Layout Shift): 페이지 간의 레이아웃 이동에 대한 측정치를 나타냅니다. 이 지표는 페이지의 시각적 안정성에 직접 영향을 줍니다.
Lighthouse에 대해 설명해주세요
Lighthouse: Lighthouse는 웹 성능 및 사용자 경험을 평가하기 위한 오픈 소스 도구입니다. Google이 개발하였으며, 웹 페이지의 성능, 접근성, 최적화, 가시성 등을 측정하고 개선하는 데 사용됩니다. Lighthouse는 웹 개발자들에게 웹 사이트의 성능과 사용자 경험을 최적화하는 데 도움이 되는 중요한 정보를 제공합니다.
테스트
유닛테스트 vs 통합테스트 vs E2E테스트를 비교하여 설명해주세요
리액트 테스트에 사용되는 도구들을 비교하여 설명해주세요
최적화
CDN(Content Distributed Network)에 대해 설명해주세요
Web Vitals에 대해 설명해주세요
Lighthouse에 대해 설명해주세요