Outsider's Dev Story

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

기술 뉴스 #201 : 22-07-01

웹개발 관련

  • Non-blocking <canvas /> Rendering in Concurrent React : React 18에 concurrent 기능이 들어깄지만 컴포넌트 렌더링만 지원하고 컴포넌트 이팩트는 여전히 메인 스레드를 블로킹한다. 브라우저가 오래 걸리는 작업을 실행 중일 때 페이지를 느리게 만드는데 여기서 오래 걸리는 작업은 50ms 이상 걸리는 작업을 의미한다. 메인 스레드를 블로킹하지 않는 방법은 병렬성(parallelism)과 동시성(concurrency)이 있는데 WebWorker는 제약 사항도 많으므로 WebWorker가 적합하지 않으면 동시성과 스케줄링을 사용해야 한다. 제너레이터 함수를 사용해서 10ms마다 작업을 멈추고 다른 작업을 하게 하면 브라우저는 6ms의 여유를(60FPS를 위한 16ms) 가지게 하는 게 일반적이고 어떤 작업을 해야 할지를 위해 스케쥴링이 필요하다. React팀이 만든 scheduler가 있지만 이를 렌더링이 아닌 이팩트에도 쓰기 위해 use-transition-effect를 만들었다. 해당 패키지를 꼭 쓰지 않더라도 각 단계에서 비교할 수 있는 예제까지 제공하고 있어서 성능을 비교해 보기 좋다.(영어)
  • Webpack Module Federation 도입 전에 알아야 할 것들 : 다른 웹에서 원격으로 모듈을 임포트해서 사용할 수 있는 Webpack Module Federation의 동작 방식을 설명한다. 원격 모듈은 다른 도메인에서 가져올 수 있고 별도로 빌드할 수 있지만 모듈의 타입을 알기가 어렵고 remoteEntry.js의 경로를 관리해야 하는 불편함이 존재한다.(한국어)
  • Ecma International approves ECMAScript 2022: What’s new? : ECMAScript 2022 명세가 표준으로 승인되었다. 클래스에 새로 추가된 instance 퍼블릭 필드, 정적 퍼블릭 필드, 최상위 await, error.cause 등 새로운 기능이 정리되어 있다.(영어)
  • W3C to become a public-interest non-profit organization : W3C가 23년 1월 새로운 법인을 만들어서 비영리 단체가 된다고 한다. Tim Berners-Lee는 1994년 MIT의 호스팅 제안을 받아들여서 미국, 일본, 프랑스, 중국의 대학교와 파트너 관계로 호스팅 모델로 운영했다. 하지만 새로운 웹 기능의 요구사항이 높아짐에 따라 새로운 거버넌스가 필요해져서 공익 비영리 단체로 진화한다고 한다.(영어)

그 밖의 개발 관련

  • GitHub Copilot is generally available to all developers : GitHub의 AI 페어 프로그래머인 Copilot이 클로즈 베타를 끝내고 모두가 이용할 수 있도록 공개되었다. 무료는 아니고 월 $10(연 $100)로 이용할 수 있고 인증된 학생이나 오픈소스 메인테이너는 무료로 이용할 수 있다. 결제 전에 60일간의 무료 이용을 해볼 수 있다.(영어)
  • Amazon CodeWhisperer 미리 보기 출시 – 인공 지능 기반 프로그래밍 코드 생성 서비스 : AI 기반으로 코드를 생성해 주는 CodeWhisperer를 아마존에서 평가판으로 공개했다. GitHub Copilot처럼 코드를 완성해주고 평가판은 VS COde, JetBrains, Cloud9에서 JavaScript, Python, Jova를 지원한다.(한국어)
  • Django Rest Framework 레시피 : Justyna의 글을 번역 글이다. DRF라고도 많이 부르는 Django Rest Framework에서 사용하는 패턴별로 맥락과 해결책, 이유를 설명하면서 정리한 글이다.(한국어)
  • kcat(kafkacat) 소개 : 지금은 kcat으로 이름이 바뀐 kafkacat CLI 도구의 사용 방법을 설명한다. kcat은 non-JVM 기반 프로듀서, 컨슈머 기능을 제공하는 도구로 kafka의 메타 정보를 확인하고 메시지를 전송하고 가져오는 방법을 보여준다.(한국어)
  • Quick Tip: Enable Touch ID for sudo : /etc/pam.d/sudo 파일을 수정해서 sudo 명령어를 사용할 때 비밀번호 대신 맥북의 TouchID를 사용할 수 있다.(영어)
  • List and delete caches in your Actions workflows : GitHub Actions에서 캐시 목록을 조회하고 삭제할 수 있는 API가 추가되었다. 덕분에 캐시를 관리하기가 더 쉬워질 것 같다.(영어)
  • Linus Torvalds: Rust For The Kernel Could Possibly Be Merged For Linux 5.20 : Linux 재단 오픈소스 서밋에서 Linus Torvalds가 Linux Kernel에 Rust를 포함할 수도 있다고 발표했고 빠르면 다른 커널 릴리스에 포함될 수 있다고 했다.(영어)

