Outsider's Dev Story

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

기술 뉴스 #210 : 22-11-16

웹개발 관련

  • Is Turbopack really 10x Faster than Vite? : Vue.js와 Vite를 만든 Evan You가 Vercel이 새로 Turbopack을 발표하면서 Turbopack이 Vite보다 10배 빠르다고 홍보한 것에 반박 글을 정리해서 올렸다. 자세한 벤치마크 내용이 공개되지 않아서 Next.js에서 HMR 성능을 비교해 보았으나 Turbopack이 2배 정도 빠르게 나왔다. 이는 Vite가 Bebel을 쓴 경우이고 SWC를 사용한다면 거의 비슷한 결과가 나왔다. 이 글이 올라온 이후 Vercel에서 벤치마크 내용을 공개했는데 Evan You에 따르면 역시 Babel 기반의 Vite와 비교하고 있고 Turbopack의 15ms는 0.01s로 표시하고 Vite의 87ms는 0.09로 표시해서 실제는 6배 정도임에도 10배로 표시했다고 하며 모듈이 3만 개 일 때 10배의 속도 차이가 나기 때문에 이는 10배를 주장하기 위한 체리피킹이라고 얘기하고 있다.(영어)
  • Design System Decision Record : linear라는 디자인 시스템을 만들면서 했던 고민과 결정을 정리한 글인데 내용이 아주 좋다. 유연함을 추구해서 일관성을 위한 제약은 많이 두지 않았다. 직관적으로 사용할 수 있도록 Compound Component를 선택했고 사용자가 학습 비용이 적게 들도록 인터페이스를 통일하고 높은 수준의 추상화를 제공했다. 글을 통해서 디자인 시스템을 만들면서 얼마나 많이 고민했는지 느낄 수 있다.(한국어)
  • Jamstack gives developers full-stack powers : Netlify에서 진행하는 Jamstack 커뮤니티를 중심으로 진행한 설문조사로 원격 근무의 형태, 만든 웹사이트, 사용한 기술 등 다양한 통계를 볼 수 있다.(영어)

그 밖의 개발 관련

  • 디자인 패턴들 : 디자인 패턴으로 유명한 refactoring.guru의 공식 한국어 번역 사이트가 공개되었다. 번역해 주신 분들께 감사드립니다.(한국어)
  • Introducing an all-new code search and code browsing experience : GitHub Universe에서 GitHub의 새 코드 검색과 코드 브라우징 기능이 공개되었다. 코드 검색은 빠른 속도로 기존보다 훨씬 다양한 조건으로 검색할 수 있고 코드 브라우징은 저장소에서 코드를 볼 때 마치 에디터처럼 트리 뷰로 파일을 탐색할 수 있고 파일의 심볼도 분석해서 보여주어 바로 각 심볼로 이동하면서 코드를 볼 수 있다. 아직 베타라 대기열에 등록해서 허가받아야 사용할 수 있다.(영어)
  • Introducing GitHub Actions Importer : Azure DevOps, Jenkins, CircleCI 등 다른 CI의 파이프라인을 분석해서 임포트할 수 있게 해주는 GitHub Actions Importer가 GitHub Universe에서 공개되었다. 아직 대기열에 등록해서 허가받아야 사용할 수 있다.(영어)
  • Codespaces for Free and Pro Accounts : GitHub Universe에서 Free/Pro 계정에 Codespace 무료 시간이 제공되어 Free 계정에서는 2코어 코드스페이스의 60시간(120코어 시간)이 무료로 제공되고 Pro 계정에는 180코어 시간이 매달 무료로 제공된다.(영어)
  • GitHub Codespaces with JetBrains IDEs (Public Beta) : GitHub Codespaces가 JetBrains Gateway를 통해 JetBrains IDE에서도 사용할 수 있게 되었다.(영어)
  • Using Codespaces with JupyterLab (Public Beta) : GitHub Codespaces에서 Jupyter 노트북을 사용할 수 있는 JupyterLab 지원이 퍼블릭 베타로 공개되었다.(영어)
  • From zero to 10 million lines of Kotlin : Meta에서 안드로이드 개발을 Java에서 Kotlin으로 전환하는 과정을 정리한 글이다. 마이그레이션 방법 중에 모든 코드를 Kotlin으로 전환하는 것을 목표로 정했고 결국 안드로이드에서 천만 라인 이상의 Kotlin 코드가 만들어졌다. 일부 라이브러리에서 호환성 문제가 발생했고 이를 해결하기 위한 도구를 만들었고 변환 도구인 J2K를 이용해서 변환했지만 J2K가 이해하지 못해서 수동으로 처리해야 하는 사례를 발견했다. 그래서 Java 코드를 내부 도구에 필요한 변환 작업을 한 뒤 J2K를 실행하고 Kontlin 파일을 후처리했다. 마이그레이션 후 기대보다는 적은 11%의 코드 라인이 줄어들었고 실행 속도는 동일했고 빌드 속도는 KSP로 주석을 처리해서 해결했다.(영어)
  • OpenSSL 3.0 - CVE-2022-3602, CVE-2022-3786 취약점 및 조치 방안 정리 : 처음 Critical로 발표되어 모두를 긴장하게 했으나 이후 High로 낮춰진 X.509 Email Address Buffer Overflow와 관련된 OpenSSL 3.0의 취약점을 정리한 글이다. 이는 X.509 인증서를 검사하는 중 버터 오버플로우가 발생할 수 있는 취약점으로 3.0.0부터 3.0.6까지 발생하므로 3.0.7로 업그레이드해서 취약점을 대처할 수 있다.(한국어)

