Outsider's Dev Story

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

기술 뉴스 #202 : 22-07-16

웹개발 관련

  • Jotai는 조-타이 라고 읽습니다. : React에서 상태관리를 위해 Redux, Context API, Recoil, Jotai를 비교하고 Jotai를 선택했는데 Recoil처럼 Atom 개념을 쓰고 있고 쉬우면서도 가벼워서 선택했다. 리액트스럽기 때문에 useState를 쓰듯이 jotai의 useAtom를 사용할 수 있는데 jotai의 동작 방식과 사용 방법이 잘 정리되어 있다.(한국어)
  • Defensive CSS : 사이즈가 달라져도 깨지지 않도록 Flexbox나 백그라운드 이미지, 스크롤 등 CSS 팁을 정리한 사이트로 상황별로 어떤 문제가 있는지 정리하고 직접 재현해 볼 수 있게 예제도 제공하고 있다.(영어)
  • (번역) 주의 깊게 XMLHttpRequest 재시도하기 : Retry XMLHttpRequest Carefully의 번역 글로 XMLHttpRequest이나 fetch로 요청이 실패했을 때 재시도하는 전략을 설명한다. 실패했을 때 즉시 재시도하면 불필요하게 과도한 트래픽을 서버에 일으킬 수 있어서 장애를 더욱 심하게 만들 수 있으므로 지연시간을 추가하고 백오프로 실패할수록 지연 시간을 늘리고 이 시간을 랜덤화해서 분산되도록 개선하는 과정을 보여준다.(한국어)

그 밖의 개발 관련

  • The Delivery Hero Reliability Manifesto : 딜리버리 히어로에서 트래픽이 계속 성장하는 서비스를 안정적으로 수년간 구축하면서 인프라팀 없이 분산된 방식으로 일을 하면서 각 테크 리더가 올바르게 일하도록 신뢰성 선언문을 만들었다고 한다. 이 문서는 계속해서 개선하고 있는데 아키텍처, 딜리버리, 복원성, 지속적 개선, 보안, 성능 등으로 나누어서 지켜야 할 규칙을 정리해 두었다. 각 항목이 꽤 명확하고 의미가 있어서 정말 좋은 문서다.(한국어)
  • Isolating and fixing a memory leak in a real Node.js web application : Anvil이라는 회사에서 Node.js 앱의 메모리 누수를 추적하는 과정을 설명한다. 예전에는 서드파티 도구도 많이 사용했지만 이젠 Node.js에 내장된 디버그 모드나 v8.getHeapSnapshot() 등을 사용하는 것이 훨씬 좋지만, 프로덕션에서는 직접 사용하기 어렵고 로컬에서는 환경이 달라서 제대로 추적하기 어려우므로 스테이징 환경을 사용했다고 한다. 스테이징에서 메모리 힙 덤프를 뜨도록 설정한 뒤 트래픽을 대량으로 보내면서 메모리를 추적해서 메모리 누수가 있는 코드를 찾아냈다. 앞의 설명에 비하면 힙 덤프를 비교해서 찾는 과정은 간단해서 더 자세히 설명했으면 좋겠지만 프로덕션에 가까운 환경에서 메모리 누수를 찾는 과정을 엿볼 수 있다.(영어)
  • Research: How GitHub Copilot helps improve developer productivity : GitHub Copilot을 공개한 이후 미국에 거주하는 2,000여 명의 개발자에게 정성적인 설문을 한 결과 GitHub Copilot을 쓴 뒤에 더 생산적으로 되었다고 대답했다고 한다. 연구 결과를 보면 생산성이 많이 향상되었다고 생각하는 개발자일수록 GitHub Copilot이 제안된 코드를 더 많이 수락하고 있었고 GitHub Copilot이 적절한 시작점을 제안하면 이를 다시 수정하더라도 크게 신경 쓰지 않는다는 것을 알게 되었고 GitHub Copilot이 소프트웨어를 만드는 목적이 아니라 흐름 내에서 유용한 제안을 하는 목적이기 때문에 GitHub Copilot의 의도와 맞는다. 자세한 내용은 Productivity assessment of neural code completion 논문에서 볼 수 있다.(영어)

