Outsider's Dev Story

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

기술 뉴스 #205 : 22-09-01

웹개발 관련

그 밖의 개발 관련

  • 스포카에서 Kotlin으로 JPA Entity를 정의하는 방법 : JPA는 Java 기준으로 Entity를 정의하기 쉽게 만들어졌기 때문에 Kotlin에서 JPA Entity를 제대로 쓰려면 어떻게 해야 하는지 고민한 결과를 담은 글이다. Kotlin으로 JPA를 설명하는 글에서는 Kotlin 장점을 소개하다 보니 Entity 설계에서는 아쉬운 부분이 많은데 mutable 프로퍼티를 너무 많이 사용하고 Data class로 Entity를 정의해서 실제 의도와 달리 equals 등이 잘못 동작하거나 연관관계를 정의할 때 오류를 피하고자 lateinit를 사용하는데 이는 런타임 오류를 유발한다. 그래서 allOpen 설정 추가하고 PrimaryKeyEntity로 Entity를 생성할 때 ULID를 강제하고 equalshashCode를 정의해서 공통 동일성을 보장하고 있다고 한다. 프로퍼티 접근 제어, 연관관계 등 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 ServiceMarkdown 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을 포함한다.(영어)

    1. 각 클라우드에서 절반 이상의 조직이 서버리스를 채택했다.
    2. Lambda 사용자에서 Python, Node.js가 여전히 지배적이다. 편하고 자료 많은 Python, Node.js를 주로 사용하고 익숙해지면 다른 언어의 워크로드를 마이그레이션 한다.
    3. 최소 3개의 언어로 Lambda를 배포하는 큰 조직이 60% 이상이다. 즉, 사용사례에 따라 다른 런타임을 이용한다.
    4. Lambda 함수를 가장 많이 호출하는 AWS 기술은 API Gateway와 SQS다.
    5. API Gateway가 호출하는 Lambda의 80%는 단일 목적 함수이다.
    6. Lambda 사용자 5명 중 한 명은 컨테이너 이미지로 배포한다.
    7. Lambda 사용자의 20% 이상은 ECS Fargate도 사용한다.
    8. Google Cloud에서 서버리스 애플리케이션을 배포하는 방법 중 Google Cloud Run이 가장 빠르게 늘어나고 있다.
    9. 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 업계 뉴스

프로젝트

  • JSON Visio : JSON 데이터를 그래프로 시각화해서 보여주는 사이트.
  • Markdown Guide : 치트시트, 문법 등 풍부한 자료를 가진 마크다운 가이드 사이트.

버전 업데이트

2022/09/01 02:29 2022/09/01 02:29