Outsider's Dev Story

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

기술 뉴스 #196 : 22-04-16

웹개발 관련

  • (번역) 레이아웃 알고리즘 이해하기 : Understanding Layout Algorithms의 번역 글로 CSS를 공부하면서 프로퍼티의 사용법을 배웠지만 제대로 이해하려면 레이아웃 알고리즘을 배워야 한다고 설명하고 있다. 기본 레이아웃 알고리즘은 Flow 레이아웃인데 z-index는 Flow 알고리즘에 구현되어 있지 않기 때문에 z-index를 제대로 사용하려면 레이아웃 알고리즘 지정해야 하고 width도 알고리즘에 따라 다르게 동작하게 됩니다. <img> 태그가 <div>에서 약간의 마진이 생기는 것도 CSS 프로퍼티 때문이 아니라 Flow 레이아웃에 따라 인라인 요소로 처리되었기 때문에 발생한다는 것도 설명하고 있다. 이 레아아웃 알고리즘을 이해해야 CSS 프로퍼티를 제대로 사용할 수 있다고 설명하는 데 CSS 처리할 때 꼭 살펴봐야 할 만큼 좋은 글이다.(한국어)
  • SolidJS와 함께 되짚어보는 반응형 프로그래밍 : 데이터 중심 이벤트 이미터 위에 만들어진 선언적 프로그래밍 패러다임이 반응형 프로그래밍이고 이는 UI를 구성하는 데 유용하다. 이벤트를 스트림으로 바꾸고 오퍼레이터로 선언하는 대표적인 구현체가 Reactive(Rx)인데 디버깅이 힘들다거나 러닝 커브가 높다는 단점이 언급되고 있고 다른 반응형 프로그래밍이 Transparent Reactive Programming(TRP)이다. TRP에서는 Observable과 Reaction이 기본 구성 요소인데 SolidJS도 이를 이용해서 반응형 모델을 구축했는데 이를 이용한 SolidJS의 사용 방법을 간단히 보여준다.(한국어)
  • Turborepo로 모노레포 개발 경험 향상하기 : 모노레포를 관리하기 위해 모노레포 도구인 Turborepo를 도입한 글이다. 모노레포는 모노리식과 멀티 레포의 장점을 모두 취하고자 하는 접근 방법이고 Turborepo는 편리한 빌드 시스템을 제공해서 개발과 빌드에 도움을 줄 수 있는 다양한 기능을 제공하고 있다. Turborepo를 도입해서 기존 스크립트 의존성으로 인한 복잡도와 반복되는 불편한 빌드를 해결하고 배포 프로세스를 시각화하고자 했는데 의존성도 Turborepo 파이프라인으로 해결하고 빌드 캐시로 재빌드 시에는 7분 걸리던 빌드가 0.64초 걸리게 되었다고 한다.(한국어)
  • [번역] React v18.0 : React v18.0 릴리스의 번역 글이다. Concurrency나 Suspense 등 릴리스 원문을 자세히 읽어보지 않았다면 읽어보면 좋다.(한국어)

그 밖의 개발 관련

  • Performance at GitHub: deferring stats with rack.after_reply : GitHub에서 rack.after_reply를 이용해서 30~50ms 정도 응답 시간을 줄일 개선을 정리한 글이다. GitHub의 성능 분석을 하면서 요청을 처리할 때 매트릭을 보내기 위해 요청당 최대 65ms를 사용한다는 것을 발견하고 배치로 모아서 보내거나 Rack::Events 등의 방법을 고려해 봤지만, 문제를 해결할 수 있어 보이지 않았다. 그러다가 Puma의 rack.after_reply가 응답을 완료한 후 실행하는 기능이라는 것을 발견하고 GitHub에서는 Puma 대신 Unicorn을 쓰고 있었기 때문에 rack.after_reply 구현해서 Unicorn에 기여했다. 이를 통해 사용자에게 응답을 보낸 후에 매트릭을 전송하게 하여 P50에서는 30ms, P99에서는 50ms 이상이 줄어들었다.(영어)
  • (번역) 코드 리뷰 피라미드 : The Code Review Pyramid의 번역 글로 코드 리뷰를 할 때 집중해야 할 부분을 코드 스타일, 테스트, 문서화, 구현, API로 나누어서 코드 리뷰 피라미드를 정의했다. 피라미드의 아래쪽에 있을수록 나중에 수정할 때 더 큰 노력이 들어가고 간 부분별로 리뷰할 때 집중해야 할 질문을 정리해 두어서 리뷰할 때 한번 기억해두면 좋을 문서다.(한국어)

