웹개발 관련
그 밖의 개발 관련
- 스포카에서 Kotlin으로 JPA Entity를 정의하는 방법 : JPA는 Java 기준으로 Entity를 정의하기 쉽게 만들어졌기 때문에 Kotlin에서 JPA Entity를 제대로 쓰려면 어떻게 해야 하는지 고민한 결과를 담은 글이다. Kotlin으로 JPA를 설명하는 글에서는 Kotlin 장점을 소개하다 보니 Entity 설계에서는 아쉬운 부분이 많은데 mutable 프로퍼티를 너무 많이 사용하고 Data class로 Entity를 정의해서 실제 의도와 달리
equals
등이 잘못 동작하거나 연관관계를 정의할 때 오류를 피하고자 lateinit
를 사용하는데 이는 런타임 오류를 유발한다. 그래서 allOpen
설정 추가하고 PrimaryKeyEntity
로 Entity를 생성할 때 ULID
를 강제하고 equals
와 hashCode
를 정의해서 공통 동일성을 보장하고 있다고 한다. 프로퍼티 접근 제어, 연관관계 등 Kotlin으로 JPA Entity를 정의하면서 했던 많은 고민과 해결책이 나와 있다.(한국어)
- 딥링크의 모든것(feat. App Link, Universal Link, Deferred DeepLink) : 앱에서 링크를 누르면 앱의 특정 화면으로 이동하게 하는 딥링크의 히스토리와 특징을 정리한 글인데 궁금하던 부분이라 재밌게 읽었다. 처음엔 스킴 딥 링크로 이를 지원했지만 아무나 스킴을 만들 수 있고 앱이 설치되어 있어야만 동작하므로 유니버설 링크(iOS)와 앱 링크(Android)가 나왔다. 이는 도메인을 기반으로 동작하고 도메인으로 소유권을 확인해서 사용할 수 있었지만, 브라우저에서 제대로 동작 안 하는 등의 문제가 있었다. Deferred DeepLink는 앱이 설치되어 있으면 바로 열리지만 그렇지 않으면 설치한 뒤에 열리게 할 수 있고 이 Deferred DeepLink를 제공하는 서비스와 동작 방식으로 소개한다.(한국어)
- SQLite is not a toy database : SQLite를 토이 데이터베이스로 보는 사람도 많지만, 개발자가 아니어도 SQLite를 활용할 게 많다. Console을 제공하므로 쉽게 조회해 볼 수 있고 CSV 파일도 임포트해서 SQL 문으로 조회해 볼 수 있고 가상 테이블로 만들어서 조회하면 2배나 빠를 뿐만 아니라 JSON 파일로 SQLite로 읽어서 조회해볼 수 있다. 미디언, 퍼센타일 등의 값도 쉽게 조회할 수 있고 Full-text 검색도 지원하고 있다. SQLite는 동시 엑세스를 지원하지 않는다는 오해도 있지만 write-ahead log 모드가 오래전에 추가되어 리더를 원하는 대로 추가할 수 있다.(영어)
- Introducing the Markdown Language Server : VS Code에서 Markdown 도구의 다음 단계로 Markdown 랭귀지 서버를 공개했다. 이는 Markdown Language Service와 Markdown Language Server로 구성되어 있고 이미 VS Code 1.70+에서 이미 사용중이고 기존에 지원하지 않던 많은 언어 기능을 제공하고 있다.(영어)
- Big Changes Ahead for Deno : Deno에서 준비 중인 큰 변경을 발표했다.(영어)
- 3달 이내에 대부분의 npm 패키지를 쉽게 임포트 할 수 있게 될 예정이다.
import express from "npm:express@5";
같은 형식이 될 것이다.
- Deno는 가장 빠른 JavaScript 런타임이 목표이고 조만강 가장 빠른 HTTP 서버를 Deno에 추가할 예정이다.
- Webhooks.fyi : 웹 훅은 모던 API 개발의 기반이지만 표준화되어 있지도 않고 설계, 보안, 운영 경험에 관심을 가지지 않고 있어서 이를 바꾸기 위해서 만든 사이트이다. 웹훅 디렉터리를 제공해서 각 웹 훅을 비교할 수 있게 하고 웹 훅의 보안과 운영 경험에 대한 문서를 정리해서 제공하고 있다.(영어)
- .NET 6 is now in Ubuntu 22.04 : Ubuntu 22.04(Jammy)에 .NET 6가 포함되어
apt install dotnet6
로 설치할 수 있게 되었다.(영어)
- Introducing Trilogy: a new database adapter for Ruby on Rails : GitHub가 내부에서 Ruby on Rails로 사용하는 MySQL 호환 데이터베이스의 Active Record 클라이언트 라이브러리인 Trilogy를 오픈소스로 공개했다. Trilogy는 Ruby VM 같은 환경에 임베딩해서 효율적으로 동작하도록 만들어졌고 GitHub의 성능과 신뢰성을 개선하기 위해 2015년부터 사용하고 있었다.(영어)
인프라 관련
- Scaling Kubernetes to Thousands of CRDs : Kubernetes에서 클라우드 리소스를 관리할 수 있게 하는 Crossplane에서는 수백 개의 CRD가 필요하기 때문에 이로 인한 Kubernetes의 문제를 개선해나가는 과정을 정리한 글이다. 대부분은 수십 개의 CR만을 운영했는데 CR이 수백 개가 되다 보니 발견하게 된 클라이언트와 서버 쪽 병목지점이 있고 이를 Kubernetes에 기여해서 성능 개선을 이루고 있는데 몰랐던 내부 동작도 이해할 수 있다. GeekNews에 요약도 해두었다.(영어)
- The State of Serverless : Datadog이 AWS, Azure, Google Cloud의 서버리스 사용 통계를 리포트로 만들었다. 여기서 서버리스는 AWS Lambda, AWS App Runner, ECS Fargate, EKS Fargate, Azure Functions, AKS running on Azure Container Instances, Google Cloud Functions, Google App Engine, Google Cloud Run을 포함한다.(영어)
- 각 클라우드에서 절반 이상의 조직이 서버리스를 채택했다.
- Lambda 사용자에서 Python, Node.js가 여전히 지배적이다. 편하고 자료 많은 Python, Node.js를 주로 사용하고 익숙해지면 다른 언어의 워크로드를 마이그레이션 한다.
- 최소 3개의 언어로 Lambda를 배포하는 큰 조직이 60% 이상이다. 즉, 사용사례에 따라 다른 런타임을 이용한다.
- Lambda 함수를 가장 많이 호출하는 AWS 기술은 API Gateway와 SQS다.
- API Gateway가 호출하는 Lambda의 80%는 단일 목적 함수이다.
- Lambda 사용자 5명 중 한 명은 컨테이너 이미지로 배포한다.
- Lambda 사용자의 20% 이상은 ECS Fargate도 사용한다.
- Google Cloud에서 서버리스 애플리케이션을 배포하는 방법 중 Google Cloud Run이 가장 빠르게 늘어나고 있다.
- Azure Functions는 Azure에가 가장 인기 있는 서버리스 제품이지만 Azure Container Instances의 채택이 빠르게 증가하고 있다.
- Slack 기반 AWS Support 앱 출시 – 서포트 케이스 생성 및 관리 기능 제공 : AWS에 서포트 티켓을 만들기 위해 AWS Support Center로 이동할 필요 없이 Slack 내에서 바로 티켓을 만들고 엔지니어와 채팅할 수 있는 AWS Suuport 앱이 발표되었다.(한국어)
볼만한 링크
- 컴퓨터 애호가들에게 보내는 편지 by 빌 게이츠 : 1976년 빌 게이츠가 홈부르 클럽에 기고한 글의 번역이다. 당시 소프트웨어는 취미로 많은 사람이 홈브루 클럽에 모여서 공유했는데 소프트웨어를 상용으로 팔던 빌 게이츠가 이를 비판하기 위해 쓴 글인데 역사적인 의미도 있기 때문에 읽어볼 가치가 있는 글이다.(한국어)
- How Apple pushed its ad-vantage : Apple이 아이폰의 개인 정보보호 조치로 광고 경쟁업체를 약화하고 광고 제국을 건설하기 시작했다고 얘기하고 있다. 애플은 하드웨어 판매 둔화에 따라 소프트 제품에서 수익을 만들기 위해 서비스 팀을 재구성했고 지난 분기 296억 달러를 벌어 분기 매출의 25%를 차지했다. 사용자가 추적 금지할 수 있게 적용하면서 Meta 등의 광고 사업이 어려워졌고 애플은 광고가 성장하기 시작했는데 이는 (아직은 움직임이 없지만) 독점 금지 규제 기관의 관심을 끌 수 있다고 얘기하고 있다.(영어)
- Onehouse 합류 : 골드만 삭스에서 1년 정도 일하다가 스타트업으로 이직한 이야기다. 올 초부터 이직 준비를 해서 유명 VC에 투자받은 회사 309곳을 찾아서 5년 이하의 엔지니어를 뽑는 205곳에 지원했고 한달정도 LeetCode에서 94개의 문제를 풀면서 준비했다. 45.9%는 답변받지 못했고 33.2%는 서류에서 탈락했지만 7개의 회사는 최종 면접을 봤고 5개 회사에 합격했다. 그중에서 많이 배우고 성장할 수 있는 Onehouse를 선택하고 5주가 지났는데 옳은 선택이었다고 한다. 이직 준비를 상당히 체계적으로 진행해서 흥미로운 글이다.(영어로 보일 수도 있는데 한국어 버전도 있다)(한국어)
IT 업계 뉴스
프로젝트
버전 업데이트
- Kubernetes v1.25 Combiner : 컨테이너 오케스트레이션 도구, 릴리스 공지
- 1.21에서 deprecated된 PodSecurityPolicy가 삭제되어 대체제인 Pod Security Admission이 Stable이 됨.
- 기존 pod에 제한된 시간에만 존재하게 하는 Ephemeral Containers가 Stable이 됨.
- cgroups v2가 Stable이 됨.
- 컨테이너 레지스트리 서비스가 k8s.gcr.io에서 registry.k8s.io로 바뀜.
- Go v1.19 : 프로그래밍 언어, 릴리즈 공지
- Grafana Tempo v1.5.0 : 분산 트레이싱 백엔드, 릴리스 공지
- Grafana v9.1 : 매트릭 대쉬보드, 릴리스 공지
- Prometheus v2.38.0 : 모니터링 시스템, 릴리스 공지
- GitLab v15.3 : 오픈소스 설치형 Git 플랫폼, 릴리스 공지
- Litmus v2.12.0 : 카오스 엔지니어링 플랫폼, 릴리스 공지
- TypeScript v4.8 : Microsoft가 만든 JavaScript transpiler, 릴리스 공지
- Deno v1.25.0 : TypeScript 런타임, 릴리스 공지
- 프로젝트를 초기화하는
deno init
추가
- 실험적인 npm 지원
- 새로운 HTTP 서버 실험적으로 지원
- Bun v0.1.10 : JavaScript/TypeScript 런타임, 릴리스 공지
- Flutter v3.3 : iOS, Android 네이티브 앱을 만드는 프레임워크, 릴리스 공지
- Flutter 레퍼런스 앱으로 Wonderous 앱 릴리스
- 새로운 그래픽 엔진 Impeller, 차세대 렌더링 계층으로 이전 Skia 코드를 대체할 예정이다.
- Fastify v4.5.0 : Node.js 웹 프레임워크, 릴리스 공지
- Gatsby v4.21.0 : 정적 웹사이트 생성기, 릴리스 공지
- Jest 29 : JavaScript 유닛 테스트 프레임워크, 릴리스 공지
- Vitest v0.22.0 : Vite 유닛 테스트 프레임워크, 릴리스 공지
- Parcel CSS v1.13.0 : CSS 트랜스포머/미니파이어, 릴리스 공지
- Solid.js v1.5.0 : JavaScript UI 라이브러리, 릴리스 공지
- ESLint v8.23.0 : JavaScript 코드 분석 도구, 릴리스 공지
- Angular v14.2.0 : JavaScript 프레임워크, 릴리스 공지
- julia v1.8 : 프로그래밍 언어, 릴리스 공지
- Node.js v18.8.0 (Current) : 자바스크립트 런타임, 릴리스 공지
- Node.js v16.7.0 (LTS) : 자바스크립트 런타임, 릴리스 공지
- Kuma v1.8.0 : 서비스 메쉬의 컨트롤 플레인, 릴리스 공지
- 크로스 메시 게이트웨이가 멀티 존에서도 동작
- CNI를 완전히 재작성
- undici v5.10.0 : Node.js HTTP 클라이언트, 릴리스 공지
- Boundary v0.10 : 인프라 접근 관리, 릴리스 공지
- Playwright v1.25.0 : Chromium, Firefox, WebKit 브라우저 자동화 Node.js 라이브러리, 릴리스 공지
- Prisma v4.3.0 : TypeScript/Node.js 데이터베이스 툴킷, 릴리스 공지
fieldReference
프리뷰 기능 플래그 추가
- Dart v2.18.0 : 프로그래밍 언어, 릴리스 공지
- Objective-C와 Swift 코드와 서로 호출할 수 있게 됨
- Spock v2.2 : Java 테스트 프레임워크, 릴리스 공지
Outsider
2022/09/01 02:29
2022/09/01 02:29
- 2022/09/01 02:29
- Newsletter
-
CRD,
Crossplane,
kotlin,
kubernetes,
serverless,
SQLite,
Trilogy,
Webhook,
빌 게이츠,
서버리스,
웹훅,
쿠버네티스
-
-
-
Comments