웹개발 관련
- (번역) 데이터 구조를 개선하여 코드 43% 줄이기 : 43% Less Code With A Better Data Structure의 번역 글이다. 주니어 개발자가 React 코드의 코드 리뷰를 요청해서 이를 개선하는 과정이 나와 있다. 체크 리스트에서 전체 선택과 해제를 할 수 있는 코드인데 잘 동작하지만 데이터 구조의 문제와 다른 상태에서 생성할 수 있는 값을 저장해 두는 문제, DOM에 직접 접근하는 문제를 짚어내고 하나씩 개선해나가면서 이전 코드와 개선된 코드를 비교해서 설명해 주고 있다. 어떤 식으로 React 코드를 개선할 수 있는지 명확하게 보여주고 있어서 도움이 되는 글이다.(한국어)
- State of CSS 2022 : 매년 실행하는 CSS 생태계를 설문 조사한 결과이다. CSS 프레임워크와 CSS-in-JS 라이브러리의 만족도, 관심도, 사용량, 인지도의 변화를 볼 수 있고 CSS 기능의 비호환성이나 필요한 기능의 통계를 볼 수 있다. 완벽하진 않지만, 한국어로 번역되어 있어서 더 쉽게 볼 수 있다.(한국어)
그 밖의 개발 관련
- 검증하지 말고 파싱하라 : Alexis King의 Parse, don’t validate의 번역 글로 평소 타입 주도 설계를 설명하는데 고생하다가 "검증하지 말고 파싱하라"는 것을 깨닫고 이를 설명하는 글이다. 함수를 작성할 때 입력의 어떤 조건을 검증하는 경우 잘못하면 호출자에게 검증의 책임을 떠넘기게 되어 코드가 복잡해질 수 있는데 이를 인자 타입을 강화시켜서 훨씬 간결하게 구현하는 방법을 설명한다. 이를 탕해 타입 시스템을 충분히 활용해서 검증으로 인한 샷건 파싱 문제를 피할 수 있다고 하고 있다. 예제 코드가 전부 Haskell이라서 Haskell을 알지 못하고 이해가 어려운데 다행히 급하게 배우는 Haskell ("검증하지 말고 파싱하라" 보충)에 글을 읽는 데 도움이 되는 간단한 문법 설명이 있으므로 이를 먼저 읽어보면 좋다.(한국어)
- AI assisted learning: Learning Rust with ChatGPT, Copilot and Advent of Code : Rust를 공부하려고 Advent of Code의 문제를 풀면서 GitHub Copilot과 ChatGPT의 도움을 받아서 Rust를 공부하는 과정을 정리한 글이다. ChatGPT를 이용해서 모든 라인을 설명하는 주석을 추가하고 Rust 컴파일러 오류를 설명하고 수정하게 하고 ChatGPT에게 Rust의 사용 방법을 물어보면서 Rust를 배웠다고 한다. 물론 꽤 잘 동작했지만 두 AI가 잘못된 부분을 알려주기도 해서 디버깅하느라고 시간을 쓰기도 했지만, 지금까지는 Rust를 배우는 데 도움이 되고 있다고 한다.(영어)
- 피쳐 토글 - 빠르고 안정적인 릴리즈를 향한 도약 : 맘시터에서 Unleash라는 서비스를 이용해서 피처 토클을 사용한 경험을 공유한 글이다. 피처 토글을 이용하면 배포와 릴리즈를 분리해서 코드는 배포하더라도 사용자에게 기능을 오픈하는 시기를 별도로 제어할 수 있어서 릴리스를 세밀하게 제어할 수 있다. 또한 큰 변경 작업을 메인 브랜치에 계속 통합하면서도 기능 오픈은 안 하도록 제어할 수 있다. 맘시터에서는 Unleash 서비스를 이용해서 오픈후 문제 있을 때 바로 해당 기능을 끈다거나 원하는 타이밍에 오픈한다거나 테스트 하는 등 실제로 사용하는 사례가 정리되어 있다.(한국어)
- GitHub Actions workflow notifications in Slack and Microsoft Teams : Slack과 Microsoft Teams의 GitHub 앱을 통해 GitHub Actions의 워크플로우의 알림도 받을 수 있게 되었다.
/github subscribe owner/repo workflows
명령어로 알림을 구독할 수 있고 /github subscribe owner/repo workflows:{name:"your workflow name" event:"workflow event" branch:"branch name" actor:"actor name"}
같은 식으로 워크플로를 필터링해서 구독할 수 있다.(영어)
인프라 관련
볼만한 링크
- ChatGPT: Optimizing Language Models for Dialogue : OpenAI에서 대화형으로 질문을 하면 답변을 받을 수 있는 ChatGPT를 공개했다. 한국어를 포함해서 자연어로 질문을 하면 ChatGPT가 답변을 해주는데 모든 정보가 정확한 것은 아니더라도 상당히 자연스럽게 답변을 해주기 때문에 많은 관심을 받고 있다.(영어)
- Experiment: The hidden costs of waiting on slow build times : 개발자에게 더 강력한 하드웨어를 물으면 항상 그렇다고 대답하는데 GitHub에서 실제 더 강력한 하드웨어를 사용했을 때 비용이 어느 정도인지 알기 위한 실험을 했다. Linux 커널을 컴파일하는 프로젝트를 대상으로 2 코어에서 64코어로 빌드해서 얼마나 많은 시간이 절약되었는지 살펴보고 이 시간이 비즈니스 비용이 얼마나 되는지를 찾았다. 미국 개발자의 평균 비용으로 시간당 75달러를 기준으로 빌드 중에 다른 일은 하지 않는다고 계산하면 코어가 늘어나면 빌드 시간이 많이 감소하므로 개발자 비용도 많이 감소하게 된다. 두 번째 실험에서는 빌드 동안 기다리는 대신 다른 작업을 한다고 가정하면 결국 컨텍스트 스위칭이 일어나는데 컨텍스트 스위칭에 1시간이 걸린다고 가정하면 빌드 시간이 큰 의미 없어지지만 15분, 30분이라고 생각하면 빌드시간을 줄이는 데 드는 비용이 개발자 비용보다 훨씬 적기 때문에 강력한 하드웨어를 쓰는 게 타당함을 보여준다.(영어)
- GitHub Copilot is generally available for businesses : GitHub Copilot 라이센스를 조직에서 관리할 수 있는 GitHub Copilot for businesses가 공개되었다. 개인이 아닌 조직 설정으로 라이센스와 정책 관리를 할 수 있고 가격은 기존 $10보다 비싼 $19이다.(영어)
IT 업계 뉴스
프로젝트
버전 업데이트
- SWR v2.0 : data fetching용 React Hook, 릴리스 공지
- Vite v4.0.0 : 프론트엔드 빌드 도구, 릴리스 공지
- SvelteKit v1.0 : Svelte의 앱 개발 프레임워크, 릴리스 공지
- PyTorch v2.0.0 : Python 딥러닝 프레임워크, 릴리스 공지
- keptn v1.0.0 : 클라우드 네이티브 애플리케이션의 control plane, 릴리스 공지
- Terraform Plugin Framework v1.0 : Terraform 플러그인 프레임워크, 릴리스 공지
- pouchdb v8.0.0 : JavaScript 데이터베이스, 릴리스 공지
- Stable Diffusion v2.1 : 텍스트를 이미지로 변환하는 모델, 릴리스 공지
- Lottie v4.0 : After Effects 애니메이션 랜더링 라이브러리, 릴리스 공지
- WebdriverIO v8.0.0 : Browser 테스트 자동화도구, 릴리스 공지
- Tor v12.0 : 웹 브라우저, 릴리스 공지
- Git v2.39.0 : 분산 형상관리 도구, 변경사항
- PHP v8.2.0 : 스크립트 언어, 릴리스 공지
- Linux Kernel v6.1 : 리눅스 커널, 릴리스 공지
- Visual Studio Code v1.74 : 에디터, 릴리스 공지
- Nx v15.3.0 : 모노레포 빌드 시스템, 릴리스 공지
- Artifact Hub v1.11.0 : Kubernetes 패키지 저장소, 변경사항
- Apache Airflow v2.5.0 : 워크플로우 플랫폼, 릴리스 공지
- ESLint v8.29.0 : JavaScript 코드 분석 도구, 릴리스 공지
- Loki v2.7.0 : Prometheus 형식의 로그 수집 시스템, 릴리스 공지
- Prometheus TSDB 스토리지 형식에 영감 받은 TSDB 인덱스 도입으로 인덱스 크기가 75% 감소
- three.js r147 : JavaScript 3D 라이브러리, 릴리스 공지
- NixOS v22.11 : 시스템 구성과 패키지 관리 도구, 릴리스 공지
- KEDA v2.9.0 : Kubernetes 오토스케일러, 릴리스 공지
- PgBouncer v1.18.0 : PostgreSQL 커넥션 풀, 릴리스 공지
- Meteor v2.9 : 웹앱 플랫폼, 릴리스 공지
- Apache Cassandra v4.1 : NoSQL 데이터베이스, 릴리스 공지
- Node.js v19.3.0 (Current) : 자바스크립트 런타임, 릴리스 공지
- Node.js v16.19.0 (LTS) : 자바스크립트 런타임, 릴리스 공지
- Deno v1.29.0 : TypeScript 런타임, 릴리스 공지
- Rust 1.66.0 : 프로그래밍 언어, 릴리스 공지
Outsider
2022/12/16 09:59
2022/12/16 09:59
Comments