>
>
>
프런트엔드 개발을 위한 테스트 입문 : 프런트엔드 테스트 기초 지식부터 UI 컴포넌트 테스트, E2E 테스트 등 상황에 맞는 테스트 전략까지
제이펍 ㅣ フロントエンド開?のためのテスト入門
  • 정가
28,000원
  • 판매가
25,200원 (10% ↓, 2,800원 ↓)
  • 발행일
2024년 06월 21일
  • 페이지수/크기
332page/188*245*17
  • ISBN
9791193926260/1193926262
  • 배송비
무료배송
  • 배송예정일
07/16(화) 배송완료예정
  • 현 보유재고
100 권 이상
  • 주문수량
  • 바로구매 북카트담기
  • 제휴몰 주문 시 고객보상, 일부 이벤트 참여 및 증정품 증정, 하루/당일 배송에서 제외되므로 참고 바랍니다.
  • 상세정보
  • 지금이라도 알아두면 쓸데 있는 테스트 자동화 전략 최신 웹 애플리케이션에서는 품질과 유지보수성을 위해 테스트 자동화가 중요하지만, 테스트 코드를 작성해본 경험이 없어 테스트 코드 작성을 어려워하는 개발자가 많다. 이 책은 테스트 코드를 처음 작성하는 프런트엔드 개발자를 대상으로, 기본적인 테스트 코드 작성법은 물론 상황별 테스트 코드 작성법, 다양한 도구 사용법까지 풍부한 예제와 함께 설명한다. 특히 타입스크립트, Next.js로 만든 예제를 포함하고 있어 최신 실무 지식과 노하우를 익힐 수 있다. 한국어판 부록으로 깃허브 액션에서의 UI 컴포넌트 테스트와 E2E 테스트를 추가 수록해 완성도를 더욱 높였다.
  • 수많은 테스트 방법 중에 나에게 맞는 테스트 방법을 찾아 업무 효율을 높이자 최근 몇 년간 강력한 라이브러리와 프레임워크의 등장으로 프런트엔드 개발에서는 많은 변화가 있었다. 싱글 페이지 애플리케이션을 필두로 한 모던 프런트엔드 기술들은 이미 많은 제품에 적용되어 사실상 표준으로 자리잡았다. 개발 환경의 변화와는 대조적으로 테스트 코드 작성을 어려워하는 개발자가 많다. 게다가 프런트엔드 테스트는 UI 컴포넌트 테스트, 시각적 회귀 테스트, 스토리북, E2E 테스트 등 테스트 방법이 너무 많아서 언제, 어떤 테스트가 필요한지 판단하는 것이 쉽지 않다. 어떤 상황에서나 정답인 은빛 총알은 없다. 각자의 상황에 맞는 도구를 선택해서 테스트해야 한다. 프런트엔드에는 테스트 방법이 많은 만큼 최적의 방법을 고를 수 있다. 이 책은 가장 주목받는 프레임워크인 Next.js와 타입스크립트를 통해 최신 개발 환경을 살펴보고 어떤 상황에서 어떤 테스트를 해야 하는지 살펴본다. 1~4장에서는 테스트 코드를 처음 작성하는 개발자가 대상이다. 1장에서는 테스트를 작성해야 하는 이유를, 2장에서는 테스트 범위와 목적을 다뤄 프런트엔드 테스트의 전체적인 흐름을 이해할 수 있도록 돕는다. 3장과 4장은 본격적으로 실습에 들어가기 앞서 단위 테스트와 목 객체를 활용한 테스트를 심도 깊게 다룬다. 5~10장에서는 리액트와 Next.js 예제를 활용한 모던 프런트엔드 기술을 사용한다. 5장에서는 UI 컴포넌트를 테스트할 때 중점을 둬야 하는 부분을 살펴보며, 6장에서는 구현 코드가 얼마나 테스트됐는지 측정하는 커버리지 리포트를 작성해본다. 7장에서는 본격적으로 Next.js로 만든 애플리케이션 예제를 통해 실무에 가까운 테스트를 한다. 8장에서는 협업 시 능률이 높아질 수 있도록 UI 컴포넌트 공유를 돕는 UI 컴포넌트 탐색기인 스토리북에 대해 살펴본다. 9장에서는 UI 컴포넌트에 시각적 회귀 테스트를 실시하면서 시각적 회귀 테스트의 중요성을, 10장에서는 실제 애플리케이션에 가까운 테스트가 가능한 E2E 테스트를 알아본다. 마지막으로 한국 독자를 위해 깃허브 액션에서 UI 컴포넌트 테스트 및 E2E 테스트하는 방법을 부록으로 수록했다. 테스트 코드는 비용을 절약할 수 있는 것은 물론 버그를 사전에 발견해 코드 품질을 높일 수 있고, 새로 들어온 팀원에게 보여줄 사양서로 활용할 수도 있으며, 리팩터링 시 초보적인 실수를 줄이는 용도로 사용할 수도 있다. 테스트 코드 작성을 하면서 얻을 수 있는 많은 장점에도 테스트 코드를 미루고 있거나 어렵게 느껴진다면 이 책이 프런트엔드 테스트의 좋은 지침서가 될 것이다. 이 책을 통해 자신감 있게 테스트 코드를 작성할 수 있게 되기를 바란다. 주요 내용 ● 테스트의 필요성과 프런트엔드 테스트의 흐름 ● E2E 테스트, 단위 테스트, UI 컴포넌트 테스트 등 적재적소의 테스트 방법 ● 제스트, 리액트, reg-suit 등 다양한 라이브러리와 도구 ● 목 객체를 활용한 실패 재현 테스트 ● UI 컴포넌트를 위한 스토리북 사용법 ● 깃허브 액션에서의 UI 컴포넌트 테스트와 E2E 테스트
  • 옮긴이 머리말 xiii 베타리더 후기 xv 시작하며 xvi 이 책에 대하여 xvii CHAPTER 1 테스트 목적과 장애물 1 1.1 이 책의 구성 1 1.2 테스트를 작성해야 하는 이유 4 1.3 테스트 작성의 장벽 9 CHAPTER 2 테스트 방법과 테스트 전략 13 2.1 테스트 범위와 목적 13 2.2 프런트엔드 테스트의 범위 15 2.3 프런트엔드 테스트의 목적 18 2.4 테스트 전략 모델 21 2.5 테스트 전략 계획 23 CHAPTER 3 처음 시작하는 단위 테스트 27 3.1 환경 설정 27 3.2 테스트 구성 요소 28 3.3 테스트 실행 방법 31 3.4 조건 분기 35 3.5 에지 케이스와 예외 처리 37 3.6 용도별 매처 43 3.7 비동기 처리 테스트 48 CHAPTER 4 목 객체 53 4.1 목 객체를 사용하는 이유 53 4.2 목 모듈을 활용한 스텁 55 4.3 웹 API 목 객체 기초 59 4.4 웹 API 목 객체 생성 함수 64 4.5 목 함수를 사용하는 스파이 68 4.6 웹 API 목 객체의 세부 사항 72 4.7 현재 시각에 의존하는 테스트 75 CHAPTER 5 UI 컴포넌트 테스트 79 5.1 UI 컴포넌트 테스트 기초 지식 79 5.2 라이브러리 설치 82 5.3 처음 시작하는 UI 컴포넌트 테스트 84 5.4 아이템 목록 UI 컴포넌트 테스트 89 5.5 인터랙티브 UI 컴포넌트 테...
  • 코드 수정은 새로운 기능을 개발할 때만 필요한 것이 아니다. 모던 프런트엔드 개발은 수많은 라이브러리에 의존할 수밖에 없기 때문에 라이브러리를 업데이트할 때도 코드를 수정해야 한다. 물론 디펜다봇(Dependabot)을 사용하면 의존하는 라이브러리가 업데이트됐을 때 발생할 수 있는 취약성을 자동으로 검사해 풀 리퀘스트(pull request)를 만들어준다. 하지만 디펜다봇이 모든 취약성을 걸러낼 것이라고 생각해서는 안 된다. 작성해놓은 테스트 코드가 있다면 ‘마이너 업데이트는 테스트를 통과하면 병합(merge)할 수 있다’ 같은 원칙을 세워야 한다. (6쪽) 릴리스된 프로젝트에 테스트 코드가 없으면 리팩터링이 두려울 수 있다. 이때는 먼저 릴리스된 기능을 목록으로 정리해야 한다. 정리가 됐다면 변경 전후로 결함이 발생하지 않았는지 검증하는 회귀 테스트를 작성한다. 작성된 회귀 테스트가 있으면 자신감 있게 리팩터링을 시작할 수 있다. (23쪽) 테스트는 실제 실행 환경과 유사할수록 재현성이 높다. 하지만 재현성을 높이다 보면 실행 시간이 너무 많이 걸리거나 환경 구축이 어려워지는 경우가 있다. 대표적인 경우가 웹 API에서 취득한 데이터를 다뤄야 할 때, 웹 API에서 데이터를 취득하면 네트워크 오류 같은 이유로 실패할 때가 있다. 웹 API를 사용하면 ‘성공하는 경우’뿐만 아니라 ‘실패하는 경우’도 테스트해야 한다. / 성공하는 경우는 실제 웹 API 서버를 테스트 환경과 연동할 수 있다면 테스트할 수 있다. 실패하는 경우를 웹 API 서버에 테스트하는 코드를 추가하는 것은 옳지 않다. 게다가 외부 서비스의 웹 API는 테스트용 구현을 추가하는 것이 애초에 불가능하다. (53쪽) 커버리지는 객관적인 측정이 가능한 정량 지표다. 프로젝트에 따라서 필수로 충족시켜야 하는 품질 기준으로 사용되기도 한다. 예를 들어 ‘분기 커버리지가 80% 이상이 아니면 CI를 통과하지 못한다’ 같은 파이프라인을 만드는 데 활용할 수 있다. (...) 커버리지는 특정 파일에 테스트를 추가해야 하는지 검토하는 계기로 활용된다. 또한, ESLint를 통과했지만 남은 중복 코드를 발견하는 데에도 유용하다. 릴리스 전에 충분히 테스트하지 않은 부분이 있는지 확인할 때 커버리지 리포트를 참고하는 것을 권장한다. (132쪽) 스토리북의 테스트 러너(test runner)는 스토리를 실행가능한 테스트로 변환한다. 테스트로 변환된 스토리는 제스트와 플레이라이트에서 실행된다. 이 기능을 활용해서 스토리북에 스모크 테스트(smoke test)는 물론 앞서 살펴본 play function이 정상적으로 종료됐는지와 접근성 위반 사항이 있는지도 테스트할 수 있어 UI 컴포넌트 테스트로도 활용할 수 있다. (202쪽) 프런트엔드에서 E2E 테스트는 브라우저를 사용할 수 있기 때문에 실제 애플리케이션에 가까운 테스트가 가능하다. 브라우저 고유의 API를 사용하는 상황이나 화면을 이동하며 테스트해야 하는 상황에 안성맞춤이다. (...) E2E 테스트는 무엇을 테스트할지 목적을 명확히 세우는 것이 가장 중요하다. 실제 애플리케이션은 데이터베이스 서버나 외부 저장소 서비스와 연결된다. E2E 테스트에서는 이 시스템들을 포함한 전체 구조에서 얼마나 실제와 유사한 상황을 재현할 것인지가 중요한 기준점이 된다. (239쪽)
  • 전체 0개의 구매후기가 있습니다.

