[GN#75] 내가 2020년에 배운 52가지

2020-12-07 ~ 2020-12-13 사이의 주요 뉴스들
예전엔 책이나 신문/방송을 통해서 정보를 접했는데, 인터넷이 발달하면서 소셜네트워크, 커뮤니티, 블로그, 유튜브등 정말 다양한 채널을 통해서 새로운 정보를 접하게 되는데요. 저 같은 경우 대부분 "오 신기한데?" 정도로 보고 넘어가게 되는 것 같아요. The Times의 기자였다가 저술가/컨설턴트로 전직한 Tom Whitwell은 2014년부터 매년 "내가 올해 배운 52가지" 라는 글을 적고 있습니다. 1년은 52주니까 일주일에 하나는 배운다고 생각하고 제목을 지은 것 같아요. 올해 글에서 신기한 것들만 간단히 번역해 두었는데, 리스트가 굉장히 재미있습니다. 읽다가 보니 저도 내년부터는 이렇게 리스트를 정리해봐야겠다고 생각이 들었어요. 그래서 연말쯤에 제가 긱뉴스에 올릴 테니, 긱뉴스 사용자 분들도 적어두셨다가 댓글로 모아보면 어떨까요? 정말 재미난 포스트가 될 수 있을 것 같아요. 원저자인 Tom은 Tumblr에 모았다가 그걸 블로그로 정리하는데 Pocket, Pinboard 등도 괜찮을 것 같습니다.

웹 기술이 복잡해지면서, 서비스를 출시할 때 프론트엔드에서도 체크해야 할 항목들이 매우 많아졌는데요. 이 체크해야 할 항목들을 아주 깔끔하게 정리한 프론트엔드 체크리스트가 이번 주에 가장 많은 투표를 받았습니다. 현재 운영 중인 서비스에도 잘 반영되어 있는지 한번 체크해 보시기 바랍니다. 이와 함께 한글로 잘 번역된 모던 자바스크립트 튜토리얼은 저처럼 자바스크립트를 오래전에 배워서 최신 업데이트가 안 되고 띄엄띄엄 아는 사람에게 좋은 가이드인 것 같아요.

글을 잘 쓰는 것은 누구에게나 필요한 기술인데요. "글 잘 쓰기(Writing Well)"는 근래에 본 것 중 가장 친절한 글 잘 쓰는 법에 대한 가이드입니다. 뭘 써야 할지를 찾고, 주제에 대한 인사이트를 도출하고, 명확하고 간결하게 쓰기 위한 퇴고, 나만의 스타일을 위한 퇴고, 작가로서 습관 만들고 연습하기 까지 이렇게 총 5단계로 설명하는데요. 단계별로 아주 친절하고 간결한 설명과 도움이 되는 힌트, 핵심을 잘 나타내는 예문들로 구성되어 있습니다. 마지막까지 읽고 나면 Cheat Sheet를 제공해서 언제나 다시 참고할 수 있게 하니까요. 저장해두고 천천히 읽어보셨으면 좋겠습니다.


✓ 사내에서 슬랙을 쓰신다면 뉴스채널에 GeekNews SlackBot 을 추가하여 편하게 새 글을 받아보시고, 멤버들에게도 공유해주세요.
✓ 주위분들께 긱뉴스 위클리 - https://news.hada.io/weekly 를 추천해 주세요.
Twitter , Facebook 에서도 긱뉴스를 받아 보실 수 있습니다.
✓ 긱뉴스를 팟캐스트로 들어보세요 : 애플, 유튜브, 팟티, 팟빵, 구글, 네이버 오디오클립
✓ 긱뉴스 유튜브 채널 추천영상 : 최신 데이터 인프라 이해하기 (시리즈) , 실패하지 않는 뉴욕타임즈 - NYT는 어떻게 디지털화에 성공했나 (48분)

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


내가 2020년에 배운 52가지

2014년부터 매년 새로 배운 52가지를 정리하는 Tom Whitwell의 재미난 리스트. 일부만 발췌 번역

1. 대부분 도시는 암컷나무에서 떨어지는 열매를 처리하기가 비싸기 때문에 수컷나무만 심는다. 수컷나무는 꽃가루를 만들기 때문에 그게 알레르기성 질환이 더 많아지는 이유중 하나
2. 중국에서 🙂는 행복을 의미하지 않는다. 경멸/조롱/불쾌한 행위이기 때문에 대신 😁😄😀 를 사용할 것
4. 애플 에어팟이 독립 비즈니스라면 2016년 창업, 13조 매출, 125% 성장, 30~50% 마진율을 가진 세계 최고의 스타트업
6. 지난 10년간 가장 많이 팔린 서적 10권의 주인공은 모두 여성. 그중 탑7책의 작가도 여성
7. 2월에 Zoom Technologies 주식(티커: ZOOM)이 50% 상승했는데. 화상대화하는 그 줌(티커:ZM) 이 아님 https://news.hada.io/topic?id=1786
9. 돈이 심리치료보다 사람들을 더 행복하게 만듬
13. 사용자가 케냐의 모바일 대출앱 OKash를 다운로드 하면 연락처 접근권한을 가짐. 대출 상환이 밀리면 가족,동료등 모든 연락처에 메시지를 보내서 사용자가 빚을 갚도록 부끄럽게 만듬
16. 19세기에 영국에서 수영이 인기를 끌자, 시립수영장은 개구리를 전시해서, 수영을 하는 사람들이 그 동작으로 부터 배울수 있도록 했음
17. 투발루(Tuvalu) 국가 수익의 10%는 twitch.tv 와 같은 .tv 도메인 수익에서 나옴
18. 네팔 GDP의 10%는 에베레스트 등반가들이 내는 것
20. 비행기 보딩패스는 인스타그램에 올리지마세요 https://news.hada.io/topic?id=2863
24. 아프리카 스마트폰의 40%는 중국 심천의 폰회사 Transsion이 만듬. 에티오피아에 공장이 있으며, 스와힐리어 및 암하라어 키보드가 있고, 카메라와 플래시 및 이미징 소프트웨어가 어두운 스킨 톤에 최적화 되어있음
25. '스톡홀름 증후군' 이라는 문구는 1973년 경찰을 비난한 은행강도사건에서 여성 인질의 신용을 떨어뜨리기 위해 경찰 정신과 의사가 발명한 단어
27. 2004년 VC들은 첫만남부터 펀딩까지 기간이 평균 90일이었는데, 현재는 단 9일
31. 바코드가 1952년에 특허를 받았을때는 둥근 모양이었음
37. 인간은 입체적인 후각을 가지고 있고, 두개의 콧구멍은 두 귀처럼 작동해서 무의식적으로 냄새의 근원으로 이동하도록 도와줌
40. 일부 테스트장비는 수천년된 로마 난파선에서 채취한 납으로 만들어짐
45. 2014년에 국제 에너지 기구는 앞으로 50년간 태양광의 가격이 어떻게 떨어질지를 예측한바 있는데, 6년이 지난 지금, 우리는 예상보다 40년 앞서 있음
46. 체중 1kg를 감량하면 그중 840g이 이산화탄소로 배출됨

 
프론트엔드 체크리스트

- 웹 개발자가 서비스 런칭 전에 체크할 것들 정리
- HEAD,HTML,웹폰트,CSS,JavaScript,이미지,접근성,성능,SEO 각 분야별 체크 항목
ㅤ→ High 47개 : 꼭 해야하는 것
ㅤ→ Medium 25개 : 안하면 SEO 나 성능에 안 좋은 영향
ㅤ→ Low 16개 : 가능하면 넣을 것
- 각 항목에 대한 설명 및 해결방법은 깃헙 Repo에서 확인 가능 :
ㅤ→ https://github.com/thedaviddias/Front-End-Checklist

 
모던 JavaScript 튜토리얼 [한국어]

상세한 설명과 함께 JavaScript 기본~고급 개념을 다루는 가이드

파트1. 프로그래밍 언어로서의 JS (호스트 환경에 종속되지 않는 Core JS)
ㅤ→ 기본, 코드품질, 객체, 자료구조와 자료형, 함수, 프로토타입, 클래스, 에러핸들링, 프라미스와 async/wait, 제너레이터, 모듈..
파트2. 브라우저에서 동작하는 JS (페이지를 다루는 방법)
ㅤ→ 문서, 이벤트 기초, UI 이벤트, 폼과 컨트롤, 문서와 리소스 로딩..
파트3. 추가 주제
ㅤ→ 프레임과 윈도우, 바이너리 파일, 네트워크 요청, 쿠키와 저장소, 애니메이션, 웹컴포넌트, 정규 표현식

* 현재 67% 번역이 완료되었고, 번역에 참여 가능 https://github.com/javascript-tutorial/ko.javascript.info#readme

 
글 잘 쓰기

글 쓰기는 개인적으로 계속 연습하고 있는데요. 위 강좌 'Wrting Well'에서는 스텝-바이-스텝으로 차근차근 매력적인 글을 쓰는 방법에 힌트를 줍니다.

물론 프로그래밍 입문서를 읽었다고 바로 프로그래머가 되는 게 아니고. 수학의 정석을 읽었다고 수학을 정석적으로 할 수 있는게 아닌 것처럼. 이 글을 읽는다고 해서 바로 글을 잘 쓰지는 못할 것 같습니다만. 글을 쓰는 걸 시작하기에는 좋은 글인 것 같습니다.

인트로 페이지의 마지막 인용문이 인상 깊네요.

> 사람들이 글을 잘 쓰지 못하면, 생각도 잘 하지 못할 것이며. 생각을 잘 하지 못하면, 타인이 대신 생각할 것입니다. - 조지 오웰

 
DoorDash의 지원부터 IPO까지

DoorDash가 Y Combinator에 지원했을 때부터 IPO를 하는 과정까지 함께 보고 그 과정을 돌아보며 적은 글이다.

- Y Combinator에 지원할 때 1분짜리 소개 동영상을 같이 올려야 한다.(글에 영상 포함되어 있음)
- 영상에서 얘기했던 음식 배달만이 아니라 로컬 비즈니스가 성공하도록 돕겠다는 목표를 7년뒤 S-1 문서에서도 똑같이 사용했다.
- 모든 지원자를 리뷰하고 10팀을 불러서 10분 인터뷰를 하는데 2013년 4월 DoorDash에 대해 "팔로알토의 캐비어(Caviar for Palo Alto)"라고 메모를 남겨두었다.
- 당시 회사는 법인도 아니었고 펀딩도 못받았으면 앱도 없었다. 몇달전에 오픈한 http://www.paloaltodelivery.com/ 웹사이트만 있었고 전화번호를 가진 랜딩페이지로 217개의 배달을 진행했다.
- 사업은 입증되지 않았지만 고객, 레스토랑, 운전자 세 그룹에 올바른 일을 하고 있었고 성공하려면 이 셋을 모두 만족시켜야 했다.
- 이때부터 DoorDash가 성공할 거라고 알았다고 하면 좋겠지만 인터뷰후에 DoorDash를 전체 순위의 하단부에 두었다.
- 2013년 6월 여전히 회의감을 가지고 있었고 "지금까지 잘 동작하는게 없다. 사용자를 얻기 위해 더 많은 실험을 해야하고 어디서나 주문할 수 있는 앱이 필요하고 마법처럼 모든게 동작해야 한다. 그리고 냉장고 자석도 필요하다."고 적어두었다. 그들은 냉장고 자석에 대한 내 조언을 현명하게도 무시했다.
- DoorDash는 계속 새로운 아이디어를 시도했고 2013년 7월 "하루에 35건 정도로 빠르게 성장하고 있다. 사용자를 얻고 유지하는 방법을 찾았다."고 적어두었다.
- 2013년 7월에 나도 고객이 되었다. "며칠전 저녁 배달에 사용했고 아주 좋았다.(냉장고 자석은 없었다.) 계속 시켜먹기 위해서라도 이들이 성공하도록 해야한다"고 적어두었다.
- TechCrunch에서 런치하고 YC 데모데이에서 발표를 했다. 투자자들이 회의적이었어서 데모데이에서 높은 순위를 차지하지는 못했지만 시드라운드를 높힐 수 있었다.
- Y Combinator 프로그램은 3개월이지만 이후에도 창업자를 만나서 계속 돕고 있다.
- 2016년 초 시리즈 C 투자의 첫 배팅을 만들었다. Amazon과 Uber가 음식 배달을 시작했기에 DoorDash가 버틸수 있을지 회의감을 많이 가졌다.
- 확률은 높지 않았지만 DoorDash는 계속 성장하고 개선하고 있었고 Amazon이나 Uber와 달리 음식 배달에만 집중했다.

집중력을 유지하고 매일, 매년 계속해서 개선되는 훌륭한 팀을 과소평가하지 마세요.

 
팀튜링(김국현님) 인공지능 소개 만화 1~10화

김국현님이 KDI에서 인공지능에 대한 만화를 연재하고 계셨네요.
현재 10화까지 나와 있는데, 내용이 괜찮은 것 같아 링크를 공유해 봅니다.

목차는 다음과 같습니다:

제1화. 계산과 기호, 그리고 알고리즘
제2화. 신경의 네트워크, 그리고 함수
제3화. 기호와 연결, 그리고 집념
제4화. 표현과 특징, 그리고 딥러닝
제5화. 개념의 기억과 역전파
제6화. 눈의 탄생, 그리고 CNN
제7화. 인식에서 행동으로. 강화학습
제8화. 듣고 말하는 일에 관하여
제9화. 창작하는 인공지능, LSTM에서 GAN까지
제10화. 인공지능 이후의 세계 - SOTA 트랜스포머를 넘어서

 
typesense - 오픈소스 검색 엔진

- 매우 빠르고, 검색어에 연관된 결과를 찾아줌
ㅤ→ Typo Tolerance(오타 허용) : 어느정도 알아서 오타를 인식하고 처리
- 검색 순위를 편하게 조정 가능
- 검색시 특정 필드별로 정렬 지원
- Facet & Filter 탐색 지원 : 검색 결과를 특정 필드단위로 묶어서 보여주고 필터링
- 특정 결과에 접근하기 위한 API Key 범위 제한 가능
- Raft 기반 클러스터링
- Linux/Mac 바이너리 및 도커 이미지 제공
- C로 작성된 오픈소스

FAQ에서
- ElasticSearch 와는 뭐가 다른가요 ?
ㅤ→ ES는 설치 및 관리가 복잡하지만, TypeSense는 "Time-to-Market"을 위해 만들어진거라 빠르게 설치가 가능하고, 물론 스케일링도 할 수 있음
- Algolia 와는 뭐가 다른가요 ?
ㅤ→ 알고리아는 꽤 좋은 검색엔진 SaaS지만 비쌈. TypeSense는 자체 호스팅도 가능하고, SaaS 버전도 저렴(저장된 레코드 나 검색당 과금이 아니고, 사용 시간 및 밴드위스 당으로 과금)
ㅤ→ 기능상으로 TypeSense는 ElasticSearch 보다는 Algolia 랑 비슷
- 속도가 빠른데 메모리 풋프린트는 ?
ㅤ→ 기본적으로 TypeSense서버는 30메가 정도의 메모리를 차지하고, 데이터 인덱싱을 시작하면 늘어나는데 굉장히 간결한 데이터구조를 유지함
ㅤ→ 해커뉴스 글 제목 1백만개가 JSON으로 88MB인데, 이거를 Typesense가 인덱스해서 메모리에 올리면 165MB 정도를 사용

기본적으로 서비스 내부에서 검색엔진을 만든다고 하면, 설정부터 관리가 좀 복잡한데 이걸 빠르게 할 수 있는 오픈소스 입니다.
다만 한국어라면 형태소등 신경써야할게 있겠지만.. 이게 글자단위로 빠르게 찾아내서 결과를 보여주기 때문에 고려할 만한 가치는 있어 보입니다.

 
2백만개 음식 레시피 검색 엔진

- 오픈소스 검색엔진인 Typesense 를 이용해서 만든 데모
ㅤ→ 한글자 입력할 때마다 실시간으로 결과를 보여줌
- 데이터분석용으로 공개된 2백만개 레시피 데이터셋을 S3에 올리고, 3 노드 Typesense 백엔드로 실행
- Algoria의 InstantSearch.js 를 TypeSense에 연결해서 사용해 깔끔한 검색화면을 보여줌

소스코드 : https://github.com/typesense/showcase-recipe-search
2백만개 레시피 데이터셋 : https://github.com/Glorf/recipenlg

 
Supabase 공개 베타 시작 - 오픈소스 Firebase 대체제

- 백엔드를 쉽게 만들기
- Postgres 기반에 Elixir를 이용한 실시간 DB엔진
ㅤ→ 웹소켓으로 변경을 실시간 반영
- Auth API(사용자 관리) 제공
- GraphQL 과 비슷한 CRUD API 지원
- 관리도구에서 스프레드쉬트 스타일 DB편집 및 SQL 에디터 제공
- Storage ,Functions, Local Emulator, Multicloud, Self Hosted 등의 기능 및 환경도 추가 예정


안녕하세요, Supabase 공동 설립자입니다. 공유해 주셔서 감사합니다. 우리는 최근 베타 버전을 출시했으며 진정한 파이어베이스 경쟁자가되기 위해 열심히 노력하고 있습니다 : https://supabase.io/beta

어떻게 개선 할 수 있는지 beta@supabase.io에 피드백을 남겨주세요 :)

 
쿠팡이츠 배달단가 모니터링 (파이썬 OCR 자동화 데이터 분석)