인프라 관련

  • Extending Gateway API support in Istio : Google의 API 경험과 IBM의 Amalgam8 프로젝트의 경험으로 2017년에 Istio를 공개했지만, Kubernetes Ingress API의 한계에 직면했고 이러한 문제를 해결하기 위해 traffic API를 작성했고 Kubernetes SIG Network에서 Ingress 버전 2를 설계하면서 Istio의 traffic API 기반으로 새로운 제안이 이뤄지게 되었다. 이를 바탕으로 Kubernetes Gateway API가 만들어지게 되었고 Gateway API가 이제 SIG Network에서 베타로 승격되었다. Istio는 2020년 11월 Gateway API를 지원하기 시작했고 Gateway API가 v1이 될 때 맞춰서 Istio도 변경될 예정이지만 기존 Traffic API도 계속 사용할 수 있다.(영어)
  • DevOps Engineer가 FinOps를 시작하면 : 조직 내에서 AWS 비용을 관리하기 위해 FinOps를 적용한 얘기인데 비용 관리를 하려는 조직에 도움 될 내용이 많이 담겨있다. 보통 가장 많이 나오는 EC2, RDS, CloudWatch, S3, DynamoDB 등을 살펴보고 Reserved Instance와 Savings Plan을 분기별로 나누어서 구매해서 약정해도 유연함을 가지도록 관리하고 CUR(Cost and Usage Reports)를 이용해서 최근 6개월의 최솟값으로 안정적으로 구매한다. 그리고 비용 거버넌스를 이용해서 태그를 사용하고 팀별/법인별로 관리할 수 있게 대시보드를 제공한다고 한다.(한국어)
  • 2022년 2분기 DDoS 공격 동향 : Cloudflare에서 관찰된 DDoS 공격을 분석한 글이다. 우크라이나와 러시아의 전쟁으로 인한 우크라이나 방송 매체를 향한 공격이 가장 많았고 6월에는 랜섬웨어가 올해 최고 수준으로 증가했고 응용 프로그램 계층 DDoS 공격은 전년 대비 44% 증가했고 네트워크 계층 DDoS 공격은 75%나 증가했다고 한다. 보고서에서 좀 더 자세한 분석을 살펴볼 수 있다.(한국어)
  • Kyverno moves to the CNCF Incubator : Kubernetes용 정책 관리 엔진인 Kyverno가 CNCF의 인큐베이팅 프로젝트로 승인되었다.(영어)
  • AWS Cloud WAN 정식 출시 – 관리형 글로벌 광역 네트워크 서비스 : 데이터센터, 다중 리전의 VPC, 사무실 네트워크를 묶어서 관리할 수 있는 Cloud WAN이 출시되었다. 중앙화된 대시보드와 정책관리를 통해서 여러 네트워크의 정책을 한 번에 관리하고 제어할 수 있다.(한국어)