인프라 관련

  • AWS Lambda Function URL 발표 – 단일 기능 마이크로서비스용 내장 HTTPS 엔드포인트 : AWS Lambda에 API 엔드포인트를 연결하려면 API Gateway나 로드밸런서를 사용해야 했는데 간단히 Lambda에 바로 URL을 연결해서 호출할 수 있는 Lambda Function URL이 공개되었다. Lambda 함수에서 Lambda Function URL를 생성하면 이 Labmda를 호출할 수 있는 URL이 생성되고 CORS 설정도 할 수 있다.(한국어)
  • 우리는 클라우드 개발에 진심입니다! - SmartNIC 편 : 네트워크 트래픽이 점점 증가하면서 이를 해결하기 위한 하드웨어로 SmartNIC(Smart Network INterface Card)가 등장했다. SmartNIC를 사용하면 네트워크 처리를 하면서 일부 작업을 CPU가 수행해주어야 하지만 이를 SmartNIC의 하드웨어에서 처리할 수 있어서 CPU를 제대로 활용할 수 있다. 카카오 i 클라우드에서는 ARM + FPGA의 당일 침 시스템을 선택해서 소프트웨어로 프로비저닝 할 수 있게 되었고 첫 기능으로 Open Virtual Switch를 구현해서 하이퍼바이저가 아니라 SmartNIC에서 OVS를 처리할 수 있게 되어 CPU 사용률을 50% 이하로 낮추고 애플리케이션 성능으로 600%까지 높일 수 있게 되었다고 한다.(한국어)
  • DDoS Attack Trends for 2022 Q1 : Cloudfalre에서 2022년 1분기에 관찰된 DDoS 트랜드를 정리한 보고서이다. 애플리케이션 계층의 DDoS 공격은 매우 증가했지만 네트워크 계층의 DDoS 공격의 총수는 줄어들었다고 한다. 그런데도 볼륨으로 보면 전 분기 대비 645%나 증가했다고 한다. 러시아와 우크라이나에 대한 DDoS가 많이 발생했고 랜섬 DDoS는 줄어들었고 HTTP DDoS는 전년 대비 164%나 증가했고 3월에는 지난 4분기를 합친 거보다 많이 발생했다. 랜섬 DDoS는 DDoS 공격을 막는 대가로 돈을 요구하는 것을 의미한다. 글에서 더 자세한 통계와 산업별 공격 비중 등을 자세히 볼 수 있다.(영어)

볼만한 링크

  • 아마존 앤디 재시의 2021년 첫 연례 주주서한 (번역) : Amazon의 새 CEO 앤디 재시가 쓴 주주 서한을 후반부를 번역할 글이다. 여기에 Amazon이 일하는 방식이 정리되어 있다.(한국어)

    1. 빌더를 채용해야 합니다.
    2. 빌더의 팀을 가능한 독립적이며 자율적으로 만듭니다.
    3. 빌더의 팀에게는 빠르게 움직이는데 필요한 도구와 권한을 부여합니다.
    4. 낭만적인 믿음은 필요합니다. 하지만 헛된 희망은 아닙니다.
    5. 최소 애착 제품(Minimum Loveable Product)을 정의하고, 빠르게 반복합니다.
    6. 장기적인 관점을 갖습니다.
    7. 실패를 피하지 마세요.
  • 2022년 테크 업계 번아웃 실태 보고 : 팀의 상태를 관리하는 서비스를 제공하는 Yerbo의 State of Burnout in Tech 2022 보고서를 요약/정리한 글이다. 번아웃은 다음 4가지 증상으로 나타나는데 각 증상에 대해 더 자세히 정리되어 있다. 영문이지만 전체 리포트를 보면 더 자세한 통계가 나와 있다.(한국어)

    • 감정 소모, 활력 고갈
    • 무능감
    • 냉소
    • 비인격화/심리적 무감각

IT 업계 뉴스

  • 구글 ‘PaLM’, 최고 성능·최대 크기 초거대 AI 등극 : Google에서 GPT-3보다 3배 큰 5,400억개 파라미터를 가진 PaLM(Pathways Language Model)을 공개했다. PaLM은 29개의 영어 자연어 처리 과제 중 28개에서 기존 다른 모델을 능가했고 BIG-bench에서도 사람 평균도 능가했다고 한다.(한국어)
  • DALL·E 2 : OpenAPI에서 자연어로 설명하면 사실 이미지나 아트를 만들어 주는 새 API 시스템을 공개했다. 사이트에서 설명에 따라 DALL·E 2가 만든 이미지나 기존 이미지에 수정한 예시를 볼 수 있다. 프리뷰를 사용해 보려면 대기리스트를 등록해야 한다.(영어)
  • 로그4j 취약점 스캐너 '오픈소스'로 공개했더니 생긴 일 : 작년 말 Log4j 취약점이 알려졌을 때 국내 보안 스타트업 로그프레소에서 스캐너를 오픈소스 만들어서 공개했다. 이 스캐너가 많은 업체의 보안 권고문에서 추천되고 SAS에서는 포크에서 프로젝트를 진행하는 등 인기를 끌고 있다고 한다.(한국어)

프로젝트

  • Warp : 현대적인 기능이 추가된 Rust로 작성된 터미널로 현재 macOS 버전만 퍼블릭 베타로 공개되었다.
  • lexical : Facebook에서 만든 텍스트 에디터 프레임워크
  • Replay : 웹사이트에서 Time Travel 디버깅을 제공하는 앱으로 개인은 무료로 사용할 수 있다.
  • Rome Formatter : 프론트엔드 linter, 컴파일러, 번들러 등을 포함한 툴 체인인 Rome에서 공개한 코드 포매터로 Prettier보다 9~12배 정도 빠르다고 한다.
  • mockoon : mock REST API를 쉽게 만들게 해주는 도구. UI로 REST API를 정의해서 Mock api를 생성할 수 있다.
  • GitHub's VS Code themes : GitHub에서 만든 VS Code의 GitHub 테마.
  • pbkit : TypeScript로 작성된 protobuf 관련 도구 모음

버전 업데이트

2022/04/16 21:17 2022/04/16 21:17