인프라 관련

  • “DevOps”의 인적 확장 (The human scalability of “DevOps”) : Envoy를 만든 Matt Klein가 쓴 The human scalability of “DevOps”의 번역 글이다. 글쓴이의 다양한 경험을 통해 조직이 커가면서 DevOps를 업계가 어떻게 받아들이고 어떤 문제가 있는지를 꽤 정확하게 짚어내고 있다고 느껴진다. 개발자가 코드를 작성하고 운영할 때 시스템의 퀄리티가 향상되는데 초기 스타트업에 특히 이런 사람들이 많고 조직이 급 성장하면서 대부분 중앙 인프라팀을 만들어서 다른 제품팀을 지원하는 구조가 된다. 하지만 단일 DevOps 모델은 조직이 커가면서 교육이 부족해지고 중앙 인프라팀이 버거워지는 시점이 오면서 번아웃이 오게 된다. 이를 위해서는 SRE 모델을 도입해야 한다고 하고 있다.(한국어)
  • Terraform Cloud Adds Drift Detection for Infrastructure Management : 인프라에 변경 사항이 있는지 지속해서 확인하고 변경 사항이 있으면 알려주는 Drift Detection 기능이 Terraform Cloud에 퍼블릭 베타로 공개되었다.(영어)

볼만한 링크

  • 토스에서의 시간을 돌아보며 : Toss에서 프론트엔드 리더(명확히 얘기하진 않지만, 글의 내용으로 봤을 때)로 일하고 나서의 경험을 적은 글이다. Toss는 DRI(Directly Responsible Indivisual)라고 각자가 최종의사 결정권을 갖는 문화가 있고 이 문화를 통해서 빠르게 일할 수 있는 문화를 가지게 되었다. 뒷부분은 프론트엔드 챕터에 대한 얘기로 이어지는데 각자 자기 일을 하는 소규모 챕터에서 규모가 커지면서 주니어 개발자가 합류하게 되고 이러한 분들이 자신감을 잃지 않도록 도와주는 사람을 배치하고 "싼 똥"을 자랑하는 자리와 강점 찾기 테스트 등 성장에 대한 다양한 시도를 한 과정이 나온다.(한국어)
  • Developer Experience at Vercel : Vecel의 VP of Developer Experience(DX)인 Lee Robinson이 DX에 관해 쓴 글이다. Vecel에서 DX를 제품의 성장을 이끄는 핵심으로 엣지 컴퓨팅에 미래가 있고 프론트엔드 개발자의 역량을 강화하고 개발자가 React 사이트를 만들 수 있는 프레임워크를 제공하고 있다고 한다. Vecel에서 DX의 4가지 기둥이 있는데 교육, 문서, 커뮤니티, 템플릿이고 좋은 DX를 제공하기 위해 노출 시간을 늘리고 만들면서 직접 테스트가 되어 배우고 개발자에게 공감하고 엄청 좋은 게 아니라면 선택하지 않아서 중요한 작업에 집중할 수 있게 한다고 한다.(영어)
  • 국내 최고의 개발 문화를 가진 회사는? – 설문 조사 결과 : 윤석찬 님이 국내 개발자 문화 현황을 설문 조사한 결과를 공유했다. 아래 12가지 기준으로 설문을 진행했고 전체 결과 외에도 중소기업, 스타트업, 인터넷 기업, 게임 기업, 대기업별로 나누어서도 결과를 보여주고 있습니다.(한국어)

    1. 코딩 테스트 인터뷰
    2. 자율적 개인 개발 장비 선택
    3. 자율적 팀 개발 환경 선택
    4. 소스 코드 리뷰 및 테스트
    5. 개발자 기여 로드맵/백로그
    6. 지속적 통합 및 배포(CI/CD)
    7. 내부 소스 레퍼지터리 공유
    8. API를 기반한 연동 및 소통
    9. 기술을 이해하는 팀장/매니저
    10. 개발자 레벨 혹은 경력 관리
    11. 참여형 지식 공유 플랫폼
    12. 개발자 관계(DevRel) 활동

IT 업계 뉴스

  • Securing the Software Supply Chain: Atomist Joins Docker : 컨테이너 보안 검사 서비스를 제공하는 Atomist가 Docker에 인수되었다. Atomist는 Spring 프레임워크를 만든 Rod Johnson이 CEO로 있는 회사이다.(영어)
  • Improved innersource collaboration and enterprise fork policies : GitHub이 회사 내에서 이너소스 협업(기업 내에서 오픈소스처럼 개발하는 접근방법)을 더 원활하게 할 수 있도록 저장소를 같은 조직 내에서 포크할 수 있게 되었다. 기존에는 개인 계정이나 다른 조직으로만 포크할 수 있었다. 추가로 인터널 저장소를 엔터프라이즈 org로도 포크할 수 있고 관리자가 포크가 가능한 저장소를 관리할 수 있게 되었다.(영어)

프로젝트

  • Maccy : macOS용 클립보드 관리자
  • Oh Shit, Git!?! : 커밋 후 빠진 걸 발견했다거나 잘못된 브랜치에 커밋하는 등 Git에서 실수한 상황을 어떻게 해결해야 하는지 정리해 놓은 사이트.
  • Checklist Design : 로그인 페이지, 404 페이지, 엘리먼트, 흐름 등 빠뜨린 게 없는지 확인할 수 있도록 체크리스트를 정리해 놓은 사이트.

버전 업데이트

2022/07/01 09:15 2022/07/01 09:15