볼만한 링크

  • Y Combinator : 혁신 연구소 : 원 글인 Y Combinator: The Institute of Innovation 보고서가 너무 길어서 아주 자세히 요약 번역된 GeekNews의 글을 링크했다. Paul Graham, Robert Morris, Trevor Blackwell, Jessica Livingston이 만든 Y Combinator가 어떻게 만들어졌는지 역사를 소개하고 초기 Batch 1 프로그램과 두 번째 프로그램을 통해 Y Combinator가 어떻게 성장했는지가 나와 있다. 이후 YC를 단순한 액셀러레이터가 아니라 Full-Stack Product로 정의하고 Pre-idea부터 Pre-IP까지 다루기 위해 Pre-idea, Idea, Inflection, Growth, Evolution별로 지원하게 된다. YC는 이 업계에서 이름만으로도 아주 유명하지만 YC가 어떤 영향력을 가지고 있고 어떻게 발전했는지 이해할 수 있다.(한국어)
  • Launch YC: The Launchpad for YC Startups : Y Combinator가 최근에 투자한 스타트업과 제품 업데이트를 올리는 Launch YC를 공개했다. YC 내부 플랫폼으로 운영하다가 이번에 공개했고 산업 분야별로 나누어서 볼 수 있다.(영어)
  • 개발자에서 기술 작가로 전직하기까지 2년 간의 이야기 : 15년 넘게 엔지니어로 일하다가 기술 작가(테크니컬 라이터)로 전직한 경험을 정리한 글이다. 기술 작가는 "복잡한 정보를 독자의 눈높이에 맞추어 다양한 형태의 매체로 알기 쉽게 풀어서 설명해주는 일을 하는 사람"인데 문서화가 중요하다고 하면서도 실제로 개선이 되지 않는 상황이 안타까워서 직접 기술 작가로 전직하게 되었다고 한다. 기술 작가의 일이 꼭 글일 필요는 없으므로 사내 세미나를 녹화해서 공유하고 사내 소식지를 발행하거나 문서화를 위한 도구도 개발하고 있다고 합니다.(한국어)
  • 아마존에서 배운 5가지 글쓰기와 소통 방식 : 아마존의 윤석찬 님이 아마존에서 소통하는 방식을 설명한 글이다. 항상 글을 쓸 때는 데이터를 기반으로 명확하게 쓰도록 하고 이 문장을 이용해서 이유, 결과, 배운 점, 다음 단계 등으로 구조화된 문장을 구성한다고 한다. 회의 때는 미리 작성한 문서를 다 같이 읽어서 정보를 일치시키고 "잘한 점", "못한 점", "배운 점", "문제점"을 꼭 모두 적도록 하고 있으며 소통할 때는 항상 예의를 차려서 정중하게 한다고 한다.(한국어)
  • 토이 프로젝트 주도 학습+성장 : 토이 프로젝트로 학습하면 장기기억에서 인출 연습을 할 수 있는 학습 방법이라 효율적이고 업무에 비해서 실패해도 괜찮으므로 다양한 시도를 해 볼 수 있고 구직/이직을 위한 재료도 될 수 있다. 토이 프로젝트 주제를 정할 때는 주위에 피드백을 받을 수 있는 고객이 있는 것이 좋고 작은 제품으로 일단 만들라고 하고 있다. 처음 토이 프로젝트를 하려고 해도 아이디어가 없을 수 있는데 직접 만들었던 프로젝트와 효과 등도 정리되어 있어서 참고해 보기 좋다.(한국어)

IT 업계 뉴스

  • New Decade, New Ideas : Medium의 창업자인 Ev Williams가 Medium이 만들어진 지 10년을 앞두고 CEO에서 물러나고 이사회 의장으로만 참여하기로 했다. Medium의 CEO는 Coach.me의 CEO인 Tony Stubblebine가 맡을 것이고 Tony는 오랫동안 Medium의 파트너였다고 한다.(영어)
  • Systemd Creator Lands At Microsoft : Systemd를 만든 Lennart Poettering이 10년 넘게 근무했던 Red Hat을 떠나 Microsoft로 이직했다. Microsoft에서도 계속 Systemd 작업을 계속할 것이라고 한다.(영어)

프로젝트

  • Stitches : 런타임이 거의 없고 SSR, 다양한 변형을 지원하는 CSS-in-JS 라이브러리
  • Bun : Node나 Deno보다 빠르다는 JavaScript/TypeScript 런타임.
  • Programming Fonts - Test Drive : 프로그래밍용 고정폭 폰트를 비교해 볼 수 있는 사이트.

버전 업데이트

2022/07/16 18:27 2022/07/16 18:27