인터파크도서는 고객님의 단순 변심에 의한 교환과 반품에 드는 비용은 고객님이 지불케 됩니다.
단, 상품이나 서비스 자체의 하자로 인한 교환 및 반품은 무료로 반품 됩니다.
교환 및 반품이 가능한 경우
상품을 공급 받은 날로부터 7일이내 가능
공급받으신 상품의 내용이 표시, 광고 내용과 다르거나 다르게 이행된 경우에는 공급받은 날로부터 3개월 이내,
   혹은 그사실을 알게 된 날 또는 알 수 있었던 날로부터 30일 이내
상품에 아무런 하자가 없는 경우 소비자의 고객변심에 의한 교환은 상품의 포장상태 등이 전혀 손상되지 않은 경우에 한하여 가능
교환 및 반품이 불가능한 경우
구매확정 이후(오픈마켓상품에 한함)
고객님의 책임 있는 사유로 상품 등이 멸실 또는 훼손된 경우
   (단, 상품의 내용을 확인하기 위하여 포장 등을 훼손한 경우는 제외)
시간이 지남에 따라 재판매가 곤란할 정도로 물품의 가치가 떨어진 경우
포장 개봉되어 상품 가치가 훼손된 경우
다배송지의 경우 반품 환불
다배송지의 경우 다른 지역의 반품을 동시에 진행할 수 없습니다.
1개 지역의 반품이 완료된 후 다른 지역 반품을 진행할 수 있으므로, 이점 양해해 주시기 바랍니다.
중고상품의 교환
중고상품은 제한된 재고 내에서 판매가 이루어지므로, 교환은 불가능합니다.
오픈마켓 상품의 환불
오픈마켓상품에 대한 책임은 원칙적으로 업체에게 있으므로, 교환/반품 접수시 반드시 판매자와 협의 후 반품 접수를 하셔야하며,
   반품접수 없이 반송하거나, 우편으로 보낼 경우 상품 확인이 어려워 환불이 불가능할 수 있으니 유의하시기 바랍니다.
