2024년 3월호 코드스냅 뉴스레터를 소개합니다.
웹 개발 번역 매거진 코드스냅은 매월 다른 주제의 아티클을 선정하여 한국어로 전달해 드립니다. 3월호 뉴스레터는 <테스트를 말할 때 우리가 이야기하는 것 What We Talk About When We Talk About Test>이라는 주제로 팀원들이 일곱 편의 원문을 번역하였습니다.
개발 과정에서 테스트와 구현은 짝꿍처럼 붙어 다니는 존재지만 테스트 코드 작성이 익숙하지 않거나 실제로 테스트의 효용을 체감해 보지 못한 분들께는 테스트가 그저 부담이 되곤 하죠. 마치 테스트 코드에 내 코드를 끼워 맞추거나 반대로 내 코드에 테스트 코드를 끼워 맞추는 느낌 많이들 경험하실 텐데요. 테스트의 개념, 방법론, 도구 등과 관련하여 수많은 자료들이 있는 만큼 개발자마다 다양한 의견을 보이는 분야 중 하나가 바로 테스트인 것 같습니다. 뉴스레터를 준비하며 기억에 남는 Kent C. Dodds의 말이 있습니다. "테스트는 코드가 의도한 대로 작동한다는 자신감을 부여한다." 자신감! 결국 테스트는 그 자체가 목적이 아니라 더 나은 코드를 향한 여정의 일부가 되어야 하지 않을까요.
이번 뉴스레터가 여러분의 상황에 맞는 최선의 테스트를 만들어 나가는 데 도움이 되면 좋겠습니다.
3월호 뉴스레터 미리보기
TDD와 과학적 사고
원저: Thomas Heijtink | 번역: 정승아
발행일: 2024년 3월 6일
실무자들은 TDD를 어떻게 바라보고 접근할까요? 이 글에서는 과학적 사고법에 따라 TDD의 접근 방식을 단계적으로 살펴봅니다. TDD를 과학 실험에 빗대어 단순히 기술이 아닌 코드를 작성하는 방법으로써 TDD의 효용을 이야기합니다.
함수형 프로그래밍으로 단위 테스트를 다시 재미있게 만들기
원저: Leo Lanese | 번역: Jung Wook Park
발행일: 2024년 3월 10일
단위 테스트 작성은 소프트웨어 개발에 필수적이지만 썩 재밌는 작업이라고 이야기할 수는 없겠지요. 저자는 함수형 프로그래밍을 통하여 테스트 지향적인 코드를 작성할 수 있다고 이야기합니다. 이 글에서는 함수형 프로그래밍의 주요한 특징을 소개하며 과연 어떠한 점 덕분에 테스트하기 좋은 코드를 작성할 수 있는지를 알아봅니다.
대체 자바스크립트 테스트가 뭘까요
원저: Kent C. Dodds | 번역: Hyunji Seok
발행일: 2024년 3월 13일
소프트웨어를 테스트하는 수많은 이유 중에서 저자는 작업 속도의 향상과 코드를 향한 자신감 이 두 가지를 언급하는데요. 그렇다면 자바스크립트에서 테스트란 과연 무엇인지에 관하여 원문은 간단한 예제와 함께 단계별로 설명합니다. 프런트엔드 테스트에 입문하거나 테스팅 프레임워크에 익숙하지 않은 분들께서 읽어 보면 좋을 글입니다.
단위 테스트 가능한 코드를 작성하는 방법과 코드 품질을 개선하는 방법
원저: Cem Tüver | 번역: Jaea
발행일: 2024년 3월 17일
기존 코드를 테스트가 가능한 코드로 리팩터링하는 것은 테스트를 할 때 많은 분들이 고민하는 지점입니다. 저자는 특정 플랫폼이나 프로그래밍 언어에 국한되지 않고 본인의 경험에 비추어 작은 라이브러리를 단위 테스트가 가능한 코드로 만들어 나가는 과정을 설명하며 궁극적으로 테스트를 통하여 코드 품질을 개선하는 방법을 제시합니다.
리액트 네이티브(React Native) 테스팅
원저: Vojtech Novak | 번역: luma yi
발행일: 2024년 3월 20일
시중에 리액트 네이티브(React Native)를 테스팅하는 방법을 다루는 글은 많지 않습니다. 리액트와 다르게 리액트 네이티브는 Puppeteer, Cypress와 같은 유명한 E2E 테스팅 라이브러리도 이용이 불가하죠. 이러한 아쉬움을 해결할 수 있도록 리액트 네이티브 공식 문서에서는 이를 대체할 수 있는 다양한 테스팅 라이브러리 및 기법을 소개합니다. Unit 테스트부터 E2E 테스트까지 모든 테스트를 다루며 테스트 단위별 추천 라이브러리도 함께 언급합니다.
테스트를 작성하세요. 너무 많이는 말고요. 통합 테스트 위주로요.
원저: Kent C. Dodds | 번역: 윤정민
발행일: 2024년 3월 24일
Kent C. Dodds는 양질의 소프트웨어로 세상을 더 나은 곳으로 만드는 것을 꿈꿉니다. 이를 위하여 다른 사람들에게 양질의 소프트웨어를 만드는 방법을 가르치는 교육자의 길을 걷고 있는데요. 그가 만든 라이브러리, 테스팅 라이브러리는 프런트엔드 생태계에 엄청난 영향을 끼치며 컴포넌트 테스트 도구로 자리를 잡았습니다. 애플리케이션을 만들다 보면 어떤 테스트를 얼마나, 어떻게 하면 좋을까를 항상 고민하게 됩니다. Socket.IO를 만든 Guillermo Rauch가 한 트윗을 작성했습니다. "Write tests. Not too many. Mostly integration." 짧지만 심오한 내용을 가진 글에 관하여 Kent가 본인의 생각을 이야기합니다.
TDD에 대한 큰 오해
원저: Oliver Wolf | 번역: 한혜지
발행일: 2024년 3월 27일
TDD에서 빠질 수 없는 개념은 단위 테스트일 텐데요. 해당 개념에 관하여 우리가 흔히 하는 오해를 다루는 글입니다. 저자는 mockist vs classicist 두 상반되는 접근법에 주목하여 단위 테스트를 강조하는 전통적인 TDD를 반박합니다. 단위 테스트의 '단위'를 어떻게 설정해야 하는지, 어디까지 분리해야 하는지를 언급하며 '좋은' 테스트 코드 작성법에 관한 본인의 견해를 제시합니다.
저는 비로소 3월이 오면 새해가 되었다는 실감이 납니다. 새 학기, 새 직장, 새 프로젝트, 3월은 늘 새로운 시작과 함께한 것 같아요. 공교롭게 코드스냅 뉴스레터도 3월에 문을 여네요. 모두에게 기대감을 선사하는 3월이 되기를 바랍니다. 앞으로의 코드스냅 활동도 기대 부탁드리며 읽어 주셔서 고맙습니다. 🕊️