[GN#66] 협업기술엔 CRDT가 미래입니다

2020-10-05 ~ 2020-10-11 사이의 주요 뉴스들
Google Wave는 이메일+협업문서작성+채팅 등이 섞인 독특한 도구였습니다. 2009년 구글I/O에서 발표해서 처음에는 큰 관심을 받았지만, 1년 조금 넘게 운영하고 문을 닫았고요. 아파치 인큐베이터로도 옮겨졌지만, 그마저도 2018년에 공식적으로 중단되어 사라졌는데요. 개발자였던 Joseph Gentle 이 구글웨이브와 구글닥스에서 사용하는 OT(Operational Transform) 기술보다 CRDT(Conflict-free Replicated Data Types) 가 더 미래지향적이라는 글을 적어서 공개했습니다. 최근에 많은 분들이 이용하는 Figma 와 홍영택님을 비롯한 한국분들이 같이 개발 중인 Yorkie 도 이 CRDT 기술을 사용하고 있습니다. 댓글에 전문번역 글 링크도 있고, Automerge 라이브러리 및 CRDT 설명 비디오등 다른 참고 링크가 많습니다. 협업기술의 현재 상태를 알고 싶으시거나, 프로젝트에 협업기능이 필요하신 분들은 꼭 읽어보시기 바랍니다.

AI 분야의 현재와 미래를 조망할수 있는 보고서 "State of AI 2020", AI 와 Data 관련 업체들을 한 장으로 정리한 지도 "The 2020 Data & AI Landscape" 가 비슷한 시기에 같이 공개되었습니다. 두개 문서의 주요 부분만 봐도 현재 AI 분야가 어떻게 발전하고 있는지 확인 가능합니다.

긱뉴스에서 제가 주로 다루는 뉴스 중에 하나가 유명 소프트웨어의 오픈소스 대체제(Alternative) 들입니다. 비용이나 보안 이슈 때문에 유명 도구를 직접 쓰지 못하는 경우도 있고, 오픈소스를 통해서 유명 소프트웨어들이 어떤식으로 구성되어있는지를 배울 수 있다고 생각해요. 이렇게 대체제가 나온다는건 그 소프트웨어가 널리 쓰이고 있다는 의미이기도 하니까 이를 통해서 요즘 어떤 도구들을 많이 사용하는지 트렌드를 살펴보는 것도 가능하고요. 이번주에는 Google Analytics 대체제인 Plausible, Confluence 대용인 BlueSpice, IFTTT/Zapier 클론인 ActionsFlow 등을 소개 했습니다. 이와 관련해서 예전에 소개해 드렸던 오픈소스 Rudderstack 은 Segment 의 대체 오픈소스 였는데요. 그 Segment 가 Twilio 에 인수되었다는 기사도 나왔습니다. 주로 사용하시는 도구의 오픈소스 대체제가 있다면 긱뉴스에 소개해 주세요.


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

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


제가 틀렸었어요. CRDT가 미래입니다.

구글 Wave 개발자가 얘기하는 Conflict-free Replicated Data Types 이야기
ㅤ→ CRDT : 실시간 협업도구에서 동시 편집을 지원하는 자료 구조
- Wave는 OT(Operational Transform) 기반 : 모든 변경에 대한 시간순 목록을 저장. 실시간 git-rebase 와 같음
- OT의 문제중 하나는 중앙 집중식 서버/DB가 필요하다는 것
ㅤ→ 구글 닥스(역시 OT기반) 문서에 사람이 몰릴 때 '이 문서는 과부하 되어 편집이 불가능 합니다' 가 나오는 이유가 아마도 이거일듯?
ㅤ→ 문서를 분할하거나 DB 트랜잭션에 재시도 루프를 통해서 회피는 가능 (Serialization문제를 DB로 이관해버림)
ㅤ→ 하지만 완벽하지 않음. Wave는 여러 사람이 동시에 편집했고 잘 동작은 했지만 버그가 많았음. 너무 복잡
- CRDT 의 부상
ㅤ→ Wave가 사용한 알고리즘은 1995년에 발명 된 것. 계속 OT가 잘 동작하도록 연구했지만, CRDT가 더 전도 유망
ㅤ→ CRDT는 다른 접근법을 취해서, 중앙DB없이 실시간 편집이 가능
ㅤ→ 예전에 문제라고 제기했던 속도/용량/기능/복잡도가 모두 개선 됨
ㅤㅤ* 속도 : 요즘의 CRDT (Automerge / RGA or y.js / YATA) 들은 log(n) 수준의 조회 가능
ㅤㅤ* 용량 : Martin 의 Columnar 인코딩은 문서 크기의 1.5~2배 크기 정도로 저장이 가능.
ㅤㅤ* 기능 : 이론적으로는 Rewinding 및 replaying이 가능. 물론 아직 구현한 사람은 없음
ㅤㅤ* 복잡도 : 구현체 크기가 OT보다 CRDT가 크긴 하겠지만 큰 차이 없음
ㅤ→ 위 개선 사항들은 Automerge 에서 곧 제공될 예정

- 실시간 편집에 있어서, 슬프지만 OT 와 관련 작업들은 더이상 필요없을 것
ㅤ→ OT의 모든 기능이 CRDT에 넣을 수 있지만, 반대는 불가능함
ㅤ→ OT의 장점은 중앙 집중식 소프트웨어에 적합하다는 거지만, 분산 알고리즘은 중앙 집중방식에서도 잘 작동함
ㅤ→ WASM에서 실행되는 고품질 CRDT가 JS의 OT 구현보다 빠를 것

- 이제는 가볍고 빠른 CRDT를 만들어야 할 시점.
ㅤ→ 학문적인 부분은 거의 완성되었고, 이제 훌륭한(kick-ass) 구현체가 필요한 시점

글에 링크된 Automerge 개발자 Martin Kleppmann 의 동영상 "CRDTs: The Hard Parts" 가 정말 설명이 좋네요.
초반에 OT랑 CRDT를 잘 비교해서 설명해 줍니다. 뒷 부분은 CRDT 구현에 관한 깊은 얘기구요.
https://www.youtube.com/watch?v=x7drE24geUw

* Automerge : https://github.com/automerge/automerge
JS로 협업 도구를 만들때 사용하는 CRDT 라이브러리

Towards collaboration system: OT 알고리즘에서 CRDT 시스템으로
https://deview.kr/2013/detail.nhn?topicSeq=66

국내 발표중에서는 거의 유일하게 CRDT 얘기를 다룬 내용이네요.

 
State of AI 2020 보고서 [구글 Slide, 183P]

인공지능의 현재와 미래를 폭넓게 조망한 보고서
- Research : 현재까지의 기술혁신과 능력
- Talent : AI 인력의 공급,수요 및 집중 분야
- Industry : AI를 위한 상업적 응용 분야 및 비즈니스 임팩트
- Politics : AI관련 규제, 경제적 의미 및 AI의 지정학(Geopolitics)
- Predictions : 앞으로 12개월동안 일어날 일과 2019년 보고서의 퍼포먼스 검토

 
The 2020 Data & AI Landscape

FirstMark의 VC인 Matt Turck가 이미지 한장으로 정리한 2020년 데이터 & 인공지능 업계 지도와 설명

- Data Infra 주요 트렌드
ㅤ→ 최신 데이터스택이 주류로 : Snowflake,BigQuery,RedShift,DBT,Fivetran,Stitch,Looker..
ㅤ→ ETL vs ELT
ㅤ→ 데이터 엔지니어링의 자동화
ㅤ→ 데이터 분석가의 부상
ㅤ→ 데이터 레이크와 데이터 웨어하우스의 통합? = Data Lakehouse 또는 Unified Analytics Warehouse
ㅤ→ 복잡도는 여전 :
ㅤㅤ⇨ 실시간 스트리밍 기술에 대한 요구 증가
ㅤㅤ⇨ 오케스트레이션 엔진 : Airflow 와 Luigi 에서 시작해서, 차세대 엔진들인 Prefect, Dagster, Kedro, Metaflow 등
ㅤㅤ⇨ Data Lineage & DataOps : LinkedIn (Datahub), WeWork (Marquez), Lyft (Admunsen), Uber (Databook)

- Analytics & Enterprise AI 주요 트렌드
ㅤ→ 데이터 과학 및 머신러닝 플랫폼(DSML)의 호황기
ㅤ→ ML이 실제로 배포 및 임베드 됨
ㅤㅤ⇨ MLOps
ㅤㅤ⇨ AI Governance, AI fairness
ㅤㅤ⇨ Decision Science (optimization, simulation)
ㅤ→ NLP의 해 : GPT-3, BERT, ELECTRA

- 주요 투자, 엑싯, IPO
ㅤ→ IPO : Snowflake, Palantir, Datadog, Sumo Logic, Dynatrace, Cloudflare
ㅤ→ M&A : ARM(NVIDIA), SignalFX(Splunk), Habana Labs(Intel), Fitbit(Google), Moovit(Intel)
ㅤ→ 작지만 흥미로운 인수들 : MapR(HPE), HortonWorks(Cloudera), Arcadia Data(Cloudera), Redash(Databricks)..

 
구글 PSE - 프로그래밍 가능한 검색 엔진

- 구글 검색을 커스텀하여 자신의 사이트에 맞게 검색엔진 구축 가능
- 애드센스로 수익 창출 가능

예전에는 Custom Search Engine 이라고 불렀던거 같은데 이름이 바뀌었나 보네요.
긱뉴스도 이 PSE 를 이용하고 있습니다.

검색할 범위를 도메인 및 URL 패턴으로 지정이 가능해서 원하는 사이트들만 모아서 검색하게 지정이 가능합니다.

 
Seeing Theory - 확률과 통계 기초

Brown 대학교에서 D3.js로 만든 대학 입문 수준 인터랙티브 통계학 교재
"A visual Introduction to probability and statistics"
전체코드는 깃헙에 공개되어 있고 교육목적으로 자유롭게 사용 가능

1. 기본 확률
2. 복합 확률
3. 확률 분포
4. 빈도주의 추론
5. 베이지안 추론
6. 회귀 분석

 
bit - 자동완성 지원하는 Git 클라이언트

- 팝업형식으로 명령 및 flag 들을 설명과 함께 추천
- add/checkout 시 파일과 브랜치명 자동완성
- 자신의 rebase 워크플로우를 bit sync 명령으로 기록해서 간단하게 사용
- git과 완벽히 호환되어서 그냥 대체해서 사용해도 됨
ㅤ→ 기본은 "bit 엔터" 치면 팝업식 자동완성 메뉴를 보여주는 모드로 동작
- git-extras 의 release / info 등 명령도 지원
- Go 오픈소스. 맥/리눅스/윈도우 지원 ( 탭 자동완성은 맥/리눅스/우분투에서만 가능 )

 
생산성을 높여주는 rust command line 유틸리티

du 대체 - dust and dutree
time 대체 - hyperfine
fzf 대체 sk
sed 대체 sd
top/htop 대체 ytop and bottom

요즘 유행하는 커맨드라인 도구 - https://news.hada.io/topic?id=793

한번에 설치하기
$ cargo instal du-dust dutree hyperfine skim sd ytop bottom

 
Plausible - 셀프호스트 가능한 Google Analytics 대체제

- 쉽고 빠른 설치. 개인정보 수집 안함
- 목표 설정 및 전환 추적 지원
- 쿠키를 사용하지 않아서 GDPR,CCPA,PECR 등 개인정보 보호 규정 준수
- 웹통계를 Public에도 공개 가능하고, 특정인(Client 등)에게만 암호걸어서 공개 가능
- GA 스크립트보다 훨씬 작은(45x) 스크립트
- 주간/월간 보고서 메일 전송
- Elixir/Phoenix/PostgreSQL/TailwindCSS 등을 이용한 오픈소스로 셀프호스트는 무료, 호스팅 버전은 트래픽당 비싸지는 유료모델

Google Analytics 와의 비교 페이지 https://plausible.io/vs-google-analytics

SaaS 웹페이지에 꼭 넣어야 할 정보들 https://news.hada.io/topic?id=2927 에서 얘기한대로
Alternatives 와 vs. 단어를 이용한 비교 페이지가 잘 만들어져 있네요.

 
BlueSpice - 오픈소스 Confluence 대체제

- MediaWiki (PHP + MySQL) 기반으로 편의성 및 비즈니스 기능을 추가한 오픈소스
- 최적화된 디자인
- 위키피디어식 마크업 편집기와 비쥬얼 텍스트 편집기 지원
- ElasticSearch 기반 고성능 검색
- 보안 및 권한 관리, LDAP 연동
- MediaWiki의 150여개 확장 그대로 사용 가능

 
ActionsFlow - GitHub Actions 기반 IFTTT/Zapier 클론

- 월 2천분 무료인 GitHub Actions 를 이용한 워크플로우 오픈소스
- Slack, RSS, 웹훅, Typeform, Email, Telegram, 트위터등 트리거 제공
- 설정은 GitHub Actions 와 같은 포맷을 활용하며, 모든 기능 활용 가능
- 5분단위로 트리거 실행 가능
- MongoDB 쿼리 지원으로 필터링 가능

 
Twilio, Segment를 3.6조원($3.2B)에 인수

- Twilio 의 시총은 약 51조원 (2016년 IPO)
ㅤ→ API 로 문자,음성,비디오 콜을 처리해주는 클라우드 통신 플랫폼 회사
- Segment 는 2만개의 고객사를 가진 분석데이터 통합 플랫폼 회사
ㅤ→ 최근에 1.7조원 가치로 2천억원 시리즈 D펀딩 받음

Twilio 가 SendGrid, Segment 등 시장에서 개발자들에게 인정받는 회사들만 하나둘씩 다 사들여서 커지고 있네요.
원래 Twilio 가 API 와 문서화 관련해서는 잘 한다고 소문난 회사인데, 주식을 사야하는게 아닌가 싶습니다.

제가 Segment 를 좋아한다고 예전에 적은 적이 있는데..

RudderStack - Segment의 오픈소스 대체제 https://news.hada.io/topic?id=1759
ㅤ→ 이 글에 제가 Segment 설명을 조금 달아 뒀습니다. 무슨 회사인지 참고하세요

Segment 는 4명이 공동창업을 했는데, 그중 한명인 캘빈 프렌치 오웬이 CTO 로 아래 글을 썼습니다.
ㅤ→ Segment CTO의 "B2B제품을 판매하는 법 https://news.hada.io/topic?id=2104

그리고 또 다른 공동창업자인 Ian Storm Taylor 는
ㅤ→ 스태틱 사이트 생성기 Metalsmith https://metalsmith.io/
ㅤ→ 텍스트 에디터 엔진 Slate http://slatejs.org/
를 비롯해서 꽤 많은 오픈소스를 만든 유명 개발자입니다.

또 다른 공동창업자인 피터 라인하르트가 Quora 에 남긴 "Segment 는 뭔가요?" 의 답변
https://www.quora.com/What-is-Segment-io-all-about

당신이 붙여야할 단 하나의 분석도구 입니다. 여러개의 분석도구를 통합하는 시간을 줄여주고 새로운 도구를 쉽게 사용가능하게 해줍니다.

1. 당신의 데이터를 Raw 포맷으로 저장가능하게 해 줍니다. 대부분의 서비스는 자신들만의 포맷으로 저장하는데, Segment 의 Raw Log는 당신의 내부 프로젝트에 사용도 가능하고, 이 로그 데이터를 이용해서 다른 신규 서비스에서 즉시 "Replay" 해볼수도 있습니다. 새로운 분석도구를 붙이고, 그 데이터가 쌓일때까지 기다리지 마세요.

2. 어떤 서비스를 사용해야할지 추천합니다. 저희는 어떤 추천수익을 받는게 아니기 때문에 당신의 상황과 비용에 맞는 적합한 도구를 추천할수 있습니다. 분석도구 회사들의 세일즈팀은 그들의 문제를 숨기지만 우리는 그럴 필요가 없습니다. 우리는 이런 문제들과 각 도구의 장단점을 모두 이해하는 유일한 팀 입니다.

 
Darling - Liunx용 MacOS 호환 레이어.

Linux의 WINE과 같은 MacOS의 호환 레이어가 공개되었습니다. 하드웨어 가상화가 아니라, 호환 API 레이어를 제공해주기 떄문에 가상화에 비해 빠릅니다.

현재 기초적인 GUI 프로그램이 특수한 설정과 함께 구동 가능하고, 향후에는 안드로이드에 iOS 프로그램이 도는 걸 목표로 한다고 합니다.

이름의 어원은 애플의 'Darwin' 커널과 Linux 커널이 합쳐졌다는 의미로 Darling이라고 지었다고 합니다. 홈페이지에는 WSL이 안 된다고 적혀 있는데, 최근에 올라온 Pull Request의 댓글에선 몇몇 설정과 함께 WSL ( 물론 2 ) 에도 된다고 하네요.

사실 승자는 Linux일지도..

https://anbox.io/

리눅스에 나와있는 호환 레이어만 다 모으면 왠만한 OS는 다 쓸 수 있겠군여. 하지만 데스크톱 환경이 마음에 안들어서 OTL

https://github.com/darlinghq/darling/issues/260#issuecomment-530184521

홈페이지에서는 아직 'WSL에서는 안 됨' 이라고 적혀있지만, 몇몇 유저들이 WSL 커널 수정을 통해서 돌릴 수 있는 가이드를 제공해주고 있습니다.

 
DevUtil - 개발자용 도구 모음 for macOS

종종 웹에서 검색해서 사용하는 도구들을 모아놓은 오프라인 앱
클립보드 내용에 따라 알아서 맞는 도구를 자동 선택
글로벌 단축키 지원
- Unix Time 변환
- URL Encode/Decode
- JSON Formatter/Validator
- JWT Debugger
- Base64 Encode/Decode
- Query String Parser
- HTML Entity Encode/Decode
- Backslash Escape/Unescape

* 유료 오픈소스 모델 : 소스를 받아서 빌드하는건 무료. 바이너리로 다운받는건 유료($9)

CyberChef에서도 비슷한 기능을 제공합니다. 굉장히 파워풀한 툴입니다.
https://gchq.github.io/CyberChef/

 
구글 크롬, HTTP/3 와 IETF QUIC 지원 시작

- QUIC 프로토콜은 구글이 2013년에 만들었으나, IETF에 제안한후 별도로 발전
- Google QUIC(Q050) , IETF QUIC(h3-29) 두개가 비슷하지만 달라서 지금까지만 크롬은 구글 QUIC만 지원
- IETF 버전이 더 성능이 좋아져서 양쪽을 같이 지원 시작
ㅤ→ 구글 검색 레이턴시 2% 감소
ㅤ→ 유튜브 버퍼링 시간 9% 감소
ㅤ→ 전송량도 데스크탑 3%, 모바일 7% 증가
- 크롬 m85 버전은 아직 IETF QUICK 0-RTT 를 지원 안해서, 몇달내로 이거 지원되면 성능은 더 좋아질 것

 
Volta - JS 개발도구 설치 및 관리 툴

- nvm 의 훨씬 빠른 대체제
- node,npm,yarn 같은 JavaScript 개발 툴체인을 관리
- Rust로 작성된 빠른 실행파일
- 개발팀에서 사용하는 도구를 패키지매니저, Node 런타임, OS에 상관없이 한번에 설치하고 환경 통일
ㅤ→ package.json 에 내역을 관리하고 volta install 만 치면 끝
- 프로젝트 단위 버전 스위칭

NVM의 경우 .nvmrc 에 저장이 되는데 Volta 는 기본적으로 package.json 내에 저장
ㅤ→ 소스랑 같이 저장되니 개발팀이 같은 환경을 세팅하는데 더 편리함
NVM이 초기 시작할때 0.5~2초쯤 딜레이가 있는데 Volta 는 빠름
특정 버전을 Pin 해두면 자동으로 해당 버전을 사용하도록 스위치해줘서 편리

 
DigitalOcean, App Platform 공개

- Kubernetes 기반으로 간단히 App을 배포 가능한 PaaS
- SSL 인증서 부터 빌드/배포/스케일링등 모든것을 처리해주는 Managed 플랫폼
- Python, Node, Go, PHP, Ruby, Hugo 및 Static Site 지원
- GitHub Repo에서 바로 배포 가능. 'Autodeploy on Push' 기능으로 자동 배포 지원
- 무료 : Static Site 3개 까지 무료, 추가할때마다 월 $3
- 베이직 : 최하 월 $5(1CPU, 512MB램), 자동 HTTPS, 커스텀도메인 지원, 글로벌 CDN(Cloudflare), 40GiB, 빌드 400분/월 제공

 
.NET Orleans - MS의 분산 어플리케이션 프레임워크

"Distributed .NET"
- grains 라고 불리는 분산 객체 기반으로 Scalable, Fault Tolerant 앱을 만들고 운영하기 위한 크로스플랫폼 프레임워크
- 로컬서버에서 작성된 객체가 클라우드/클러스터 기반에서 코드변경없이 실행 및 스케일링
- MS가 8년째 실서비스에서 사용중
- grain = identity + behavior + state
- .NET Standard 2.0 이상의 윈도,리눅스,맥

기능
- Persistence : grain 의 상태는 어떤 스토리지 시스템에든 저장 가능
ㅤ→ Plugin for Azure Storage, ADO.NET(SQL Server, MySQL, PostgreSQL, Oracle), DynamoDB
- 분산 ACID 트랜잭션
- Virtual Stream : Azure Event Hubs, Amazon SQS/Kinesis, GCP, In-memory
- Timers & Reminders : 미래에 활성화될 grain 에도 액션 스케줄링 가능
- Flexible Grain Placement : Orleans 안에서 grain 이 활성화 되면 런타임이 어떤 서버에서 그걸 활성화 할지 선택. 이 자체는 마음대로 설정 가능
- Grain Versioning & Heterogeneous Clusters : 다양한 버전의 grain 의 같이 존재 가능하며 안전한 업데이트 지원
- Stateless Workers : state 없는 grain 들이며, 여러개의 서버에서 동시 실행 가능
- Grain Call Filters : 여러 grain 들에 동시 적용되는 필터 기능. 인증/로깅/Telemetry/에러처리
- Run Anywhere : Azure, AWS, GCP, On-prem, Kubernetes, Service Fabric, Windows, Linux, MacOS

 
Devfest Korea 2020

- GDG Korea에서 온라인 개최
- 세션 및 액티비티: 2020-10-16(금) ~ 2020-10-18(일)
- WTM 해커톤: 2020-10-16(금) ~ 2020-10-31(일)
- GDG Korea 유튜브 채널에 공개되는 세션
- 코드랩, 이벤트, 그룹토크 등 다양한 액티비티
- 여성만 참여가능한 #WomenTechmakers 해커톤
- 액티비티 및 해커톤은 사전등록 필요

 
AnBox - Linux용 안드로이드 '호환 레이어'

안드로이드를 시뮬레이팅하지 않고, 안드로이드의 호환 레이어를 제공해주는 AnBox가 공개되었습니다.

WINE과 같은 관계인데, 꽤 많은 GUI 어플리케이션이 돌아갑니다. OpenGL ES 드라이버도 있어 게임도 돌아간다고 하네요.

호환 레이어의 장점은 가상화를 하지 않고, 해당 API를 모방한 API를 만든 것이기 때문에 네이티브에 가까운 성능을 낼 수 있습니다. 이 분야의 대표 주자는 WINE인데요. 게임을 돌릴 수 있을 정도로 많이 쾌적합니다.

 
Nvidia 소형 AI 개발키트 Jetson Nano 2GB 발표

AI 알고리즘을 GPU가속(CUDA-X)으로 빠르게 실행가능한 $59짜리 싱글 보드 컴퓨터
- 128코어 Maxwell GPU, Quad코어 ARM A57 1.4Ghz CPU, 2GB LPDDR4 RAM
- 4Kp30 비디오인코더, 4Kp60 | 2x 4Kp30 비디오디코더
- Gigabit 이더넷, 802.11ac
- MIPI CSI-2 카메라 커넥터
- HDMI, 1x USB 3.0 Type A, 2x USB 2.0 Type A
- 파워용 USB-C 포트 ( 아답터 미포함 )
- MicroSD

리눅스기반, 파이썬 기반 딥러닝 프로그램을 거의 수정없이 좋은 성능으로 실행 가능
아마존에서 선주문 받는중 (10/26 출시 예정)
카메라는 Raspberry Pi Camera module v2.x (약 $30 선) 사용 가능(v1.x는 불가)

리뷰용으로 먼저 제공받은 사람이 적은 글도 같이 참고하세요
"Jetson Nano와 파이썬으로 $60 얼굴인식 시스템 구축하기"
https://medium.com/@ageitgey/…

아마존 선주문 링크 : https://www.amazon.com/dp/B08J157LHH
한국까지 직배송 $18.15 네요

 
3달동안 Apple을 해킹해서 3.3억원 벌기

5명의 엔지니어가 애플 버그 바운티 프로그램에 참여해서 광범위하게 해킹한 내역을 정리
→ 32개 취약점을 발견, 총 $288500 (3.3억원) 의 상금을 받았음
- 애플 Infra 는 거대함. 17.0.0.0/8 IP 대역 전체를 소유하며, 25000대의 웹서버가 있음.
- 1만대는 apple.com 관련, 나머지는 7천개의 고유 도메인 ( .apple 도메인 포함 )

해당 IP대역과 애플닷컴, icloud 도메인을 주 타겟 으로 디렉토리 브루트포싱(Brute forcing)
이를 통해서 애플 내의 인증/권한 동작 방식, 고객/직원용 앱, 통합 및 개발도구 등을 알아냄

그렇게 해서 찾아낸 취약점들중 12개를 나열 및 설명

1. Full Compromise of Apple Distinguished Educators Program via Authentication and Authorization Bypass
2. Full Compromise of DELMIA Apriso Application via Authentication Bypass
3. Wormable Stored Cross-Site Scripting Vulnerabilities Allow Attacker to Steal iCloud Data through a Modified Email
4. Command Injection in Author’s ePublisher
5. Full Response SSRF on iCloud allows Attacker to Retrieve Apple Source Code
6. Nova Admin Debug Panel Access via REST Error Leak
7. AWS Secret Keys via PhantomJS iTune Banners and Book Title XSS
8. Heap Dump on Apple eSign Allows Attacker to Compromise Various External Employee Management Tools
9. XML External Entity processing to Blind SSRF on Java Management API
10. GBI Vertica SQL Injection and Exposed GSF API
11. Various IDOR Vulnerabilities
12. Various Blind XSS Vulnerabilities

이 글 작성 및 공개 도 애플의 보안팀에 허락을 받았음. ( 이미 이 취약점들은 다 고쳐진 상태 )

글 내용에는 10/4까지 $51500 받았다고 하는데, 글 공개 이후에 애플에서 연락이 와서
추가로 총 28개의 취약점에 대해서 $237000 더 상금이 부여된다고 해서 총액이 $288500이 되었습니다.
https://twitter.com/samwcyo/status/1314310787243167744

5명이니까 인당 6천만원씩, 월 2천짜리 작업을 한게 되겠네요.

역시 XSS 는 애플에도 문제가 많군요.

 
깃헙에서 한국어 저장소 찾아주기 캠페인 (ft.한글날)

깃헙에 저장소를 가지고 계신가요?
영어로 된 저장소 보기만 해도 무섭지 않으신가요?
한국어로된 저장소를 찾고 싶어도 검색이 잘 안 됩니다.
그래서 저장소가진 분들께 요청드립니다. (링크 참조)

 
해커뉴스에 글 올리기 좋은 날과 시간은 ?

- HN 메인에 오르면 많은 트래픽을 끌어오기에 좋음
ㅤ→ 2주간 올라온 13159개의 글을 분석해서 정리
- 1073개(8.15%)의 글만 첫화면에 60+분이상 노출
- 첫화면에 올라오면 평균 8시간 정도 노출
- 30%의 글은 2주간 두개 이상 올린 사람들의 글
- 글 올리기 좋은 시간
ㅤ→ 프론트에 가고 싶다면 주말에 올리는게 가장 좋음(올라오는 링크 및 트래픽이 적어서)
ㅤ→ 6am~12pm UTC(한국시간 오후 3시~9시) 가 경쟁이 가장 적음
ㅤ→ 미국 사용자 대상으로 글을 올린다면 4pm / 12am UTC를 추천
ㅤ→ 보통 8시간 머물기 때문에 가장 많은 트래픽을 받으려면 월/목/토/일 12pm UTC (한국 오후 9시) 를 추천
- 첫 화면에 가기 위한 평균 Vote수
ㅤ→ 처음 27분 안에 5.22정도의 Vote를 얻어야 첫화면에 노출
- Karma 점수는 큰 관련 없음. 단지 높은 점수의 사람이 더 좋은 콘텐츠를 잘 올리는 듯

영어권 사용자 대상으로 오픈소스/서비스를 만들었다면, 홍보할 때 사용하기 좋은 정보 일듯 합니다.
저도 HN에 몇번 다른 뉴스 올려본적이 있는데, 초기 투표 받기가 어렵긴 하더군요.

긱뉴스는 보통 오전 9시 ~ 오후 5시 정도의 근무시간이 가장 활발 합니다 ^^;

 
왜 Hacktoberfest 스팸은 대부분 인도에서 올까

- 실제로 스팸PR의 60%가 인도에서
- Hack은 인도문화에 깊숙히 뿌리박힌 Jugaad (검소한 혁신, 규칙을 비틀어서 회피하는 해결법)과 유사
- Hacktoberfest Spam 은 Jugaad 의 희생양, 약간의 이득(티셔츠)을 얻기 위해 이 시스템 자체를 해킹하는게 게임처럼 됨
ㅤ→ 인도에서 출판된 대부분의 연구 논문은 가짜고, 의사들이 증명서도 위조
- 수많은 인구를 가진 인도에서 Computer Science는 성공하기 위한 과목중 하나
- 인도 Coaching 산업은 각종 테스트/인터뷰 들을 "Cracking"해서 통과하게 해주는 쪽으로 발달 함
ㅤ→ IIT(인도 최고의 공대) 시험을 통과하는 법을 가르치는 곳들이 신문에 광고를 냄. 하나의 거대한 비즈니스.
ㅤ→ GSOC(Google Summer of Code) , Google Foobar Chanllenge 를 통과하는 법들을 찍어서 공개한 유튜버들도 대부분 인도인
ㅤ→ 이번 사례도 이렇게 PR을 보내면 된다고 소개한 인도인 유튜버를 통해서 시작

글에서 가장 충격적인 건 말미에 있는 문장과 링크.
- 인도에서 훌륭한 개발자와 소프트웨어를 만들기도 했지만, "인도의 공대 졸업생은 대부분(94%) 채용에 적합하지 않음"

Hacktoberfest 2020 시작 https://news.hada.io/topic?id=2946
Hacktoberfest로 인한 스팸 PR 사태 정리 https://news.hada.io/topic?id=2950

 
q - CSV 파일에 SQL쿼리 하기

"Text as Data"
- CSV/TSV 및 모든 Tabular Text 에서 쿼리 가능
- WHERE, GROUP BY, JOIN 등 대부분의 SQL구문 지원 (sqlite3)
- 자동 컬럼 이름 (c1,c2등) 및 컬럼 타입 디텍션 지원
- 예
ㅤq "SELECT COUNT(*) FROM ./clicks_file.csv WHERE c3 > 32.3"
ㅤps -ef | q -H "SELECT UID,COUNT(*) cnt FROM - GROUP BY UID ORDER BY cnt DESC LIMIT 3"
ㅤsudo find /tmp -ls | q "SELECT c5,c6,sum(c7)/1024.0/1024 AS total FROM - GROUP BY c5,c6 ORDER BY total desc"
- 한글을 포함한 모든 문자 인코딩 지원

 
ShellSpec - 쉘스크립트 BDD 유닛 테스팅 프레임워크

- 크로스플랫폼 쉘스크립트 개발 및 테스트 도구
- dash, bash, ksh, zsh 및 모든 POSIX 쉘
- 코드 커버리지, Mocking, 병렬 실행, 파라미터 기반 테스팅 지원
- 대부분 기능이 순수 쉘스크립트 및 최소한의 커맨드만 사용해서 임베디드 시스템 같은 환경에서도 적용 가능
ㅤ→ 필수 명령 : cat, date, env, ls, mkdir, od (or hexdump), rm, sleep, sort, time
- 자연어와 비슷한 테스트코드용 자체 DSL
- 두가지 방식의 Mocking 지원 : 빠르고 쉬운 함수형태 Mock, 외부 커맨드에서도 사용가능한 커맨드 기반 Mock
- 샌드박스 모드 지원
- 함수를 랜덤으로 실행해보기 지원. Seed를 이용하면 이전 랜덤오더 그대로 다시 실행 가능
- 필요없는 출력은 제외하는 디버깅용 Execution Tracing
- Profiler 로 테스트 속도 측정 및 개선

 
arctype - 빠르고 편한 SQL클라이언트

- MySQL, PostgreSQL, BigQuery, Firebase, MongoDB, Google Sheets, Amplitude, Twilio, Stripe 등 연결 지원
- 쿼리를 이용한 Dashboard 생성 : 테이블,차트,이미지,지도 및 각종 폼 컨트롤
- 여러개의 DB간에 데이터 Transform 지원
- Team 단위 Workspace 관리 가능 (5명까지 무료)
ㅤ→ DB연결,쿼리,대쉬보드를 팀원들과 쉽게 공유

 
CG/SQL - SQLite용 Stored Procedure 코드 생성기

- Stored Procedure 가 없는 SQLite 를 위해
ㅤT-SQL로 작성된 스토어드 프로시져를 SQLite C API를 사용하는 C 코드로 변환하는 컴파일러
- 큰 쿼리로 구성된 아주 복잡한 스토어드 프로시져도 잘 처리하며, 타입 및 메소드 검사를 수행
- 스키마 관리/업그레이드, 테스트코드 작성, Java 및 Obj-C 연계코드등을 지원
- MIT 라이센스 오픈소스

SQLite 에 Stored Procedure 는 어떻게 쓰나요 라는 질문은 검색해 보면 정말 많이 나오는데요.
맨 처음에 나오는 게 10년전 스택오버플로우 답변 글인데 그때부터 이미 "SQLite 는 그런거 지원 안함" 이라고 써있거든요.
어찌보면 라이브러리 처럼 동작하는 SQLite 구조상 당연한건데, 있으면 편하긴 하니까요.
그걸 페이스북이 이런식으로 해결해 줬네요. 정확한 방식은 아니지만 나름 깔끔한 대안인 것 같습니다.

 
Beekeeper Studio - 오픈소스 SQL 에디터 및 DB관리자

- SQLite,MySQL,MariaDB,Postgres,CockroachDB,SQL Server,Amazon Redshift
- 맥/윈도우/리눅스 (TypeScript + 일렉트론)
- SSL, SSH터널 접속 지원
- SQL 자동 완성 및 Syntax Highlighing
- 자주 쓰는 쿼리를 저장해서 여러 커넥션에서 사용
- 쿼리 실행 History 지원
- 파라미터 쿼리 지원($1 or :one 입력은 팝업으로 입력값 요청)
- 멀티 탭 UI

 
구글, G Suite를 Google Workspace 로 변경

- 구글의 지메일,캘린더,드라이브,문서,스프레드시트,슬라이드,Meet 를 하나로 묶은 기업용 소프트웨어 모음
- 각각의 서비스를 더 깊게 연동
ㅤ→ 채팅/이메일/음성통화/영상통화/협업문서편집 기능을 한데로 묶음
ㅤ→ 대화방에서 구글문서를 새로 만들고 공동 편집 또는 구글 문서 편집중에 PIP로 구글Meet를 연결
- 아이콘등 브랜드 아이덴티티 변경 및 일관화
- 300명 이하 기업의 월 요금 : 스타터 $6, 스탠다드 $12, 플러스 $18. 300명 이상은 문의
ㅤ→ 스타터는 100명까지의 동시 화상 미팅, 인당 30GB 스토리지 제공
ㅤ→ 스탠다드는 150명까지 동시 화상 미팅 + 녹화, 인당 2TB, 구글닥스에 커스텀 브랜딩 제공
ㅤ→ 플러스는 250명까지 동시 화상 미팅 + 녹화, 인당 5TB, 향상된 보안(Vault)

Google Apps -> G Suite -> Google Workspace 로 이름만 세번째 변경이네요. 이게 마지막이겠지..?

 
뉴스레터에 대한 소고 [번역]

* 이바닥의 존경받는 사상가, Ben Evans가 그의 뉴스레터를 유료 구독모델로 전환하며 쓴 글
- 뉴스레터 포맷의 재발견
ㅤ→ 사람들이 긴 글을 쓸 포맷을 재발명한 것
ㅤ→ URL들을 공유하는 포맷으로의 활용
- 인터넷에서 뉴스를 보는 방법은 진자운동처럼 반복되고 있음.
ㅤ→ 메일 → 웹 → RSS → 텀블러 → 인스타/페이스북/트위터 → 미디엄 → 이메일과 Substack

"내 메일함에 이메일이 오는건 요즘 세상에서 왠지 물리적인 물건을 소유하게 되는 느낌이 듭니다. 내 공간에 있고, 계속 소유할 수 있는 물건인 느낌이죠. 반면 구독 컨텐츠에서는 그런 느낌이 없습니다"

얼마전에 소개드린 " Winning the Internet - 뉴스레터 큐레이션 https://news.hada.io/topic?id=2882 "
이게 딱 뉴스레터의 어그리게이션 모델인거 같아요.

국내에도 뉴스레터가 늘어나고 있는데, 곧 이런 모델이 나올수 있겠죠.

기술 & 스타트업 뉴스레터 및 블로그 모음 https://xguru.net/2222
요기서 뉴스레터들 참고하시기 바랍니다 ^^

 
Google 검색 광고 소재 가이드북 [한글 PDF, 84p]

검색 의도를 파악하여 검색의 순간마다 이용자에게 가장 매력적인 메시지를 전달할 수 있도록 도와주는 것
1. 광고 소재의 중요성 이해하기 : 구글 검색에서 광고 소재가 왜 중요한지, 타 플랫폼과의 차이는 무엇인지
2. 광고 소재 시작하기 : 구글 검색 캠페인 활용 시, 어떤 기능들을 활용하여 광고 소재를 제작하고 적용할 수 있는지
3. 광고 소재 최적화하기 : 위의 챕터에서 다뤘던 내용을 기반으로 광고 소재를 어떻게 최적화할 수 있는지, 최적화 진행시 성과에 어떻게 도움이 되는지
4. 광고 소재 성과 정확하게 측정하기 : 광고 소재 적용 후 광고 소재의 성과를 평가하는 방법과 광고 소재의 성과를 동일한 조건에서 A/B 테스트할 수 있는 임시 캠페인 및 실험
5. 성공 사례 : 광고 소재 최적화를 통해 캠페인의 성과를 개선한 실제 광고주의 사례
6. 자주 하는 질문 : 광고 소재와 관련된 자주 하는 질문과 답변