웹개발 관련
- W3C AND WHATWG TO WORK TOGETHER TO ADVANCE THE OPEN WEB PLATFORM : 웹 표준을 만드는 W3C와 벤더사들이 중심이 된 WHATWG가 단일 버전의 HTML과 DOM 명세를 협력해서 개발하기로 합의했다.(영어)
- 18F Accessibility Guide : 미 정부의 디지털 서비스 에이전시인 18F에서 공개한 웹 접근성 가이드이다. 접근성에 이용할 수 있는 도구와 체크리스트부터 이미지, 폼, 페이지 타이틀 등 접근성을 높이기 위해 참고해야 할 내용이 잘 정리되어 있다.(영어)
- Introducing the first Microsoft Edge preview builds for macOS : 작년 12월에 발표했던 대로 Chromium 기반의 Microsoft Edge 브라우저의 macOS용 카나리 버전이 공개되었다. 새로운 Edge의 카나리 버전은 macOS와 Windows 10에서 설치해서 사용해 볼 수 있다.(영어)
- WebAssembly at eBay: A Real-World Use Case : eBay에서 바코드 스캐너를 WebAssembly로 만들어서 테스트한 과정을 설명한 글이다. 바코드 스캐너는 중요한 기능이지만 웹에서는 성능이 나오지 않아서 제공을 못 하다가 WebAssembly로 구현해서 성능은 50배 이상 빨라졌지만 인식률이 높지 않아서 ZBar라는 라이브러리를 같이 사용하는 방식으로 접근해서 테스트했다고 한다.(영어)
- 구글 애널리틱스 A/B 테스트 쉽게 하기(쿠키 + dimension 활용) : 구글 애널리틱스에서 A/B 테스트 제공하고 있지만, 성격이 다른 동적 데이터를 보여줄 때는 불편해서 demension과 쿠키를 조합해서 A/B 진행한 방법을 설명하는 글이다. 간단히 얘기하면 구글 애널리틱스에서 dimension을 추가하고 이 값을
ga set
으로 쿠키 설정한 다음에 서버에서 쿠키를 보고 페이지를 바꿔서 보여주는 방식이다. 간단하면서도 흥미로운 방법이다.(한국어)
그 밖의 프로그래밍 관련
- Introducing Terraform Cloud Remote State Management : Terraform Cloud에서 제공하던 원격 상태 관리 기능을 작년 가을 무료로 공개하기로 한 뒤 이번에 공식적으로 모두가 이용할 수 있게 공개되었다. Terraform으로 협업하려면 원격 상태 관리를 위해 S3 등을 이용하는데 대신 Terraform Cloud를 이용할 수 있다.(영어)
- Kubernetes Learning Path : Microsoft에서 만든 50일간 Kubernetes를 학습할 수 있도록 안내하는 PDF 문서이다. 날짜별로 어떤 자료를 보고 공부하면 좋은지가 정리되어 있어서 따라 하면서 공부하기 좋다.(영어)
- 쿠버네티스 시작하기 - Kubernetes란 무엇인가? : 쿠버네티스를 설명하는 4편의 시리즈 글 중 첫 번째 글로 쿠버네티스의 개념부터 쿠버네티스의 각 구성 요소가 어떤 역할을 하고 동작하는 방식을 설명하는 글이다. 이해하기 쉽게 글을 잘 써주시는 subicura님의 글답게 복잡한 k8s의 동작 방식이 이해하기 쉽게 정리되어 있다.(한국어)
- Telepresence로 Kubernetes 클러스터에서 실행할 애플리케이션을 로컬 환경에서 개발하기 : Kubernetes 클러스터에 서비스를 배포했을 때 특정 서비스를 디버깅하려고 매번 배포하거나 로컬에 클러스터 전체를 띄우는 게 불편한데 이때 유용한 Telepresence라는 도구를 설명하는 글이다. Telepresence를 이용하면 k8s 클러스터와 로컬에 터널을 만들어서 로컬에 띄운 서버와 클러스터를 연결해서 쉽게 디버깅을 할 수 있는데 상당히 유용해 보인다.(한국어)
- Knative on EKS : Kubernetes에서 서버시스 워크로드를 관리할 수 있는 Knative를 아마존의 EKS 상에 배포하는 방법을 설명하는 글이다.(한국어)
- Hello Service Mesh Interface (SMI): A specification for service mesh interoperability : Microsoft에서 Service Mesh Interface(SMI)를 공개했다. 이는 Istio, Linkerd, Consul Connect 등 여러 서비스 메시 기술 간에 상호운용성을 제공할 수 있는 API를 제공하고 Microsoft, Linkerd, HashiCorp, Solo.io, Kinvolk, Weavework가 함께 만들었다.(영어)
- 만들면서 배우는 AWS VPC 입문 : AWS에서 리소스를 만들 때 가장 기본이 되는 개념인 VPC를 설명하는 글이다. VPC에는 많은 요소가 있어서 한 번에 다 이해하기가 어려운데 각 요소가 하는 역할을 자세히 설명하고 실제로 VPC를 만들어 보면서 각 부분을 어떻게 설정해서 사용해야 하는지 설명하고 있다.(한국어)
- Jedis 보다 Lettuce를 쓰자 : Java에서 Redis 클라이언트로 쓰이는 Jedis와 Lettuce를 성능 비교한 글이다. 스프링 부트에서 두 가지 라이브러리를 설정해서 테스트한 환경을 설명하고 이 테스트를 실행했을 때 Lettuce가 압도적으로 좋은 성능이 나오는 것을 보여주면서 Lettuce를 추천하고 있다.(한국어)
- MySQL을 이용한 분산락으로 여러 서버에 걸친 동시성 관리 : 우아한 형제들에서 Java 코드에서 두 테이블 간의 제약 조건을 주었지만, 멀티스레드 환경에서는 이 제약조건이 지켜지지 않아서 MySQL의 분산락을 도입한 과정을 설명하고 있다. 문제 상황부터 분산락을 사용한 코드 예시까지 잘 나와 있다.(한국어)
볼만한 링크
- 리디 Open First Initiative : 리디북스를 운영하는 리디에서 "대부분 소프트웨어는 외부에 공개되어도 문제가 없다"는 오픈 소스 라이센스를 우선하려는 정신을 따르기 위해 앞으로 회사 서비스의 코드를 오픈소스로 공개하겠다고 밝혔다. 첫 번째로 리디 셀렉트의 프론트엔드 코드를 공개했다. 추가로 버그 바운티 프로그램을 운영해서 보안 문제를 제보해 주는 사람들에게 공식적으로 포상을 하겠다고 한다.(한국어)
- 150일 동안 내가 배운 것들 -1 : 인턴으로 입사하고 150일 동안 프론트엔드 개발자로 일하면서 배운 내용을 정리한 글이다. 1편인 이번 글은 "Communication & Thinking"에 대해서 다루고 있는데 주로 협업에 대해 얘기를 하고 있다. 동료의 시간을 아끼기 위해서 질문도 잘 준비하고 회의의 시간을 효율적으로 하려면 어떻게 해야 하는지 말을 할 때 어투는 어때야 하는지 등 깨달은 내용이 나와 있다. 그리고 개발이 개인 작업이 아니라 팀으로 하는 일이라 코드를 작성할 때 다 같이 잘하려면 어떻게 해야 하는 지 등이 나와 있는데 처음 일해보면서 배웠다고 하기에는 놀랄 정도로 많이 배우셨다는 생각이 들었다. 신입 아니더라도 협업할 때는 꼭 염두에 두어야 할 내용이라고 생각되고 이렇게 고민하면서 일하는 분이라면 금방 좋은 개발자가 되실 거라는 생각이 든다.(한국어)
- 스포카에서는 어떻게 리모트, 플렉서블 근무를 할까 : 오래전부터 리모트 근무를 도입했던 스포카에서 현재 유연근무제를 어떻게 사용하고 있는지를 설명한 글이다. "유연 근무제는 어디까지나 '일을 더 잘하기 위한 제도'이기 때문"이라는 말에 동의하고 슬랙봇과 커뮤니케이션 방식에서 비동기 커뮤니케이션을 위해 오랫동안 노력했다는 느낌을 받았다. "서로에 대한 신뢰가 가장 적은 비용"라는 부분이 인상적이다..(한국어)
- RIDI Design System : 리디의 디자인 가이드 문서이다. 리디의 제품을 만들 때 내부에서 가이드라인으로 사용하는 원칙, 색상, 문구 등을 어떻게 사용해야 하는지 정리된 사이트이다.
- Gmail 로 개인 도메인 이메일주소 만들기 : Google Domains에 등록된 도메인으로 Gmail에서 커스텀 도메인의 메일 주소를 사용하는 방법을 설명하고 있다.(한국어)
- GAME ENGINE BLACK BOOKS UPDATE : Doom과 Wolfenstein의 개발 과정이 담긴 무료 이북 GAME ENGINE BLACK BOOK의 오류를 수정하고 300dpi DPF로 업데이트되었다.(영어)
IT 업계 뉴스
- GitHub Sponsors : GitHub이 개발자를 후원할 수 있는 스폰서 프로그램을 공개했다. 현재 후원을 누구나 할 수 있지만, 후원받는 사람은 클로즈 베타로 일부 사람들에게만 열려있다. 첫해에는 수수료도 없고 후원을 받으면 GitHub에서 최대 5,000달러까지 추가로 지원을 해준다고 한다.(영어)
- 화웨이: 구글, 화웨이에 안드로이드 운영 체계 사용 금지 : 구글이 화웨이가 안드로이드 운영체제를 이용하지 못하게 차단했다.
- '리디', 애니메이션 스트리밍 기업 '라프텔' 인수합병 : 리디북스를 운영하는 리디가 애니메이션 스트리밍 서비스를 운영하는 라프텔을 인수·합병했다.(한국어)
- Dependabot is joining GitHub : 자동으로 의존성 업데이트를 해주는 Dependabot을 GitHub이 인수했다.(영어)
프로젝트
- 단디 - 한국어 맞춤법 검사기 : 부산대 맞춤법 검사기를 쉽게 사용할 수 있게 하는 단디를 fallroot님이 Visual Studio Code용 확장으로 만들어 주셨다.
- Kustomize : Kubenetes 설정 파일을 템플릿화해서 사용할 수 있는 기능으로 현재는
kubectl
에 내장되었다. - k3OS : Rancher Labs에서 경량 Kubernetes k3s에 이어 Kubernetes로 관리되는 경량 운영체제를 공개했다.
- Kubernetes Presentations : CNCF에서 Kubernetes 관련 발표자료를 모아놓은 저장소.
- OpenTelemetry : OpenTracing 프로젝트와 OpenCensus 프로젝트가 합쳐져서 원격측정을 하는 OpenTelemetry 프로젝트가 되었다.
- Trivy : 컨테이너의 취약점을 검사해주는 도구.
- Tornis : 브라우저의 뷰포트 상태를 추적해서 마우스 위치와 스크롤 위치 등을 추적할 수 있는 JavaScript 라이브러리. 프로젝트 페이지를 해당 라이브러리를 이용해서 패럴랙스로 만든 점이 재미있다.
- eksctl : Amazon EKS용 CLI 도구
- The Art of Command Line : 커맨드 라인 도구의 사용법과 팁을 모아놓은 저장소로 한국어로 번역이 되어 있다.
버전 업데이트
- Terraform v0.12.0 : 서버 인프라 설정 도구, 릴리스 공지
- Consul 1.5 : 서비스 디스커버리/설정 도구, 릴리스 공지
- Angular v8.0.0 : JavaScript 프레임워크, 릴리스 공지
- PostgreSQL 12 Beta 1: 관계형 데이터베이스, 릴리스 공지
- TypeScript v3.5 : Microsoft가 만든 JavaScript transpiler, 릴리스 공지
- fluentd v1.5.0 : 데이터 수집기, 릴리스 공지
- nginx v1.17.0 : 웹 서버, 변경사항
- Ansible v2.8 : IT 자동화 시스템, 릴리스 공지
- V8 v7.5 : JavaScript 엔진, 릴리스 공지
- Grafana v6.2 : 매트릭 대쉬보드, 릴리스 공지
- Rust 1.35.0 : 프로그래밍 언어, 릴리스 공지
- GitLab v11.11 : 오픈소스 설치형 Git 플랫폼, 릴리스 공지
- Material-UI v4.0.0 : Google 메터리얼 UI를 구현한 React 컴포넌트, 릴리스 공지
- Unicode v12.1.0 : 유니코드 표준, 릴리스 공지, Unicode 12.1.0 출시 참고.
- Verdaccio v4.0.0 : npm 프록시 레지스트리, 릴리스 공지
- Scene.js v1.0.0 : JavaScript 애니메이션 라이브러리, 릴리스 공지
- axios v0.19.0 : JavaScript HTTP 클라이언트, 변경 사항
- webpack v4.32.0 : JavaScript 번들러, 변경사항
- Puppeteer v1.17.0 : Headless Chrome의 Node.js 라이브러리, 변경사항
- Rollup v1.13.0 : JavaScript 번들러, 변경 사항
- Serverless Framework v1.42.0 : AWS Lambda에서 앱을 만드는 프레임워크, 릴리스 공지
- Fluent Bit v1.1.0 : 로그 프로세서/포워더, 릴리스 공지
- Deno v0.7.0 : TypeScript 런타임, 변경 사항
Comments