배송예정일 안내
인터파크 도서는 모든 상품에 대해 배송완료예정일을 웹사이트에 표시하고 있습니다.
<인터파크 직배송 상품>
상품은 월~토요일 오전 10시 이전 주문분에 대하여 당일 출고/당일 배송완료를 보장하는 상품입니다.
상품은 서울지역/평일 주문분은 당일 출고/익일 배송완료를 보장하며,
서울외지역/평일 주문분의 경우는 오후 6시까지 주문분에 대하여 익일 배송완료를 보장하는 상품입니다.
(단, 월요일은 12시까지 주문에 한함)
상품은, 입고예정일(제품출시일)+택배사배송일(1일)에 배송완료를 보장합니다.
~ 상품은 유통특성상 인터파크에서 재고를 보유하지 않은 상품으로
주문일+기준출고일+택배사배송일(1일)에 배송완료를 보장합니다.(토/공휴일은 배송기간에 포함되지 않습니다.)
※기준출고일:인터파크가 상품을 수급하여 물류창고에서 포장/출고하기까지 소요되는 시간
<업체 직접배송/오픈마켓 상품>
~ 상품은 업체가 주문을 확인하고, 출고하기까지 걸리는 시간입니다.
주문일+기준출고일+택배사배송일(2일)에 배송완료를 보장합니다.(토/공휴일은 배송기간에 포함되지 않습니다.)
※5일이내 출고가 시작되지 않을시, 오픈마켓 상품은 자동으로 주문이 취소되며, 고객님께 품절보상금을 지급해 드립니다.
배송비 안내
도서(중고도서 포함)만 구매하시면 : 배송비 2,000원 (1만원이상 구매 시 무료배송)
음반/DVD만 구매하시면 : 배송비 1,500원 (2만원이상 구매 시 무료배송)
잡지/만화/기프트만 구매하시면 : 배송비 2,000원 (2만원이상 구매 시 무료배송)
도서와 음반/DVD를 함께 구매하시면 : 배송비 1,500원 1만원이상 구매 시 무료배송)
도서와 잡지/만화/기프트/중고직배송상품을 함께 구매하시면 : 2,000원 (1만원이상 구매 시 무료배송)
업체직접배송상품을 구매시 : 업체별로 상이한 배송비 적용

   * 세트상품의 경우 부분취소 시 추가 배송비가 부과될 수 있습니다.
   * 북카트에서 배송비없애기 버튼을 클릭하셔서, 동일업체상품을 조금 더 구매하시면, 배송비를 절약하실 수 있습니다.
