Outsider's Dev Story

Stay Hungry. Stay Foolish. Don't Be Satisfied.
RetroTech 팟캐스트 44BITS 팟캐스트

기술 뉴스 #259 : 24-12-01

웹개발 관련

  • (번역) JS0/JSSugar 제안에 대한 생각 : JavaScript 표준을 만드는 TC39에서 Shu-yu Guo가 자바스크립트 언어 발전과 관련한 문제를 해결하기 위해 제안을 했다. JavaScript 언어의 사용자는 프로그램을 만드는 개발자와 babel 등 개발자가 작성한 언어는 JavaScript로 변환하는 도구를 만드는 개발자, 그리고 브라우저 등에서 이를 사용하는 개발자로 분류할 수 있는데 언어의 새로운 기능은 실제 이를 구현하는 VM이나 브라우저 등에서 보안이나 성능에서 문제를 일으키게 된다. TC39에서는 새로운 기능을 도입하고 있지만 엔진을 만드는 쪽에서는 보수적으로 받아들이고 있어서 브라우저에서 사용하는 언어를 JS0으로 정의하고 JS0으로 컴파일되는 각 도구에서 사용할 수 있는 언어 기능은 JSSugar로 정의해서 언어를 발전시키면서 생태계의 안정성도 보장하자는 제안으로 Shu-yu Guo의 발표 자료도 번역해 두어서 편하게 볼 수 있다.(한국어)

그 밖의 개발 관련

  • Does GitHub Copilot improve code quality? Here’s what the data says : GitHub Copilot의 효과를 파악하기 위해 5년 이상의 개발자 202명을 모집해서 절반은 GitHub Copilot을 사용하고 절반은 AI 도구를 사용하지 않은 채 웹 서버의 API 엔드포인트를 작성한 후 단위 테스트와 전문가 검토를 통해 코드를 평가했다. 연구 결과에 따르면 GitHub Copilot을 사용한 코드가 준비된 단위테스트를 통과할 가능성이 56% 더 높았고 1~3% 더 가독성이 좋고 유지관리가 쉬운 것으로 나타났다.(영어)
  • GitHub Actions를 이용한 코드 리뷰 문화 개선기 : Naver에서 Pull Request가 머지되는 시간을 개선하기 위해 pr-stats라는 액션을 만들어서 통계 정보를 수집하고 이를 바탕으로 상관관계를 추적해서 리뷰 응답 시간을 줄이기로 했다. 이를 위해 리뷰할 PR을 알려주는 액션과 리뷰를 요청하는 액션을 만들고 마감 시간이 있는 작업을 위해 디데이를 설정하는 액션을 만들었다. 이를 통해 개선된 응답속도와 머지되는 속도의 변화까지 추적해서 보여주어서 유용하다.(한국어)
  • Constraints are Good: Python's Metadata Dilemma : Python에서 범용적인 잠금 파일 표준을 만들기 위한 논의가 진행 중이지만 메타데이터 시스템이 너무 복잡하고 제약조건이 부족하다는 문제가 있다고 한다. JavaScript의 경우 package.json을 사용해서 버전과 의존성을 관리하는 단순성을 유지하면서 패키지와 메타데이터 사이의 1:1 관계와 정적인 제약 조건을 제공하고 있다. 하지만 Python은 역사적으로 메타 데이터에 제약을 거의 두지 않았기 때문에 메타데이터의 관리와 통일이 너무 어려우며 pyproject.toml 표준부터는 어느 정도 개선되었지만 이를 완전히 무시할 수 있기 때문에 완전히 해결되진 않았다.(영어)

인프라 관련

  • How I Wrote My First Kubernetes Operator : Kubernetes Operator를 처음 작성하면서 배운 내용을 정리한 글이다. 처음 작성하면서 Gen AI에 도움을 많이 받았고 기존에 Operator를 작성한 동료들의 도움을 받을 수 있었다. 프레임워크를 선택하면서 고수준 프레임워크인 kuberbuilder를 선택했고 reconciliation 주기를 이해해야 만들기가 쉽고 동시성 문제로 인해 발생하는 resourceVersion 문제는 해결도 쉽지 않았고 자료도 많지 않았다고 한다.(영어)
  • A Hands-On Guide to Kubernetes Endpoints & EndpointSlices : Kubernetes에서 IP와 포트를 정의하는 객체인 엔드포인트와 Kubernetes 1.16에서 확장가능하고 효율적인 방법으로 도입된 Endpint Slices의 동작 방식을 설명하고 간단하게 nginx를 띄워보면서 어떻게 구성되는지 살펴본다.(영어)
  • Cloudflare incident on November 14, 2024, resulting in lost logs : 11월 14일 Cloudflare에서 3.5시간 동안 고객에게 전송하는 로그의 55%가 유실되는 장애에 대한 포스트모텀이다.
    Cloudflare Logs는 모든 이벤트 로그를 고객에게 제공하며 하루에 4조 5천억 개의 이벤트 로그를 전송하는데 여기서는 일정 크기로 사용자에게 로그를 푸시하는 Logpush를 제공하는데 이는 글로벌 네트워크에서 Logfwdr가 받아서 Logreceiver로 보내고 Logreceiver는 Buftee로 로그를 보내서 버퍼링하는데 각 사용자별로 버퍼링하기 때문에 고객 간에 영향을 주지 않는 구조다. Logpush는 Buftee에서 로그를 읽어서 고객에게 보내는 역할로 이 모두는 Golang으로 작성되었다. 이번 장애는 Logfwdr에서 새로운 구성을 추가하다가 빈 구성을 설정하였고 5분 이내에 롤백했지만, 초창기에 도입된 안전장치 때문에 Logfwdr 구성을 사용할 수 없는 경우 로그 손실을 방지하기 위해 Logpush를 설정하지 않은 모든 고객에게 로그를 보내도록 동작하였다. 이 과부하로 인하여 Buftee는 엄청나게 많은 버퍼를 만들게 되었고 이룰 복구하는 데 몇 시간이 걸렸다.(영어)
  • Top 20 Platform Engineering Tools : 플랫폼 엔지니어링과 관련한 도구를 정리한 글로 플랫폼 엔지니어링이란 영역이 워낙 범위가 넓다보니 도구도 좀 다양하긴 한데 IaC 관리 도구, IDP 구축 플랫폼, 서비스 카탈로그, 개발 환경 도구, 배포 도구 등이 정리되어 있다.(영어)

