Outsider's Dev Story

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

기술 뉴스 #82 : 17-07-15

웹개발 관련

  • GraphQL vs. REST : GraphQL과 REST의 유사한 점과 차이점을 비교한 글이다. 리소스 정의를 각각이 어떻게 하는지, URL 라우팅과 GraphQL의 스키마가 어떻게 다른지, Rest의 핸들러와 GraphQL의 리졸버는 어떻게 구현하고 차이점이 무엇인지를 설명하고 있어서 간략히 GraphQL의 특징을 이해하기 좋다.(영어)
  • IntersectionObserver를 이용한 이미지 동적 로딩 기능 개선 : 이미지가 많은 문서의 경우 이미지가 화면에 보일 때 동적으로 로딩하는 방식을 많이 사용하는데 제대로 구현하기가 쉽지 않은 게 사실이다. 크롬 51부터 추가된 IntersectionObserver API를 이용해서 특정 DOM이 화면에 표시되는 지 여부를 구현하는 방법을 설명하고 있다. 예제도 포함되어 있어서 화면에 보이는 요소를 얼마나 쉽게 검사할 수 있는지 잘 설명되어 있다.(한국어)
  • Getting Into HNPWA with Next.js (HNPWA 앱개발 Next.js 로 시작하기) : HNPWA는 해커뉴스를 PWA로 만들어서 예제로 공유하는 사이트인데 Next.js를 이용해서 해커뉴스 앱을 PWA로 만드는 과정부터 Ligthhouse 등으로 성능을 개선하는 부분까지 PWA 앱을 만드는 전체 과정이 잘 설명되어 있다. 전체 예시 코드도 제공되고 있으므로 PWA나 Next.js에 대한 예제 코드로 활용하기 좋다.(한국어)
  • React, Relay and GraphQL: Under the Hood of the Times Website Redesign : NY Times에서 새롭게 웹사이트를 개편하면서 다양한 언어와 서비스로 구성된 웹사이트를 GraphQL, React, Relay로 어떻게 구현했는지 설명한 글이다. 기술적으로는 간단히 GraphQL, Relay를 소개하는 느낌에 가깝고 Relay Classic에서 새로 나온 Modern으로 업그레이드하는 과정에서 나온 kyt라는 프로젝트 관리 도구도 함께 소개하고 있다.(영어)
  • Standard ECMA-262 ECMAScript® 2017 Language Specification 8th edition : ES2017(ES8)의 명세가 확정되었다.(영어)
  • MDN’s new design is in Beta : 웹 기술 관련 레퍼런스 문서로 가장 좋다고 생각하는 MDN이 새로운 문서 디자인을 베타로 적용해서 테스트하고 있다. MDN에 로그인 후 프로필에서 베타테스터로 설정하면 이용할 수 있다.(영어)

