웹개발 관련
- 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을 쓰고 있는데
>
를 사용한 긴 문자열, |
를 사용한 멀티라인 문자열 등을 설명한다. &
를 이용해서 변수를 선언하고 *
로 참조할 수 있고 <<
머지 키를 사용해서 추가 값을 넣을 수 있다.(영어)
- I received first-ever donation on my open-source side project and it felt great! : VS code에서 상단에 버튼을 넣을 수 있는 익스텐션 Shortcut Menu Bar를 만들었고 만회 이상의 다운로드를 받고 스타도 5개 받게 되었다. Covid가 심해지면서 기부 버튼을 넣었고 얼마 전에 처음으로 $5의 기부를 받았다고 한다.(영어)
인프라 관련
볼만한 링크
- 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로 있는 동안에도 회사에 많은 발전이 있었지만, 차별을 받아 점점 회의와 업무에서 배제당하면서 결국 보복당해 해고당했다고 하고 있다. 자신은 유리 천장을 깼다고 생각했지만 그렇지 않았다는 걸 깨달았다고 하면서 모두에게 공정한 조직을 만들기 위한 단계를 설명하고 있다.
- 의미 있는 행동 없이 거창한 말을 멈춰라.
- 성에 대한 편견을 인지하고 제거하라.
- 차별을 제거하기 위해 효과적이고 적극적인 조치를 취하자.
- 직원 채용뿐만 아니라 유지에 집중하라.
- 불투명한 방식으로 의사 결정을 내리지 말라.
- 솔직하고 포용 가능한 리더십을 받아들여라.
- 이사회가 책임져라.
- 침묵을 위해 NDA를 사용하지 마라.
IT 업계 뉴스
프로젝트
- Magic : 패스워드를 입력받지 않고 인증할 수 있도록 Email, Social, WebAuthn용 SDK를 제공하는 스타트업.
- Mozilla VPN : Mozilla에서 제공하는 VPN 서비스로 지금은 대기 리스트로 등록해야 하고 월 사용료는 $4.90이다.
버전 업데이트
- Wasmer v1.0 : WebAssembly 런타임, 릴리스 공지
- Snowpack v3.0.0 : 웹 프론트엔드 빌드 도구, 릴리스 공지
- ESLint v7.17.0 : JavaScript 코드 분석 도구, 릴리스 공지
- Prisma v2.14.0 : TypeScript/Node.js 데이터베이스 툴킷, 릴리스 공지
- Rollup v2.36.0 : JavaScript 번들러, 변경 사항
- webpack v5.14.0 : JavaScript 번들러, 릴리스 공지
- Gatsby v2.30.0 : 정적 웹사이트 생성기, 릴리스 공지
- pino v6.10.0 : Node.js 로거, 변경사항
- Bootstrap Icons v1.3.0 : Bootstrap에서 제공하는 아이콘, 릴리스 공지
- ember v3.24.0 : JavaScript 프레임워크, 릴리스 공지
- Prometheus v2.24.0 : 모니터링 시스템, 릴리스 공지
- Helm v3.5.0 : Kubernetes 패키지 매니저, 릴리스 공지
- Envoy v1.17.0 : 서비스 프록시, 릴리스 공지
- Scala.js v1.4.0 : Scala를 JavaScript로 변환하는 컴파일러, 릴리즈 공지
- QUnit v2.14.0 : JavaScript 테스트 프레임워크, 릴리스 공지
- JupyterLab v3.0 : Jupyter의 웹 UI, 릴리스 공지
- alpine Linux 3.13.0 : Linux 배포판, 릴리스 공지
Outsider
2021/01/15 09:36
2021/01/15 09:36
Comments