The State of JavaScript 2020 : 매년 발표되는 JavaScript 개발자의 설문 조사를 통해서 생태계의 현황을 정리한 글로 올해는 2만 3천여 명의 개발자가 설문에 참여했다. 지역별 연봉, 프레임워크, 테스트 도구, 백엔드, 모바일 등 다양한 영역에서 어떤 도구를 주로 사용하고 있는지를 보여주고 있다. 2016년부터 파악한 내용을 비교해 주기 때문에 각 분야에서의 변화를 보기에 좋다.(영어)
CSS-in-JS에서 CSS-in-CSS로 바꿔야 하는 이유 : CSS-in-JS가 인기를 얻고 있고 컴포넌트별로 CSS가 추상화되므로 의존성 문제가 해결되고 이름 충돌도 신경 쓰지 않아도 되는 등 기존의 많은 문제를 해결하지만, CSS-in-CSS보다 번들 사이즈도 커지고 인터랙션이 늦어지므로 CSS-in-JS만이 정답이 아니라 속도가 중요한 사이트라면 CSS-in-CSS를 고려해야 한다는 글이다.(한국어)
그 밖의 개발 관련
네이티브 앱 → 리액트 네이티브 앱 전환 그리고 1년 후 : 라프텔에서 기존 네이티브로 개발했던 Android와 iOS 앱을 React Native로 새로 개발한 후 경험을 정리한 글이다. 네이티브 개발자의 추가 채용이 쉽지 않았고 내부에 이미 네이티브 개발자가 있었기 때문에 JavaScript 개발자를 채용해서 프로젝트를 진행했고 iOS와 Android의 기능과 UI 차이가 있었기 때문에 처음부터 새로 만들기로 했다고 한다. 릴리스 후 CodePush로 빠르게 릴리스를 할 수 있게 되었고 공통 모듈을 만들어서 모든 플랫폼이 코드를 공유할 수 있게 되었다고 한다. 단점으로는 iOS/Android 사이의 UI 차이 때문에 시간을 써야 하는 경우가 있고 예상치 못한 이슈나 완성도 낮은 써드 파티 라이브러리들을 꼽았다고 한다. 쉽지 않은 결정인데 지금은 많이 안정화되어서 만족하고 있다고 한다.(한국어)
Get Ready For ESM : Node.js 10이 올해 4월에 생명주기가 끝나고 Node 12는 JavaScript Moduels를 완전히 지원하므로 패키지 작성자가 ESM에 대응할 수 있도록 준비해야 한다고 하고 있다. 그동안 많은 개발자가 노력해서 ESM이 CommonJS를 임포트할 수 있고 반대로도 할 수 있지만 CommonJS는 ESM을 비동기로만 임포트할 수 있다. 패키지를 ESM으로 마이그레이션하려면 다음 두 가지 방법이 있다.
ESM만 지원한다면 package.json에 "type": "module"를 추가하고 메이저 버전을 올린다.
CommonJS를 폴백으로 트랜스파일 할 수 있도록 빌드 설정을 해서 ESM으로 제공한다. 이때는 package.json에 exports 필드를 추가해야 한다.
6 YAML Features most programmers don’t know : 많은 프로젝트가 설정 파일로 YAML을 쓰고 있는데 >를 사용한 긴 문자열, |를 사용한 멀티라인 문자열 등을 설명한다. &를 이용해서 변수를 선언하고 *로 참조할 수 있고 << 머지 키를 사용해서 추가 값을 넣을 수 있다.(영어)
Docker Hub Pull 횟수 6시간에 100회 제한 정책 : Docker Hub가 이미지를 가져갈 때 로그인 안 하면 6시간 동안 100번, 로그인하면 6시간 동안 200번만 요청할 수 있는 정책이 적용되었다. 자주 겪지는 않지만, CI 등에서 한번 겪으면 피곤한 오류라서 알아두면 좋은데 제한 개수를 확인하는 방법 등을 보여준다.(한국어)
Announcing HCP Vault Public Beta : HashiCorp Cloud Platform(HCP)에서 Consul에 이어 서비스를 시작한 Vault가 퍼블릭 베타를 시작했다. HCP는 HashiCorp에서 완전히 관리해주는 서비스이다.(영어)
볼만한 링크
Building On-Call Culture at GitHub : GitHub이 Ruby on Rails 모노리스 시스템이었기 때문에 온콜 엔지니어가 코드 베이스를 이해하지 못했고 자신이 잘 대응할 수 있다고 자신하지 못했다. 결국 시스템을 잘 아는 5~10명이 항상 참여하게 되면서 온콜의 불균형이 발생했다. 새 시스템에서는 파일을 서비스와 팀에 매핑해서 쉽게 알 수 있게 하고 각 팀이 책임지는 영역의 모니터링/알림을 직접 만들게 했다. 문화적 교육적인 장애물도 많았는데 온콜 경험이 없는 사람들에게 교육을 제공했고 온콜이 일상에 영향을 줄 거라는 걱정이 많아서 이런 걱정을 해소할 수 있게 노력했고 실수해도 괜찮다는 안정감을 주려고 하고 있다. 그리고 온콜이 잘 안되어도 이 부분을 해결할 시간이 많지 않으므로 각 팀에 온콜 경험을 개선하는데 시간을 쓸 수 있도록 하고 있다.(영어)
[번역] Pinterest의 역설 : Pinterest의 COO였던 Francoise Brougher가 올린 The Pinterest Paradox: Cupcakes and Toxicity를 번역한 글이다. Francoise Brougher는 Google과 Square에서 많은 기여를 하고 Pinterest의 COO로 참여하고 COO로 있는 동안에도 회사에 많은 발전이 있었지만, 차별을 받아 점점 회의와 업무에서 배제당하면서 결국 보복당해 해고당했다고 하고 있다. 자신은 유리 천장을 깼다고 생각했지만 그렇지 않았다는 걸 깨달았다고 하면서 모두에게 공정한 조직을 만들기 위한 단계를 설명하고 있다.
Comments