How Core Web Vitals affect SEO : Google은 Core Web Vitals로 사이트의 성능을 평가해서 SEO에 반영하는데 이 데이터를 실제 사용자에게 수집하므로 필드 데이터라고 부른다. Google은 크롬 브라우저의 실제 사용자의 75 퍼센타일로 전 세계에서 필드 데이터를 수집하기 때문에 사용자는 데스크톱이나 Android에서 Chrome을 사용해야 한다.(다른 말로 하면 iPhone 사용자는 집계되지 않는다) 지역별로 다르게 다루지 않고 전 세계에서 수집하므로 전 세계 모든 사용자에게 뛰어난 성능을 제공할 수 있어야 하고 점수는 지난 28일간의 평균 점수이므로 성능을 개선한 후 영향을 파악하려면 한 달 정도가 걸린다. Lighthouse 등으로 Core Web Vitals를 측정한 것은 실험실 데이터라고 부르는데 이러한 결과는 검색 결과에는 반영되지 않고 실제 사용자와는 다르기 때문에 성능 문제를 찾는 참고용으로 사용해야 한다.(영어)
QUIC 프로토콜 | 구글 또 너야? : QUIC 논문을 보고 내용을 정리한 글이다. 불필요한 RTT(Round Trip Time)을 줄이면 페이지 로드 시간에 큰 영향을 주기 때문에 QUIC은 TCP가 아니라 UDP 위에 구현되었는데 QUIC을 설계한 이유는 프로토콜을 변경하기 어렵고 핸드 쉐이크를 줄일 필요가 있었고 HOL 블러킹 문제를 해결하기 위해서였다. 이를 구현한 과정과 적용한 과정까지 정리되어 있다.(한국어)
Celebrate a more interoperable web with Interop 2023 : 브라우저간 호환성을 유지하기 위해 여러 브라우저가 벤더가 공동으로 테스트를 만들어서 상호 운용성을 개선하기 위한 Interop 2023이 마무리 되었다. 작년 초와 비교했는때 대부분 90점대 후반으로 큰 개선이 이루어 졌고 :has(), 컨테이너 쿼리, 서비그리드, 색공간 등 주요한 기능이 추가되었다. 곧 Interop 2024가 발표될 예정이다.(영어)
NEXT.JS APP ROUTER MIGRATION: THE GOOD, BAD, AND UGLY : Flightcontrol이라는 서비스가 Next.js의 페이지 라우터로 구축되어 있던 대시보드를 앱 라우터로 다시 구축하면서 경험한 내용을 정리했다. 중첩된 레이아웃을 구축할 수 있게 되었고 로딩 상태를 유연하게 표시할 수 있지만 실시간 업데이트를 위해 클라이언트에서 데이터 불러오는 코드를 중복으로 작성해야 했고 서버 측 오류가 쉽게 삼켜져서 추적하기에 어려웠다고 한다. 지금은 해결되었지만 개발하면서 버그가 너무 많아서 고생했고 개발 서버의 성능이 너무 안 좋아서 성숙도에 비해 너무 빨리 마케팅이 되었다고 한다.(영어)
그 밖의 개발 관련
Jira의 이슈 정렬 방식이 Integer 방식이 아니라고?! : 드래그 앤 드롭으로 리스트의 정렬을 조정하는 구현을 할 때 각 아이템의 정렬을 관리하는 방식에는 Integer, GreenHopper, Linked List 방식이 있습니다. Integer 방식은 위치를 변경하면 다른 모든 아이템의 값도 변경해야 하고 GreenHopper은 각 아이템 사이에 충분한 간격을 두어 쉽게 업데이트할 수 있지만 공간이 고갈되면 문제가 생긴다. Linked List는 앞뒤 아이템만 업데이트해 주면 되지만 조회할 때 풀 스캔을 해야 한다. Atlassian이 이러한 문제를 해결하기 위해 LexoRank를 만들었고 사전적 정렬을 위해 Bucket|FixedKey:VariableKey를 사용해서 정렬해서 O(1)로 정렬할 수 있으며 공간 고갈 시에는 무중단으로 재조정 할 수 있다.(한국어)
기술 문서 사이트로 Docusaurus 활용하기 : Line내에서고 기술 문서의 규모가 커지면서 그때그때 다른 SSG(Static Site Generator)를 쓰게 되면서 공용 SSG를 선정하게 되었다. SSG를 선정하면서 웹 문서에 필요한 기본 기능이 충실하고 새로운 기능을 자유롭게 추가할 수 있어야 한다는 기준을 정하고 2세대 SSG 도구 중에 React 기반이면서 MDX도 지원하는 Docusaurus를 선정했다. 기술 문서에 필요한 기능을 추가하기 위해 줄 바꿈 테이블, 용어집, API 레퍼런스 기능을 만든 과정을 설명한다.(한국어)
Jetpack Compose로 LINE 앱 Yahoo!검색 모듈 개발하기 : Line에서 선언적 UI 툴킷인 Jetpack Compose를 도입한 과정을 설명한 글이다. 기존 앱을 운영하면서 도입해야 했기에 새로운 뷰에 도입하기로 하고 Composable에 도입하기로 조건을 걸고 선언적 UI를 위해 상태관리를 일원화하고 Composable을 stateless로 만들고 만든 Composable은 미리보기로 만들고 미리보기는 Pull Request에 포함하기로 하면서 Jatpack Compose 도입을 했다고 한다.(한국어)
Zed is now open source : GitHub의 Atom을 만들던 개발자가 나와서 만든 Zed 에디터가 오픈소스가 되었다. 오픈소스로 해야 최고의 제품이 될 수 있고 훨씬 더 재밌을 거로 생각해서 오픈소스로 공개했다고 한다.(영어)
인프라 관련
Maturing Istio Ambient: Compatibility Across Various Kubernetes Providers and CNIs : Istio의 사이드카 없는 버전인 Ambient Mesh를 구현하고 작년 알파를 출시해서 Ambient 모드의 가치를 입증하는 데 중점 했으나 초기 메커니즘이 다른 CNI와 충돌하는 것을 알게 되었고 사용자들은 어디서나 모든 CNI 구현에서 Ambient 모드를 원한다는 것을 알게 되고 베타버전으로 가기 전에 가장 중요한 요구사항이 되었다. istio-cni는 기본 CNI 구현이 아니고 클러스터의 기본 CNI를 확장하는 노드 에이전트인데 이 초기 구현이 기본 CNI 구현의 네트워킹 구성과 충돌이 발생하고 적용한 네트워크 정책도 상황에 따라 Istio CNI 확장에서 적용되지 않을 수 있어서 이 요구사항을 충족할 수 없다는 게 확실해졌다. 새로운 솔루션을 찾기 시작했고 사이드카를 모방하여 파드의 네트워크 네임스페이스에서 리다이렉션을 구성하는 아이디어가 나왔고 Linux 소켓의 기본 기능을 이용해서 다른 네임스페이스 내의 수신 소켓을 생성하고 소유할 수 있다는 걸 알게 되고 이를 구현하기로 했고 그 결과 모든 트래픽 캡처와 리다이렉션이 파트의 네임스페이스 내부에서 발생하고 마치 사이드카 프록시가 있는 것처럼 보이게 되었다.(영어)
GitHub-hosted runners: Double the power for open source : GitHub이 공개 저장소에서 사용하는 GitHub Actions은 무료로 제공하고 있었고 기존에는 2 vCPU 머신을 사용하고 있었는데 2023년 1월부터 Linux와 Windows의 러너를 새로운 4 vCPU, 16 GiB 메모리, 150 Gib 스토리지로 2배 업그레이드를 진행했다. 그 결과 기존보다 25% 속도가 빨라졌다고 한다.(영어)
Slashing Data Transfer Costs in AWS by 99% : AWS에서 가용영역(AZ)간에 데이터를 전송하면 비용이 발생한다. S3는 1a, 1b 같은 AZ 단위가 아니라 리전 단위로 버킷을 저장하므로 같은 리전에 모든 AZ에서 똑같이 사용할 수 있으며 (공용 인터넷이 아니라면) 다운로드와 업로드가 무료이며 스토리지 비용은 시간단위로 부과된다. 이 두가지 특징을 이용해서 1a에 있는 인스턴스에서 1b에 있는 인스턴스로 데이터를 보낼 때 직접 보내는 대신 S3를 거쳐서 보내도록 해서 비용을 절감하겠다는 아이디어이다.(전송후에는 S3에서 지워서 스토리지 비용을 아낀다) 직접 테스트로 1TB를 전송했을 때 직접 보내면 20.48달러가 청구되었지만, S3를 통해서 보낼 때는 8센트만 청구되었다.(영어)
2023년 4분기 DDoS 위협 보고서 : Cloudflare에서 2023년 4분기 DDoS 위협 보고서를 공개했다. 여기서 나오는 DDoS 공격은 처리량보다 더 많은 요청을 보내는 HTTP 요청 집중형 DDoS, 라우터/방화벽/서버에서 처리할 수 있는 패킷보다 더 많은 패킷을 보내는 IP 패킷 집중형 DDoS, 인터넷을 포화 상태로 만드는 비트 집중형 DDoS 세가지 유형이 있다. 이전에 비해 HTTP DDoS 공격을 줄어들고 Network 계층의 DDoS 공격 증가하고 있다. 분야별 지역별 DDoS 위협을 살펴볼 수 있다.(한국어)
[리뷰] Q60MAX – 현존 최고의 HHKB 배열 기계식 키보드 : 키크론 Q60 MAX에 대한 리뷰입니다. HHKB 키보드 배열의 장점과 정적 용량 무접점의 특징까지 설명한 뒤 키크론 Q60 MAX가 기계식임에도 좋은 키감을 커스텀 키보드이면서 완성품으로 제공하기 때문에 편의성을 주면서 커스텀도 가능해진다. 글을 읽고 나서 사고 싶어졌다.(한국어)
3일 후 운명이 결정되는 팔월드라는 우연한 이야기 : 요즘 스팀에서 인기라는 팔월드라는 게임이 만들어진 과정에 대한 이야기이다. 작은 게임 회사 입장에서 퍼블리싱이 어렵다는걸 깨닫고 스팀으로 발향을 돌리면서 여러 게임을 만들다가 팔월드라는 인기 게임이 나오기까지 편의점 알바생을 고용하고 게임엔진을 교체하고 모션 디자이너를 고용하고 탈락 시켰던 사람을 채용했는데 그 사람이 너무 잘하는 등 수많은 기적 속에 팔월드라는 인기게임을 만들게 되었다는게 그걸 기적으로 설명하는 부분이 현실감있고 재미있다. 일본어인데 번역해서 보면 읽을만 하다.(일본어)
Yes, good DevEx increases productivity. Here is the data. : 개발자 경험(DevEx)을 개선하는 것은 중요한 일이지만 그에 대한 데이터는 많지 않았는데 GitHub이 DX와 협업해서 생산성에 어떤 영향을 미치는지 연구했다. Slack 메시지 등 모든 방해 요소를 최소화해서 심층 작업(Deep Work)에 충분한 시간을 사용하는 개발자는 생산성이 50% 향상되고 코드에 대한 이해도가 높은 개발자가 아닌 개발자보다 생산성이 42% 높았고 피드백 루프가 중요하기 때문에 코드 리뷰가 빠른 등 처리시간이 빠르면 20% 더 혁신적이라고 느꼈다.(영어)
IT 업계 뉴스
Dave Mills has passed away : NTP(Network Time Protocol)을 발명하고 인터넷 아키텍처 테스크 포스의 초대 의장을 하는 등 인터넷 개발에 여러 가지 기여를 했던 Dave Mills가 지난 17일 85세의 나이로 세상을 떠났다고 인터넷의 아버지로 알려진 Vinton Cerf가 메일링 리스트의 부고를 전했다. 삼가 고인의 명복을 빕니다.(영어)
Supreme Court rejects Epic v. Apple antitrust case : Epic Games가 2020년 포트나이트에서 자체 결제시스템을 도입하자 Apple이 포트나이트를 앱 스토어에서 차단하면서 시작된 소송인데 대법원에서 두회사가 각기 제기한 청원을 기각함으로써 재판이 끝났다. 이 기각으로 애플은 앱 스토어에서 다른 결제 수단을 금지하는 것이 반경쟁적 행위라고 판단했으므로 애플은 다른 결제시스템을 허용해야 하게 되었고 Epic Games가 주장했던 다른 스토어를 통해서 iOS에 앱을 배포하도록 허용하도록 하는데까지는 실패했다.(영어)
Comments