Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

기술 뉴스 #79 : 17-06-01

웹개발 관련

  • 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 변화가 있을 때 생기는 성능 문제를 어떻게 해결하는지를 설명하고 그 테스트 결과까지 잘 나와 있다.(한국어)
  • Goodbye PNaCl, Hello WebAssembly! : Chrome이 플러그인 없이 네이티브 코드를 돌릴 수 있도록 2013년부터 지원했던 PNaCl을 2018년 1분기에 지원 중단하기로 했다. 이미 크롬과 파이어폭스에서 지원하고 있고 Edge, Safari는 프리뷰 버전에서 지원하는 WebAssembly가 더 성능이 좋고 적합한 방법이기 때문이다. PNaCL에서 WebAssembly로 마이그레이션하는 문서도 제공하고 있다.(영어)

그 밖의 프로그래밍 관련

  • Introducing GitHub Marketplace and more tools to customize your workflow : GitHub에서 Travis CI, ZenHub, Sentry 등 GitHub와 연결 가능한 앱을 검색해서 사용할 수 있는(유료 포함) 마켓 플레이스를 오픈했다. 기존에 GitHub Integration이라고 부르던 확장 프로그램들은 GitHub Apps로 이름이 변경되었다. 추가로 전에 공개되었던 API의 v4인 GraphQL 버전이 Early Access로 공개되었다.(영어)
  • Kotlin on Android. Now official : Google I/o에서 이제 안드로이드가 Kotlin을 직접 지원한다고 발표했다. 같이 발표된 Android Studio 3.0 프리뷰에서 바로 Kotlin을 사용해서 안드로이드 앱을 개발할 수 있다.(영어)
  • 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까지 새 기능을 파악하기 위해서 간단히 읽어볼 만하다.(영어)
  • 새로운 구글 클라우드 TPU를 통해 머신러닝 모델을 구축하고 훈련 시켜보세요 : 구글이 개발한 머신러닝용 TPU가 구글 클라우드에 추가되어 신경망 학습 등에 사용할 수 있게 되었다.(한국어)
  • Introducing Istio: A robust service mesh for microservices : Google, IBM, Lyft가 오픈소스로 만든 마이크로서비스용 서비스 메시(mesh)이다. 마이크로서비스의 각 애플리케이션을 그대로 둔 채 인프라에 레이어를 주입해서 보안, 모니터링, 연결 관리 등을 가능하게 해서 마이크로 서비스를 쉽게 관리하고 개발자는 애플리케이션 작성에만 신경 쓸 수 있게 한다. 현재는 Kubernetes를 대상으로 만들어지고 있으나 다른 환경도 지원할 예정이다.(영어)

볼만한 링크

  • 아델라의 브랜치: 2. 걸스로봇 : 아델라님이 걸스로봇이라는 페미니즘을 실천하는 이공계 여성 네트워크를 소개하는 글이다. 걸스로봇이을 만든 취지와 진행하는 활동에 대해서도 잘 나와 있고 개발자 커뮤니티 내에서 여성 중심의 커뮤니티로 페미니즘 적으로 접근하는 부분이나 차별적인 부분에 대한 지적도 읽어볼 가치가 크다.(한국어)
  • 슬랙봇, 어디까지 만들어봤니? : Slack에서 Slack bot을 어떻게 활용하는지 정리한 글이다. Slack에서 bot을 연결하거나 만드는 방법보다는 사용사례별로 구분해서 실제 업무에서 어떻게 활용하고 어떤 효과가 있는지 잘 나와 있다. 여기 나온 기능들이 bot을 직접 개발해야 할 정도로 복잡한 부분도 아니라서 회사에서 Slack을 쓰면 참고해서 도입해 보기 좋다.(한국어)
  • (번역) 진짜배기 코드 평가자라면 하지 말아야 할 네 가지 : 코드 리뷰를 해야 할 때 갖춰야 할 자세에 관해서 설명하고 있다. 여기 맞춰서 하려면 팀의 의지도 합의도 중요하다고 생각하지만 코드리뷰를 통해서 팀의 학습과 발전에 도움이 되어야 한다는 부분과 타협하지 않고 평가를 할 때 어떤 자세로 해야 하는지가 나와 있어서 읽어볼 만하다.(한국어)

IT 업계 뉴스

프로젝트

  • GitHub Desktop Beta : GitHub 데스크톱 애플리케이션이 Electron 기반으로 TypeScript와 React로 작성된 버전으로 새로 출시되었다. 관련해서 왜 네이티브 개발팀에서 Electron으로 새로 개발했는지 설명한 How Four Native Developers Wrote An Electron App도 올라왔다.
  • Google.ai : Google에서 인공지능 관련해서 Google하는 작업과 만든 도구들을 모아놓은 사이트를 공개했다.
  • Chatbase : Google에서 챗봇을 분석할 수 있는 플랫폼인 Chatbase를 공개했다.

버전 업데이트

2017/06/01 02:59 2017/06/01 02:59