해외배송 안내
인터파크도서에서는 국내에서 주문하시거나 해외에서 주문하여 해외로 배송을 원하실 경우 DHL과 특약으로 책정된 요금표에
   의해 개인이 이용하는 경우보다 배송요금을 크게 낮추며 DHL(www.dhl.co.kr)로 해외배송 서비스를 제공합니다.
해외배송은 도서/CD/DVD 상품에 한해 서비스하고 있으며, 다른 상품을 북카트에 함께 담으실 경우 해외배송이 불가합니다.
해외주문배송 서비스는 인터파크 도서 회원 가입을 하셔야만 신청 가능합니다.
알아두세요!!!
도매상 및 제작사 사정에 따라 품절/절판 등의 사유로 취소될 수 있습니다.
오픈마켓업체의 배송지연시 주문이 자동으로 취소될 수 있습니다.
출고가능 시간이 서로 다른 상품을 함께 주문할 경우 출고가능 시간이 가장 긴 기준으로 배송됩니다.
유통의 특성상 출고기간은 예정보다 앞당겨지거나 늦춰질 수 있습니다.
택배사 배송일인 서울 및 수도권은 1~2일, 지방은 2~3일, 도서, 산간, 군부대는 3일 이상의 시간이 소요됩니다.
  • 0개
  • 0개