테스트와 최적화

Leo·2023년 7월 27일
0

FrontEnd

목록 보기
22/26
post-thumbnail

테스트

유닛 테스트 vs 통합 테스트 vs E2E테스트를 비교하여 설명해 주세요.

단위 테스트(Unit Test)

틀 : Jasmine, Jest, Karma, Mocha

  • 단위 테스트는 함수나 메서드와 같은 작은 단위의 코드를 테스트하는데 중점을 두는 테스트 유형이다. 즉, 시스템의 전체적인 동작에 중점을 맞추지는 않는다.
  • 단위 테스트의 목적은 코드의 각 단위가 예상대로 작동하고 요구 사항을 충족하는지 확인하는 것이다.

통합 테스트(Integration Test)

틀 : Jest, Testing Library

  • 통합 테스트는 시스템의 여러 단위 또는 구성 요소 간의 상호 작용을 검증하는 테스트 유형이다.
  • 서로 다른 단위가 함께 동작하면서 흐름에 맞게 잘 작동하고, 예상한 결과를 생성하는지를 테스트한다.

E2E 테스트(End-to-End Test)

틀 : Cypress, Puppeteer

  • E2E 테스트는 시스템의 시작부터 끝까지 전체 흐름을 확인하는 테스트 유형이다.
  • 시스템이 예상대로 작동하고 사용자의 요구 사항을 충족하는지 확인하기 위해 모든 구성 요소와 해당 구성 요소의 상호 작용을 테스트 하는 것이 포함된다.

리액트 테스트에 사용되는 도구들을 비교하여 설명해주세요.

Jest

  • 페이스북에서 만든 자바스크립트 테스트 프레임워크이다
  • 테스트 코드가 완전히 분리되어 있으며, 분리된 테스트는 동시에 실행할 수 있어 빠른 성능을 제공한다.
  • 유닛 테스트 & 통합 테스트에 사용

Cypress

  • 브라우저를 이용한 E2E테스트 프레임워크
  • 주로 프론트엔드의 E2E 시나리오를 수행하는 도구이다.

최적화

CDN(Content Distributed Network)에 대해 설명해주세요.

CDN

  • CDN은 콘텐츠 전달 네트워크의 약자로, 인터넷 상에서 콘텐츠를 빠르게 전송하고 전달하기 위해 사용되는 분산 서버 시스템이다.
  • 일반적으로 정적 파일(이미지, 스타일시트, 스크립트 등)과 동영상, 웹 페이지와 같은 리소스를 CDN을 통해 제공하면 이러한 파일들이 웹 사이트를 요청한 사용자와 지리적으로 더 가까운 위치에 위치한 서비스를 통해 전달한다.

CDN 장점

  • 빠른 로딩 속도 : 사용자와 가까운 위치의 서버에서 콘텐츠를 제공하므로 로딩 속도 향상
  • 트래픽 분산 : 콘텐츠를 여러 서버에 분산시킴으로써 웹 사이트의 트래픽 부하를 줄임
  • 강력한 보안 : CDN은 보안 기능을 제공하여 DDos 공격 등으로부터 웹 사이트를 보호

Web Vitals에 대해 설명해주세요

Web Vitals

  • web Vitals는 웹 사이트의 사용자 경험을 측정하는 메트릭의 집합으로, Google에 의해 제공되는 중요한 웹 사이트 성능 측정 지표

Web Vitals 메트릭 구성

  • Largest Contentful Paint (LCP) : 사용자가 페이지를 처음 로딩했을 때, 가장 큰 콘텐츠가 화면에 나타나는시간을 측정한다.LCP는 로딩 시간과 페이지의 퍼셉션을 나타냅니다.

  • First Input Delay (FID) : 페이지가 로딩된 후, 사용자의 첫 번째 상호작용과 실제 브라우저가 해당 상호작용에 응답하기 시작하는 사이의 시간을 측정한다. FID는 페이지의 대화형성과 반응성을 나타냅니다.

  • Cumulative Layout Shift (CLS) : 페이지의 로딩 중에 콘텐츠가 예상치 못하게 움직이는 정도를 측정한다. 여러 번의 레이아웃 변화가 있을 때, 각 변화마다 얼마나 많은 콘텐츠가 이동하는지를 평가한다. CLS는 사용자의 불편함 정도를 나타낸다.

Lighthouse에 대해 설명해주세요

Lighthouse

  • Lighthouse는 Google이 개발한 오픈소스 자동화된 품질 평가 도구다.
  • Lighthouse는 웹 페이지의 성능, 접근성, PWA(Progressive Web App) 등 여러 측면을 평가하고 개선하는데 사용된다.
  • 브라우저 개발자 도구와 명령줄 도구로 제공되며, 사용하기 쉽고 다양한 지표를 제공

0개의 댓글