그 밖의 프로그래밍 관련

  • Diff Monster를 소개합니다 : GitHub의 Pull Request를 리뷰할 때 부족한 GitHub의 기능을 보충하기 위해서 파일 리스트를 쉽게 보고 파일별로 리뷰 완료를 확인하는 등 코드 리뷰를 편하게 할 수 있게 도와주는 웹 프로젝트.(한국어)
  • Introducing npx: an npm package runner : npm v5.2.0부터 포함된 npx를 설명한 글이다. 요즘은 npm 모듈을 글로벌로 설치하지 않고 로컬에 설치하고 사용하는게 일반적인데 이때 실행파일을 실행하려면 npm scripts에 추가해서 사용하는데 npx는 package.json를 수정하지 않고 바로 실행할 수 있다. 여기에 추가적으로 설치되어 있지 않은 npm 모듈도 실행하면 알아서 찾아서 임시로 설치해서 실행해 주므로 제너레이터 등을 사용할 때 좋다.(영어)
  • Universal Now: Now, on Every Cloud : Zeit에서 바로 서버에 배포할 수 있는 도구로 만든 now가 이제 유니버설 인터페이스를 제공해서 AWS, GCP, Azure에 배포할 수 있게 되었다. 각 클라우드의 Serverless 기능을 이용하는데 AWS의 경우 Lambda와 API Gateway를 이용한다. 서버리스 도구에서 강력한 도구가 새로 나온 느낌이다.(영어)
  • Go Reliability and Durability at Dropbox, Tammy Butow : Dropbox가 현재 golang을 어떻게 사용하고 있고 어떻게 도입했는지를 설명한 글이다. golang을 쓰기 시작하면서 많은 부분을 golang으로 바꾸어서 15개 팀 이상이 golang을 쓰고 있고 130만 라인 이상의 코드를 작성했다. 현재 아주 성공적으로 도입해서 사용하고 있고 새로운 사람이 golang에 적응할 수 있도록 스타일가이드를 알려주고 코드리뷰를 진행하면서 애플리케이션을 작성해보도록 한다고 한다.(영어)
  • Instagram Makes a Smooth Move to Python 3 : Instagramp이 10개월의 작업 끝에 Python 2에서 3으로 완전히 넘어갔는데 그 과정에 대해 인스타그램 개발자 2명과 인터뷰한 내용이다. 3~4달 동안 사용하지 않는 코드와 3가 지원하지 않는 패키지를 제거하고 2달 동안 유닛테스트를 작성한 뒤 프로덕션 코드를 4달 동안 바꿔서 현재는 완전히 Python 3으로 바꿨다고 한다. 성능에 대한 기대는 하지 않았는데 CPU, 메모리 모두 줄어드는 효과를 보았다고 한다.(영어)
  • adidas APIs : Adidas에서 RESTful API를 구축하면서 각 팀과 협의하고 가이드라인을 만들 과정을 설명한 글이다. 이 과정에서 만들어진 API 가이드라인을 공개했는데 정리가 잘 되어 있어서 API를 설계할 때 참고하기 좋다.(영어)

볼만한 링크

  • 모든 개발자들이 쉬는 시간에도 개발을 하는 것은 아니다 : 모든 개발자가 쉬는 시간이나 여가에 개발하고 트랜드를 공부하는 것은 아니라는 자신에게 맞게 시간을 보내면서 스트레스받지 말자는 자신의 얘기를 적은 글이다. 나는 쉬는 시간에 개발하는 쪽이긴 하지만 더 즐거운 일을 하자는 부분에는 동의한다. 나는 그게 더 즐거울 뿐...(한국어)
  • 데이터를 얻으려는 노오오력 : Bapul의 김영재 님이 교육 서비스에서 데이터를 억기 위해서 수년간 한 작업과 그 결과가 정리된 발표자료이다. 단순히 하나의 내부 프로젝트가 아니라 수년간 서비스 내에서 사용자에게 좋은 데이터를 수집하고 그 인사이트로 서비스를 개선하고 다시 개선하는 과정이 다 나와 있다. 데이터를 수집하기 위해서 내부 알고리즘과 UX 등을 수개월에 걸쳐서라도 개선하고 이런 데이터를 수집하고 분석하기 위해서 취해야 하는 관점 등이 나와 있는데 실제 경험을 기반으로 한 내용이라서 공감도 되고 발표 흐름이 잘 정리되어 있어서 이해하기도 좋다.(한국어)
  • 그로스 해킹 – 이보다 더 과학적일 수 없다 : Qubit이라는 마케팅 분석 플랫폼 스타트업에서 수천 개의 그로스 해킹 실험 결과를 발표한 내용을 정리 요약한 글이다. 영어고 글이 길어서 자세히 보기 어려운데 각 실험에서 어느 정도의 효과가 있는지 이 글을 통해서 알 수 있다.(한국어)

IT 업계 뉴스

프로젝트

  • bundlesize : npm 패키지로 빌드 후 특정 파일의 사이즈를 검사한 지 GitHub의 훅으로 알려주는 라이브러리. Travis CI, CircleCI에서 동작한다.
  • Babylon.js : WebGL 자바스크립트 프레임워크로 3.0부터 WebGL 2를 지원한다.
  • Uppy : 웹브라우저용 파일 업로더
  • Highlight : 키노트 등에 Syntax Highlight를 자동으로 해주는 애플리케이션.
  • Bash-Snippets : 다양한 Bash 스크립트를 모아놓은 저장소.
  • API Security Checklist : API 보안을 확인해 볼 수 있는 체크리스트로 한글로도 제공한다.

버전 업데이트

2017/07/15 22:15 2017/07/15 22:15