AI 관련

  • Understanding AI : AI의 사용이 일상화되면서 AI와 관련된 추상적인 개념을 정리한 글이다. 머신러닝과 뉴럴 네트워크, 딥 러닝을 설명하고 단어를 토큰화하고 사전 학습, 트랜스포머, 파인튜닝, 추론의 개념을 설명한다.(영어)

볼만한 링크

  • 원온원 6년의 기록: 시행착오와 배움들 : 일찍 팀장이 되어 6년 동안 원온원을 하면서 시도했던 내용과 배운 것들을 정리한 글이다. 처음에는 질문리스트를 모아서 이를 체크리스트처럼 사용했는데 팀원을 돕는 자리라는 본질에 집중해서 진행하기 시작했고 개개인의 다 달랐기에 이후에는 개인화한 원온원을 하기 위해 다양한 시도를 했다. 이후에는 사위 조직장으로 여러 팀장이 원온원을 잘할 수 있도록 프레임워크를 만들고 있다. 후반부에는 정리된 원온원 절차와 템플릿도 정리되어 있다.(한국어)

IT 업계 뉴스

  • Redis is trying to take over the all of the OSS Redis libraries : Redis Lab이 OSS Redis 라이브러리를 통제하려고 하고 있다는 글이다. 이미 Jedis, Lettuce, redis-py는 모두 소유권이 redis org 밑으로 넘어갔고 이번에는 redis-rs에 연락해서 라이브러리를 인수하거나 상표권 침해이므로 라이브러리 이름을 바꾸라고 했다. 참고로 Redis, Inc는 원래부터 Redis를 만들던 회사는 아니고 Salvatore Sanfilippo가 물러나기 전 Redis, Inc에 상표권을 넘겨서 현재 상표권을 가지고 있고 현재 Reids의 라이센스 변경으로 Valkey 오픈소스 포크가 생겼기 때문에 생태계에서는 Redis, Inc의 움직임에 걱정하고 있다.(영어)
  • Deno v. Oracle: Canceling the JavaScript Trademark : Ryan Dahl이 그동안 얘기해 온대로 Oracle이 가진 JavaScript 상표권에 대한 권리를 취소해 달라는 청원서를 지난 11월 22일 미국 특허청에 제출했다. 취소 근거로는 JavaScript라는 용어가 Oracle과 무관하게 일반적으로 사용되고 있으면 Oracle이 2019년 상표권을 갱신하면서 상관없는 Node.js를 증거로 사용하는 사기를 저질렀고 수년 동안 Oracle이 해당 상표를 사용하지 않았음을 근거로 하고 있다. 상표권이 취소되면 ECMAScript도 그냥 JavaScript 표준이라고 할 수 있고 JSConf 등도 JavaScript Conf 등이 될 수 있다.(영어)
  • AWS, ‘클라우드 공유판매’ 금지 예고…MSP 업계 타격 불가피 : AWS가 MSP(Managed Service Provider)가 사용하던 EC2 약정 할인의 공유 옵션을 폐지하기로 했다. 이는 ECS를 예약 인스턴스(RI), 세이빙스플랜 같은 약정 할인을 다른 고객사와 공유할 수 있는 공유 옵션을 제공했기에 그동안 MSP는 큰 약정 할인을 구매한 뒤 여러 고객사에 이를 재판매 형태로 제공하면서 할인을 제공하면서 수익을 얻을 수 있었는데 이 공유 옵션을 금지하기로 한 것이고 2025년 6월 1일부터 적용한다고 한다.(한국어)

프로젝트

  • eBay Evo : eBay에서 디자인 시스템을 공개했다.
  • Kratix : Internal Developer Platform(IDP)를 구축할 수 있는 오픈소스 프레임워크

버전 업데이트

2024/12/01 20:33 2024/12/01 20:33