쿠팡은 배달단가가 수시로 변하나 보네요.

Python을 이용해서 쿠팡 배달단가를 모니터링하고 시각화 하였습니다

PyAutoGUI로 특정영역 스크린샷을 찍고 pytesseract로 그 이미지에 문자를 인식하는 방식으로 구현하였습니다.

 
AutoML을 이용한 이미지 분류모델 파이프라인 생성

- 당근마켓이 “중고거래와 관련 없는” 혹은 “선정적인” 사진인지 판단하기 위해 이미지 인식 모델을 개발
- Google Cloud AutoML Vision Edge 를 사용
ㅤ→ WebUI에서 기본적인 이미리 라벨링 기능 제공
ㅤ→ 중복 사진을 자동으로 필터링
ㅤ→ 훌륭한 모델 Evaluation UI
- 데이터셋 만들기 전략 : 운영부서 협업, 키워드 검색, 유사 이미지, 유사 게시글 활용
- 만들어진 모델을 서버와 클라이언트 배포 : TF Serving AWS EKS & TF Lite
- 파이프라인 자동화 : Kubeflow

"이번엔 이미지 분류 모델만 AutoML을 적용 했지만,
서비스에 필요한 다른 종류의 모델이 AutoML로 제공 된다면 기꺼이 사용하고 싶습니다.
모델 개발이 자동화된 점도 좋았지만 “데이터 전처리”, “모델 평가”, “모델 배포” 단계에서 어떤 코딩도 필요 없다는게 정말 편하다고 생각했습니다.
파이프라인 코드 외에 작성한 코드가 거의 없기 때문에, 유지보수 업무도 최소화 되었습니다."

 
온라인 최고의 고급 컴퓨터 과학 과정은 무엇인가요?

