[GN#50] 좋은 리텐션 수치는 얼마인가요?

2020-06-15 ~ 2020-06-21 사이의 주요 뉴스들
서비스를 오픈하고 신경 써야 하는 지표는 여러 가지가 있지만, 그중에 사용자/구독자/결제가 유지되는 Retention 지표는 대부분의 회사에 아주 중요한 지표입니다. Airbnb 의 Growth PM이었던 Lenny Rachitsky가 업계의 경험 많은 Growth Hacker들에게 "좋은 사용자/매출 리텐션은 몇 퍼센트?" 인지를 물어보고 정리한 글이 이번 주 긱뉴스 위클리의 메인 기사 입니다. 실제로 운영해보면 비즈니스가 똑같을 수 없어서 다른 비즈니스들과 Retention 수치를 비교한다는 게 조금 조심스럽긴 합니다만, 다른 비슷한 업계 회사들은 어느 정도인지 아는 건 도움이 많이 됩니다.

이번 주 내내 화제가 되었던 이슈는 Basecamp가 만든 이메일 서비스 Hey입니다. 지메일 이후로 이렇다 할 혁신이 없었던 이메일 서비스에 새로운 바람을 불어넣고 있는데요. 공개된 기능들만 봐도 우리가 매일 이용하는 이메일의 사용성과 편의성에 대해서 많이 고민한 것 같아요. 아쉽게도 올해 7월까지는 초대를 통해서만 가입할 수 있어서 써보기가 어렵고, 애플 앱스토어의 앱 리뷰가 거절되면서 관련된 다른 이슈들까지 터져 나와 의도치 않게 이슈 몰이도 되는 것 같습니다.

요즘 프로그래밍 언어 관련된 설문조사에서 빠지지 않는 인기 언어는 Rust입니다. 원래 용도였던 시스템 프로그래밍 부터 CLI도구, 웹사이트, GUI에 이르기까지 언어의 영역을 확장하려는 시도도 정말 많아지고 있습니다. Rust가 인기 있는 주된 이유는 바로 안전성과 속도인데요. 실제로 화상회의 시스템을 만드는 회사인 Tonari에서 Rust를 선택하고 개발하면서 겪은 것들을 잘 정리한 글이 인기를 끌었습니다. 매년 사람들이 새해 결심을 할 때 그중 순위가 가장 높은 것 중 하나가 "언어 배우기"라고 합니다. 개발자분들도 아마 비슷하지 않을까 하는데요. 올해가 아직 6개월 남았으니 새 언어로 Rust를 한번 배워보는 것은 어떨까요 ?

✓ 사내에서 슬랙을 쓰신다면 뉴스채널에 GeekNews SlackBot 을 추가하여 편하게 새 글을 받아보시고, 멤버들에게도 공유해주세요.
✓ 주위분들께 https://news.hada.io/weekly 를 추천해 주세요.
✓ 스팸함에 들어가지 않게 news@hada.io 를 주소록에 추가해주세요.
Twitter , Facebook 에서도 긱뉴스를 받아 보실 수 있습니다.

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


좋은/훌륭한 리텐션 수치는 얼마인가?

경험 많은 Growth Hacker 20명에게 "GOOD and GREAT" 리텐션에 대해 질문해서 얻은 값들

1. 좋은 User Retention 수치는? (6개월 기준)
ㅤ→ 소셜(스냅챗,트위터,인스타): ~25% is GOOD, ~45% is GREAT
ㅤ→ 거래(AirBnB,Lyft): ~30% is GOOD, ~50% is GREAT
ㅤ→ SaaS(넷플릭스,Spotify,Hulu,Dropbox): ~40% is GOOD, ~70% is GREAT
ㅤ→ SMB SaaS(Asana,Slack,아틀라시안): ~60% is GOOD, ~80% is GREAT
ㅤ→ 기업용 SaaS(SalesForce, Workday): ~70% is GOOD, ~90% is GREAT

2. 좋은 Net Revenue Retention 수치는? (12개월 기준)
ㅤ→ 소비자 SaaS(넷플릭스,Spotify,Hulu): ~55% is GOOD, ~80% is GREAT
ㅤ→ Bottoms Up SaaS(Slack,Zoom,Datadog,Dropbox,New Relic): ~100% is GOOD, ~120% is GREAT
ㅤ→ Land and Expand VSB SaaS(Gusto): ~80% is GOOD, ~100% is GREAT
ㅤ→ Land and Expand SMB / Mid-Market SaaS(Atlassian,Box,ZenDesk,Sendgrid): ~90% is GOOD, ~110% is GREAT
ㅤ→ 기업용 SaaS(SalesForce, Workday): ~110% is GOOD, ~130% is GREAT

* VSB : Very Small Business

Land and Expand 전략 이해하기 https://saasx.com/2018/09/…
"작은 거래로 시작해서 조직에서 점점 크기를 확장하는 방식"
ㅤ→ 아틀라시안 Jira가 10유저로 시작해서 유저수를 키우는걸 생각하면 쉽습니다.

 
Hey - Basecamp가 만든 새로운 이메일 서비스

- 메일을 세곳으로 구분해서 처리
ㅤ1. Imbox : Important Mail
ㅤ2. Feed : 뉴스레터들
ㅤ3. Paper Tail : 기록용 (구매 영수증 같은)
- 메일 스크리닝 : 신규 이메일주소로 부터 메일 받으면, 그런 사람들만 모아보고 Yes/No 로 더 받을지 말지 결정
- 쓰기 편한 Reply Later 기능
- 받았던 첨부파일 모아보기
- 다양한 편의 기능들
ㅤ→ 제목 없는 이메일 수신시 또는 쓰레드명이 이상한 메일들 관리를 위해 제목 변경 가능
ㅤ→ 특정 메일 쓰레드 Ignore 하기
ㅤ→ 같은 주제 메일이 다른 쓰레드로 왔을때 합치기 가능
ㅤ→ 발신자/쓰레드별 알림 설정
ㅤ→ 모든 Spy 트래커 차단 (수신알림,개인정보등)
ㅤ→ 메일 여러개를 한번에 열고 스크롤로 보기
ㅤ→ 특정 발신자의 메일을 하나로 묶기
ㅤ→ 별도 서비스 필요없는 대용량 파일 전송. 저장 기간 무제한
ㅤ→ 전화번호, 링크, 주소, 각종 인증 번호를 Clip 해서 별도로 보는 기능
ㅤ→ Speakeasy 코드 : 컨퍼런스 등에서 누군가에게 번호를 발급해주면 제목에 그 번호가 들어가 있을시 Imbox 에서 특별관리
ㅤ→ 아무 메일/쓰레드에 "Note to Self" 기능으로 메모 남겨두기
ㅤ→ 기본 저장 공간 100GB
- 웹/맥/윈도우즈/리눅스/아이폰/아이패드/안드로이드 용 전용 이메일 App 제공
- 1년 $99 유료 서비스. 7월까지는 초대로만 사용 가능

 
3K, 60fps, 130ms 화상회의 구현을 위해 Rust를 선택한 이유

Tonari의 "실시간" 화상회의 구현 후기
ㅤ→ Zoom, WebRTC의 지연시간은 315-500ms
실시간 수준인 130ms 지연시간을 위해 WebRTC 스택 75만 라인을 건드리는 것보다, 전체 스택을 처음부터 원하는 하드웨어에 맞게 설계하고 다시 구현하기로 함
ㅤ→ 보안,성능,유지보수를 위해 Rust를 선택

주로 사용한 Crate 들
ㅤ→ 표준 라이브러리 보다 좋은 것들 : crossbeam, parking_lot, bytes, socket2
ㅤ→ 로그와 CLI를 예쁘게 : fern, structopt
ㅤ→ cargo 도우미 : cargo-release, cargo-udeps, cargo tree, cargo-geiger, cargo-flamegraph

Rust의 힘든 점들
- 컴파일 시간이 김
- 라이브러리 커버리지가 부족
- 처음부터 정확하고 명확한 코드작성을 요구
- 타입 추론기가 너무 강력해서 동적 타입 언어를 쓰는 것처럼 느낄때가 있음
- 언어가 계속 발전중

Rust를 선택한 것의 결과
- 소프트웨어 관련한 다운타임을 경험하지 않음
- 효율적인 리소스 사용으로 성능좋은 코드를 쉽게 작성할수 있었음
- CPU 와 메모리 사용은 모두 예측가능하고 일관적
- 일관된 지연시간과 프레임속도를 보장
- 코드베이스 유지경험도 훌륭
- 최종적으로 유지 가능한 신뢰할수 있는 제품을 만들었으며, 프레임속도, 대기시간 및 리소스 효율성에서 빠른 성능을 발휘했음
ㅤ→ Rust 없이는 힘들었을 것

 
최근의 흥미로운 데이터베이스 기술들

- TileDB : 다차원 데이터 분석
- Materialize : 실시간 SQL Streaming DB
- Prisma : 현대적인 DB클라이언트
- EdgeDB : NoSQL + RDB
- Tremor : 비정형 데이터를 위한 이벤트 처리 시스템
- Debezium : DB변경사항(Change Data Capture)을 스트리밍 하는 분산 플랫폼

 
자바스크립트 async/await 마스터하기

자바스크립트의 비동기 처리는 Promise와 async/await가 도입된 이후 훨씬 깔끔해졌지만, 이것들의 사용법을 명확하게 이해하는 것은 콜백 함수보다 좀 더 까다로운 편입니다. 콜백 함수는 콜백 지옥(Callback Hell)이라 불리는 읽기 어려운 코드를 만들기 아주 쉽다는 등 뚜렷한 단점이 있지만, 콜백 함수 하나만 놓고 보면 기본적인 개념을 이해하기는 비교적 간단한 것도 사실이지요. 하지만 async/await와 그 아래에 있는 Promise는 상대적으로 콜백 함수보다 개념을 정확하게 이해하기 어려운 것도 사실입니다. 특히 초보 개발자에게는요.

자바스크립트의 async/await 및 그 아래에 있는 Promise를 명확하게 이해하고 최신 자바스크립트에서 권장되는 코드를 작성하는 데 도움이 될 짧은 전자책 한 권을 소개합니다. (한국어) 원문은 2018년에 나온 영문판 유료 전자책인데, 저자의 허락을 얻어 한국어로 번역하였다는군요.

p.s.
기왕 JS의 async/await가 주제로 나온 김에, 이와 관련된 글 2가지를 함께 묶어 소개합니다.

map, reduce 함수에서 async/await 쓰기
https://velog.io/@minsangk/…

await의 함정, 숨은 병목을 찾자
https://jaeheon.kr/161

 
영국 12개 은행의 UX 분석

Barclays, LLOYDS 같은 기존 은행과 Monzo, Revolut 같은 신규은행들 비교
시리즈 글로 계좌개설, 송금, 카드 중지 등 다양한 상황의 UX를 정리
앱으로만 개설이 가능한지, 얼마나 클릭을 적게하는지, 기간이 얼마나 걸리는지등을 상세히 비교

- 계좌 개설에 걸리는 시간 : PIN 받아서 카드를 가게에서 사용가능하고, 모바일에서 온라인 뱅킹에 접근 가능하는데 걸리는 시간
ㅤ→ HSBC (36일) > Nationwide (22일) > LLOYDS,Revolut (3일) > Barclays, Monzo (2일)

- 계좌 개설하는데 총 클릭수
ㅤ→ First Direct (120번) > HSBC (99) > Barclays (74) > LLYODS (69) > Monzo (45) > Revolut (24)

- 신규 은행들은 계좌개설이 어떻게 다른가
ㅤ1. monzo, Revolut, Starling Bank, Barclays 는 앱으로만 계좌 개설 가능
ㅤㅤ→ 다른 은행들은 웹사이트에 가야함. 심지어 모바일에서 반응형이 아닌곳도 있음.
ㅤ2. 신규 은행들은 계좌 개설하자 마자 Apple Pay 바로 사용 가능 "Add to Apple Wallet"
ㅤ3. 디지털 ID 인증
ㅤㅤ→ monzo, Revolut, Starling Bank, Barclays 는 신분증 찍어서 업로드 하면 끝
ㅤ4. 신용정보 확인을 위한 예전 주소 확인
ㅤㅤ→ monzo, Revolut, Starling Bank 는 현재 주소만 물어봄
ㅤㅤ→ Barclays, first direct, HSBC, LLOYDS 는 1개 이상의 이전 주소지를 물어봄
ㅤ5. Welcome 레터
ㅤㅤ→ monzo, Revolut, Starling Bank 는 카드 발송시 자신들의 아이덴티티가 담긴 봉투를 사용
ㅤㅤ→ Barclays, first direct, HSBC, LLOYDS 는 일반 우편 봉투 ( 영국 Royal Mail )

- 첫번째 온라인 송금 하기
ㅤ→ 실제로 12개 은행의 모든 앱의 송금 단계를 스크린샷으로 하나하나 보여줍니다.
ㅤ→ UX 측면에서 참고할만한게 많습니다.

- 송금하는데 총 클릭수
ㅤ→ Barclays (18번) > Revolut (14) > monzo (14) > HSBC,LLOYDS (13) > first direct , starling (11)

- 송금하는데 걸린 시간 (초)
ㅤ→ Nationwide (81초) > Barclays (56초) > LLYODS (39) > HSBC (33) > Revolut (32) > monzo (24)

- 신규 은행들은 송금 및 결제 프로세스가 어떻게 다른가
ㅤ1. 빠른 알림 : 노티 메시지 자체가 빠르고, 앱이 실시간 업데이트
ㅤ2. 계좌 자동 선택 : 1개의 계좌만 있을때 해당 계좌를 자동 선택
ㅤ3. Anti-Error UX : 어느 은행으로 돈을 보내는지 등을 표시
ㅤ4. 몇몇 값을 자동 입력 또는 추천
ㅤ5. 앱내에서 Apple Pay 추가 가능

이 BuiltForMars 사이트는 UX 관련한 글이 계속 올라오는데,
이 글은 은행 UX를 분석한 "The UX of Banking" 시리즈 글로 현재 4번까지 나와있습니다.
https://builtformars.co.uk/banks/

한국의 기존 은행과 카카오뱅크를 비교하는 것과 비슷해서 재미나게 봤습니다.
근데 보고나니 공인인증서를 제외하면 우리나라 은행들이 훨씬 좋은거 같아요.
특히나 카카오뱅크 수준하고는 많이 차이가 나는듯.

 
Buf - Protobuf를 사용하기 쉽게 만드는 프로젝트

성능상으로 JSON보다 훨씬 뛰어나지만, 사용하기 어렵다고 얘기되는 Protobuf를 JSON보다 더 쉽게 아무곳에나 쓸수 있게 만드는 것을 목표로 함

1단계. Buf CLI 도구 제공
ㅤ→ Linter 추가
ㅤ→ Breaking Change Detector
ㅤ→ 에디터 연동 : 현재는 Vim만. Emacs,VSCode,IntelliJ 예정
2단계. Buf Schema Registry 제공 예정
3단계. Mock 서버 자동생성, Fuzz 테스팅, 버저닝 지원하는 URL 서버 등으로 확장 예정

 
AWS Lambda, Elastic File System (EFS) 마운트 지원

- 람다 함수의 동시 실행환경에서 친숙한 파일 인터페이스로 데이터 저장 가능해짐
- 여러 개의 람다에서 동일 또는 다른 EFS Access Point를 통해서 접근 가능
- 이를 통해 EC2/ECS 등과 EFS를 공유하여 대용량 데이터도 처리 가능
- Lambda 사용 가능한 리젼에서 바로 사용가능 (중국 제외)

 
면접 잘 보는 법 / 자소서 잘 쓰는 법

이력서와 자소서를 여기저기 넣어도 광탈하고, 면접까지 어찌어찌 가도 결국 떨어지고야 마는 저와 같은 불쌍한 영혼에게 꼭 필요한 자료다 싶네요. (한국어)

김창준님의 이력서 팁 - 역량 중심으로 이력서 작성하기:
https://www.facebook.com/100000557305988/posts/3477505705611305

 
Turbolinks - 웹앱 내비게이션을 빠르게

- Basecamp 와 Hey 에서 사용중인 라이브러리
- SPA가 아닌 사이트에서 링크 클릭시 SPA처럼 해당페이지를 로드하고 내용만 교체해서 전체 페이지 로딩하지 않게 만듬
ㅤ→ body 는 교체, head 는 합침
- 링크어노테이션 이나 서버 & 클라이언트에 수정 필요없음
- 페이지 뒤로가기 & 리로드 버튼도 그대로 사용가능
- 모바일 앱 지원

https://stimulusjs.org/ 를 같이 쓰면 더 좋습니다.

 
Math to Code - 엔지니어를 위한 NumPy 튜토리얼

- 인터랙티브 형식으로 수식을 파이썬 Numpy를 이용하여 표현하는 법을 설명
- 기초적인 sqrt(x) 부터 표준편차 구하기까지 총 13단계
- Next.js / KaTex / Skulpt 를 이용해서 개발한 코드는 오픈소스로 공개

비슷한 내용으로 Math-As-Code 도 있습니다.

JavaScript 버전 : https://github.com/Jam3/math-as-code
Python 버전 : https://github.com/Jam3/math-as-code/blob/master/PYTHON-README.md

 
Chakra UI - React 컴포넌트 라이브러리

- WAI-ARIA 를 엄격히 준수하여 접근성이 훌륭하면서도 개발이 빠름
- 전체 어플리케이션/컴포넌트에 테마 및 다크모드 적용이 쉬움
- 모든 컴포넌트들이 결합해서 사용하는 것을 염두에 두고 개발됨
- 다양한 컴포넌트
ㅤAccordion, Alert, AlertDialog, AspectRatioBox, Avatar,
ㅤBadge, Box, Breadcrumb, Button,
ㅤCheckbox, CircularProgress, CloseButton, Code, Collapse, ControlBox,
ㅤDivider, Drawer, Editable, Flex, FormControl, Grid,
ㅤHeading, Icon, IconButton, Image, Input, Link, List,
ㅤMenu, Modal, NumberInput, Popover, Progress, PseudoBox,
ㅤRadio, SimpleGrid, Select, Skeleton, Slider, Spinner, Stat, Stack, Switch,
ㅤTabs, Tag, Text, Textarea, Toast, Tooltip

- 유틸리티
ㅤuseClipboard : 클립보드로 내용을 복사하는 커스텀 훅
ㅤuseDisclosure : Modal, Drawer 등의 Open, Close, Toggle 을 지원하는 커스텀 훅
ㅤuseTheme : 테마 객체를 가져오는 커스텀 훅

 
Matomo - 직접 호스트하는 Google Analytics 대체제

- GA 대체용 무료 분석도구 중에서는 가장 기능이 많음
- 데이터 샘플링 하지 않음. 100% 정확한 데이터를 저장
- Raw 데이터를 데이터웨어하우스로 보낼수 있음
- PII 제거 가능 → GDPR 대응
- 확장 기능은 유료 (Heatmap, Conversion Funnel, A/B 테스팅, User Flow, Multi Attribution 등 )
- 예전 Piwik이 이름을 바꾼 것

 
GitHub Super Linter 공개

- 다양한 Linter들을 묶어서 GitHub Action 으로 한번에 호출 가능하도록 만든 통합 Linter
- Ansible, CoffeeScript, Dockerfile, Golang, JavaScript, JSON, Markdown, Perl, Python3, Ruby, Shell, Terraform, TypeScript, XML, YAML 지원
- PR 오픈시 자동으로 린팅 시작하고 Status API로 결과 리턴
- 여러 종류 언어를 복합 사용하는 Monorepo 에도 적합
- 도커 컨테이너로 제공되어 로컬에서도 사용가능

 
Drive & Listen - 도시를 드라이빙하며 로컬 라디오 듣기

- 자동으로 움직이는 스트리트뷰 느낌
- 세계 유명 도시들 선택 가능
ㅤ→ 서울, LA, 하와이, 리스본, 런던, 뉴욕, 파리 등 50개 도시들
- 그 지역의 라디오 방송국 자동 재생
- 자동차 속도 1, 1.5x, 2x
- Street Noise On/Off 가능

 
Pliim - 발표/화면공유시 데스크탑을 깨끗하게 만들어주는 맥용 툴

메뉴바의 버튼을 누르면 활성화된 앱 하나만 빼고 모두 숨겨주는 오픈소스 도구
- 바탕화면의 아이콘 숨김
- 노티 메시지 비활성화
- 활성화된 앱 한개(키노트 등)만 빼고 다른 앱 숨김
- 스피커 음소거
- 배경화면 지정된 것으로 변경
AppleScript 로 된 Lite 버전도 있음
유료인 PliimPro 버전은 마이크 음소거, 빠른 변경(Alt-Click) 지원

 
Github, 인종차별적 뉘앙스가 있는 용어를 다른 것으로 교체할 예정

Github의 CEO인 나타니엘 프리드먼(Nathaniel Friedman)은 현재 인종차별적이거나 노예제도와 관련된 뉘앙스가 느껴질 수 있는 각종 용어들을 중립적인 것으로 바꾸는 작업을 하고 있다고 밝혔습니다. 이러한 용어들의 예시는 다음과 같습니다.

* master → main/default/primary
* slave → secondary
* blacklist → deny/exclude list
* whitelist → allow list

이러한 단어들은 설령 인종차별적 맥락에서 사용되는 것이 아니라 해도 노예제도를 연상시키거나 혹은 ‘흰 것은 좋고, 검은 것은 나쁘다’와 같은 고정관념을 강화하기 때문에 바꾸는 것이라고 합니다. 그러니까 소위 말하는 ‘정치적 올바름’(Political Correctness) 운동의 일환이지요.

IT 분야에서 이런 단어 순화 운동의 선구자는 파이썬 웹 프레임워크인 Django와 CMS 프로젝트인 Drupal로 알려져 있습니다. 2014년에 Django는 어떤 사람의 제안으로 데이터베이스 설정의 [master/slave]라는 용어를 [leader/follower]로 바꾸었고, 이를 본 Drupal은 [master/slave]를 [primary/replica]로 바꾸었거든요. 이러한 행동은 이후 Python, Chromium, PostgreSQL, Redis 등에 영향을 주었지만, 최근까지도 IT분야 전체에 그 영향이 파급된 것은 아니었습니다.

그러나 최근 백인 경찰관이 조지 플로이드라는 흑인의 목을 눌러 살해한 사건으로 다시 불붙은 ‘흑인이라 죽었다’(Black Lives Matter) 운동으로 인해 이런 움직임에 탄력이 붙는 모양새입니다. Android, Golang, PHPUnit, Curl 등 이름만 대면 다들 알고 있을 여러 오픈소스 프로젝트들이 [blacklist/whitelist]란 단어를 다른 것으로 교체할 뜻을 밝혔으며, 다른 수많은 오픈소스 프로젝트들도 [master] 브랜치의 이름을 [main/default/primary/root] 등 보다 중립적인 단어로 바꾸는 데 동참하고 있다고 합니다.

참고 - Django에서 [master/slave]를 [leader/follower]로 바꾼 PR:
https://github.com/django/django/pull/2692

blacklist, whitelist는 생각도 못한 부분이네요

 
Rav1e - 빠르고 안전한 AV1 인코더 오픈소스

- Rust 와 Assembly로 구현된 빠른 AV1 비디오 인코더
- 거의 실시간 인코딩 가능

AV1 비디오 코덱의 현재
ㅤ→ 오픈 & 로열티 없음
ㅤ→ Mozilla, Google, MS 등의 참여
ㅤ→ x264보다 50% 높고, H.265(HEVC) 보다 30% 높은 압축률
ㅤ→ 크롬, Firefox, Opera, Edge 에서 지원중
ㅤ→ 아직 인코딩 속도는 느린편이어서 라이브스트리밍에서 사용은 어려움

현재 Vimeo가 이 Rav1e 인코더를 사용중
- https://medium.com/vimeo-engineering-blog/…

Netflix, 안드로이드에서 AV1코덱으로 스트리밍 시작 https://news.hada.io/topic?id=1465
- 넷플릭스는 VideoLAN의 오픈소스 디코더 Dav1d 사용 https://www.videolan.org/projects/dav1d.html

 
Tsunami - 구글의 오픈소스 다목적 네트웍 보안 스캐너

- 작은 취약점들 부터 RCE(Remote Code Execution) 같은 고위험 취약점들까지 모두 감지
- 높은 신뢰도와 오탐률 최소화
- 스캐일링 하기 쉽고, 빠르고, 시스템을 방해하지 않는 스캐너를 만드는 것을 목표
- 구현하기 쉬운 플러그인 구조로 다양한 보안 스캐너를 추가 가능
- 현재 공개된 플러그인들
ㅤ→ Nmap Port Scanner
ㅤ→ WordPress Exposed Installation Page Detector
ㅤ→ Exposed Hadoop Yarn ResourceManager API Detector
ㅤ→ Exposed Jupyter Notebook Detector
ㅤ→ Exposed Jenkins UI Detector
ㅤ→ Ncrack Weak Credential Detector

 
PWA를 좀 더 앱처럼 만드는 법

Apple Podcasts앱을 PWA로 만든다고 가정하고, 각 기능을 구현시 사용할 웹 기술들 설명
- 오프라인 지원 : App Shell Model
- 오프라인 컨텐츠 : Workbox, Cache, IndexedDB, Persistent Storage
- 백그라운드 다운로드 : Background Fetch API
- 공유 및 타 앱 연결 : Web Share / Web Share Target / Async Clipboard / Contact Picker / Get Installed Related Apps APIs
- 백그라운드에서 새로 고침 : Periodic Background Sync API
- 클라우드 싱크 : Backoung Sync API
- 하드웨어 미디어 키 제어 : Media Session API
- 컨텍스트 메뉴 퀵 액션 : PWA App Manifest
- 특정 URL 스킴에 디폴트 앱으로 동작하기 : URL Protocol Handling
- Native 파일 시스템 연동 : Native File System API, browser-nativefs 라이브러리
- Native 룩앤필 : user-select, system-ui, prefers-color-scheme, overscroll-behavior 및 다양한 CSS 속성들
- 커스텀 타이틀바 : Edge 브라우저가 Title Bar Customization 스펙을 제안중
- 애니메이션 : Web Animations API
- 앱 외부(위젯, 시리 추천 등)에서 콘텐츠 보여주기 : Content Index API
- 잠금화면 미디어 컨트롤 위젯 : Media Session API
- 푸시 노티 : Push API , Notification Triggers API
- 앱 아이콘에 뱃지 달기 : Badging API
- 에너지 절약 / 슬립 모드 진입 방지 : Screen Wake Lock API
- 앱스토어에서 볼수 있게 하기 : 안드로이드는 Trusted Web Activity 컨테이너로 가능

 
Jupyter kernel for SQLite 공개

- 노트북내에서 SQL명령을 편하게 사용
ㅤ→ SQLite DB 생성,열기,백업,삭제 부터 SQL 문법들
ㅤ→ DB 테이블을 tabulate로 HTML 테이블로 보여주기 가능
ㅤ→ Vega ( Visualization 용 언어 ) 와도 연동 예정
- Xeus (Jupyter Kernel Protocol) 기반으로 SQLiteCpp 와 연동

 
2020 EU 일반개인정보보호법(GDPR) 가이드북 [한글 290p PDF]

방송통신위원회 + 한국인터넷진흥원에서 만든 GDPR 가이드

이 가이드북은 GDPR이 규정하는 개인정보의 처리와 관련한 세부 지침,
주요 개념의 해석, 정보주체의 권리 강화를 위한 권리의 명시, 기업의 책
임성 강화를 위한 내부 관리 기법 등의 내용을 우리 기업이 쉽게 이해하고
숙지할 수 있도록 작성되었습니다.

또한 우리 기업이 GDPR의 전반적인 이해를 통하여 기업 생태계에 맞는
개인정보보호 기반을 구축하고 EU를 비롯한 글로벌 시장에서 경쟁력을
제고하는 데 그 목적이 있습니다

 
애플 제품의 둥근 모서리에는 Squircle이 있다

Squircle - Square(사각형)과 Circle(원)의 중간인 도형
HomePod 부터 키보드 버튼, 앱아이콘 까지 모두 Squircle 형태
이렇게 만들면 날카로운 모서리 부분 과 갑작스런 전환부가 없어져서
ㅤ→ 대량 생산된 제품 같은 제조의 느낌이 사라지고, 부드럽고 따뜻한 느낌을 주게 됨

뭔가를 부드럽게 하기 위해 곡률을 사용하는 것은 오래된 개념으로
1959년에 Piet Hein 은 교통문제를 해결하기 위해 로터리에 Superellipse 커브를 주기도 했으며,
Zaha Hadid (동대문 DDP 건축가) 의 건축 스타일도 부드러운 둥근 형태를 많이 이용해서 미래형태처럼 보임

위키피디어에도 등록되어 있는 단어입니다.
https://en.wikipedia.org/wiki/Squircle

실제로 앱이나 서비스에 적용하는 방법
https://medium.com/@arthurofbabylon/…
Figma 에서 Corner Smoothing 기능을 이용하고, iOS 앱에선 UIBezierPath 를 이용했네요

더 수학적인 접근은 Figma 블로그에.. "Desperately seeking squircles"
https://www.figma.com/blog/desperately-seeking-squircles/

 
플랫폼별 Push Notification 디자인과 스펙 비교

푸시 알림은 2009년 iOS에서 시작하여 모든 모바일 OS, 2014년 Web Push 까지 발전했으나 불행하게도 플랫폼별로 조금씩 스펙이 다름.
OneSignal이 각 플랫폼 별로 2020년 현재의 디자인 및 필수 스펙들을 정리
ㅤ→ 아이콘 크기, 타이틀 문자열 길이, 바디 길이, 이미지 포함 여부 및 최대 크기/포맷, 버튼, 뱃지, 타임 스탬프 등

Web Push
- Chrome / Firefox / Safari for macOS
- Chrome / Firefox for Windows
- Chrome for Android

Mobile Push
- Android Native
- iOS Native

 
개인용 이메일 서비스 만들기 삽질기

이영찬이라는 분이 탈(脫)구글의 일환으로 자신이 직접 사용할 개인용 이메일 서비스를 만들려고 했던 경험담을 기록한 글입니다. (한국어) AWS EC2에서 25번 포트를 막아둬서 해제하려면 별도로 신청을 해야 한다는 것과 같은 정보는 이런 글이 아니었으면 전혀 몰랐을 것 같군요.

정말 좋은 글이네요. 혹시나 메일서버 만들일 있으면 참고가 많이 될 것 같습니다.
마지막에 있는 https://www.mail-tester.com/ 이 도구 써보니 좋군요

 
Red Book - DB 분야에서 역사적으로 중요한 논문들에 대한 소개

마이클 스톤브레이커(Michael Stonebraker) 교수는 데이터베이스 분야에서 유명한 대가입니다. 설령 이름은 못 들어봤어도, 이 분께서 개발을 시작하신 DBMS인 [PostgreSQL]이라면 아마 다들 알고 계시겠지요. 이 분은 1988년부터 자신이 보기에 해당 분야에서 역사적으로 중요하다고 생각되는 논문들을 모아둔 컬렉션을 만들고 있는데, 가장 최근인 5판은 2015년에 나왔습니다. 이 논문들에 대한 소개 내용은 크리에이티브 커먼즈 BY-NC-SA 4.0 라이센스라서 웹사이트에 공개되어 있더라고요. (영어) 데이터베이스 분야의 이론적 배경에 관심있는 분이라면 반드시 봐야 할 2차정보원입니다.

 
Keen-Slider - 부드러운 HTML 터치 슬라이더

- 모바일 네이티브 앱 수준의 터치/스와이프 느낌을 구현한 훌륭한 성능의 슬라이더 Carousel
- 의존성 없음. TypeScript 지원. 멀티터치 지원. IE 10 이상 브라우저 호환.
- React, Vue, Angular, VanillaJS 다 지원하는 예제 코드
- 반복, 스냅, 가운데 정렬, 세로, Breakpoint, 화살표 및 DOT 표시
- Media Fading, Lazy Loading, Zoom Out, Autoplay 지원
- iOS Date&Time Picker 구현

 
2020 크롬 확장 퍼포먼스 보고서

인기순위 상위 100개 크롬 확장들이 성능에 미치는 영향을 분석
- 측정 지표 : 페이지 CPU 시간, 렌더링 지연시간, 백그라운드 CPU 시간, 브라우저 메모리 사용량

Page CPU 가장 많이 먹는 확장들
ㅤ→ 에버노트, Grammarly, Avira, Clever, Flash Video Download 등

화면 렌더링 가장 지연 시키는 확장들
ㅤ→ Clever, Grammarly, LastPass, AVG, Acrobat, Zotero, Avira 등

백그라운드 CPU 사용 많은 확장들
ㅤ→ Avira Browser Safety , Ghostery, Omega Adblocer, AdGuard 등

메모리 사용량 높은 확장들
ㅤ→ Avira, Adblock, Grammary, Amazon Assistant, Touch/Hotspot VPN 등

1000위 까지 하면 에버노트보다 더 느린것들도 있음 : MozBar 등 ( 국내에 안쓰는 것들이 대부분 )

AdBlocker 류가 메모리/CPU/등을 많이 먹는데 이중 DuckDuckGo Privacy Essentials 랑 uBlock Origin 이 훌륭
ㅤ→ 실제로 광고 많은 페이지에서 CPU시간도 가장 적게 먹게 차단

 
Raya - 여러 업무용 SaaS의 기능을 합친 All-in-One 도구

Asana (Tasks) + Slack (Updates) + Dropbox (Storage) + GSuite (Email) + Nuclino (Wiki) + Pipedrive (CRM)
협업시 주로 사용하는 기능들만 묶어서 심플하게 만든 도구
각각의 기능을 구매하면 비싸지만, 저렴하게 이용가능 → COVID 기간중엔 무료

 
Apache Spark 3.0 릴리즈

- v2.4 대비 2배이상의 속도 개선
- ANSI SQL 준수
- Pandas API 개선 (UDF 와 Type Hints)
- Structured Streaming을 위한 새로운 UI
- R 사용자 정의 함수 호출시 40배 까지 속도 개선
- 3400개 이상의 JIRA 티켓을 처리했음