유닛테스트 vs 통합테스트 vs E2E테스트를 비교하여 설명해주세요
유닛 테스트(Unit Test), 통합 테스트(Integration Test), 그리고 E2E(End-to-End) 테스트는 소프트웨어 테스트에서 다양한 수준의 테스트를 수행하는 방법들입니다. 이들은 서로 다른 테스트 레벨에 초점을 두며, 애플리케이션의 다른 측면을 다양하게 검증합니다.
▽ 유닛 테스트 (Unit Test)란?
▽ 유닛 테스트 설명
▽ 통합 테스트 (Integration Test)란?
▽ 통합 테스트 설명
▽ E2E 테스트 (End-to-End Test)란?
▽ E2E 테스트 설명
요약하면, 유닛 테스트는 개별 유닛의 정확성을 검증하고, 통합 테스트는 모듈 간의 상호작용과 통합을 확인하며, E2E 테스트는 사용자 관점에서 애플리케이션 전체를 테스트하여 실제 사용 시나리오를 검증한다. 이러한 다양한 테스트 수준을 적절하게 조합하여 애플리케이션의 품질과 안정성을 보장할 수 있다. 따라서, 상황에 맞는 적절한 테스트를 선택해서 활용할 필요가 있다.
리액트 테스트에 사용되는 도구들을 비교하여 설명해주세요
Facebook에서는 [React Testing Library](<https://testing-library.com/react>) 사용을 권장합니다. 이 라이브러리는 사용자가 컴포넌트를 사용하는 것처럼 테스트를 작성할 수 있도록 설계되었습니다.
▽ CDN(Content Distributed Network)이란?
▽ CDN 예시
ex) 온라인 게임은 OBT(Open Beta Test)나 정식 서비스 시작시점에 클라이언트(Client) 다운로드(Download) 수요가 급격하게 증가한다.
많은 분들이 이때문에 PC방에서 대기했던 경험이 있지 않을까 싶다. 이때 콘텐츠 병목 현상이 일어나거나, 심한 경우 서버다운도 발생하기 때문에 CDN이 필수적으로 사용된다.
이뿐만 아니라 대규모 업데이트(Update)를 위한 패치(Patch)가 있을 경우에도 콘텐츠 병목 현상이 발생하는 경우가 있어 CDN을 사용하게 된다.
(출처:https://goddaehee.tistory.com/173)
▽ CDN 동작 방식
일반적으로 CDN의 동작 방식은 다음과 같다.
콘텐츠 배포
웹 사이트나 애플리케이션의 정적 콘텐츠를 원본 서버에서 CDN의 서버 노드로 배포합니다. 이러한 서버 노드들은 전 세계적으로 여러 곳에 위치해 있으며, 사용자들과 가까운 지역에 배치되어 있습니다.
캐싱
CDN의 서버 노드들은 전 세계에 흩어져 있기 때문에, 사용자들이 웹 콘텐츠에 접근할 때 가장 가까운 노드에 캐시된 콘텐츠를 제공합니다. 이로 인해 사용자는 콘텐츠를 빠르게 다운로드할 수 있게 됩니다.
부하 분산
CDN은 높은 트래픽을 처리할 수 있는 확장 가능한 인프라를 제공합니다. 따라서 웹 서버의 부하를 분산시켜 웹 사이트나 애플리케이션의 성능을 향상시킵니다.
▽ CDN의 장점
빠른 콘텐츠 제공
부하 분산
안정성과 가용성
보안 강화
대역폭 비용 절감
Web Vitals에 대해 설명해주세요