[GN#76] FT의 데이터플랫폼 구축기와 슬랙의 Vitess 도입기

2020-12-14 ~ 2020-12-20 사이의 주요 뉴스들
신문(Newspaper)은 디지털의 발전과 함께 빨리 없어질 것만 같은 미디어입니다만, 100년 넘게 유지해온 신문사들도 자신들을 바꿔가려고 다양하게 노력을 하고 있습니다. 뉴욕타임스의 디지털 트랜스포메이션은 제가 기사동영상으로도 찍어서 공유해 드렸었는데요. 이번 주에는 Financial Times 가 자신들의 내부 데이터 플랫폼 구축기를 상세하게 적어서 공개했습니다. 꼭 신문사뿐만 아니라, 기존 데이터 처리를 배치 처리에서 실시간으로 바꿔야 할 회사들이 참고하기에도 좋은 자료가 될 것 같습니다.

클라우드 시대로 오면서 MySQL 기반의 대용량 데이터베이스를 쓸 때 Amazon RDS / Google Cloud SQL 처럼 알아서 확장해주는 서비스를 사용하는 게 간편한 선택방식이 되었습니다. 하지만, 상황상 이런 업체들의 서비스를 선택하지 못하고 직접 DB 서버를 호스팅 하는 경우에는 Scaling 이 문제가 되는데요. Slack이 Vitess 를 활용하여 자신들의 데이터스토어를 확장한 방법을 상세히 적어서 공유했습니다. Vitess 는 유튜브의 엄청난 MySQL 트래픽 문제를 해결하기 위해서 만들어진 솔루션으로 지금은 CNCF의 오픈소스 프로젝트가 되었습니다. MySQL 앞단에서 대규모 샤딩을 효율적으로 처리하는 미들웨어로 동작하며 사용자는 VTGate라는 프록시를 통하게 되므로 기존처럼 MySQL에 접속하듯이 사용할 수 있는 장점을 가지고 있습니다. MySQL을 대규모로 사용하고 계신 조직에서는 참고하시기 바랍니다.

연말이 가까워 지면서, 내년 예측들이 하나둘 나오기 시작했는데요. The Information은 매년 이맘때쯤 자사 기자들이 예측한 내용을 정리해서 발표하는데 작년에 이어 올해도 중요한 내용을 간략히 요약해 봤습니다. 전 올해 대형 테크 IPO가 많았어서 내년에는 없겠지 했는데, Confluent/Robinhood/Chime 등이 IPO 할 것이라고 나와서 더 찾아보니 Instacart/Stripe/Lime/Zapier/Roblox/Coinbase 등까지 이름 알려진 테크 기업들이 줄줄이 상장을 준비하고 있다는 게 솔깃하더군요. 신규 IPO한 주식들만 투자하는 IPO ETF가 더 잘될 거 같다는 예상도 해봅니다.


✓ 사내에서 슬랙을 쓰신다면 뉴스채널에 GeekNews SlackBot 을 추가하여 편하게 새 글을 받아보시고, 멤버들에게도 공유해주세요.
✓ 주위분들께 긱뉴스 위클리 - https://news.hada.io/weekly 를 추천해 주세요.
Twitter , Facebook 에서도 긱뉴스를 받아 보실 수 있습니다.
✓ 긱뉴스를 팟캐스트로 들어보세요 : 애플, 유튜브, 팟티, 팟빵, 구글, 네이버 오디오클립

매주 월요일 아침, 지난 일주일간의 GeekNews 중 엄선한 뉴스들을 이메일로 보내드립니다.


Financial Times의 데이터플랫폼 구축기

130년된 신문사의 디지털 트랜스포메이션 이야기

G1. 2008~2014 : 읽은 기사에 기반한 뉴스추천에 집중. SQL Server 기반
G2. 2014~2016 : ETL의 도입. 데규모 데이터 분석과 새로운 질문들, 데이타 양 증대
ㅤ→ SQL Server가 병목. Redshift + ETL Framework 로 전환
ㅤ→ 일간 몇번씩 SQL실행하도록 스케줄링 자동화
ㅤ→ SQL + Python 으로 복잡한 데이터 모델 지원
G3. 2016~2018 : 빅데이터@FT 의 시작
ㅤ→ 데이터 레이턴시 최소화를 목표. Data Ingestion 이 하루에 한번(24h). 이걸 줄여야 더 빠르게 트렌드에 대응가능
ㅤ→ 독자의 인터랙션을 모두 전송가능한 자체 트래킹 라이브러리 개발
ㅤ→ 모든 이벤트를 AWS SNS → SQS → Kinesis → Parquet → Redshift
ㅤ→ Raw Event를 처리할 NodeJS서버를 만들어 내외부 데이터를 조합해서 이벤트를 enrich 한후 Kinesis에 올림
ㅤ→ Kinesis Firehose 를 이용해서 이벤트를 CSV로 만들어 S3에 저장
ㅤ→ 이벤트 중복이 일어나는 상황이 있어서, 이를 처리하는 별도의 Redshift 클러스터를 만드니, 이거 때문에 레이턴시가 느려짐
G4. 2019 : 비즈니스 가치 추가에 중점을 두고 플랫폼을 리빌드
ㅤ→ 데이터 플랫폼을 PaaS로 바꾸고 싶었음
ㅤ→ 쿠버네티스 도입. ECS 에서 EKS로
ㅤ→ Airflow 도입
ㅤ→ AWS SNS → SQS → Kinesis → Parquet → Airflow → Redshift
G5. 2020 : 이제 실시간 데이터의 시대
ㅤ→ G4는 좋았지만 아직도 실시간은 불가능
ㅤ→ SNS,SQS,Kinesis 의 복잡한 세팅에서 Kafka로 전환 ( Amazon MSK )
ㅤ→ 스트림프로세싱 플랫폼은 Apache Spark
ㅤ→ kafka → spark → parquet(delta lake, redshift) ↔ airflow
ㅤ→ 데이터 검증을 위해서 Apache Avro 도입 : Data Contract
ㅤ→ Redshift, S3, Kafka 등을 쿼리하기 위해서 Presto 사용

앞으로의 계획
ㅤ→ 현재 Airflow, Spark, Kafka 3가지 컴포넌트에서 데이터가 들어오는데, 이걸 CDC(Change Data Capture) 기반으로 변경 예정
ㅤ→ 모든 사람들이 실시간 데이터에 접속할수 있도록 변경. Data UI 를 향상시켜서 스트림처리를 드래그 & 드랍으로 가능할수 있도록

여기서 나온 단어들의 설명을 보시려면,
- 최신 데이터 인프라를 위한 새로운 아키텍처 https://news.hada.io/topic?id=3055
위 글과 긱뉴스 유튜브의 "최신 데이터 인프라 이해하기" 영상을 참고하세요
- https://youtube.com/playlist?list=PLL-_zEJctPoJ92HmbGxFv1Pv_ugsggGD2

그리고, 비슷하게 디지털 트랜스포메이션에 성공한 뉴욕타임즈 이야기도 같이 참고하세요

실패하지 않는 뉴욕타임즈 - NYT는 어떻게 디지털화에 성공했나
- https://youtu.be/K2qiAFTzDLU
- (실패하지 않는) 뉴욕타임스 https://news.hada.io/topic?id=3172

오 이런 블로그 글 좋아요. 각 아키텍처 세대별 고민이 담겨져 있네요. 언론사에서도 이정도 규모의 데이터 플랫폼을 설계하는군요.

 
Vitess를 활용한 Slack의 데이터스토어 스케일링

- 슬랙이 Active-Active 클러스터 구조에서 MySQL 수평 확장 시스템인 Vitess로 변경한 이야기
- 2017년부터 이관시작해서 이제 Vitess가 전체 쿼리의 99%를 처리중, 년말까지 완전 이전 예정
ㅤ→ 현재 피크시 230만 QPS(200만은 읽기, 30만은 쓰기)
ㅤ→ 쿼리 레이턴시 중간값은 2ms, p99 쿼리 레이턴시 11ms
- 슬랙은 LAMP 스택으로 시작(Linux,Apache,MySQL,PHP)
- 3개의 DB 클러스터
ㅤ→ 샤드 : 모든 메시지,채널,DM 등 사용자 데이터. 워크스페이스ID로 파티셔닝되어 한 워크스페이스는 한 샤드에
ㅤㅤ즉 슬랙앱은 한개의 DB에만 접속하면 됨
ㅤ→ 메타데이터 클러스터 : 워크스페이스를 샤드에 연결하기 위한 룩업테이블
ㅤ→ 키친 싱크 클러스터 : 특정 워크스페이스용이 아닌 모든 데이터 저장. App 디렉토리등
- 샤딩은 모노리스인 "webapp" 이 관리하고 조정
- 각 클러스터들은 한개이상의 샤드로 되어있고, 각 샤드는 다른 데이터센터에 있는 적어도 2개 이상의 MySQL인스턴스로 프로비져닝

- Active-Active 설정의 장점
ㅤ→ 고가용성
ㅤ→ 빠른 제품 개발 속도
ㅤ→ 쉬운 디버깅
ㅤ→ 쉬운 확장

하지만, 조직이 커지고 제품팀들이 새로운 기능을 만들게 되면서 개발속도가 느려짐

- Active-Active 의 단점
ㅤ→ 확장의 한계 : 더 큰 고객들이 들어오면서 고성능의 호스트가 수용할 수 있는 한계에 도달
ㅤ→ 한개의 데이터모델에 고착 :
ㅤㅤㅤEnterprise Grid 와 Slack Connect 같은 기능이 들어가면서 한개의 서버에만 접속하는 패러다임에 반하게 됨
ㅤ→ 핫스팟 : 데이터베이스 플릿을 잘 활용하지 못함. 샤드를 분할하고 팀이동이 어려웠고 슬랙 사용량을 예측하기 어려워 대부분의 샤드를 과도하게 프로비져닝해서 롱테일을 활용하기 어려움
ㅤ→ 워크스페이스와 샤드 가용성 문제 : 샤드에 문제 생기면 그 샤드에 있는 모든 고객이 슬랙 사용 불가
ㅤ→ 운영: 일반적인 MySQL 구성이 아니어서 많은 내부도구를 작성했음.

- 2016년 가을, 초당 수십만개의 MySQL쿼리와 수천개의 샤딩된 MySQL 호스트를 관리했음
- 정기적으로 확장 및 성능문제를 겪어서 새로운 접근방식에 대해 고민

- 기존것을 발전 또는 새로운 제품을 도입에 대해 고민했으나
ㅤ→ 자체 클라우드에서 실행되는 MySQL을 계속 사용하고 싶음
ㅤ→ 수천개의 고유쿼리가 있고, 그중 일부는 특별한 MySQL 구성을 이용
ㅤ→ 배포,백업,데이터하우스 ETL,컴플라이언스등이 모두 MySQL 에 기반

- 왜 Vitess인가 ? : 대부분의 앱/운영 요구사항을 충족
ㅤ→ MySQL Core : Vitess는 MySQL 기반
ㅤ→ Scalability : MySQL의 주요기능과 NoSQL DB의 확장성을 결합. 내장 샤딩으로 특별한 로직 추가없이 유연하게 확장이 가능
ㅤ→ Operability : 기본 장애 조치 및 백업등을 자동으로 처리. 클러스터 설정에 대한 메타데이터를 추적해서 일관성을 유지
ㅤ→ Extensibility : Go기반 오픈소스. 광범위한 테스트커버리지와 개방된 개발자 커뮤니티

- 작은 기능부터 Vitess 로 실무적용
ㅤ→ 2017년 RSS피드를 슬랙채널에 통합하는 기능을 만들어 봄
ㅤ→ 2018년에는 새 테이블은 다 Vitess에서만 만듬
ㅤ→ 2019년 중반에는 레거시DB보다 Vitess에 더 많은 쓰기가 발생
ㅤ→ 그리고 Vitess 오픈소스에 슬랙이 계속해서 기여
ㅤ→ 3년에 걸쳐서 99%를 Vitess 로 이전. 올해안에 나머지 1%도 완료

- Slack의 Vitess 도입은 성공이었나 ?
ㅤ→ 전세계 여러지역에서 여러개의 Vitess 클러스터가 수십개의 키스페이스를 운영중
ㅤ→ 키스페이스는 사용자/팀/채널수에 따라 확장되는 논리적 컬렉션
ㅤ→ 유연한 샤딩으로 Slack을 확장할 수 있게 됨

ㅤ→ COVID-19로 슬랙의 쿼리 갯수가 일주일만에 50%증가함
ㅤ→ 가장 바쁜 키스페이스를 Vitess의 분할 워크플로우를 이용해서 수평으로 확장
ㅤ→ 예전 같았으면 스케일링 불가능해서 다운타임이 발생 했을 것.

https://vitess.io/

Vitess : "Sharding Middleware for MySQL"
- MySQL과 MariaDB를 쉽게 클라우드에서 배포/스케일/관리 할수 있도록 만들어진 솔루션
- Docker(로컬)Kubernestes 위에서 MySQL샤드를 운영하고 관리
- 어플리케이션은 VTGate라는 프록시와 MySQL과 통신하듯이 사용하면, 내부에서 gRPC로 다른 서버들에 연결하는 방식

이메일 서비스인 Hey도 Vitess를 사용중

Hey 의 기술 스택 https://news.hada.io/topic?id=2355

 
The Information의 2021년 예상

내년에 일어날 일들을 예측해 본 리스트
- 애플이 애플TV+에 더 많이 투자
- AT&T가 CNN을 매각
- 클라우드업체가 Kong을 인수
- Confluent 상장
- Databricks/Redis가 큰 SW회사에 피인수
- 핀테크 회사 Chime/Klarna 와 Robinhood 상장
- 초기단계 스타트업의 평균가치 지속 상승
- DoorDash / Airbnb 같은 대형IPO로 돈을 번 기술기반 백만장자들의 초기투자 펀드가 늘어날 것
- Remote-Only 스타트업이 표준이 될 것. 투자자들은 초기에 사무실임대를 하지말라고 권장
- 지리적 경계의 중요성 감소로, 이미 알려진 텍사스 Austin 외에도 마이애미,푸에르토리코 등에도 스타트업 펀딩붐이 일어날 것
- Amazon Freight(트럭 물류, Uber for Trucking)가 대기업고객에게 서비스 제공 시작.
- 아마존 브랜딩한 트랙터(Tractor, 트레일러를 견인하는 Semi 트럭의 앞부분 Cab)를 소규모 트럭회사에 임대하는 프로그램을 시작
- IPO와 직접 상장(Direct Listing) 간의 경계가 더 모호해 질 것
- 코로나로 상장못했던 기업들이 상장을 예상하고 있어서 2021년에 더 많은 기술IPO가 있을 것
- Alibaba, JD.com, Pinduoduo, Didi Chuxing, Meituan 과 스타트업 Xingsheng Selected, Nice Tuan 등이 온라인 식료품 사업에서 수조원짜리 경쟁을 할 것
- 중국이 대형 플랫폼의 힘을 억제하기 위해 새로운 독점금지법으로 Ant 그룹의 주요 자산을 매각하고, 텐센트의 WeChat을 자세히 조사할 것
- 알파벳(구글)은 양자컴퓨팅에 주력하는 새로운 조직을 발표 할 것
- 구글은 Google Nest Hub를 통해 새 OS인 Fuchsia를 출시.
- 미국의 디지털 광고 지출에서 구글의 점유율은 계속 감소하고 페이스북과 아마존의 점유율이 증가 할 것
- 페이스북과 애플간의 긴장감 강화. 애플은 개인정보 데이터 보호를 계속 강화. 증강현실 헤드셋을 양사 모두 개발중. 미래에 이 AR 헤드셋이 모바일폰처럼 유비쿼터스가 될거라 경영진이 믿고 있음.
- 애플은 베트남과 인도에서 더 많은 제품을 생산하여 중국으로부터 다각화하기 위해 노력
- AirPods 라인의 새로운 변형 기기들을 출시하여 웨어러블 사업을 확장할 것
- Uber의 핵심사업은 코로나 이후에도 어려울 것. 더 적게 출퇴근 및 출장을 갈것으미로. 음식배달쪽에 더 많은 투자와 인수가 진행될 것
- 자동차 자율주행 분야에서 SPAC 합병이 더 일어날 것.
- 애플은 비밀리에 자율주행 자동차를 만드는 것에 대한 유출을 더이상 막지 못할 것.
- News Corp 및 AT&T 같은 콘텐츠 회사와 Facebook/Google 같은 디지털 플랫폼회사들의 전투가 워싱턴에서 더 분명해 질 것(의회에서 법률 제정을 위한 로비 공방을 한다는 뜻)
ㅤ→ 콘텐츠 회사는 저작권 보호자료를 무단 게시하는 것에 대해 디지털플랫폼에 더 많은 책을 부여하기 위해 로비를 강화 할 것

 
faasd - 초경량 포터블 Function-as-a-Service 엔진

"초경량 AWS Lambda"
- OpenFaaS를 쿠버네티스 없이 싱글호스트에서 쉽게 실행할 수 있는 서버
- 몇개의 펑션 또는 마이크로서비스를 위해 작은 Serverless Functions 기능이 필요할 때 사용
ㅤ→ IoT장비에 설치하거나, 사용자용 앱에 내장
- 싱글 Go 실행파일로 데몬처럼 실행
- x86/ARM 지원
- multipass 를 이용해서 맥/윈도우/리눅스에서 로컬 실행 가능
- 내부에서 containerd 와 CNI 사용

 
.vimrc 파일에 꼭 넣는 5줄

set hlsearch " 모든 검색결과 하이라이트
set ignorecase " 대소문자 무시하고 검색
set incsearch " 타이핑할 때마다 검색 결과 표시
set number " 줄번호 표시
set noswapfile " 스왑파일 사용안함

한줄로 설정 가능 → set hls ic is nu noswf

set smartcase 추천합니다. 소문자로만 쓰면 대소문자 구분 안 하고 검색하는데 대문자가 들어가면 대소문자 구분해서 검색합니다.

해커뉴스 댓글들도 참고하세요
https://news.ycombinator.com/item?id=25410390

set list listchars+=space:• " 빈칸을 • 로 표시
set listchars=tab:>- " 탭을 >- 로
set listchars=tab:├─
set listchars+=trail:⋄ " 뒤 공백을 ⋄ 로

 
Typesense를 활용한 검색용 API 서버 그리고 데모용 웹페이지 만들기

검색서버와 API서버, 그리고 데모용 웹 페이지까지 직접 만드는 과정에 대해 정리 해 보았습니다.

이렇게 과정을 참조할 수 있으니 좋네요. 정리해주셔서 고맙습니다.

 
구글, 이미지 최적화 앱 Squoosh v2 공개

- 새 코덱 지원 : OxiPNG, MozJPEG, WebP, AVIF
ㅤ→ WASM 적용으로 가능해짐
- 웹 앱외에 커맨드라인에서 최적화 가능한 CLI 제공
ㅤ→ Node + WASM
ㅤ→ picture 엘리먼트로 브라우저가 최적버전을 선택하게 가능
- 빌드시스템을 Webpack 에서 Rollup으로 변경

https://squoosh.app/

Squoosh! - Google이 만든 이미지 최적화 웹앱 https://news.hada.io/topic?id=2691

 
진정성과 스타트업 (번역)

- 폴 그레이엄의 에세이 번역
- 창업자를 이야기할 때 쓰는 가장 큰 칭찬은 바로 ‘진정성이 있다(earnest)’는 것
ㅤ→ 누군가를 진정성이 있다고 평가하는 건, 그들의 목적의식에 대해 이야기하는 것
ㅤ→ 무엇인가에 몰두하는 이들이 올바른 동기를 갖고, 목표를 달성하기 위해 최선을 다하고 있다는 말
ㅤ→ 목적의식을 벡터값으로 나타낸다면 그 크기와 방향 모두가 맞다는 뜻

폴 그레이엄님의 글은 나오는 것들을 모두 챙겨보고 있습니당. 굉장히 배울 점이 많더라고용.

 
imgdiff - 정말 빠른 이미지 비교 도구

- 지금까지 가장 빠르다는 odiff 보다 3배 빠른 diff 툴
- png/jpg/jpeg/bmp 지원 및 포맷간 비교 가능
- 다른 부분만 별도 파일로 저장
- 윈/맥/리눅스
- Go 로 작성해서 멀티쓰레드를 잘 활용

실제로는 https://github.com/dmtrKovalenko/odiff odiff 보다 뭘 특별히 한건 아니고 Go 의 멀티 쓰레딩 속성을 잘 활용한 것이라네요.
odiff 는 Reason 언어로 되어있고 싱글쓰레드 입니다.
- Reason : ReasonML, React 개발자인 Jordan Walke가 만든 OCaml 확장, JavaScript와 비슷한 문법인데 Ocaml로 트랜스컴파일 됨

 
PoloDB - Embedded JSON DB

- 가볍고 사용하기 쉬운 임베디드DB
- MongoDB 와 비슷한 API를 제공하는 NoSQL DB
- Rust로 개발. 별도 의존성 없음
- 스탠드얼론 프로세스 없이 라이브러리처럼 사용
- C,C++,Swift,Python,Node.js 언어 바인딩 제공(더 추가중)
- 데이터는 파일 하나로 저장되며, 크로스 플랫폼 및 하위호환 지원
- 맥/리눅스/윈도우 및 Rust 컴파일 되는 모든 플랫폼에서 사용 가능

SQLite를 도큐먼트DB로 사용하기 https://news.hada.io/topic?id=3271
처럼 약간 우회해서 사용하는 방법이 있었는데, 이건 기초부터 NoSQL 방식이네요

- DuckDB - Embedded OLAP DB 오픈소스 https://news.hada.io/topic?id=3312

 
빅 테크들을 쪼개는 것이 효과를 낼까?

독점을 없애는 데는 필요한 것은 기업을 쪼개는 것이 아니라 표준 준수 강제화이다.

서비스들의 소유주를 바꾼다고 해도 네트워크 효과는 유지된다 => 대부분의 사람들이 왓츠앱을 사용하는 것은 페이스북이 소유하고 있어서가 아니며, 구글이 빙의 검색 결과를 앞지르는 것은 유튜브를 소유하고 있어서가 아니다.
구글과 유튜브가 분리된다고 해서 경쟁이 강화되지 않는다. (유튜브가 빙보다 더 나은 검색엔진을 만들 수 없으며, 구글은 유튜브를 제외한 모든 소셜 네트워크 운영에 실패함)
유럽이 통신 독점을 해결한 것과 같이 (DSL을 다른 업체들이 임대해 사용할 수 있게하도록 함) 기업을 쪼개는 것이 아니라 표준 규제를 통해서 해결할 수 있음.
그러한 표준의 예로 영국 경쟁표준청(https://gov.uk/cma-cases/…)이 제안한
- 검색 알고리즘을 향상시킬 수 있도록 구글에게 타사 검색 엔진이 클릭 및 쿼리 데이터를 제공하도록 요구할 수 있는 권한을 제공
- 구글이 기본 검색 엔진 위치를 독점하는 것을 제한하고, 사용자가 애플 제품의 검색 엔진을 선택할 수 있도록 제공
- 써드파티 서비스들의 유저들이 페이스북의 Contact을 가져올 수 있도록 함

"포드와 GM를 해체해서 자동차를 안전하게 만든 것이 아니라 어떻게 자동차를 만드는 것을 표준화 해서 해결하였다"

 
2020 디자인 툴 설문조사

- 전세계 UX/Product/Web/Graphic 디자이너 4100명 대상
- OS : 맥(3432), 윈(1029), 리눅스(40)

- 브레인스토밍 도구
ㅤ→ 실제 사용(주/보조) : Miro(899/478) > Figma(765/523) > Sketch(176/347) > XD(109/120)
ㅤ→ 평점기준 순위 : Whimsical(4.5) > Miro(4.4) > Mural,Figma(4.2) > Balsamiq (3.9)
ㅤ✓ 올해 Miro가 가장 큰 성장(원격근무 때문)
ㅤ✓ 평균평점 3.5인데 Whimsical이 최고점
ㅤ✓ Mural 은 선택항목에 없음에도 129명이 평가를 했음. 내년을 기대

- User Flow 도구
ㅤ→ 실제 사용(주/보조) : Figma(1036/516) > Miro(598/424) > Sketch(412/394) > Whimsical(248/192)
ㅤ→ 평점기준 순위 : Whimsical(4.5) > Overflow.io(4.4) > Miro(4.2) > Figma(4.0)
ㅤ✓ 약 500여명의 Whimsical 사용자가 매우 만족한다고 답변

- UI 디자인 도구
ㅤ→ 실제 사용(주/보조) : Figma(1975/717) > Sketch(1152/706) > XD(473/526)
ㅤ→ 평점기준 순위 : Figma(4.7) > Affinity Designer(4.5) > UXPin/Framer/Sketch(4.5)
ㅤ✓ 66%의 디자이너가 Figma를 사용(2019년엔 37%). 원격근무 때문에 엄청난 성장

- 프로토타이핑 도구
ㅤ→ 실제 사용(주/보조) : Figma(1702/613) > InVision(407/527) > XD(502/362) > Sketch(370/471)
ㅤ→ 평점기준 순위 : Webflow(4.7) > ProtoPie/UXPin(4.5) > Framer/Axure(4.3)
ㅤ✓ 2017년엔 InVision이 최고였으나, 2019년엔 Sketch였고, 이젠 Figma가 그 자리를 차지
ㅤ✓ 주요도구에 기능이 없을때 ProtoPie 나 Principle 같은 백업도구를 사용

- Handoff (전달) 도구
ㅤ→ 실제 사용(주/보조) : Figma(1416/334) > Zeplin(646/440) > InVision(301/242) > XD(269/152)
ㅤ→ 평점기준 순위 : Zeplin/Figma(4.2) > XD/Abstract(3.9) > InVision(3.7)
ㅤ✓ Figma사용자는 그냥 그걸로 전달
ㅤ✓ 아직 Zeplin 사용자층은 두꺼움 ( 특히 Sketch 와 연결해서 사용하는 경우 )

- 디자인 시스템 관리 도구
ㅤ→ 실제 사용(주/보조) : Figma(1641/304) > Sketch(770/273) > XD(309/144)
ㅤ→ 평점기준 순위 : Figma(4.3) > Zeroheight(4.2) > Storybook/XD/Sketch(3.8)
ㅤ✓ Adobe XD 사용자가 작년 1%에서 11%로 열배 성장

- 사용자 테스팅 도구
ㅤ→ 실제 사용(주/보조) : Zoom(478/273) > Maze(301/197) > UsabilityHub(284/138) > Lookback.io(241/127)
ㅤ→ 평점기준 순위 : Maze(4.2) > Lookback(4.1) > UserTesting(3.9) > Marvel/UsabilityHub(3.8)
ㅤ✓ Zoom은 일반 명사화 되어서 모든 종류의 화상회의를 의미(휴지를 Kleenex®라고 부르는것과 마찬가지)
ㅤ✓ 25%의 응답자가 사용자 테스팅용 도구를 사용하지 않음
ㅤ✓ 심지어 23%의 응답자는 사용자 테스팅 자체를 안한다고

- Versioning 도구
ㅤ→ 실제 사용(주/보조) : Figma(1105/243) > Google Drive(384/398) > Abstract(381/113) > GitHub(218/230) > Dropbox(173/208)
ㅤ→ 평점기준 순위 : GitHub(4.4) > Bitbucket(4.3) > Abstract(4) > Figma/Dropbox(3.9)
ㅤ✓ Git 기반 기술 사용자들이 대부분 4점대 이상의 평점으로 만족
ㅤ✓ Figma가 많은 고통을 해결해주지만, 다른 Asset들의 저장은 불가능해서 그걸 구글드라이브/드롭박스로 해결
ㅤ✓ Abstract 가 디자인 친화적인 브랜칭 시스템으로 강력한 경쟁자

- 전체 평가에서 거의 전분야에서 Figma가 1등(브레인스토밍 도구는 Miro)

- 2021년에 가장 기대되는 도구
Figma(1316) > Sketch(292) > Framer(251) > XD(174) > ProtoPie(163) > Webflow(105)

거의 Figma의 천하통일 이네요. Whimsical 하고 Abstract 는 내년을 기대해봐도 좋을 것 같구요.
여기서 한국분들이 만든 ProtoPie가 같이 거론되는것도 기분 좋네요

 
Vercel의 버추얼 이벤트 스타터킷

Vercel에서 Next.js Conf를 온라인으로 진행했던 사이트를 스타터킷으로 만들어서 배포했다.

이 스타터킷에는 다음 기능이 포함되어 있다.

* 이벤트 등록
* 등록후 발급되는 개별 티켓
* 트랙별 세션 소개
* 발표자 소개
* 스폰서 페이지
* 구인 페이지

웹사이트: https://vercel.com/virtual-event-starter-kit
데모: https://demo.vercel.events/
소스코드: https://github.com/vercel/virtual-event-starter-kit

 
2020-12-14 Google 장애 보고서

장애 시간 (UTC 기준): 2020-12-14 03:45-04:35 (50분)

# 영향
서비스: 구글 클라우드 플랫폼, 구글 워크스페이스
기능: 계정 로그인 및 모든 클라우드 서비스에 대한 인증
지역/존: 글로벌

# 설명
구글 계정 인증을 필요로 하는 모든 구글 클라우드 플랫폼 및 구글 워크스페이스 기능이 전세계적으로 50분간 마비되었습니다. 근본적인 원인은 구글 내부에서 사용하는 자동화된 사용량 관리 시스템에 문제가 발생해 Google의 중앙 인증 관리 시스템(Identity Management System)
의 사용 가능량을 감소시켜 사용자의 요청이 인증된 요청인지 확인할 수 없었고 이에 따라 사용자에게 오류를 제공했습니다.

# 고객 영향
인증이 필요한 GCP 서비스(클라우드 콘솔, 클라우드 스토리지, 빅쿼리, GKE)가 모든 사용자들에게 오류를 반환했을 수 있습니다.
인증이 필요한 구글 워크스페이스 서비스(Gmail, 캘린더, Meet, Docs/Drive 포함)가 모든 사용자들에게 오류를 반환했을 수 있습니다.

# 추가 정보
많은 내부 사용자 및 도구에서 비슷한 문제가 발생해 장애가 생긴 외부 통신에 딜레이가 생겼습니다. 내부적으로 조사를 마치는대로 이 장에애 대한 분석을 발표할 예정입니다.

 
Cloudflare, 빠른 시간 안에 빠른 사이트를 빌드할 수 있게 해주는 Cloudflare Pages 공개

Cloudflare Pages는 프론트엔드 개발자들이 협업하며 웹 사이트를 배포할 수 있게 해주는 JAMstack 플랫폼입니다.

Vercel 짭(...) 느낌인데 Cloudflare에서 개발했다는 것이 중요한 부분이라 생각합니다.
- 전세계 Cloudflare edge에 배포됩니다. (Workers와 동일)
- (당연히) TLS를 기본적으로 지원합니다.
- HTTP/3, QUIC, image compression 등 Cloudflare에서 이미 제공하던 기능을 모두 지원합니다.
- Cloudflare Access integration을 사용할 수 있습니다.
cloudflare workers까지 같이 붙여 사용할 수 있다면 정말로 좋을 것 같네요.

 
3000개 이상의 아이디어

평범한 사람들이 낸 아이디어 모음입니다.

600개까지 읽어 봤는데.
사람들은 별에별 아이디어를 다 내는군요

대충 맘에(?) 드는 것을 정리해봤습니다.(크롬 번역입니다)
-------
모든 Google 검색에서 Pinterest 링크를 제거하는 Chrome 플러그인

백 스페이스를 누를 때마다 팩맨이 텍스트를 먹기 시작하는 텍스트 편집기입니다.

불안한 사람들을위한 AI 크롬 확장. 모든 소셜 네트워크에서 불안하게 만드는 게시물에
플래그를 지정합니다. 신고하는 게시물이 많을수록 AI가 자동 차단 상태가됩니다.

디자이너를위한 Stackoverflow.

기사의 단어 수를 알려주는 Chrome 확장 프로그램으로 읽을 시간이 있는지 알 수 있습니다.

배경 음악을 추가 할 수있는 Chrome 탭 기능

TikTok 동영상을 자동 차단하는 Chrome 확장 프로그램입니다.

원래 암호를 만들 때 암호 요구 사항이 무엇인지 알려주는 크롬 확장 프로그램입니다

뮤지션을위한 github.

운동화 식별을위한 Shazam.

외로운 노인을 자신의 기술을 배우려는 사람들과 연결하십시오.
선택이 주어지면 X에 대해 40 년 이상의 경험을 가진 사람으로부터 X를
더 잘하는 방법을 배우기로 선택합니다. 제 생각에는 때때로 경험이
종이보다 더 가치가 있다고 생각합니다.

음식에 대한 Shazam. 식당에서 식사하는 음식을 사진으로 찍고
레시피와 재료를 보여주는 앱입니다.

일일 스크럼 앱. 이 앱을 사용하면 비슷한 프로젝트에서 작업하는
사람들을 찾을 수 있습니다. 아이디어를 서로 튕겨 내고 심지어 협업 할 수도 있습니다.

보관 용 에어 비앤비 (창고).
장소 (결혼식, 파티 등)를위한 에어 비앤비
노숙자를위한 에어 비앤비. 주택 소유자가 노숙자 목록을 게시하도록 허용합니다.

이유식 스캐너 앱. 이 앱은 음식이 제공하는 혜택과 아기에게 안전한지 알려줍니다.

죽은 사람들이 자신에 대해 이야기하는 QR 코드 비석 및 가상 투어.

음식이 만료일에 가까워지면 알려주는 앱입니다. 음식을 사용하고 낭비를
막기위한 창의적인 레시피 아이디어와 함께 2 ~ 3 일 또는 설정된 시간이 남으면 앱에서 알려줍니다.

기프트 카드를 다른 기프트 카드로 교환 할 수있는 앱 또는 웹 사이트

스타트 업을위한 IMDB. 시작 아이디어를 검색하고 이전에 수행되었는지
여부와 성공 또는 실패인지 확인하는 기능. 팀 규모, 영업, 통찰력 등의 기능이 포함됩니다.

온도 표시기가있는 아기 젖병.

모든 스마트 폰의 표준이므로 911에 전화를 걸면 긴급 블랙 박스 모드로 들어갑니다.
배터리를 연장하기 위해 필수적이지 않은 프로세스를 종료하고 전면 및 후면 카메라에서
비디오 녹화를 시작하며 생체 인식 + 특수 암호가 입력 될 때까지 전화기를이 모드로 잠급니다.

요새 많이 하는 리프레쉬 배송 서비스에서 소비자가 구매한 제품의 유통기한도 같이 관리해서 따로 확인하고 알려주는 서비스를 하면 좋겠네요. 냉장고 재고 = 리프레쉬 배송 재고가 되면 lock-in 효과가 있지 않을까요?

QR코드비석 좋네요. 요즘은 추모공원에 많이들 안장하니, 거기서 호스팅하는 방법도 좋겠네요.

 
Facebook IQ의 2021년 핵심 주제 및 트렌드 보고서 [40p PDF, 한국어]

페이스북과 인스타그램에서 인기를 끌었던 대화 주제를 탐색하고, 이러한 주제가 영향을 미치는 습관과 관심사들을 조사
1. 교육 및 행동
- 인식에서 행동으로의 전환(미국)
- 독서의 즐거움(호주)
- 온라인 교육의 부상(브라질)
2. 라이프스타일
- 텃밭 가꾸기(영국)
- 캐주얼 문화(미국)
- 내 집 인테리어(캐나다)
3. 기술
- 연결 관계 확장(인도)
- 네오 뱅킹(멕시코)
- 하이브리드 쇼핑(호주)
4. 여가
- 모두를 위한 디지털 아트(브라질)
- 나만의 패션 아이템 만들기(영국)
- 육상 교통의 재발견(독일)

 
meli - 스태틱 사이트 호스팅 플랫폼 오픈소스

"오픈소스로 Netlify 비슷한 서비스 운영하기"
- 한개의 도메인에서 다수의 Static/Frontend 사이트 운영가능
- 조직/팀/사용자/사이트 무제한 생성 가능
- 사이트당 커스텀 도메인 지원
- 자동 HTTPS 인증서 발급(Letsencrypt 또는 사설 ACME 서버 운영)
- 운영 릴리즈(Primary) 와 브랜치(Preview) 릴리즈 지원
- 접속 범위 제한 가능한 API
- 웹훅 지원
- Slack, Mattermost, Email 연동
- Docker Compose 로 쉽게 배포 및 업그레이드 가능
- 암호로 보호된 페이지 지원
- Caddy 웹서버 + TypeScript 로 구성된 오픈소스

사내에서 간단한 페이지들을 올리는 용도로 사용하기에도 괜찮아 보입니다.

→ Caddy 2 릴리즈 - 성능 좋고 간편한 HTTPS 자동 지원 웹서버 https://news.hada.io/topic?id=2028

스태틱 사이트에서 벗어나서 좀 더 기능이 있는 페이지를 한서버에서 여러개 호스팅 한다면,
CapRover 가 더 나을수도 있습니다. CapRover 써보니 꽤 좋더군요.

→ CapRover - 나만의 PaaS 만들기 https://news.hada.io/topic?id=2241

 
인스타그램 미디어 받기 단축어

- 인스타그램에서 포스트/스토리/igtv의 사진과 동영상을 최고 품질로 받아주는 단축어(iOS Shortcuts)
- 아이폰/아이패드의 앱이나 Safari 에서 사용 가능

아이폰에서 트위터 미디어 받기 단축어 https://news.hada.io/topic?id=2920

 
2020 Web Almanac - 웹의 현재 보고서

매년 발간. 분야별로 엄청 방대한 보고서
- 7.5M개의 웹사이트, 31TB의 데이터를 처리해서 만든 지표
올해 새로 들어간 섹션은 Jamstack, Privacy, Capabilities

1 페이지 콘텐츠: CSS,JS,마크업,폰트,미디어,써드파티
2 UX: SEO,접근성,퍼포먼스,개인정보보호,보안,모바일웹,기능,PWA
3 콘텐츠 퍼블리싱: 이커머스,CMS,JamStack
4 전송: 페이지 크기,압축,캐슁,리소스 힌트,HTTP/2

Jamstack
- 스태틱 사이트가 데스크탑/모바일 0.4%/0.27% (2019) 에서 0.72% / 0.68% (2020) 으로 성장
- Next.js (72.5%), Gatsby(14.8%), Hugo(6.6%)

Privacy
- 92%의 사이트가 트래커 사용
- Google Analytics(65.9%), Facebook (30.9%) 상위 10개중 8개가 구글(웹폰트,더블클릭,태그매니저등)
- 상위 100개 트래커중 56개의 트래커가 광고, 11개가 CDN, 사이트 분석용 9개

 
Rust Survey 2020 결과

- 8323명 14개언어(한국어 1.2%) 응답
- 실제 업무에서 사용 : 안씀 53.3% > 파트타임 26% > 풀타임 13.8%
- Nightly 사용 빈도는 계속 하락중 ( 30.5% → 28% )
- Rust 코드 사이즈 : 1k~10k LOC 31.4% > 10k~100k 31% > 모름 14.3% > 100k 이상 13.3%
- 상호운용성 : C++ 21.7% > C 17.6% > Python 16.9% > JavaScript 11.2% > Go 10.3%
- 배우기 어렵다고 느끼는 것 : Lifetimes > Ownership > Macros > Trait Bounds > Async > Unsafe > Concurrency > FFI > Modules
- 과반 이상이 속도 및 라이브러리 지원이 좋아지고 있다고 얘기함

 
페이스북 : iOS14의 정책은 작은 비즈니스를 해치고 있다

애플의 변경된 보안정책을 강하게 비판하는 글을 자사 블로그에 게시

"페이스북이 작은 비즈니스를 대변해서 이야기 합니다"

1. 애플이 iOS14로 강제하는 정책은 수익을 위한거지, 개인정보를 보호하려는게 아님
ㅤ→ 기업이 수익을 위해 구독 및 기타 인앱결제로 전환하게 만들어 애플이 더 많은 수익을 내고, 무료 서비스들은 유료화 하거나 사업을 접어야 함

2. 이미 판데믹으로 피해보고 있는 중소기업과 퍼블리셔들에게 피해를 주고 있다
ㅤ→ 광고예산을 효율적/효과적으로 사용하는 것에 영향을 미쳐서, 개인 맞춤형 광고가 없으면 중소기업들은 매출의 60% 이상이 감소할수 있음

3. 애플 자신들은 룰을 지키지 않음
ㅤ→ 애플의 개인 맞춤형 광고 플랫폼은 iOS 14 정책이 적용되지 않음

4. 우리는 애플의 접근 방식에 동의하지 않지만, 그들에게 요청하는 것 밖에는 대안이 없음
ㅤ→ 그렇게 하지 않으면, 애플의 보복을 받아 우리가 지원하려는 비즈니스에 더 큰 피해를 줄수 있으며, 우리는 그 위험을 감수할 수 없음

* 페이스북은 Epic Games 가 애플과 벌이는 소송관련해서, 애플의 정책이 어떻게 사람들과 기업에 악영향을 미치는지에 대한 문서를 만드는데 도움을 줄 것

"(에픽처럼 앱이 내려가는걸 감수할수는 없지만, ) 애플은 나쁘니까 다들 한 목소리로 비판해줘"
라는걸 굉장히 길게 적은 글이네요..

개인정보를 엄청나게 퍼나르는 페북이 아니라 다른 기업이 한 말이었으면 진정성이 있었을텐데요.

오늘 페이스북은 해당내용을 뉴욕타임스, 워싱턴포스트, 월스트릿저널에 전면 광고로 내보냈습니다.

https://theverge.com/2020/12/…

 
AWS CloudShell 공개 - 클라우드 관리용 브라우저 쉘

- 웹브라우저에서 AWS 자원에 커맨드라인 접근 가능
- 자동 인증된 채로 aws cli 및 node,python,jq,git,npm,pip 등 기본 사용가능
- 항상 최신 버전의 Amazon Linux 2 환경 적용
- 리전당 $HOME 폴더에 1GB 용량 제공. 스크립트 및 각종 파일, 도구등 저장 가능
- 별도 비용은 없음
- 다크테마 및 폰트 크기 변경가능
- 멀티세션 지원 : 탭 및 가로세로 분할
- 파일 업로드/다운로드 가능
- 아웃바운드 네트웍 접근만 지원
ㅤ→ Private VPC 서브넷 안의 리소스에 접근은 아직 불가능 하지만 지원 예정
- 리전당 최대 10개의 동시 세션
- 아직 서울 리젼은 지원안함

 
DB Diagram - 온라인 ERD 편집기

- 간단한 DSL 코드(DBML)를 작성하면 ERD를 그려주는 도구
- ERD는 줌인/아웃 및 드래그해서 편집 가능
- PostgreSQL/MySQL 스크립트 Import 가능
- PDF/PNG/SQL Export
- Rails(schama.rb) 직접 Import / Django(models.py 를 DBML 로 변환)

* DBML - https://github.com/holistics/dbml
* 이렇게 작성한 DBML 코드는 DBDocs 를 통해서 데이터베이스 문서 사이트로 쉽게 변환 가능 - https://dbdocs.io/

 
JSweet - Java to JavaScript 트랜스파일러

- 자바코드로 웹 어플리케이션을 개발할수 있게 만들어주는 도구
- Java → TypeScript → JavaScript
- JSweet + jQuery/Angular2/ThreeJS/NodeJS 등이 가능
- J4TS로 Java API도 그대로 사용 가능
- Eclipse/Maven/Gradle 플러그인 제공
- EcmaScript 3~6 및 모듈 지원

주제와 직접 상관은 없지만 이러한 접근을 볼 때마다 하나의 언어로 다 하고 싶다는 열망은 끝없이 계속되는구나 싶어요 ㅎㅎ
ms/닷넷 쪽에서도 예전부터 c# 만으로 다 할 수 있게 하려는 시도가 많았고 지금은 blazor (to wasm) 로 다시 계속되고 있죠
nodejs 는 아예 자바스크립트로 서버 개발하면 좋아! 였고요.
그러고보니 결국은 js 가 킹인가요 ^^;

반대로 js가 그만큼 쓰기싫은 언어(java보다 더)라는 뜻도 내포하고 있는건 아닐까요? 그냥 js쓰는게 싫어서 다른언어로 쓴걸 js로 트랜스파일하는 거죠.

 
Ampere Altra - 2x 80코어 ARM 서버 CPU 리뷰

- Arm의 Neoverse-N1 CPU 플랫폼을 적용한 상용 CPU
ㅤ→ 아마존의 Graviton2 와 동일
- 2U 랙서버에 2개의 Altra Q80-33 프로세서를 내장. 각각 80코어
- AMD EPYC 7742 CPU와 벤치마크 성능이 비슷한데 가격은 42% 저렴
ㅤ→ 워크로드에 따라 둘이 엎치락뒤치락
ㅤ→ EPYC 7742 $6950 vs. Q80-33 $4050

- 하지만 EPYC 7742는 15개월 전에 나온거고, Zen3 기반이 되면 20% 정도 성능 향상을 기대해서 벤치결과는 또 달라질 것
- 또한 Altra 는 내년에 128코어 버전을 내놓을 예정, 거기다 2022년에 5나노 공정을 도입하면 다시 50%정도의 성능향상을 기대

* 아마존 Graviton2는 AWS에서만 쓰겠지만, Altra는 상용이라 Oracle등 다른 클라우드 벤더들이 사용하게 될 것
* Ampere는 인텔의 전 사장이었던 르네 제임스가 차린 회사로, Arm 이 투자도 했음

AWS의 경우 RDS, Elsaticache 등 서비스 형태로 제공하는 곳에서도 Graviton 인스턴스를 사용할 수 있게 되어 있습니다. 일반 애플리케이션의 경우 충분한 테스트 기간이 필요하고 혹시나 하는 불안함에 쉽게 넘어가지 못하는 경우가 많지만 이런 DB 서비스의 경우 이미 AWS에서 검증한 상태에서 릴리즈한 것이고 같은 가격에 훨씬 좋은 성능의 DB 인스턴스를 사용할 수 있으니 많이 넘어가는 추세라 들었습니다. 대부분 웹 서버의 부하는 웹 서버 자체보다는 DB에서 발생하니 DB 서버만 조금씩 교체해줘도 꽤 큰 파이가 될 것 같다고 생각합니다.

https://news.hada.io/topic?id=3402
그리고 이건 얼마 전 뉴스인데요. 트위터가 타임라인 기능을 AWS ARM 인스턴스로 이전할 것이라 밝힌 바 있습니다. 사실 요즘 자주 쓰이는 웹 서버 언어 보면 거의 대부분이 아키텍쳐를 크게 가리지 않는 언어(Java, .NET, Node, Python 등)인데 이런 언어들만 사용하려는 아키텍쳐를 stable하게 지원하고 있다면 큰 걱정 없이 넘어갈 수 있죠.

AWS 클라우드 프로세서 인스턴스 점유율 변화 (Intel vs. AMD vs. Graviton) https://news.hada.io/topic?id=3428

AWS에서도 ARM 장비인 Graviton 이 10%가 넘어갔다고 하는데, 서버에서도 ARM의 진격이 예상되네요.

 
Microsoft, Azure 서버와 Surface PC를 위한 자체 ARM 칩 개발 중

마이크로소프트가 Azure 클라우드 서비스에 사용할 ARM 기반 칩을 개발 중이라고 합니다.

AWS 는 어디랑 손잡았다고 했었는데... 애플이랑 MS가 손잡으면 재미있을곳 같다고 생각했지만 직접 하는군요

직접 만들었을 때, 사서 쓰는 것보다 비용을 훨씬 많이 줄일 수 있고 외부 로드맵(예. 인텔)에 개의치 않고 원하는 시기에 원하는 프로덕트를 낼 수 있는 것이 attractive한 포인트라고 생각합니다. AMD가 아무리 AWS, Azure에 싸게 CPU를 계약해줘도, 성능만 커버할 수 있다면 직접 만드는 게 비용적인 측면에서 가장 효율이 좋으니까요.

수직계열화의 장점이긴 하죠. MS 도 각종 소비자 기기부터 클라우드까지 다 하고 있으니 직접 개발의 이점이 분명히 있긴 할 것 같아요.
그래도 뭔가 감성적으로? MS 의 집중 분야와 애플의 집중 분야는 좀 차이가 난다는 느낌을 가지고 있어서 두 회사가 서로 협력하면 윈윈을 하지 않을까 하는... ㅎㅎㅎ