해커 뉴스에 올라온 '온라인에서 최고의 고급 ( 입문의 반대 의미로 사용했습니다 ) 컴퓨터 과학 과정이 무엇인가요?' 라는 글입니다.

해커 뉴스의 독특한 점은 단순 News 뿐만이 아닌 이런 질문들도 올릴 수 있다는 점인데요. 상세한 질문은 허용되지 않지만, 이런 포괄적인 질문은 허용됩니다. 많은 프로그래머들이 각자 괜찮았던 것들을 말해서 다양한 시각을 접하는 데 좋은 것 같습니다. 'ㅁ'!

저도 HN에 Ask 보는거 좋아합니다. 긱뉴스도 Ask 항목을 오픈 할 예정입니다. 조금만 기다려주세요 ^^

 
RealWorld - 풀스택 실전 블로그 예제코드

- Medium 블로그 서비스를 클론해서 거의 모든 프레임워크로 똑같이 만들어 보는 오픈소스 프로젝트
ㅤ→ 같은 API 스펙이라 프론트/백엔드 스택은 마음대로 매칭 가능
- 프론트 (29가지): React/Redux, Angular, Vue, Elm, Svelte/Sapper, Next, Ember, Riot..
- 백엔드 (41가지): Node/Express, Go/Gin, NextJS, Django, Laravel, Flask, Spring, Rails, AWS Lambda/DynamoDB, Scala/Play, CakePHP, Kotlin/http4k, Vert.x ..
- 모바일 : NativeScript(Angular)

