웹개발 관련
- Better JS scheduling with isInputPending() : Chromium 87에 정식 추가된
isInputPending()
을 설명한다. 브라우저에서는 자바스크립트 실행이 걸어지면 인풋의 응답은 지연될 수밖에 없어서 보통 스크립트 실행을 나누어서 브라우저가 인풋 관련 이벤트가 있는지 확인하고 다시 스크립트를 실행할 수 있도록 하는데 반응성이 느리면 자연히 스크립트 실행도 (나누어지므로) 길어진다. 이 문제를 해결하기 위해 Facebook이isInputPending()
를 제안했고 자바스크립트가 브라우저에 위임하지 않고 직접 처리할 인풋 이벤트가 있는지 확인할 수 있다.(영어) - Back/forward cache : 뒤로/앞으로 가기를 눌렀을 때의 캐시(bfcache) 적용이 파이어폭스/사파리는 오랫동안 지원했지만, 크롬은 87부터 안드로이드 사용자에게 점진적으로 적용하기 시작했다. bfcache는 HTTP 캐시와는 다르게 전체 페이지를 메모리에 캐시한다. 브라우저가 알아서 최적화를 해주지만
pageshow
,pagehide
로 캐시 상태를 알 수 있고unload
는 사용하지 말라고 하고 있다.(영어) - 이제 React.js 를 버릴 때가 왔다 : React가 인기를 얻게 된 것은 SSR(Server Side Rendering) 때문이었는데 SSR을 하기가 쉽지 않고 hooks가 간결하게 만든 점은 있지만, 상태를 동기화하게 되면서 오히려 다루기 어려워졌다고 얘기하고 있다. 지금은 다른 좋은 대안이나 시도도 많이 나오기 시작하고 있음으로 React를 고집할 필요가 있냐고 주장하는 글이다.(한국어)
- FE 개발자의 성장 스토리 02 : Babel 7과 corejs3 설정으로 전역 오염 없는 폴리필 사용하기 : IE11을 지원하기 위해서 Babel로 컴파일하는 과정에서 polyfill이 전역으로 포함되어 전역 스코프를 오염시키는 문제는 해결한 과정을 설명한 글이다. 전역 스코프를 오염시키지 않도록
core-js
를 설정하고node_modules
모듈에도 Babel 설정이 적용되도록 Babel 7에 추가된 Project Wide Configuration을 사용하고 ES Moules/CommonJS Modules를 같이 사용할 수 있는_interopRequireDefault
의 적용 과정을 설명한다.(한국어)
그 밖의 개발 관련
- 주니어 개발자들의 (얕은) 코드리뷰 도입기 : 회사의 두 주니어 개발자가(백엔드와 프론트엔드) 코드 리뷰를 해보고 싶어서 스택이 다름에도 서로 리뷰를 하기로 한 뒤 템플릿을 만들고 오타 수정이나 코드에 대한 질문, 개선 요청을 한 경험을 공유하는 글이다. 공부하고 직접 고민하면서 개선해 나가는 과정이라서 실제로도 도움이 많이 되는 부분이라는 생각이 든다.(한국어)
- Growl in Retirement : 2004년부터 OS X의 노티피케이션 시스템으로 사용되었던 Growl의 개발이 종료되었다. 오랫동안 인기를 끌었지만 2012년 WWDC에서 Apple이 노티피케이션 센터를 발표하고 사용 빈도가 줄어들었기 때문에 당연한 수순이다. 개발자는 그동안 도움을 준 회사들에 감사를 표했고 소스 코드는 GitHub에서 볼 수 있다.(영어)
- Standing up for developers: youtube-dl is back : 미국 음반 산업 협회(RIAA)의 디지털 밀레니엄 저작권법(Digital Millennium Copyright Act, DMCA) 이슈로 youtube-dl 저장소가 내려갔었는데 이 부분이 부당하다고 주장하여 다시 복구되었다.(영어)
- No more free work from Marak - Pay Me or Fork This : 테스트용 가짜 데이터를 생성하는 JavaScript 라이브러리인 faker.js를 만든 Marak이 (무슨 일이 있었는지 모르지만...) 포춘 500 기업이나 그보다 작은 기업에는 더는 지원하지 않겠다고 선언했다. 연 1억 이상의 계약을 하거나 포크해가서 직접 수정해가며 쓰라는 것인데 긴 스레드 끝에 GoDaddy와 계약을 맺어서 hook.io의 소유권은 GoDaddy에 넘기고 오픈소스 활동을 할 수 있게 되었다고 한다.(영어)
인프라 관련
- 11월 30일부터 3주간 AWS re:Invent가 온라인으로 열리면서 새로운 기능이 발표되고 있다.
- New for AWS Lambda – Container Image Support : AWS Lambda에 컨테이너 이미지를 배포할 수 있게 되었다. 컨테이너 이미지는 10GB까지 사용할 수 있다. 아직 서울 리전에선 사용할 수 없고 N. Virginia, Ohio, Oregon, Tokyo, Singapore 등의 리전에서 사용할 수 있다.(영어)
- Preview: AWS Proton – Automated Management for Container and Serverless Deployments : 컨테이너와 서버리스로 구성된 애플리케이션의 배포 서비스 AWS Proton이 공개되었다.(영어)
- New for AWS Lambda – 1ms Billing Granularity Adds Cost Savings : Lambda가 실행 시간을 100ms 기준으로 과금했지만 이제 1ms 기준으로 바뀌어서 비용이 많이 줄어들 것으로 보인다.(영어)
- Amazon S3 Update – Strong Read-After-Write Consistency : S3가 Eventual Consistency를 사용하므로 데이터를 PUT 해도 GET이나 LIST로는 일정 시간 동안 최신 데이터가 조회되지 않을 수 있는데 이제 Strong Consistency를 지원해서 작성한 내용을 바로 조회할 수 있다. 기존 버킷을 포함해서 모든 리전에 적용되며 성능 저하도 없다고 한다.(영어)
- AWS SSO용 WebAuthn을 통한 Multi-Factor Authentication : AWS SSO 인증에 MFA로 OTP를 이용할 수 있었지만, 이제는 WebAuthn도 지원한다. WebAuthn은 W3C 표준으로 이제 Yubikey 같은 디바이스나 맥북의 지문인식 등을 이용해서 인증할 수 있게 되었다.(한국어)
- Introducing another free CA as an alternative to Let's Encrypt : Let's Encrypt로 인해서 HTTPS가 활성화되고 무료로 쉽게 인증서를 발급받을 수 있게 되었지만 ZeroSSL을 통해서도 Let's Encrypt처럼 90일 유효기간의 무료 인증서를 발급받을 수 있게 되었다고 한다. 이는 Let's Encrypt를 더는 쓰면 안 된다는 얘기보다는 생태계 차원에서 Let's Encrypt 외에 선택권이 더 생겼다는 부분이 중요한 부분이다. 아직 ZeroSSL은 와일드카드 인증서는 지원하지 않는 것으로 보인다.(영어)
- [번역] 쿠버네티스에서 쉽게 저지르는 10가지 실수 : 지난 9월에 소개했던 10 most common mistakes using kubernetes의 번역 글이다. Kubernetes를 쓸 때 주의할 점을 정리한 내용인데 번역되어서 쉽게 읽을 수 있다.(한국어)
- Announcing Support for Code Signing for AWS Lambda in the Terraform AWS Provider : 얼마 전에 공개된 AWS Lambda를 위한 신뢰 및 무결성 제어를 위한 코드 서명 기능을 최신 버전의 Terraform AWS 프로바이더에서
aws_signer_signing_profile
과aws_lambda_code_signing_config
로 설정하는 방법이 추가되었다. Terraform으로 Lambda를 쓰면 좀 어울리지 않는 느낌이 많지만....(영어) - Terraform 0.14 Introduces a Dependency Lock File for Providers : 아직 베타버전은 Terraform 0.14에서 프로바이더의 의존성을 고정하는 Lock 파일이 생긴다고 한다.
terraform init
할 때 lock 파일인.terraform.lock
이 생성되고 새로운 버전으로 올릴 때는terraform init -upgrade
를 사용해야 한다.(영어)
볼만한 링크
- 스타트업을 맛보다 (1) - 달달한 맛, (2) - 이국적인 맛, (3) - 매운 맛, (4) - 짠 맛, (5) - 씁쓸한 맛 : 2011년 대학생 때 스타트업에 합류해서 LUKnFEED라는 서비스를 만들면서 열정에 넘쳐서 iOS 앱 만들고 마케팅에도 힘쓰다가 서비스가 제대로 성장하지 못하자 사람들이 떠나가고 퇴사하게 되는 과정이 적혀있다. 처음에는 최근 상황까지 적으시려다가 첫 스타트업 얘기로만 시리즈가 끝났지만, 글을 잘 쓰셔서 재미있게 읽을 수 있다.(한국어)
- 누구나 원하는 개발자되기 : 오랫동안 면접관으로 면접을 보면서 회사는 어떤 부분을 기대하고 지원자는 어떻게 준비해야 하는지를 정리할 글이다. 이력서에서 어필할 수 있도록 기술 나열이 아니라 성과라는 스토리를 담아야 하고 과제나 테스트에서는 코드 품질을 주로 보기 때문에 정상 동작 이상의 부분을 보여줄 수 있어야 한다. 면접에서도 자신이 아는 내용을 설명할 준비를 해두는 것이 중요하고 이런 준비를 평소에 할 수 있도록 환경에 상관없이 배운 것을 메모하고 정리하라고 추천하고 있다. 다양한 과정이 있지만 "이런 과정을 통해 무엇을 경험하고 배웠는지가 더 중요하다"는 부분에 동의한다.(한국어)
IT 업계 뉴스
- 아마존이 최고가에 인수한 '자포스' 창업자 토니 셰이 사망 : "딜리버링 해피니스"라는 책으로도 유명한 자포스의 토니 셰이(Tony Hsieh)가 46세의 나이로 유명을 달리했다. 삼가 고인의 명복을 빕니다.(영어)
- 버즈피드와 허핑턴포스트의 운명은 어디로? : 버즈피드가 허핑턴포스트를 인수한 과정과 배경이 설명이 나와 있다. 각 회사의 정확한 목적은 상황으로 추측할 뿐이지만 허핑턴포스트는 모회사의 여러 번 인수되면서 현재의 모회사 버라이즌 미디어와 애매한 관계가 되었고 인기는 끌었지만, 돈을 벌지 못한 버즈피드는 버라이즌 미디어에 돈을 받고 허핑턴포스트를 인수한 묘한 상황이 되어 버렸다. 나는 허핑턴포스트는 등장할 때 꽤 관심을 가졌지만, 국내만 그런지 좀 이상한 뉴스매체가 된듯해서 안보기 시작했고 버즈피드는 한참 동안 감탄하며 보던 곳이지만 어느샌가 잊힌 회사가 되어서 앞으로 어찌 될지 궁금하다.(한국어)
- Servo’s new home : 모질라에서 만들던 브라우저 엔진인 Servo 프로젝트가 Linux 재단 밑으로 들어갔다.(영어)
- 세일즈포스, 30조 원 들여 슬랙 인수…SW기업 M&A 최고액 : 세일즈포스가 Slack을 277억 달러(약 30조 원)에 인수했다.(한국어)
- Airbnb S-1 : Airbnb가 상장을 위해 증권거래소에 S-1 문서를 제출했다.(영어)
- Roblox S-1 : 온라인 게임플랫폼을 만드는 Roblox가 상장을 위해 증권거래소에 S-1 문서를 제출했다.(영어)
- 카카오뱅크, 'AWS 클라우드' 도입 : 금융보안원이 실시하는 금융 클라우드 안전성 평가가 완료되어 카카오뱅크가 AWS를 도입하게 되었다.(한국어)
프로젝트
- Is Apple silicon ready? : 새로 나온 M1 Apple Silicon 맥북에 앱의 호환성 여부를 보여주는 사이트.
- MVP.css : 별도의 클래스 명이나 관례 없이 HTML 요소에만 최소한의 스타일을 적용한 CSS.
- 스포카 한 산스 네오 : 기존 스포카 한 산스 폰트에 웨이트를 늘리고 가독성과 통일성을 향상한 폰트.
- k0s : 추가 설정 없이 바로 Kubernetes 클러스터를 구성해서 운영할 수 있게 미리 설정해서 제공하는 프로젝트.
- Skija : 오픈소스 2D 그래픽 라이브러리인 Skia의 Java 바인딩으로 JetBrains에서 공개했다.
- k6 : JavaScript로 코드를 작성해서 부하 테스트를 하는 도구로 Go로 작성되었다.
버전 업데이트
- Electron v11.0.0 : 크로스 플랫폼 데스크톱 애플리케이션 플랫폼, 릴리스 공지
- Apple M1 지원
- GraphQL Editor v4.0.0 : GraphQL 비쥬얼 에디터, 릴리스 공지
- PHP v8.0.0 : 스크립트 언어, 릴리스 공지
- TypeScript v4.1 : Microsoft가 만든 JavaScript transpiler, 릴리스 공지
- tailwind CSS v2.0.0 : CSS 프레임워크, 릴리스 공지
- 새로운 컬러 팔레트
- 다크모드 지원
- Babylon.js v4.2 : WebGL 자바스크립트 프레임워크, 릴리스 공지
- Prettier v2.2.0 : JavaScript 포매터. 릴리스 공지
- Storybook v6.1.0 : React, Vue3, Angular UI 컴포넌트 개발 도구, 릴리스 공지
- webpack v5.8.0 : JavaScript 번들러, 릴리스 공지
- Svelte v3.30.0 : 웹앱 프레임워크, 변경사항
- Rust 1.48.0 : 프로그래밍 언어, 릴리스 공지
- Gatsby v2.27.0 : 정적 웹사이트 생성기, 릴리스 공지
- ESLint v7.14.0 : JavaScript 코드 분석 도구, 릴리스 공지
- Istio v1.8 : 서비스 매쉬, 릴리스 공지
- yarn v2.4.0 : Node.js 패키지 매니저, 릴리스 공지
- OpenZFS v2.0.0 : Linux와 FreeBSD의 파일시스템, 릴리스 공지
- Node.js v12.20.0 (LTS) : 자바스크립트 런타임, 릴리스 공지
- Node.js v15.3.0 (Current) : 자바스크립트 런타임, 릴리스 공지
- Kuma v1.0 : 서비스 메쉬의 컨트롤 플레인, 릴리스 공지
Comments