Outsider's Dev Story

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

기술 뉴스 #169 : 21-03-01

웹개발 관련

  • OWASP Cheat Sheet Series : Open Web Application Security Project인 OWASP에서 치트시트 시리즈 사이트를 공개했다. AJAX 보안, 인증, Clickjacking, CSRF, DoS, XSS, GraphQL, JWT 등 다양한 상황의 공격 패턴과 조심해야 할 부분을 정리해 놓았다.(영어)
  • Updates in hardware-accelerated animation capabilities : 크롬에서 기존에는 CSS trasform 함수나 opacity, filter 등의 갑이 바뀔 때 등에 하드웨어 가속이 사용되었지만 크로미움 89 버전부터는 SVG 애니메이션에서도 가속화가 가능해져서 SVG 로딩 애니메이션에서 88 버전에서는 repaint가 많이 발생하지만 89에서는 전혀 발생하지 않는 것을 볼 수 있다. 이후에는 translateX: -100% 처럼 퍼센트를 이용한 애니메이션에서 하드웨어 가속화가 되도록 작업 중이라고 한다.(영어)
  • 올해 버려야 할 타입스크립트 나쁜 버릇 10가지 : 10 bad TypeScript habits to break this year의 번역 글로 TypeScript에서 더 좋은 방법이 있는데 기존 습관 때문에 쓰고 있거나 잘못된 사용방식을 정리하고 해결책과 이유를 설명한다.(한국어)

    • strict 모드를 사용하지 않는다
    • 디폴트 값을 ||을 사용해 정의한다
    • any 타입을 사용한다
    • val as SomeType
    • 테스트에서의 as any
    • 옵셔널 프로퍼티
    • 한 문자 제너릭
    • 불린이 아닌 것의 불린 검사
    • 뱅뱅 연산자
    • != null

그 밖의 개발 관련

  • 10 Years of Open-Source Visualization : d3.js를 만든 Mike Bostock이 10년간 시각화 라이브러리를 오픈소스로 만들면서 경험한 것을 정리한 글이다. 프로젝트를 하면서 가장 중요한 것은 사용법을 알려주는 것이고 시각화에서 데이터를 만지는 것이 80% 이상 되어야 넣어야 한다고 한다. 10%의 코드가 대부분의 버그를 유발하고 아무리 잘해도 누군가 나쁜 말을 할 것이라는 부분이 인상적이다. 간단한 한국어 요약은 GeekNews에 잘 되어 있다.(영어)
  • 가게 배달지역 관리방식 개편 프로젝트 : 배달의 민족에서 배달 가능 지역을 관리할 때 기존에는 행정동을 기준으로 하고 있었기 때문에 유연하지 못한 문제가 있어서 구글이 만든 S2 시스템으로 바꾸었다고 한다. S2는 지구를 사각형 Cell로 나누어서 넘버링한 시스템인데 S2를 이용해서 행정동을 변환할 경우 어떻게 되는지 사전 테스트를 거쳐서 적당한 크기를 선정한 뒤 실제로 마이그레이션을 진행해서 행정동을 S2 Cell로 변환했다고 한다. 이후 다른 레벨의 영역이 겹치거나 누락된 곳이 있는지 등을 검증해가면서 테스트 후 적용했다고 한다. 행정동보다 더 세밀한 Cell로 나누어서 배달구역의 관리가 훨씬 유연해졌다고 한다.(한국어)
  • Analyzing Clubhouse for fun and profit : 보안 관련 스타트업에서 최근 인기를 얻고 있는 Clubhouse의 내부 구조와 보안상 위험한 부분을 정리한 글이다. 앱이 Clubhouse API 서버와 사용자 관련 통신을 REST API로 하고 음성 데이터는 Agora 서비스를 이용하고 이벤트 관련 정보는 PubNub을 이용하고 있다. REST API는 Cloudflare를 사용하고 있음을 볼 수 있고 사용 중인 API 목록을 볼 수 있다. Agora의 경우 RTC 토큰을 어떻게 인증해서 권한을 분리하고 암호화하는지를 보여준다. 보안 관점에서는 전화번호와 4자리 인증 코드만으로 로그인하므로 이 방식에서의 취약점과 클럽하우스가 3회 실패하면 인증 코드를 리셋하고 30분 동안 막는 방어 장치로 어떤 효과가 있는지를 알 수 있다. 그리고 Agora로 가는 음성 데이터는 암호화되지 않고 있고 다른 장비에서 로그인이 되었을 때 사용자에게 알려주는 장치가 없어서 위험하다고 하고 있다.(한국어)
  • GPG(GNU PG)를 이용해 git 커밋에 서명하는 방법 : git 커밋을 할 때 GPG를 이용해서 서명하는 방법을 설명하고 있다. GPG 키 생성부터 GitHub에 서명을 등록하는 방법을 설명한다. 서명을 추가하면 사용자와 커밋에 verified로 표시가 된다.(한국어)
  • Husky 사용할 때 주의! : hustky는 Node.js 프로젝트로 Git의 특정 훅에 동작할 수 있도록 해서 git commit을 할 때 메시지 검사나 lint를 한다든지 하는 자동화를 할 수 있는 도구이다. 글에 간단한 사용법도 나와 있지만 Husky가 v4까지는 MIT 라이센스였지만 v5에서는 Early Access 기간에 사용한 프로젝트도 공개하라는 Parity Public License를 적용하고 이후 MIT로 공개한다지만 언제까지가 Early Access인지 안 나와 있으니 회사 등에서는 조심해야 한다고 한다.(한국어)
  • GitHub Pages will stop redirecting Pages sites from *.github.com after April 15, 2021 : 지금은 GitHub 페이지가 모두 *.github.io 아래 운영되고 있지만 2013년까지는 *.github.com을 사용하고 있었기 때문에 *.github.com*.github.io로 리다이렉트 하고 있었다. 이 지원을 올해 4월 15일부터는 중단해서 더는 리다이렉트되지 않을 것이라고 한다.(영어)