* 실제 클론 사이트 보기 : https://demo.realworld.io/

와... 오픈소스로 할 수 있는 진짜 가치있는 일 중 하나인것같네요..

 
나만의 유튜브 추천 알고리즘 만들기

- 유튜브 API로 나한테 도움이 되는 비디오만 찾아서 보기
- 조회수/구독자 비율로 최신 비디오의 랭킹을 생성
ㅤ→ 구독자가 많으면 조회수가 높으므로, 구독자 적은 채널에 가중치
ㅤㅤ단, 5000명 이상의 채널. 그리고 최대 비율은 5로 설정
ㅤ→ 일주일에 한번, 지난 7일간 올라온 비디오만.
ㅤㅤ( 올라온지 오래되면 조회수가 높으므로 )
ㅤ→ 조회수/구독자 비율을 등록일수로 나눈게 최종 메트릭

* 실제로 GPT-3로 검색해보니 단순히 구독자 많은 채널의 재미없는 비디오보다, 구독자가 적지만 유용하고 재미난 비디오를 더 찾을수 있었음.

- 코드는 깃헙에 공개 : https://github.com/chris-lovejoy/YouTube-video-finder

- 동작방식
ㅤ1. 검색어와 기간을 이용해서 유튜브 비디오 검색
ㅤ2. 비디오 관련 지표들 추출
ㅤ3. 위 함수로 비디오 랭크 생성
ㅤ4. 관련 비디오 정보를 DataFrame에 저장
ㅤ5. 탑 5개의 비디오를 출력

