Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.

기술 뉴스 #112 : 18-10-15

웹개발 관련

  • Migrating from Underscore to Lodash : Dropbox에서 최근 10년도 더 된 프론트엔드 스택을 개선하기 위해서 CoffeeScrypt를 TypeScript로 바꾸고 jQuery에서 React로 바꾸는 등의 작업을 했는데 마이그레이션 후보 중 하나인 Underscore를 Lodash로 바꾼 과정을 설명하고 있다. Underscore가 3년이나 릴리스 되지 않았고 Lodash가 훨씬 최적화가 잘 되어 있으므로 바꾸기로 하면서 사내 커뮤니티에 웹 개선 제안(WEP)을 제출하고 변경에 관해 논의하고 Underscore가 얼마나 사용되고 있는지를 조사했다. Webpack을 선택하고 빌드 도구인 Bazel, TypeScript와의 연동 테스트를 마무리한 뒤에 codemod처럼 기존 Underscore의 사용패턴을 Lodash로 바꾸는 식으로 변경했다고 하는데 사용자가 많은 서비스라 얼마나 신중하게 마이그레이션 작업을 했는지 느낄 수 있다.(영어)
  • inrupt : 월드와이드웹을 만들고 현재 W3C의 수장인 팀 버너스 리가 모두를 위해 만든 웹이 현재 힘의 균형이 깨졌다면 이를 재조정하기 위해 inrupt 회사를 만들었다. 이를 위해 데이터를 분산화해서 저장하는 Solid도 같이 공개했다.(영어)
  • 모바일 웹 사이트들의 한글 타이포그래피 : 다음 뉴스, 네이버 뉴스, 브런치, 핀치, 미디엄 등 각 사이트가 모바일에서 적용하고 있는 서체와 스타일을 정리한 글이다. 타이포그래피가 필요할 때 다른 사이트를 참고하는 편인데 한눈에 정리가 되어 있어서 비교해보기 좋다.(한국어)
  • Async-await는 어떻게 구현하는가 : Async await를 Babel을 이용해서 트랜스파일 해보면서 최신 자바스크립트를 지원하지 않는 브라우저에서 Async await를 어떻게 구현하는지를 추적해 보는 글이다. 제너레이터로 async/await를 구현하고 제너레이터는 다시 이터레이터를 이용해서 구현되어 있는데 내부가 어떻게 동작하는지 고민해 보기 좋은 글이다.(한국어)

그 밖의 프로그래밍 관련

  • Java Is Still Free : 오라클의 JDK 라이센스 변경으로 달라진 상황을 전체적으로 아주 잘 정리한 글이다. 요약과 자세한 설명을 나눠서 하고 있고 각 프로바이더와 그 외 Java 제품들까지 자세히 설명하고 있어서 라이센스 변경과 관련해서 궁금하다면 꼭 읽어볼 글이다. 간단히 정리하면 Oracle JDK 8은 2019년 1월부터는 무료 업데이트를 하지 않고 이후부터는 6개월 단위의 무료 업데이트를 지원하며 이후 업데이트를 받으려면 유료 플랜을 가입해야 한다. 대신 Java SE 스펙을 따르는 Oracle의 OpenJDK 빌드를 제공하고 이 개발을 오라클이 주도하면 다른 벤더들과 협력해서 이후 업데이트를 각 벤더들이 OpenJDK로 제공할 수 있도록 하고 OpenJDK의 유료 플랜은 각 벤더사의 정책을 따르게 된다.(영어)
  • 12 Factor CLI Apps : The Twelve-Factor App를 만들 Heroku에서 node.js로 만든 CLI 프레임워크 oclif를 만든 경험을 토대로 CLI 프로그램을 위한 12 Factor를 정리한 글이다. help 문서의 중요성, 인자보다는 플래그를 선호, 버전을 쉽게 찾을 수 있는 플래그, 출력의 스트림 지원 등등 정리해 놓았는데 CLI 프로그램을 만든다면 참고하기 좋은 글이다.(영어)
  • 장고 ORM 요리책 : 8퍼센트에서 Django ORM Cookbook번역해서 공개했다.(한국어)

블록체인 관련

볼만한 링크

  • Don't sign a CLA : 보통 오픈소스에 기여할 때 기여에 대한 권리 양도의 동의 같은 의미(법적인 용어는 잘 몰라서...)로 사용하는 CLA(Contributor License Agreement)에 서명하지 말아야 한다는 요지의 글이다. 오픈소스는 메인테이너나 기여자나 같은 권한을 가지고 있는 것이고 선한 의도를 믿고 CLA에 서명하는 것인데 이렇게 권리를 넘기면 메인터에너가 너무 큰 힘을 가지게 되어 이후 맘대로 라이센스를 변경하거나 소스를 클로즈 해버릴 수 있다는 것이다. 그러면서 최근 Redis Lab이 수익을 내기 위해 라이센스를 변경한 것을 예로 들었다. CLA에 대해서 다시 생각해 보게 된 글이다.(영어)
  • 2018년 한글날 배포된 무료 한글 폰트들 (V1.5) : 이번 한글날에 무료로 배포된 폰트를 정리한 글이다.(한국어)

IT 업계 뉴스

버전 업데이트

2018/10/16 17:15 2018/10/16 17:15

기술 뉴스 #111 : 18-10-01

웹개발 관련

