An Overview of JavaScript Testing in 2017 : 현재 JavaScript 코드에서 테스트코드를 작성할 때 고려해야 할 도구를 한꺼번에 정리한 글이다. 각 도구의 상세사용법이라기보다는 테스트의 목적을 구분하고 현재 고려해야 할 중요 도구들이 담당하는 영역과 각 도구의 특징들을 요약해서 도구를 고려하거나 조합해서 사용할 때 후보군을 파악하기 아주 좋다.(영어)
REST 2.0 Is Here and Its Name Is GraphQL : REST API와 GraphQL API를 비교하면서 GraphQL의 장점을 설명한 글이다. REST API로 웹 클라이언트를 만들면 잦은 API 호출이 발생하게 되고 이를 통합한 API를 만들었지만, 이는 관리도 어렵고 화면에 특화된 API이면서 네트워크 오버헤드가 커지는 문제를 GraphQL은 어떻게 해결하고 있는지를 보여주고 있다. 각 버전별 예제 소스를 제공하고 있어서 자세히 비교해 볼 수 있고 GraphQL의 장점을 꽤 잘 정리한 글이라고 생각한다.(영어)
Launching Ignition and TurboFan : Chrome의 자바스크립트 엔진인 V8의 컴파일러 인프라고 Crankshaft가 2010년부터 쓰이고 있었는데 성능을 향상하고 새로운 JavaScript의 기능을 잘 지원하기 위해 인터프리터인 Ignition과 최적화 컴파일러인 TurboFan의 조합으로 바뀌게 되었다. 이는 Chrome 59(V8 5.9)에 장착되고 5~10% 정도 성능 향상이 이뤄졌고 Node.js에서도 10% 이상 성능이 좋아진 것으로 나왔다.(영어)
ES6 Modules in Chrome Canary (M60+) : Chrome Canary(60버전)부터 ES6 Modules를 지원해서 모던 브라우저 대부분에서 지원하게 되므로 <script type="module">를 사용하는 방법과 ES6 Modules를 지원하지 않는 브라우저도 같이 지원하기 위해 <script nomodule>을 이용하는 방법과 이에 대한 이슈까지 한꺼번에 설명하고 있는 글이다.(영어)
The Contributors Guide to webpack - Part 1, Part 2 : webpack 프로젝트에 기여할 수 있게 상세하게 정리된 안내 문서다. Part 1에서는 webpack에 있는 많은 저장소를 간략하게 설명하면서 각 저장소가 어떻게 나누어져 있는지를 이해할 수 있게 하고 Part 2에서는 Tapable 프로젝트를 설명하면서 webpack의 플러그인 시스템이 어떤 형태로 되어 있고 어떻게 작성할 수 있는지를 설명해서 webpack의 플러그인 코드를 이해할 수 있게 돕는다.(영어)
남다른 개선방법을 다시 보여준 페이스북의 React Fiber : React가 Virtual DOM으로 좋은 성능을 보여주고 있지만 애니메이션 등에서는 약한 모습을 보여주는데 이런 부분을 개선하기 위해서 발표한 React Fiber를 분석한 글이다. 내용이 쉬운 부분은 아니지만, Fiber가 이 부분을 해결하기 위해서 requestIdleCallback를 활용하고 virtual stack을 구현해서 잦은 DOM 변화가 있을 때 생기는 성능 문제를 어떻게 해결하는지를 설명하고 그 테스트 결과까지 잘 나와 있다.(한국어)
Node.js Streams: Everything you need to know : Node.js의 Streams 기능을 쉽게 설명한 글이다. Unix의 파이프 기능처럼 Streams를 사용하면 대용량의 파일을 처리할 때 메모리 면에서 어떤 장점이 있는지를 설명하고 readable, writable, duplex, transform 네 가지 스트림의 차이점과 사용방법을 모두 보여주고 각 스트림을 직접 구현하는 방법까지 잘 나와 있다.(영어)
NODE 8: FIVE NEW FEATURES YOU NEED TO KNOW : Node.js 8.0.0부터 사용 가능한 새로운 기능을 소개한 글이다. String padding, 파라미터/아규먼트에서 마지막에 콤마를 허용하는 기능, Async 등 기본적으로 사용할 수 있는 기능과 Harmony 플래그를 키면 사용할 수 있는 템플릿 리터럴, 객체 rest, spread까지 새 기능을 파악하기 위해서 간단히 읽어볼 만하다.(영어)
Introducing Istio: A robust service mesh for microservices : Google, IBM, Lyft가 오픈소스로 만든 마이크로서비스용 서비스 메시(mesh)이다. 마이크로서비스의 각 애플리케이션을 그대로 둔 채 인프라에 레이어를 주입해서 보안, 모니터링, 연결 관리 등을 가능하게 해서 마이크로 서비스를 쉽게 관리하고 개발자는 애플리케이션 작성에만 신경 쓸 수 있게 한다. 현재는 Kubernetes를 대상으로 만들어지고 있으나 다른 환경도 지원할 예정이다.(영어)
볼만한 링크
아델라의 브랜치: 2. 걸스로봇 : 아델라님이 걸스로봇이라는 페미니즘을 실천하는 이공계 여성 네트워크를 소개하는 글이다. 걸스로봇이을 만든 취지와 진행하는 활동에 대해서도 잘 나와 있고 개발자 커뮤니티 내에서 여성 중심의 커뮤니티로 페미니즘 적으로 접근하는 부분이나 차별적인 부분에 대한 지적도 읽어볼 가치가 크다.(한국어)
슬랙봇, 어디까지 만들어봤니? : Slack에서 Slack bot을 어떻게 활용하는지 정리한 글이다. Slack에서 bot을 연결하거나 만드는 방법보다는 사용사례별로 구분해서 실제 업무에서 어떻게 활용하고 어떤 효과가 있는지 잘 나와 있다. 여기 나온 기능들이 bot을 직접 개발해야 할 정도로 복잡한 부분도 아니라서 회사에서 Slack을 쓰면 참고해서 도입해 보기 좋다.(한국어)
(번역) 진짜배기 코드 평가자라면 하지 말아야 할 네 가지 : 코드 리뷰를 해야 할 때 갖춰야 할 자세에 관해서 설명하고 있다. 여기 맞춰서 하려면 팀의 의지도 합의도 중요하다고 생각하지만 코드리뷰를 통해서 팀의 학습과 발전에 도움이 되어야 한다는 부분과 타협하지 않고 평가를 할 때 어떤 자세로 해야 하는지가 나와 있어서 읽어볼 만하다.(한국어)
알파고의 다음 수 : 커제 9단과의 완벽한 승리 후 DeepMind에서 작성한 AlphaGo's next move를 구글에서 번역해서 올린 글이다. 알파고는 이제 바둑계에서 은퇴할 것이고 딥마인드는 AI로 다른 연구 및 알파고를 이용한 바둑 교육툴을 개발할 것이라고 한다.(한국어)
Comments