Outsider's Dev Story

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

기술 뉴스 #87 : 17-10-01

웹개발 관련

  • React, Jest, Flow와 Immutable.js의 라이센스 변경을 알립니다. : 페이스북이 React 등 오픈소스에 BSD 라이센스에 특허를 추가한 라이센스를 적용하고 있어서 커뮤니티에서 계속 이슈가 되고 있었는데 공식적으로 MIT로 공개하기로 발표되었다. React는 16 버전부터 새로운 라이센스로 공개되었다.(한국어)
  • Relicensing the GraphQL specification : 위 내용에 이어 GraphQL 명세도 Open Web Foundation Agreement (OWFa) v1.0로 라이센스가 변경되었고 GraphQL 구현체와 Relay도 MIT로 변경할 것이라고 한다.(영어)
  • Start Your Engines – Firefox Quantum Lands in Beta, Developer Edition : 수년 전부터 Firefox에서 새로운 엔진으로 만들고 있는 Servo에 기반을 둔 프로젝트 Quantum이 베타로 공개되었다. 이 새로운 Firefox는 11월에 공개될 예정이고 Firefox Quantum으로 불릴 예정이다.(영어)
  • 리디스토리 프론트엔드 개발기 : 리디북스에서 리디스토리의 프론트엔드를 개발한 과정에 관한 이야기이다. Django + jinja2 기반으로 작성했던 애플리케이션을 React를 이용한 SPA로 재구축하고 상태관리로 복잡해진 코드를 Redux를 도입해서 바꾼 고민의 과정이 고스란히 나와 있다. 글에는 잘못된 선택에 관한 얘기가 나오지만, 개인적으로는 어차피 모든 상황을 예측할 수는 없으므로 문제를 발견했을 때 논의하고 더 좋은 선택으로 바꾸어서 나아가는 것이 훨씬 좋다고 보기 때문에 그런 변경을 계속하는 개발과정을 읽으면서 조직의 건강함까지 느껴지는 것 같다.(한국어)
  • Introducing GraphQL Playground : Graphcool에서 GraphQL을 브라우저에서 사용할 수 있는 GraphiQL에 기반을 둔 GraphQL Playground를 공개했다. 여기서 설정한 GraphQL 환경을 공유할 수 있고 문서로도 사용할 수 있으며 Apollo 클라이언트용 코드를 생성할 수 있다.(영어)
  • eBay’s Font Loading Strategy : 웹 폰트를 사용하는 경우 웹 폰트를 로딩하는 시간 때문에 발생하는 FOUT, FOIT 문제를 해결하기 위한 접근 방법을 설명한 글이다. FOUT, FOIT를 피하고자 기본은 시스템 폰트를 보여주고 웹 폰트가 이미 캐싱 되어 있는 경우에만 웹 폰트를 보여준다. 이를 위해서 최초 접근할 때는 시스템 폰트를 보여주고 비동기로 웹 폰트를 다운받은 뒤 로컬스토리지에 플래그를 설정하고 페이지가 로딩될 때 이 플래그가 설정되어 있으면 웹 폰트를 보여주는 CSS 클래스를 활성화한다. 이를 구현한 ebay-font도 공개되어 있다.(영어)
  • How JavaScript works: memory management + how to handle 4 common memory leaks : JavaScript에서 메모리를 관리하는 방법에 관해 설명한 글이다. 프로그래밍 언어에서 일반적인 메모리 관리부터 garbage collection이 동작하는 방식까지 차근차근 설명하고 garbage collection이 처리 못 하는 부분을 설명해서 왜 메모리 누수가 발생하는지 이해할 수 있게 도와주고 있다. 마지막으로 일반적으로 메모리 누수를 발생시키는 코드에 대한 예제까지 제공하고 있다.(영어)
  • An event for CSS position:sticky : 헤더를 특정 영역 내에서 sticky로 지정할 때 scroll 이벤트를 추적하는 대신 IntersectionObserver를 이용해서 구현하는 방법을 설명하고 있다. 아직 브라우저 지원 상황이 좋지는 않지만 관심 가질 만한 기능이다.(한국어)
  • Angular Version 5 Release was Delayed : 9월 18일로 예정되어 있던 Angular v5의 릴리스가 연기되어 10월 23일에 릴리스 예정이다.(영어)