그 밖의 프로그래밍 관련

  • Rethinking JavaScript Test Coverage : JavaScript 커버리지 도구인 Istanbul의 리드 개발자인 Benjamin Coe가 Node.js에서 커버리지를 측정하는 방식을 개선하는 과정을 설명한 글이다. 이전에는 기존 JavaScript 코드에 커버리지 측정용 코드를 넣어서(보통 instrument라고 하는...) 측정하게 되는데 새로운 언어 기능을 따라가기가 어렵고 300%나 속도가 느려지는 문제가 있었다. V8 팀과 얘기하다가 V8에서 제공하는 커버리지 기능을 활용하는 아이디어를 얻어서 테스트 결과 필요한 기능이 모두 있진 않아서 해당 기능을 V8 팀과 협업해서 개선하고 Node.js에서 인스펙터를 연결해서 사용하는 불편함 때문에 Node.js 코어 팀과 협업해서 쉽게 사용할 수 있게 변경되었다. 이는 Node.js v10.10.0 이상부터 사용할 수 있는데 Instanbul 리포터와 함께 사용할 수 있는 c8을 공개해서 바로 사용할 수 있다.(영어)
  • Upgrading GitHub from Rails 3.2 to 5.2 : GitHub에서 1년 반에 걸쳐서 Rails 3.2에서 5.2으로 업그레이드한 과정을 정리한 글이다. Gemfile.lock 파일을 두 가지 버전으로 관리하면서 여러 버전을 지원하는 코드를 동시에 운영해서 길게 유지되는 브랜치를 관리하지 않았고 사용자의 영향을 최소한으로 하면서 버전을 올렸다. 이렇게 오래 걸린 이유로는 Rails 업그레이드가 원래 쉽지 않고 GitHub의 코드가 10년이나 되었고 이전에 메이저 업그레이드를 해보지 않아서 경험이 없었음을 뽑았다.(영어)
  • 점진적인 레거시 웹 애플리케이션 개선 과정 : 배민찬에서 기존 레거시 시스템을 개선하면서 고민한 부분과 접근 방법을 정리한 글이다. 오래된 레거시 시스템을 점진적으로 바꾸면서 구버전의 백엔드 프론트엔드와 신버전의 백엔드 프론트엔드를 같이 운영하면서 안정적으로 개선한 내용이 잘 나와 있다.(한국어)
  • The definitive Node.js handbook : 미디엄에 올라온 Node.js를 어떻게 사용하면 되는지 설명하는 글로 PDF 등의 이북 형식으로도 받을 수 있다. 내용을 다 보지는 않고 목차 정도만 보았지만, 꽤 최신 내용으로 작성되었다는 점에서 Node.js를 배우려고 할 때 좋은 자료로 보인다.(영어)

블록체인 관련

볼만한 링크

  • 테라노스(Theranos)가 스타트업들에게 주는 교훈 : 9조 원 가치로 평가받은 스타트업 테라노스가 사기로 밝혀지면서 이 내용을 책으로 쓴 "Bad Blood"를 읽고 스타트업에서 관심 가질 필요가 있는 내용을 정리한 글이다. 실제 기술이 없음에도 그 정도 평가를 받을 정도로 놀라운 스토리텔링 능력, 기밀관리, 대기업과의 협상 능력 등은 꼽았다.(한국어)
  • 나는 어떻게 오픈소스 커뮤니티를 통해 성장했나 : 업무로 Mattermost 기술지원을 하다가 직접 참여해서 기여를 하게되고 이를 통해서 배우게 된 점을 정리한 글이다. Mattermost는 이름 정도만 알고 있었는데 이 글을 보니 기여자나 사용자에게 상당히 친절하고 잘 구성된 커뮤니티라고 생각되고 개발 문화와 리뷰 등을 통해서 회사에서 배우지 못한 부분도 상세하게 나와 있는 좋은 글이다.(한국어)
  • 해커톤 매뉴얼 : 오픈핵이라는 대학교 대상 오픈소스 해커톤을 운영한 경험을 바탕으로 해커톤을 할 때 고려해야 할 부분과 준비해야 하는 내용을 자세하게 잘 정리해 놓은 문서이다. 세미나와 콘퍼런스와는 또 다른 성격의 해커톤도 준비할 부분이 많다고 생각하는데 이런 경험이 정리되어 다 같이 개선할 수 있게 되었다는 점에서 반가운 문서다.(한국어)
  • 프랑스 파리 에꼴42 방문기 : 이글을 통해 처음 알았지만, SW 교육의 혁신이라고 불린다는 프랑스의 SW 교육기관 에꼴42에 방문해서 실제로 어떻게 운영하는지 살펴보고 인터뷰까지 한 글이다. 5년 된 사립 교육기관이라는데 학비랑 교사가 없이 자발적 참여로만 진행하고 상당히 잘 만든 것으로 보이는 교육 프로그램으로 스스로 공부하게 한다는 점이 흥미로웠다.(한국어)
  • Remote only : 원격 근무의 가지와 장단점 등을 보기 좋게 정리한 페이지이다. 원격 근무에 관심 있다면 원격 근무를 위해서 어떤 가치를 지켜야 하고 어떤 장점이 있는지 읽어볼 만하다.(영어)

IT 업계 뉴스

프로젝트

  • Sublime Merge : Sublime Text를 만드는 Sublime HQ에서 만든 Git 클라이언트.
  • MMKV : WeChat에서 만든 iOS/Android에서 사용할 수 있는 키-밸류 스토리지.
  • GrapesJS : GUI로 웹페이지를 만들 수 있는 오픈소스 웹 빌더.
  • os-tutorial : C로 OS를 처음부터 만들어 보는 튜토리얼.
  • ColorBox : Lyft에서 만든 원하는 대로 컬러스킴을 쉽게 만들 수 있는 웹사이트.
  • Trix : Basecamp에서 만든 웹 텍스트 에디터.
  • MS-DOS : Microsoft에서 MS-DOS의 v1.25와 v2.0의 코드를 공개했다.

버전 업데이트

2018/10/01 12:28 2018/10/01 12:28