웹개발 관련
- The web just gets better with Interop 2024 : 브라우저 간 호환성을 유지하기 위해 여러 브라우저가 벤더와 회사들이 공동으로 테스트를 만들어서 상호 운용성을 개선하기 위한 Interop 2024가 발표되었다. Interop 2023 컨테이너 쿼리,
:has(), Flexbox, Grid 등의 영역의 상호 운용성을 크게 개선했다. 올해는 Microsoft Edge를 크롬과 별도로 구분해서 보여주기 시작했으며 접근성, 웹소켓용 HTTPS URL, CSS Nesting, CSS 커스텀 프로퍼티(@property), 선언적 쉐도우 DOM, 레이아웃, 스크롤바 스타일 등이다.(영어)
- How To Center a Div : DIV를 부모 요소의 중앙에 배치하는 것은 의외로 까다로운 작업인데 중앙에 배치한 다양한 방법을 설명하는 글이다. 마진을
auto로 설정해서 가운데 배치하거나 flexbox를 이용하는 방법 그리고 position: fixed를 이용해서 뷰포트의 중앙에 배치하거나 CSS Grid로 중앙에 배치하는 방법을 설명한다. 실행해 볼 수 있는 예제를 같이 보여주면서 특징을 설명하고 있어서 이해하기 좋다.(영어)
- Observable 2.0 : d3.js를 만든 Mike Bostock이 만든 Observable에서 2.0을 출기하면서 Observable 프레임워크를 오픈소스로 공개했다. 그동안 데이터를 효과적으로 보여주기 위한 노트북을 제공했는데 이는 임시적인 데이터 탐색에는 적합하지만 세련된 대시보드와 앱에는 적합하지 않았기 때문에 프레임워크를 만들게 되었고 이를 이용해서 데이터앱을 구축할 수 있다. 모든 백엔드 언어와 연결이 가능하고 빌드시에 데이터로더가 실행되기 때문에 페이즈 로딩이 아주 빠르다.(영어)
그 밖의 개발 관련
- The Plan for Rails 8 : Rails 8 웹프레임워크에 대한 계획이 공개었다. 최신 웹 앱의 복잡성을 압축해서 웹 앱을 더 쉽게 구축한다는 Rails의 모토를 여전히 유지하고 있다. NVMe SSD로 데이터베이스가 훨씬 빨라짐에 따라 Solid Cache와 Solid Queue를 통해 기존 Redis에 의존하던 캐싱이나 백그라운드 작업을 대체하고 데이터베이스를 사용하게 되었다. Postgres와 MySQL이 지원하는 WebSocket을 통해 브라우저에 메시지를 브로드캐스트할 수 있도록 지원하고 오랫동안 Rails의 에셋 파이프라인이었던 Sprockets을 propshaft이 대체할 예정이다. 그외에도 Kamal 배포도구, HTTP 기본 인증 생성기, 벤치마크 도구, Rails 8의 Language Server 등의 도구가 포함될 예정이다.(영어)
- Opening Up GitButler : 전에 GitHub에서도 일하고 Pro Git을 쓴 Scott Chacon이 창업한 Git 브랜치 관리 시스템인 GitButler가 정식 오픈했다. GitButler는 Virtual Branch라는 개념을 도입해서 워킹 디렉토리에서 작업을 하던 중 버그 수정을 위해 새로운 브랜치로 전환하지 않고 UI에서 필요한 수정사항만 끌어다가 새로운 브랜치를 만들어서 커밋하고 푸시할 수 있게 제공한다. 곧 클라이언트도 제공할 예정인데 GitButler는 기존 Git 워크플로우는 그대로 유지하면서 브랜치를 사용하는 완전히 새로운 방법이라고 소개하고 있다.(영어)
- Rye: A Vision Continued : Python 프로젝트와 패키지를 관리하는 도구인 Rye를 만든 Python의 유명 개발자 Armin Ronacher가 Rye의 중요성을 설명하는 글이다. Rye가 있으면 Python이 설치도 안 되어 있는 환경에서도 1분 이내에 모든 환경이 갖춰진 파이썬 프로젝트를 시작할 수 있는데 이는 Rust에서 Cargo의 원활한 통합을 보면서 이를 Python 커뮤니티에서도 비슷한 경험을 하고 싶어서 만들었다고 한다. Cargo가 그렇듯이 모든 도구를 다 만드는 것이 아니라 생태계의 다른 도구를 연결해 주는 역할을 하]고 이는 Rye도 비슷하게 하고 있지만 아직 1인 프로젝트이며 이러한 표준화 아이디어가 Python 생태계에 더 필요하다고 얘기한다.(영어)
- uv: Python packaging in Rust :
pip와 pip-tools를 대체하려고 Rust로 작성된 uv는 엄청나게 빠른 Python 패키지 인스톨러이면서 리졸버이다. Python을 위한 Cargo를 지향하고 있으며 이번 릴리스와 함께 Rye의 관리도 같이 맡아서 공동의 비전을 실현하기 위해 노력할 것이라고 한다.(영어)
인프라 관련
볼만한 링크
- Express.js Spam PRs Incident Highlights the Commoditization of Open Source Contributions : 486만 명의 구독자를 보유한 인기 YouTube 영상에서 Pull Request를 제출하는 방법을 설명하면서 예시도 Express.js를 사용하는 바람에 Express.js 저장소에 Readme를 업데이트하는 스팸 PR이 대량으로 등록되는 사태가 발생했다. 영상에서 실제 Express.js 저장소를 사용했기 때문에 사람들이 따라 하면서 express 저장소에 PR을 등록하게 된 거고 메인테이너는 이 스팸에 대응하느라 고생하고 있다. 사람들은 오픈소스에 기여하는 것을 취업의 방법이 되었고 그로 인해서 오픈소스 생태계가 무너지고 있다며 대부분의 사람은 오픈소스에 기여하지 말라는 말까지 나오고 있다.(영어)
- How Quora Died : 전문가에게 답변을 받을 수 있는 커뮤니티인 Quora가 쇠퇴해 가는 과정을 설명한 글이다. Quora는 좋은 질문과 좋은 답변을 얻을 수 있는 커뮤니티를 잘 구축했지만 트래픽을 모으려고 노력하면서 SEO를 위해 질문 길이를 제한하고 피드 최적화로 피드에 콘텐츠 기사를 넣기 시작했가 이어서 수익 공유 프로그램을 만들었는데 이는 기존 커뮤니티보다 봇을 만드는 게 더 돈이 된다는 것을 보여주었고 이후 답변에 AI를 도입하면서 답변은 전문가의 답변보다는 평이한 답변이 차지하게 되고 AI 학습을 위해 모든 질문 답변이 AI 학습에 사용된다는 이용약관의 변경으로 인해 사용자는 계속 이용할지 갈등하게 만들었다는 내용이다.(영어)
- How SSH port became 22 : 1995년 SSH를 만든 Tatu Ylonen이 SSH의 포트 번호인 22번을 어떻게 할당받았는지를 적은 글이다. 당시 23번 포트의 Telnet과 21번 포트의 FTP를 대체할 수 있도록 SSH를 설계 후 무료인 22번 포트를 사용하면 좋겠다고 생각했습니다. 당시에는 인터넷의 규모가 작고 초기 단계였기에 IANA에서 포트 번호를 관리했기에 IANA에 SSH의 RFC를 첨부하면서 포트 번호를 받고 싶다고, 특히 22번을 받고 싶다고 이메일 보냈고 IANA에서 22번을 할당해 주고 Tatu Ylonen을 담당자로 지정해 주어 바로 SSH의 베타테스터들에게 공개했다.(영어)
IT 업계 뉴스
프로젝트
- jsr : Deno에서 npm을 대체할 새로운 자바스크립트 레지스트리를 만들고 있다. 아직 자세한 내용은 공개되지 않았지만, Deno의 denoland를 대체할 것으로 예상된다.
- LLRT(Low Latency Runtime) : AWS에서 실험적으로 QuickJS 엔진을 사용하고 Rust로 만든 JavaScript 런타임을 공개했다. 이는 서버리스 애플리케이션의 빠르고 효율적인 요구사항을 해결하기 위한 런타임으로 AWS Lambda에서 10배 빠른 시작 시간과 2배 저렴한 비용을 보여주었다.
- Pkl : Apple이 프로그래밍할 수 있고 확장성 있으면서 안전한 구성 언어(Configuration Language)를 공개했다. Pickle로 발음한다.
- Keep : 오픈소스 얼럿 관리 및 자동화 플랫폼
- HyperDX : Datadog이나 New Relic의 오픈소스 대체제로 로그, 메트릭, 트레이스, 예외, RUM 등을 한곳에 모아서 서비스 문제를 쉽게 찾을 수 있게 해준다.
버전 업데이트
- Turbo v8.0.0 : 싱글 페이지 애플리페이지의 변경을 관리하는 라이브러리, 릴리스 공지
- Hono v4.0.0 : 엣지용 웹 프레임워크, 릴리스 공지
- Moby Project v25.0.0 : Docker, 릴리스 공지
- Probot v13.0.0 : GitHub 앱을 만들 수 있는 프레임워크, 릴리스 공지
- AdonisJS v6.0.0 : TypeScript 웹 프레임워크, 릴리스 공지
- Cilium v1.15.0 : eBPF 기반 CNI, 릴리스 공지
- OrbStack v1.4.0 : mac용 Docker 애플리케이션, 릴리스 공지
- Remix v2.6.0 : 풀스택 웹 프레임워크, 릴리스 공지
- Gradle v8.6 : Java 빌드 도구, 릴리스 공지
- Babylon.js v6.41.0 : WebGL 자바스크립트 프레임워크, 릴리스 공지
- pino v8.18.0 : Node.js 로거, 변경사항
- flow v0.228.0 : JavaScript 정적 타입 체커, 릴리스 공지
- Mermaid v10.8.0: JavaScript 기반 다이어그램/차트 도구, 릴리스 공지
- Ghost v5.79.0 : 오픈소스 블로그 플랫폼, 릴리스 공지
- Boundary v0.15 : 인프라 접근 관리, 릴리스 공지
- Vite v5.1.0 : 프론트엔드 빌드 도구, 릴리스 공지
- Rust 1.76.0 : 프로그래밍 언어, 릴리스 공지
- Argo CD v2.10.0 : Kubernetes 배포 도구, 릴리스 공지
- ApplicationSet 템플릿 지원
- 관리자 권한 없이도 앱 사용자가 알림 설정 가능
- k6 v0.49.0 : 부하 테스트 도구, 릴리스 공지
- Rsbuild v0.4.0 : Rspack 기반의 빌드 도구, 릴리스 공지
- Go v1.22 : 프로그래밍 언어, 릴리스 공지
- jQuery v4.0.0 Beta : JavaScript 라이브러리, 릴리스 공지
- Docker Desktop v4.27 : 데스크톱용 Docker 애플리케이션, 릴리스 공지
- typescript-eslint v7.0.0 : TypeScript의 ESLint, 릴리스 공지
- tmux v3.4.0 : 터미널 멀티플렉서, 변경사항
- panda v0.31.0 : CSS-in-JS, 릴리스 공지
- Angular v17.2.0 : JavaScript 프레임워크, 릴리스 공지
- GitLab v16.9 : 오픈소스 설치형 Git 플랫폼, 릴리스 공지
- Dart v3.3.0 : 프로그래밍 언어, 릴리스 공지
- Flutter v3.19 : iOS, Android 네이티브 앱을 만드는 프레임워크, 릴리스 공지
- astro v4.4 : JavaScript 웹 프레임워크, 릴리스 공지
Comments