그 밖의 프로그래밍 관련

  • Maintainer, Heal Thyself : Babel.js를 이끄는 Henry Zhu가 React Boston 2017에서 발표한 발표자료로 오픈소스 메인테이너 활동하는 것이 얼마나 힘든 일인지를 설명하고 계속 개발을 하기 위해서 관리가 필요하고 개발자들의 도움이 필요하다는 얘기를 하고 있다. "Stop treating open source like a product you purchased and start treating ti like a team you belong to."라는 말이 인상적이다. 영상도 공개되었다.(영어)
  • HashiCorp Terraform Module Registry : Terraform의 모듈을 공유하고 가져다 쓸 수 있는 저장소가 공개되었다.(영어)
  • 오픈 소스 프로젝트를 더 잘 릴리스하는 요령들 : 스포카에서 오픈소스 프로젝트의 릴리스하는 팁을 정리한 글인데 오픈소스가 아니더라도 릴리스를 자동화하는 부분에서 유용한 팁이 많이 담겨있다. 체인지 로그와 버전 관리 방법 부터 패키지 릴리스, 빌드 자동화 및 문서 관리에 대한 부분까지 릴리스할 때 신경 써야 하는 부분이 다 담겨있다. 간단한 프로젝트를 하더라도 이 글에 담긴 내용을 가능한 한 다 적용하는 게 좋다고 생각한다.(한국어)
  • 카카오 신입 공채 1차 코딩 테스트 문제 해설 : 카카오에서 신선한 신입 공채 과정으로 블라인드 코딩 테스트를 9월 16일 온라인으로 진행했는데 이때 나온 코딩 테스트 문제의 의도와 접근방법 등을 설명한 글이다. 이 코딩 테스트는 흥미롭게 보고 있었지만 풀어보진 않았었는데 카카오에서 코딩 문제로 사용한 만큼 어떤 의도로 문제를 만드는지 이해할 수 있는 재미있는 글이다.(한국어)
  • 카카오 블라인드 공채 해킹하기 : 온라인에서 진행된 카카오의 블라인드 공채의 플랫폼을 해킹해서 테스트를 통과하게 만들고 채점데이터를 가져오는 과정을 설명한 글이다. 블라인드 테스트와 풀이가 끝난 시점에서 공개했고 어차피 이런 코드로 통과할 일은 없으므로 온라인 플랫폼에서 이런 해킹과정을 단계별로 풀어써서 재미있는 글이다.(한국어)
  • async_hooks in node.js, illustrated : Node.js 8.x에 실험 단계로 도입된 async_hooks의 사용방법을 설명한 글이다. async_hooks으로 리소스의 생성부터 제거될 때까지를 추적할 수 있고 이를 이용해서 작업이 이뤄지는 시간을 추적하는 간단한 예제코드까지 포함되어 있다. 나도 Node.js 애플리케이션을 더 심도 있게 추적하는 용도로 관심 가지는 기능이다.(영어)
  • Intro to Threads and Processes in Python : Python에서 병렬 처리를 위해 Thread와 Process를 설명한 글이다. 스레드와 프로세스의 기본적인 차이에 관해서 설명하고 Python의 특징을 설명한 뒤에 예제 코드를 통해서 I/O 처리나 CPU 작업에서 어떤 차이가 있는지를 비교하면서 설명해주어 차이점을 이해하기 좋다.(영어)
  • iOS 디자인 가이드라인 번역 - iPhone X : 애플 Human Interface Guidelines의 iPhone X 부분을 번역한 글이다. 아직 iPhone X이 출시되진 않았지만, iOS 앱 개발을 할 때 앞으로는 고려해야 하므로 읽어두어야 할 자료다.(한국어)
  • Hacktoberfest : 10월 중에 GitHub의 오픈소스 프로젝트에 기여하면 티셔츠를 주는 이벤트다. 티셔츠를 받으려면 Pull Request를 10월 중에 4개 만들어야 한다.(영어)

볼만한 링크

  • 더 나은 웹프론트엔드 과정을 고민하며, : 코드스쿼드에서 웹프론트엔드 교육을 하면서 더 좋은 프론트엔드 개발자를 만들기 위해서 고민한 교육 방향과 접근방법을 설명한 글이다. 현재 효과를 보고 있는 부분부터 고민하는 부분까지 잘 나와 있는데 대체로 동의하는 편이다.(한국어)
  • Go: Ten years and climbing : Go 언어가 만들어진 지 10년을 기념해서 Rob Pike가 지난 10년간의 역사를 설명한 글이다. 10년이나 될 줄도 몰랐지만 2007년 처음 Google 캠퍼스에서 Robert Griesemer, Rob Pike, Ken Thompson이 모여서 Go라고 이름 짓고 시작한 과정과 초기에 같이 한 사람들과 과정을 설명하고 있다. 이후 Docker 등에서 도입하면서 Go 언어는 클라우드의 언어(Go is the language of the cloud.)가 되었다고 소개하고 있다.(영어)

IT 업계 뉴스

프로젝트

  • Conventional Commits : 오픈소스 프로젝트에서 커밋 메시지의 형식을 표준화하기 위해 규칙을 정의하는 문서 프로젝트.
  • Jaeger : OpenTracing과 호환되는 분산 추적 시스템으로 Uber에서 만들었다.
  • GitHub Debug : github.com에 연결이 안 될 때 테스트할 수 있는 GitHub Debug 사이트와 도구를 공개했다.
  • draggable : Shopify에서 공개한 JavaScript 드래그 앤드 드롭 라이브러리.
  • Moocha : edX, Coursera, Udacity 등의 mooc 강좌를 검색해주는 사이트.
  • Central Dogma : Line에서 공개한 Git 기반의 고가용성 설정 저장소.
  • micro : 터미널 기반 텍스트 에디터.

버전 업데이트

2017/10/01 20:16 2017/10/01 20:16