
올해는 이직준비와 토이프로젝트, GDG 활동 그외에 몇몇가지 일들로 인해 너무 바쁘게 지내는 바람에 해외여행을 하리라고 생각도 못하고 있었습니다. 그런데 어쩌다보니 저번주 주말 베이징에 다녀왔습니다. 1박 2일로.. Northeast Aisa GDG Summit 한국, 일본, 중국, 대만 등 아시아권 GDG 운영진들은 1년에 한번씩 중국에 모여서 여러 세션과 라이트닝 토크, 토론등을 통해 이야기를 나누고 경험을 공유할 수 있는 Northeast Asia GDG Summit 에 참여할 수 있습니다. 저도 이번 Northeast Asia GDG Summit 2019 에 참가하기 위해 베이징에 다녀오게 되었습니다. 원래 행사 일정은 금요일부터 일요일까지였고 월요일에 휴가를 쓰고 관광을 더 하다 오려고 했지만,..

해당 글은 github goldbergyoni 님의 javascript-testing-best-practices 를 번역하여 작성한 글 입니다. 번역 과정중 오류가 있을 수 있으니 댓글을 통해 피드백 주시면 감사하겠습니다. 적절하게 테스트 더블을 사용하라 테스트 더블은 테스트 코드를 편하게 작성할 할 수 있도록 해주는 도구 입니다. 하지만 어플리케이션 내부 구현 코드와 커플링 된다는 문제가 있기 때문에 남용하는 것은 권장하지 않습니다. 테스트 더블을 적절하게 사용하려면 요구사항 기능을 테스트하는대에 사용하는지를 고려하면 됩니다. 만약 요구사항 기능을 테스트하는대에 사용하는게 아니라면 해당 테스트는 화이트박스 테스트일 가능성이 높습니다. 예를 들어, 결제 서비스가 중단되었을 때 앱이 합리적으로 동작하는지를..

해당 글은 github goldbergyoni 님의 javascript-testing-best-practices 를 번역하여 작성한 글 입니다. 번역 과정중 오류가 있을 수 있으니 댓글을 통해 피드백 주시면 감사하겠습니다. 들어가며 우리는 평소에 소프트웨어 구현만을 위한 코드(Production code)만을 신경쓰고 있습니다. 따라서 기존에 익숙하지 않은 테스트 코드를 작성하는 대에 어려움과 거부감을 느끼게 되고 많은 분들이 포기하게 됩니다. 하지만 익숙하지 않음에도 불구하고 테스트 코드에 대한 작은 투자는 큰 가치를 얻을 수 있습니다. 하지만 과한 테스트보다는 필요한 만큼만 테스트하고, 빠른 테스트를 유지하기 위해 노력해야 합니다. 때로는 민첩성과 단순성을 위해 테스트를 포기하고 신뢰성을 낮추는게 더..

해당 포스트는 Puppeteer 에 대해 학습하기 위해 puppeteer 의 영어 문서를 토대로 부가적인 설명과 간단한 puppeteer의 사용 방법을 소개합니다. Puppeteer Puppeteer는 DevTools Protocol을 통해 Chrome 또는 Chromium을 제어하기 위한 API를 제공하는 node.js 라이브러리 입니다. 다양한 기능이 있지만 가장 큰 특징은 Headless로 실행될 수 있다는 점 입니다. puppeteer 문서에서 소개되는 대표적인 기능들은 아래와 같습니다. 1. SPA(Single-Page Application)를 크롤링하고 미리 렌더링된 컨텐츠 (SSR - Server Side Rendering)를 생성 할 수 있습니다. 2. 최신 자동 테스트 환경을 만듭니다. ..

rx를 사용하며 개발을 하면서 필요한 웬만한 기능들은 rx의 operator로 제공되고 있습니다. 따라서 이 operator 들만 잘 숙지하고 있으면 rx를 사용하며 기능이 부족하다 느끼는 경우는 거의 없을거라 생각합니다. 이번 포스팅에서는 수 많은 rxjs의 operator 중 가장 헷갈리는 map, flatMap, switchMap, concatMap, mergeMap에 대해 정리해보도록 하겠습니다. map map operator는 js의 array나 Java의 Stream과 같은 API를 사용해 보셨다면 이미 알고 있을거라 생각됩니다. map operator는 다른 API들과 동일하게 발생하는 요소들을 다른 값으로 변환해 줍니다. map operator는 아래 예제와 같이 발생하는 값을 다른 값으로..

최근 웹 프론트엔드에대해 더 깊게 학습하다보니 JavaScript 성능 최적화에도 관심을 가지게 되었습니다. 그 중 흥미롭게 공부한 내용을 정리하여 포스팅으로 작성하고자 합니다. 이번 포스팅은 JavaScript가 정적 타입 언어의 성능을 따라잡기 위해 필수적인 개념인 Hidden Class 에 대해 알아보도록 하겠습니다. Hidden Class 자바와 같은 정적 타입 언어의 경우 객체의 속성이 고정되어 있기 때문에 객체를 생성할때부터 메모리를 얼마나 할당해야 하는지 정확하게 파악할 수 있습니다. 따라서 객체의 속성을 저장하는 메모리를 연속되기 할당한 뒤 offset기반으로 빠르게 접근하여 사용할 수 있습니다. 하지만 JavaScript는 동적 타입 언어이기 때문에 객체를 생성할때에 메모리를 얼마나 할당..