- AWS Lambda 에 업로드 해서 자동으로 실행하게 하려했으나 실패
- 현재는 그냥 로컬에서 스크립트를 실행중

 
Boltstream - 라이브 비디오 스트리밍 서비스 오픈소스

- Django + nginx
- RTMP 라이브 스트리밍
- 여러개를 동시 전송 가능
- HLS 기반 재생 지원
- HLS AES-128 을 이용한 재생 또는 초 단위 과금 구현 가능
- 라이브 스트림 캡쳐 가능 (nginx-vod-module)
- WebVTT를 이용한 타임 메타데이터
ㅤ→ 채팅 룸 메시지 동기화
ㅤ→ 스포츠 경기 중계 동기화

 
오픈 소스 비즈니스 모델의 죽음

mapbox-gl-js이 2.0.0부터 3조항 BSD 라이센스를 버렸다는 뉴스( https://news.hada.io/topic?id=3377 )를 보고 놀라서 자신의 생각을 정리한 글이다.

오픈 코어(Open Core) 비즈니스란?
- 소프트웨어의 무료, 오픈소스 버전을 제공하고 복제하기 어려운 소유권있는 추가 기능을 유료 버전으로 제공하는 비니지스 모델이다.
- 처음 들었을때는 가능할 것 같지 않지만 Elastic, D2iQ (구 Mesosphere), MongoDB, Cloudera가 모두 오픈 코어 비즈니스로 성장했다.
- 예전에는 동작했었던 적이 있었지만 지금은 동작하지 않는다. 우리의 합의는 틀렸고 오픈코어는 죽었다.

Mapbox
- Mapbox를 이용하면 쉽고 빠르게 지도를 만들 수 있다. 오픈소스를 얘기하지 않고 Mapbox를 설명할 수 없고 Mapbox은 800여개의 오픈소스 프로젝트가 있고 GitHub 기준으로 세계에서 40번째로 많은 활동을 하는 조직이다.
- Mapbox가 Mapbox GL JS v2를 독점적으로 유지하려는 것은 강력한 신호다.
- 이는 한 시대의 끝이고 오픈코어가 실행가능한 비즈니스 모델의 죽음을 예고한다고 생각한다. Mapbox때문에 생각하기 시작한게 아니라 Mapbox 덕에 결론을 짓게 되었다.

오픈코어는 더는 지지할 수 있는 비즈니스가 아니다
- Mapbox같은 회사가 가장 인기있는 오픈소스 라이브러리를 독점적으로 만드는 결정을 하는 이유를 이해하려면 MongoDB와 Redis Labs를 공부하는게 도움이 될 것이다.
- Ben Thompson가 2년전 오픈소소의 경제적 현실에 대해 요약했는데 비밀 소스를 무료로 제공하고 충분히 인기를 얻으면 반드시 클라우드 업체가 당신의 코드를 사용해서 경쟁서비스를 만들 것이라고 했다.
- 이런 글로 인해서 클라우드 업체가 MongoDB와 Redis Labs를 압도하지는 못했고 MongoDB는 이후 주식도 200%이상 올랐고 Redis Labs는 1억 달러 이상 투자 받았다.
- 중요한건 이들이 성장했다는 것이 아니라 어떻게 대응했냐 이다. 두 업체 모두 클라우드 업체가 문제 해결을 쉽게 하지 못하도록 독약같은 법적인 조항을 추가하거나 라이센스를 변경했다.
- 이로 인해 MongoDB와 Redis Labs는 덜 개방적이 되었고 오픈소스 커뮤니티는 이들이 거짓말을 팔랐고 디딤돌로 이용당했다고 느꼈다.

다시 Mapbox
- Azure가 Mapbox를 이용해서 Azure Maps를 발표했고 한 업체가 발표했으니 다른 클라우드 업체도 따라올 것이다. 아마 Mapbox GL JS가 오픈소스로 남아있는 마지막이 될 것이다.
- Mapbox는 Mongo나 Redis Labs와 비슷한 위치에 있다는 것을 알게 되었다.
- Mapbox는 수조 달러 규모의 거대 기술 기업에 R&D를 지원하고 있었다
- 그래서 Mapbox는 기존 버전을 그대로 두었지만 새버전(코드는 여전히 공개되어 있다.)의 라이센스를 변경했다.

예전에 영업 비밀을 털어놓고도 성공할 수 있다고 생각했다. 오픈 소스 소프트웨어를 중심으로 회사를 만드는 행위가 도덕적이고 윤리적이라고 믿었다. 요즘은 잘 모르겠다.

어제는 슬픈 날이었다. 하지만 Mapbox가 뭔가 잘못했거나 실망스러워서가 아니다.

어제 스스로 납득했기 때문이다.

**클라우드가 오픈코어를 죽였다.**

 
Greenflare - 오픈소스 로컬 SEO 크롤러

- 로컬에서 웹사이트를 크롤링해서 SEO 분석을 도와주는 도구
ㅤ→ H1,H2 태그및 Meta 데이터 확인
ㅤ→ XPath 및 CSS 셀렉터로 각 페이지의 정보 추출
ㅤ→ Robots.txt 파서로 상태 확인
ㅤ→ 깨진 링크 및 상태코드(3xx, 4xx, 5xx) 확인
ㅤ→ 필터로 URL들 예외 처리 가능
- 윈도우/맥/리눅스 실행파일 제공
- CSV 로 크롤링 결과 Export ( 자체적으로 sqlite 에 저장 )
- 저사양에서도 실행 가능하며, 크기 제한은 없음
ㅤ→ 4백만개 이상의 페이지를 가진 사이트들 대상 테스트 완료
- 파이썬 코드, pypi 패키지로도 제공 ( pip install greenflare )

 
Cube.js - 오픈소스 분석 API 플랫폼

- BI 도구를 직접 개발하거나 사용자에게 제공하는 분석 기능을 만들 수 있게 해주는 오픈소스
ㅤ→ 각종 대쉬보드 및 MixPanel, GoogleAnalytics 등의 기능을 직접 구현 가능
- 기본적으로 AWS Athena, Google BigQuery 같은 서버리스 쿼리 엔진과 잘 어울리게 설계되었으나,
ㅤMySQL,PostgreSQL,Presto,SQlite 등과도 잘 연결

- Cube.js Backend
ㅤ→ Schema : 분석용 ORM처럼 동작해서 카운팅부터 코호트/퍼널분석등을 위한 데이터 모델링 가능
ㅤ→ Query Orchestration and Cache : 쿼리를 재사용 가능한 단위로 잘게 쪼개서 쿼리 실행을 최적화
ㅤ→ API Gateway : 분석결과를 요청 시간제한 없이 받아갈수 있는 롱 폴링 API 제공

- Cube.js Frontend
ㅤ→ Javascript Client : API Gateway 와 연동해서 쿼리 결과를 읽어올수 있는 코어 함수들
ㅤ→ Cube.js API 용 React, Angular, Vue 바인딩 제공
ㅤ→ Chart.js, D3.js, Google Chart 등 많은 차트지원

- 뛰어난 쿼리 성능, 멀티테넌시 지원

- 참고하기 좋은 다양한 예제들 : 각 샘플들은 구축하는 방법을 알려주는 가이드가 작성되어 있어서 참고하기 쉬움
ㅤ→ WebSocket을 이용한 실시간 대시보드 - https://real-time-dashboard.cube.dev/
ㅤ→ React/GraphQL 기반 대쉬보드 - https://react-dashboard.cube.dev/
ㅤ→ D3/Material UI 대쉬보드 - https://d3-dashboard.cube.dev/
ㅤ→ Snowplow를 이용한 Mixpanel 같은 이벤트 분석도구 만들기 - https://cube.dev/blog/building-an-open-source-mixpanel-alternative-1/
ㅤ→ AWS Lambda, Athena, Kinesis 를 활용한 AWS Web Analytics - https://cube.dev/blog/…
ㅤ→ Snowplow, Athena, React 를 이용한 Google Analytics 대체제 샘플 - https://web-analytics.cube.dev/
ㅤ→ Drill Down Table API - https://cube.dev/blog/introducing-a-drill-down-table-api-in-cubejs/

국내에선 쿠팡이 cube.js 를 이용하는 것으로 알려져 있습니다.

 
Netlify에서 접근성 테스트하는 방법

Netlify 프런트엔드 팀은 새로운 제품을 만들 때,
항상 유저가 접근할 수 있는 걸 최우선으로 하는 데,
Netlify 프런트엔드 팀이 어떻게 접근성을 테스트하는가에 대한 글입니다.

표준 템플릿을 마련해두고,
storybook-addon-a11y 를 활용하고 있네요.

storybook을 적극적으로 사용하는 조직이 많아지는 듯 합니다.

 
“대구 사람들은 우리 앱을 못 쓴대요”라는 버그의 심각성은?

접근성 지원을 해야 한다는 이야기를 하게 되면, 필연적으로 따라오는 반응이 있습니다. “접근성 지원, 좋죠. 그런데 지금은 당장 돈을 벌어야 해요. 장애인들을 위해 추가적인 고려를 할 여유가 없습니다” 와 같은 반응이지요.
언뜻 일리 있어보이는 말입니다. 하지만 조금만 생각해보면 이런 답변에는 장애인에 대한 (의식적이든 무의식적이든) 오해와 차별이 숨어있다는 것을 알 수 있습니다.

 
세상(?)의 모든 Tutorial을 모은 사이트


이 사이트에 있는 글들을 전부 타이핑한 사용자들은 과연 어떤 사람인지 궁금하네요.

Academic
Computer Science
Big Data & Analytics
Python Technologies
Web Development
Databases
Sports
Digital Marketing
Engineering Tutorials
Monuments
Machine Learning
Mainframe Development
Scripts
Microsoft Technologies
Mathematics
Management
Computer Programming
Java Technologies
Mobile Development
DevOps
Soft Skills
Latest Technologies

 
터미널 기반 글 작성 & 코딩 워크플로우

데이터 인포메이션/바이오 메디컬 연구자가 독특하게 구성한 자신의 터미널 작업 환경 설정과 도구들을 공유
- 터미널 : Alacritty
- 쉘 : zsh & oh-my-zsh, tmux
- 파일 검색 : fzf & ripgrep
- 파일 리스트 : lsd(LSDeluxe)
- 파일 탐색기 : ranger
- 파일 보기 : bat
- 에디터 : neovim
- 마크다운 작성 : pandoc
- 과학 문헌 관리 : zotero
- 컬러 팔레트 : gruvbox-dark
- 폰트 : Fantasque Sans Mono

* neovim, alacritty, tmux, zsh 설정 파일 공유

* vim-floaterm 으로 neovim 안에서 Floating Terminal 을 구현
* tmux 에 resurrect/continuum, neovim 에 obsession 플러그인을 이용, 터미널을 재시작해도 tmux/vim 화면을 그대로 복원

 
Deno 1.6 릴리즈

- deno compile : 단독 실행파일 생성 가능
ㅤ→ nexe,pkg 등과 비슷하게 JS/TS로 CLI 도구를 생성가능
ㅤ→ 아직 크로스플랫폼 컴파일은 지원 안함
- deno lsp : Language Server 내장 (에디터 연동)
ㅤ→ 코드 자동완성, 힌트, 정의/참조 바로가기, deno fmt/lint 등과 연동
- 애플 M1 프로세서 지원
- TypeScript 4.1 지원

go 언어와 매우 비슷하게 간다.. 그렇게 생각이 듭니다.

 
이맥스와 함께하는 개발환경

클래식 에디터를 사용하기로 마음을 먹고 vim로 시작해 emacs로 변절하게 되었습니다.
이맥스를 사용해서 개발환경을 구축하는 방법에 대한 글입니다.
지금은 개인적인 이유로 IDE를 더 많이 사용하지만 아직도 이맥스에서 쾌적함을 느낍니다.

순수 emacs를 5년째 사용하고 있습니다.
몇몇 언어 (e.g. 파이썬, OCaml, ...) 에 대해서는 IDE 만큼의 생산성을 가진다고 개인적으로 느낍니다.
하지만 c/c++나 java 같이 IDE가 엄청나게 발달해 있는 경우는 조금 어렵네요. 그래도 웬만한건 다 mode가 지원되어서 쓰기 좋습니다.
무엇보다 재밌습니다. 그리고 커맨드가 유닉스 기본과 겹치는 부분이 많다보니 tmux나 bash에도 종종 써먹곤 합니다.

쓰기 어려운 https://www.spacemacs.org/ 설치해서 vim과 혼용해서 쓰는 것도 좋은 거 같아요

 
구글 Common Expression Language

- 보안 정책, 프로토콜 등을 작성하고 평가하기 위한 표현식 언어
ㅤ→ 작고 빠르게, 임베드 및 확장 가능하고, 개발자 친화적으로
ㅤ→ C와 비슷한 문법
- 구글이 Firebase의 보안 규칙을 만들며 개발한 스펙을 확장한 것
- Protocol Buffer 타입을 사용, JSON 지원
- C++ 와 Go 로 된 고성능 Evaluator 오픈소스 제공

service cloud.firestore {
ㅤmatch /databases/{database}/documents {
ㅤㅤ// 사용자가 로그인 되어있거나 요청한 데이터가 퍼블릭이면 참
ㅤㅤfunction signedInOrPublic() {
ㅤㅤㅤreturn request.auth.uid != null || resource.data.visibility == 'public';
ㅤㅤ}

ㅤㅤmatch /cities/{city} {
ㅤㅤㅤallow read, write: if signedInOrPublic();
ㅤㅤ}

ㅤㅤmatch /users/{user} {
ㅤㅤㅤallow read, write: if signedInOrPublic();
ㅤㅤ}
ㅤ}
}

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

Caddy 웹서버도 Request Matcher 같은 것들 설정시 CEL을 사용합니다.
https://caddyserver.com/docs/caddyfile/matchers

 
MS, ARM용 Windows에 x64 에뮬레이션 추가

- Windows 10 Insider Preview Build 21277
ㅤ→ 프리뷰 기능으로 ARM64에서 x64 에뮬레이션 추가
- Unicode Emoji 12.1 과 13.0 지원
- Win + Shift + S 로 화면캡처하여 탐색기 폴더에 직접 붙여넣기 가능
- 터치 지원 기기에서 분할 키보드 지원
- 시작메뉴에서 폴더가 한개의 앱만 있을경우 폴더는 빼고 앱아이콘만 보여줌

애플 실리콘하고 겹치면서 타이밍이 묘하네요.
2017년부터 나온 ARM 윈도우 버전이었지만 버림받은 느낌이었는데 이제 윈도우도 x86을 버릴 준비를 하는걸까요..

 
GitHub Universe 2020의 주요 신규 기능 정리

- 회사들도 GitHub 스폰서 후원 가능
- 다크모드
- PR 오토머지 설정 가능
- Discussions 기능이 모든 퍼블릭 Repo에 가능
- Dependency Graph를 통한 리뷰
- 워크플로우에 필수 리뷰어 지정 가능
- 워크플로우 시각화 지원
- GitHub Enterprise Server 3.0 발표 : Actions, Packages, CodeQL, 모바일 지원, Secret Scanning

 
mapbox-gl-js는 더이상 3조항 BSD 라이센스가 아닙니다.

mapbox-gl-js가 2.0.0을 릴리스하면서 이번 버전부터는 3조항 BSD 라이센스(3-Clause BSD)가 아님을 밝혔다.
2.0.0부터는 mapbox의 이용약관( https://www.mapbox.com/legal/tos/ )에 동의해야만 사용할 수 있게 되었고 더이상 오픈소스 라이센스를 따르는 프로젝트가 아니게 되었다.

 
New Relic, eBPF 회사 Pixie 인수하고 오픈소스로 공개

- Pixie는 eBPF 기술을 활용해서 코드 변경없이 쿠버네티스 위의 어플리케이션을 모니터링 할수 있는 APM 솔루션
- Pixie의 강점은 PXL Script를 통해서 퍼포먼스 모니터링 및 디버깅을 코드로 할수 있게 해주는 것
- New Relic이 인수하면서 오픈소스로 공개
ㅤ→ Pixie Core : 오픈소스 버전 Pixie. 내년에 CNCF Sandbox를 통해 릴리즈
ㅤ→ Pixie By New Relic : 호스팅 버전의 Pixie Core가 이제 New Relic One 사용자들에게 바로 제공
ㅤ→ Pixie by New Relic, Enterprise Edition : 미디어, 통신, 정부등을 위한 엔터프라이즈 옵션

Pixie는 Google AI 랑 Apple Siri 팀에 있던 엔지니어들이 나와서 2018년에 시작한 업체로
현재 12명이고, 두달전에 시리즈 A펀딩을 받았는데 New Relic이 빠르게 인수 했네요.

Splunk가 얼마전에 비슷한 eBPF 업체인 Flowmill을 인수하기도 해서, 주요 회사들이 eBPF가 미래에 유망하다고 생각하는 듯 합니다.
https://techcrunch.com/2020/11/…

제가 긱뉴스 팟캐스트에서 설명한 eBPF내용을 들어보시면 이해가 조금 쉬우실듯 합니다.
https://www.youtube.com/watch?v=aCw0YwEHpCU&t=1892s

- eBPF 공식 사이트 오픈 https://news.hada.io/topic?id=2661
- eBPF rethinking the Linux Kernel https://news.hada.io/topic?id=1958
- BPF : 새로운 타입의 소프트웨어 - https://news.hada.io/topic?id=1011
- bpf를 이용한 성능분석 - https://news.hada.io/topic?id=88

elastic apm 에 적용되길 바래봅니다.. 아주 잘 쓰고있는데 더 쓰기 좋아질 것 같네요

 
CentOS 프로젝트가 CentOS Stream에 집중하기로

- CentOS Stream이 이제 CentOS의 미래임
ㅤ→ Red Hat Enterprise Linux(RHEL)의 업스트림(개발) 브랜치
ㅤ→ RHEL 8을 리빌드한 CentOS Linux 8 은 내년말에 종료
- CentOS SIG는 이제 RHEL의 차기버전에 대해서만 작업하는 단일 목표를 가지게 됨
- 현재 CentOS Linux 8 사용자는 CentOS Stream 8 로 변경을 고려할 것

Fedora → RedHat Enterprise → CentOS Linux 였는데
Fedora → CentOS Stream → RedHat Enterprise 가 되는 거군요.

Rawhide → CentOS Stream → RHEL 인 것 같습니다.
https://fedoraproject.org/wiki/Releases/Rawhide?rd=Rawhide