인프라 관련

  • Kubernetes Cluster API 따라하며 이해하기 : Kubernetes의 방식을 그대로 이용해서 Kubernetes 클러스터를 관리할 수 있는 Cluster API를 설치해서 따라 해 볼 수 있게 설명한 글이다. 즉, 서비스나 Pod를 띄우면 desired 상태에 맞게 live 상태를 알아서 맞춰주는 Kuberentes의 방식을 이용해서 클러스터의 설정과 정책 등을 Cluster API로 관리할 수 있게 된다.(한국어)
  • Announcing General Availability of the HashiCorp Terraform Cloud Operator for Kubernetes : HashiCorp에서 작년에 공개했던 kubernetes에서 사용할 수 있는 Terraform Cloud Operator를 GA로 공개했다. Terraform 클라우드에서는 워크스페이스를 만들어서 Terraform을 실행하고 관리할 수 있는데 이를 오퍼레이터로 올려서 Workpace의 설정과 관리를 할 수 있다. 그리고 Terraform Cloud Agents를 이용하면 격리된 내부 인프라스터럭처가 Teraform Cloud와 통신하도록 할 수 있다.(영어)
  • Announcing the Packer Plugin SDK : HashiCorp의 Packer의 컴포넌트는 빌더, 프로비져너, 포스트-프로세서로 구성되어 있는데 모두 내장 컴포넌트로 구성되어 있다. 확장성을 위해 1.7.0에는 SDK가 포함되었고 Packer 프로젝트에 머지되기를 기다릴 필요 없이 SDK로 플fj그인을 만들어서 원하는 컴포넌트를 추가할 수 있게 되었다. Pakcer 플러그인은 독립적인 Go 모듈이다. 현재 Packer Plugin SDK는 0.1.0 버전이다.(영어)

