웹개발 관련
- The State of JavaScript 2022 : 매년 발표되는 JavaScript 생태계의 설문조사로 올해는 3만 9천여 명이 응답자로 참여했다. JavaScript 언어의 새 기능이나 브라우저 API의 인지도 등을 볼 수 있다. 프론트엔드 프레임워크에서는 여전히 React가 많이 사용되지만, Solid와 Qwik의 반응이 좋은 걸 알 수 있고 렌더링 프레임워크는 Next.js가 가장 강세이지만 Astro와 Remix가 관심을 받고 있다. 다양한 분류로 시각화해두어서 주류인 기술과 새롭게 관심받는 기술을 알 수 있다.(영어)
- Promise는 왜 취소가 안 될까? : 카카오에서 광고 렌더링의 취소 기능을 구현하려고 Promise의 취소에 대해 알아보다가 그 역사까지 정리한 글이다. TC39에서 Promise의 취소 기능을 오랫동안 고민했지만, 표준을 만들지 못한 상황에서 WHATWG에서 AbortController와 AbortSignal을 표준으로 내세웠지만 는 웹에 의존적이라서 TC39에서는 표준으로 채택할 수가 없었다. 취소는 쉬워 보이지만 그 의미가 동작에 어려운 부분이 많아서 긴 논의에도 정의되지 않았고 실제로 광고 쪽에서 취소를 구현하다가 쉽지 않음을 깨달았지만 적용한 Promise 취소 방법에 관해서도 설명하고 있다.(한국어)
그 밖의 개발 관련
- Migrating our Largest Mobile App to React Native : Shopify가 2020년 모바일 앱을 React Native로 바꾸기로 하고 그로부터 3년 동안 모든 모바일 앱을 React Native로 바꾸는 과정을 설명한다. 한가지 접근 방법으로 모든 앱에 적용할 수는 없었는데 Shopify Point of Sale은 해커톤에서 시작된 앱이라서 기술 부채가 많이 쌓였기 때문에 점진적인 교체가 어렵다고 생각해서 완전히 재작성했고 Shopify Mobile은 플래그쉽 앱으로 다시 만드는 건 너무 큰 일이므로 점진적으로 React Native를 도입하기로 했다. 처음에는 Mobile Enablement 팀이 React Native로 새 기능을 만들며 필요한 기존 기능을 React Native로 마이그레이션 했는데 잘 동작하긴 했지만, 너무 왜 걸리고 마이그레이션 중 Android, iOS, RN을 모두 관리해야 해서 이 방법이 맞지 않음을 알게 되었다. 이후 반복 포팅이라는 방법으로 모든 기능을 React Native로 만들면서 기존 기능을 마이그레이션 하기로 하고 모든 엔지니어가 React Native로 작성할 수 있도록 교육 프로그램을 만들고 마이그레이션 할 대상의 우선순위를 정하고 마이그레이션을 추적하는 대시보드를 구성했다. 그 결과 iOS와 Android의 구현 차이를 줄일 수 있었고 서로 협업도 할 수 있게 되었다고 한다.(영어)
- Making Airbnb’s Android app more accessible : Airbnb의 Android 앱의 접근성을 높이면서 모범 사례를 정리했습니다. 안드로이드의 접근성 기능이 읽을 수 있도록 콘텐츠에 설명을 넣고 더 잘 읽을 수 있게 그룹화하고 모든 UI의 폰트를 확대할 수 있게 했다. 접근성 구현을 쉽게 할 수 있도록 접근성 검사가 내장된 테스트 라이브러리 Espresso를 사용해서 엔지니어가 쉽게 문제를 확인할 수 있게 자동화하고 Happo를 이용해서 더 큰 글꼴을 확인할 수 있게 스크린숏 테스트를 추가했다.(영어)
- 주석을 달지 않는 이유, 달아야 하는 이유 : 변수 이름이나 무엇을 하는지 등 코드로 표현할 수 있는 부분을 주석으로 작성하는 것은 피하고 직관적으로 알기 어렵거나 이유에 대한 설명이 필요하다면 주석을 작성하는 게 좋다고 설명하고 있다. 간단한 내용이지만 주석도 코드의 일부고 유지 비용이 들기 때문에 참고할만한 내용이다.(한국어)
- The ngrok Cheat Sheet : 로컬 서버를 쉽게 인터넷에 연결할 수 있는 ngrok의 다양한 사용 방법을 치트 시트로 정리한 글로 PDF와 PNG로도 제공한다. 서버를 노출하는 방법뿐 아니라 소셜 로그인, 웹훅 인증, IP 제한, 서킷 브레이크, 헤더 추가 등의 방법이 정리되어 있다.(영어)
인프라 관련
IT 업계 뉴스
- CircleCI security alert: Rotate any secrets stored in CircleCI : CircleCI에서 12월 21일부터 1월 4일까지 내부에서 의심스러운 접근으로 시크릿에 저장된 값에 접근했을 수 있는 가능성이 발견되어 CircleCI에 저장된 모든 시크릿을 로테이션 시키라고 권고하고 있다. 많이 쓰이는 CI라서 꽤 큰 보안 사고이지만 CircleCI에서 발 빠르게 조처하고 있고 각 시크릿을 찾는 방법을 안내하고 GitHub, GitLab, BitBucket, AWS와 협업해서 가능한 부분은 자동으로 로케이션시키고 고객들에게 안내하도록 조처하고 있다. CircleCI를 쓰고 있다면 저장된 시크릿을 revoke 시키고 새로 발급해야 한다. 이후 공개된 사고 경위에 따르면 이번 사고는 CircleCI 엔지니어의 노트북에 설치한 멀웨어를 통해 2FA SSO 세션을 탈취해서 발생했다고 한다.(영어)
- Slack's private GitHub code repositories stolen over holidays : 공격자가 일부 직원의 토큰을 탈취해서 GitHub 저장소에 접근할 수 있었던 사고로 Slack의 개인 코드 저장소는 침해되었지만 기본 코드베이스와 사용자 고객 데이터는 영향받지 않았다고 한다.(영어)
프로젝트
버전 업데이트
- Kotlin v1.8.0 : JVM 기반의 프로그래밍 언어, 릴리스 공지
- 디렉터리의 내용을 재귀적으로 복사하거나 삭제하는 새로운 실험적 함수를 JVM에 추가
- kotlin-reflect 성능 개선
- 더 좋은 디버깅 경험을 위한 새로운
-Xdebug
컴파일러 옵션
kotlin-stdlib-jdk7
과 kotlin-stdlib-jdk8
이 kotlin-stdlib
으로 합쳐짐
- Objective-C/Swift 상호운용성 개선
- Gradle 7.3 호환
- React Native v0.71.0 : React를 이용한 모바일 앱 개발 프레임워크, 릴리스 공지
- React Native CLI로 프로젝트를 생성할 때 TypeScript를 기본으로 사용
- Web에서 영감을 받은 접근성, 스타일, 이벤트에 대한 props 추가
- Argo Rollouts v1.4 : Kubernetes 딜리버리 컨트롤러, 릴리스 공지
- 리비전의 번호를 이용한 빠른 롤백 지원
- 클라우드 네이티브 게이트웨이 Apache APISIX 지원
- NGINX Ingress Controller v3.0.0 : Kubernetes 인그레스 컨트롤러, 릴리스 공지
- Kubernetes의 최소 지원 버전이 1.21이 됨
discovery.k8s.io/v1/EndpointSlices
를 선호하므로 k8s.io/v1/Endpoints
를 제거
- undici v5.15.0 : Node.js HTTP 클라이언트, 릴리스 공지
- Yona v1.16.0 : 설치형 이슈 트래커, 릴리스 공지
- BuildKit v0.11.0 : 빌더 툴킷, 릴리스 공지
- Remix v1.1.0 : 풀스택 웹 프레임워크, 릴리스 공지
- Nightwatch.js v2.6.0 : 웹어플리케이션 E2E 테스트 도구, 릴리스 공지
- OBS Studio v29.0 : 비디오 녹화 및 라이브 스트리밍 프로그램, 릴리스 공지
- Node.js v18.13.0 (LTS) : 자바스크립트 런타임, 릴리스 공지
- Node.js v19.4.0 (Current) : 자바스크립트 런타임, 릴리스 공지
- Lightning CSS v1.18.0 : CSS 파서/트랜스포머/미니파이어, 릴리스 공지
- LiteFS v0.3.0 : SQLite를 위한 분산 파일 시스템, 릴리스 공지
- CouchDB 3.3.0 : 데이터베이스, 릴리스 공지
- ESLint v8.32.0 : JavaScript 코드 분석 도구, 릴리스 공지
- Fastify v4.11.0 : Node.js 웹 프레임워크, 릴리스 공지
- MicroK8S v1.26.0 : 경량 Kubernetes, 릴리스 공지
Outsider
2023/01/16 08:50
2023/01/16 08:50
Comments