인프라 관련

  • How We Use Terraform At Slack : Slack 대부분의 인프라가 AWS에서 돌아가지만 CloudFormation 대신 AWS, DigitalOcean, NS1, GCP에 걸쳐서 하나의 도구를 쓰기 위해 Terraform을 사용하는 과정을 설명한 글이다. 초기에는 AWS 계정이 하나였기에 상태 파일도 리전당 하나, 글로벌 서비스당 하나로 했지만 인프라가 커지면서 서비스/팀별로 AWS 계정을 쓰게 되었고 Jenkins로 plan/apply 파이프라인을 사용해서 배포했다. Terraform 버전을 0.11에서 0.12로 올릴 때 문법 변경도 많았기에 한 분기를 업그레이드에만 쓰게 되었는데 이후 Terrafrom와 AWS 프로바이더를 함께 업그레이드하기로 하고 테라폼 버전 파일을 만들어서 여러 버전의 Terraform과 AWS 프로바이더를 배포해서 선택적으로 업그레이드하도록 했다. 모듈을 관리하기 쉽게 S3에 버전 파일과 함께 업로드해서 모듈을 조회할 수 있도록 구현하고 Terraform Smart Planner를 도입해서 Plan할 때 영향받는 상태 파일을 찾아서 함께 변경할 수 있도록 했다.(영어)
  • Announcing Grafana Phlare, the open source database for continuous profiling at massive scale : Grafana Labs에서 지속적 프로파일링(continuous profiling) 데이터의 백엔드인 Grafana Phlare를 오픈소스로 공개했다. Phlare를 애플리케이션의 프로파일 데이터를 수집해서 Grafana에서 조회해서 frame graph를 볼 수 있다.(영어)
  • Introducing Grafana Faro, an open source project for frontend application observability : Grafana Labs에서 프론트엔드 애플리케이션의 실사용자를 모니터링(RUM)할 수 있는 웹 SDK를 포함한 Grafana Faro를 오픈소스로 공개했다. 프론트앤드 애플리케이션에 Grafana Faro SDK를 포함해서 에러, 로그, 성능 메트릭을 수집해서 Grafana에서 확인할 수 있다.(영어)
  • Global DevSecOps Survey: Thriving in an insecure world : GitLab에서 지난 5월 5천여 명의 DevOps 전문가에게 설문한 결과이다.(영어)

    • DevOps 팀의 70%는 하루 혹은 며칠의 한 번씩 코드를 릴리스하고 작년보다 11% 증가했다.
    • 47%가 테스트를 완전히 자동화했으며 작년보다 25% 증가했다.
    • 개발의 35%가 2배 빠르게 코드를 릴리스하고 15%는 3~5배 빠르게 릴리스한다고 밝혔다.
    • 71% 조직이 보안 노력을 "좋음", "우수함"으로 평가했다.
    • 운영의 44%가 대부분 자동화되어 있다고 했으며 25%는 완전히 자동화 되어 있다고 밝혔다.
  • Develop your pipelines as code with the Dagger Python SDK : CI/CD 엔진인 Dagger의 Python SDK가 공개되었다. Go SDK에 이어 두 번째 SDK다.(영어)

볼만한 링크

  • The 2022 State of the Octoverse : GitHub가 매년 공개하는 리포터인 Octoverse의 2022년 버전이 공개되었다. 다양한 통계가 나와 있는데 큰 트렌드로는 HCL, Shell, Go 언어를 Infrastructure as Code 분야에서 많이 사용하고 있고 가장 큰 오픈소스 프로젝트는 빅테크 기업의 상업적 지원을 받고 있고 처음 OSS에 기여하는 사람은 상업적으로 지원받는 프로젝트를 선호하는 것으로 나타났다.(영어)
  • VC가 꼽은 가장 훌륭한 IR 장표 7가지 (번역본 포함) : 글로벌 스타트업 훌륭한 IR 장표로 Airbnb, Uber, Buffer, Facebook, Front Mattermark, Dwolla를 꼽았다. 당시의 IR 장표에 대한 링크도 있어서 기록차 남겨둔다.(한국어)
  • Fast Forward: Let’s build the good internet together : fastly가 초기부터 웹이 좋은 사람과 좋을 것을 보호해야 한다고 믿었기에 오픈소스와 무료 인터넷을 지원하는 Fast Forward라는 프로그램을 공개했다.(영어)

IT 업계 뉴스

프로젝트

  • JetBrains Aqua : 테스트 자동화를 위한 JetBrains의 IDE
  • needle : 웹 기반 3D 엔진
  • devenv.sh : 선언적, 재현할 수 있고 조합할 수 있는 개발 환경
  • Layoffs.fyi : 정리해고를 하는 회사와 규모를 추적해서 정리하는 사이트.
  • Mona Sans & Hubot Sans : GitHub에서 무료 폰트를 두 가지 공개했다. 코딩용 폰트는 아니다.
  • Hey, GitHub : GitHub Copilot을 이용해서 보이스로 코드를 작성할 수 있게 하는 GitHub의 실험 프로젝트

버전 업데이트

2022/11/16 09:00 2022/11/16 09:00