볼만한 링크

  • Paths Crossed Again - How I ended up joining Databricks : 이벤트 주도 네트워크 프레임워크인 Netty를 만들고 GRPC/REST 프레임워크인 Armeria를 만든 이희승 님이 Spark로 유명한 Databricks에 합류한 과정을 소개한 글인데 재미있다. 수년 전 Netty 프로젝트에서 Databrics의 공동창업자인 Reynold Xin을 알게 되었고 당시 Apache Spark가 Garry Sort competition에서 이기는데 Netty 프로젝트가 큰 도움을 주었다고 한다. 오픈소스 개발하면서 그렇게 인연이 닿았고 Armeria를 수년간 개발하던 최근 Databrics가 네트워크 프로토콜을 고민하면서 Armeria를 알게 되어 기술에 대한 논의를 주고받다가 인터뷰를 진행하게 되었다고 한다.(영어)
  • 문서 작성법의 패러다임 시프트: 롬리서치 : 최근 주목받고 있는 Roam Research가 어떤 도구인지 설명하고 있다. 노트 앱이라고는 하지만 기존 노트 앱과는 다르게 생각을 연결할 수 있도록 구성되어 있어서 블릿 포인트 단위로 글을 작성하고 다른 노트를 문서 안으로 쉽게 가져올 수 있고 사이드바에서 참고할 노트를 열어놓고 글을 쓰면서 참고할 수 있다. 보통 사람들이 노트 앱에서 작성하는 글을 Roam Research에서는 어떤 게 작성하는지를 설명하면서도 기존 앱과는 다른 UI라서 학습하는 데 시간이 걸릴 것이라고 하고 있다.(한국어)
  • 뉴스에 돈을 내라고? (번역) : Paying for news의 번역 글이다. 모르고 있던 내용이라서 정확히 호주 외에 어느 국가에서 이러한 움직임이 있는지 모르지만, 뉴스에 대해 비용을 지불하게 하는 법안에 대한 비판 글이라고 생각하고 있다. 구글, 페이스북의 광고 매출이 명백하게 신문사에서 넘어온 것은 아니지만 호주에 올라온 법안에 의하면 페이스 북 등에 올라온 신문사의 뉴스 링크마다(신문사가 직접 올리더라도) 페이스북이 신문사에 돈을 지불해야 한다고 한다. 다른 오류를 빼더라도 왜 이 링크의 가치를 신문사만 지불받아야 하는지, 이 법안이 오히려 이러한 보조금에 의존하게 만들어서 생태계가 더 안 좋아질 거라고 하고 있다.(한국어)

IT 업계 뉴스

  • DigitalOcean S-1 : 클라우드 업체 DigitalOcean이 상장을 위해 증권거래소에 S-1 문서를 제출했다.(영어)

프로젝트

  • Skyline : GitHub에서 공식으로 공개한 사이트로 GitHub의 한 해간의 컨트리뷰선 그래프를 3로 만들어주고 캐드 파일도 같이 제공한다.
  • Bit : Go로 만든 Git CLI로 플래그 제안이나 자동 완성 등 편의 기능이 추가되어 있다.
  • duf : 디스크의 사용량을 볼 수 있는 df의 대안으로 표로 사용량을 깔끔하게 보여준다.
  • Terrascan : 클라우드 인프라스트럭처에 적용하기 전 Infrastructure as Code를 기반으로 보안 취약점과 컴프라이언스 위반을 탐지하는 프로그램으로 Terraform, Kubernetes, Helm, Kustomize 등을 지원한다.
  • Boundary Desktop : HashiCorp의 접근제어 프로젝트 Boundary의 데스크톱 버전이 알파로 나왔다. 현재는 macOS만 지원한다.
  • ghtop : GitHub의 push, PR, 이슈 등 전체 이벤트 실시간으로 볼 수 있는 터미널 도구로 GitHub의 CEO인 nat이 만들었다.
  • Graphtage : JSON, YAML, HTML, XML을 의미상으로 비교해서 diff를 만들어 주는 CLI 도구.
  • Hummingbard : 분산 커뮤니케이션 네트워크인 Matrix에 기반을 둔 실험적인 커뮤니티 사이트.

버전 업데이트

2021/03/01 11:03 2021/03/01 11:03