[GN#38] 모든 회사는 핀테크 회사가 될 것이다
자신들의 서비스에 다양한 분석 도구를 붙이고 있는 회사들이라면 한 번쯤은 들어봤을 만한 서비스 Segment. 기본적인 Google Analytics부터 Amplitude, Braze 등 분석 솔루션과 광고 효과를 분석하기 위한 Adjust, AppsFlyer등과 회사 내의 Data Lake인 S3, RedShift, BigQuery까지 많은 서비스로 사용자 데이터를 보내야 할 때, 개발자가 각각의 솔루션을 붙이는 게 아닌 Segment 하나만 붙임으로써 모든 것이 가능하게 해주는 도구인데요. 이 Segment와 같은 기능을 오픈소스로, 심지어 API가 호환되게 만든 것이 RudderStack입니다. Segment 가격이 다소 부담스럽거나 했던 회사들은 한 번쯤 시도해 볼 만한 솔루션인 것 같습니다.
클라우드 구조가 복잡해 지면서, 사내의 클라우드 인프라를 다른 멤버들에게 설명하기 위해서 여러 가지 방법을 사용합니다. Diagrams는 클라우드 아키텍처 다이어그램을 파이썬 코드로 그리는 방법을 제시합니다. 이를 통해 클라우드 아키텍처를 버전 컨트롤 시스템에 저장할 수 있게 하여 아키텍처 구조 변경 사항 트래킹이 가능해집니다. 당근마켓에 계시는 권민재 님이 만드신 오픈소스네요. ( 긱뉴스는 한국분들이 만드신 오픈소스는 한층 더 강조해서 알려드립니다! )
기술뉴스 사이트에서 구인/구직에 관한 얘기는 계속 나오는 주제 중 하나입니다. Jobeautifier는 매력적인 개발자 구인공고는 어떻게 적는지를 볼 수 있는 사이트이고, RxResume은 깔끔한 이력서를 만드는 도구입니다.
GeekNews를 구독하시는 회사들과 개발자분들이 점점 늘어나고 있어서, 한 달에 한 번 정도 각 회사가 구인공고를 올릴 수 있도록 만들려고 합니다. 방식은 HackerNews가 하는 것처럼 매월 "Who is Hiring - 이달의 구인공고"를 올리면 댓글로 회사들이 구인공고를 등록하는 형식이 될 것 같습니다. 구인공고가 각각 별도 아이템으로 올라오는 것보다, 매월 모아서 보기에 좋아서 괜찮은 방식인 것 같습니다. 기대해 주세요.
✓ 사내에서 슬랙을 쓰신다면 뉴스채널에 GeekNews SlackBot 을 추가하여 편하게 새 글을 받아보시고, 멤버들에게도 공유해주세요
✓ 주위분들께 https://news.hada.io/weekly 를 추천해 주세요.
✓ 스팸함에 들어가지 않게 news@hada.io 를 주소록에 추가해주세요.
✓ Twitter , Facebook 에서도 긱뉴스를 받아 보실 수 있습니다.
매주 월요일 아침, 지난 일주일간의 GeekNews 중 엄선한 뉴스들을 이메일로 보내드립니다.
a16z - 모든 회사는 핀테크 회사가 될 것이다 | ||||
a16z Summit 동명 발표의 요약/동영상/슬라이드 | ||||
| ||||
RudderStack - Segment의 오픈소스 대체제 | ||||
- 사용자 이벤트 데이터를 취합해서 다양한 도구로 보내주는 Segment 서비스를 Go로 구현한 오픈소스 | ||||
| ||||
| ||||
왜 클라우드플레어는 인기 없는 아이템까지 메모리에 캐시하는가 | ||||
클라우드플레어가 캐시 전략을 바꾸어서 SSD의 쓰기 부하를 최대 25%까지 줄인 경험을 블로그에 올렸습니다. (영어) 통념과는 달리, 클라우드플레어는 접근 빈도가 높지 않은 아이템도 일부러 메모리에 캐시하는 방식으로 이런 목표를 달성했습니다. SSD는 쓰기에 취약한 저장 매체입니다. SSD에서 데이터를 저장하는 플래시메모리 셀은 재기록 가능한 횟수가 제약되어 있으며, 한번 기록된 내용을 지우고 다시 기록하는 것은 상대적으로 오랜 시간이 걸릴 뿐더러 읽기 작업까지 덩달아 느리게 만드는 작업입니다. 따라서 SSD에서는 특히 쓰기 작업을 줄이는 것이 중요한 최적화입니다. 클라우드플레어는 서버에 고성능 NVMe SSD를 많이 사용하는 업체이기 때문에, 당연히 이런 부분을 고민했습니다. 클라우드플레어는 CDN 업체인데, CDN이란 본질적으로 커다란 네트워크 캐시라고 할 수 있지요. 클라우드플레어 서버의 SSD에 저장되는 내용 또한 결국 캐싱된 아이템인데, 관찰 결과 그 중에는 한번 캐싱된 이후 다시는 액세스되지 않는 내용(일명 “원 히트 원더”)이 참 많았습니다. 따라서 이런 아이템들은 SSD에 기록하지 않는 것이 좋을 것입니다. 1번만 접근이 일어나는 아이템을 SSD에 기록하지 않는 방안을 실험한 결과, SSD의 레이턴시가 거의 5%나 줄어든다는 고무적인 결과가 나왔습니다. 문제는 이 아이디어를 어떻게 실제 서비스 규모에서 적용할 수 있느냐는 것이었습니다. 1번 접근할 때는 캐시하지 않다가 2번 접근할 때부터 캐싱한다는 것은 데이터 원본에 대한 접근량이 2배로 늘어난다는 뜻이 됩니다. 당연히 그만큼 여러 비용이 발생할 것이고, 이는 본말전도지요. 그래서 클라우드플레어는 캐시 기록을 2단계로 계층화하였습니다. 처음에는 모든 아이템을 ‘단기 캐시’인 메모리에 캐싱한 다음, 접근 횟수가 여러 번인 아이템만 “승급”하여 ‘영구 캐시’인 SSD에 기록하는 것입니다. 그러면 접근 빈도가 낮은 아이템은 자연스레 캐시에서 밀려나겠죠. 읽기의 경우는 따로 신경쓸 필요가 없었습니다. 왜냐하면 SSD로부터 읽어오는 것은 이미 운영체제가 잘 캐싱해주고 있기 때문입니다. 물론 이러한 발상을 실제 서비스에 적용하는 부분은 조심스럽고 보수적으로 이루어지고 있습니다. 이 발상은 기본적으로 많은 메모리를 소비할 텐데 이는 운영체제의 기존 캐시와 경합할 수도 있고, 혹은 서버 프로세스를 무중단 배포방식으로 업데이트하는 도중에는 일시적으로 메모리가 부족해져서 결과적으로 서비스 품질이 나빠질 수도 있기 때문이지요. 따라서 위 아이디어는 새로 도입한 메모리가 충분한 서버에서만 적용하는 방식으로 점진적으로 도입하고 있습니다. 도입 결과는 긍정적입니다. 캐시 용량을 튜닝해가며 적용한 결과 SSD 쓰기가 20%에서 최대 25%까지 줄어들었고, 이는 레이턴시 감소로 이어졌습니다. 추후 클라우드플레어는 이 기법을 더 많은 서버로 확대하고, 승급 알고리즘을 개선하여 “강등” 또한 도입하며, SSD뿐만이 아니라 HDD까지 고려한 계층 구조를 만들 것이라고 합니다. 이 아이디어를 보고 가장 먼저 생각난 것은 Java의 가비지 컬렉션 기법이었습니다. 대다수 가비지 컬렉션 기법들의 기본 전제는 바로 [대부분의 객체는 아주 짧은 시간 동안만 사용된다]는 일명 ‘약한 세대 가설’(weak generational hypothesis)이니까요. 이런 원리가 변형 기출(?)로 적용된 것이 위 내용이 아닐까 합니다. | ||||
| ||||
Animockup - 앱/웹의 애니메이션 목업 만들기 | ||||
- 앱/웹을 소개하는 애니메이션을 쉽게 만드는 웹사이트 | ||||
| ||||
Jobeautifier - 매력적인 개발자 구인공고 작성하기 | ||||
- 개발자에게 매력적으로 보이는 구인공고를 만들어주는 웹 서비스 | ||||
| ||||
RxResume - 오픈소스 웹기반 이력서 편집기 | ||||
- 개인정보/경력/학력/수상/스킬/자격증/추천 등 | ||||
| ||||
Diagrams - 파이썬 코드로 클라우드 아키텍쳐 그리기 | ||||
- Diagram as Code | ||||
| ||||
Learn X in Y Minutes | ||||
- "몇 분만에 언어/자료구조/도구 배우기" 모음집 | ||||
Serverless Stack - 프로덕션 가능한 서버리스 앱 만들어보기 가이드 | ||||
- 간단한 노트 작성앱을 서버리스로 만들어보면서 서버리스 기본부터 Lambda, 백엔드(S3,Dynamo,Cognito), REST API, React 프론트 를 만들어보는 풀 스택 가이드 | ||||
| ||||
Talkyard - 협업을 위한 지식공유 및 포럼 오픈소스 | ||||
- StackOverflow + Slack + Discourse 형태의 KMS를 사내에 구축할때 사용 | ||||
| ||||
LICEcap - 윈/맥에서 애니GIF로 화면을 동영상 캡쳐하기 | ||||
- 작은 윈도우를 올려서 특정 영역의 움직임을 캡쳐한 후 애니 GIF로 저장해주는 도구 | ||||
| ||||
| ||||
| ||||
Stanza - 오픈소스 Python NLP Library | ||||
- 한국어 포함 66개언어를 지원하는 언어 비종속적 자연어 처리 툴킷 | ||||
| ||||
| ||||
오래된 맥북을 항상 켜져있는 쿠버네티스 클러스터로 만들기 | ||||
- Sleep 해제 | ||||
| ||||
HTML DOM을 네이티브API로만 관리하기 | ||||
- IE11+ 이상의 브라우저 대상, 별도 라이브러리 없이 HTML DOM 처리하는 코드들 85개 모음 | ||||
5K 해상도로 업스케일한 현재까지의 모든 macOS 배경화면 모음 | ||||
- 10.0 Cheetah 부터 10.15 Catalina 까지 | ||||
| ||||
| ||||
MVP.css - A minimalist stylesheet | ||||
- 클래스명 사용하지 않고, 프레임워크 없는 최소화된 CSS파일 | ||||
| ||||
성착취 방지를 위한 디지털 플랫폼 개발 가이드 | ||||
SNS등의 서비스를 개발자로써 성착취/성범죄로부터 보호하기 위해 고려해볼 기능들. - 사진/동영상 공유 -> 불법촬영된 매체를 신고할 수 있도록 | ||||
MarkUp - 웹사이트에 대한 피드백 받기 | ||||
- 웹사이트에 대한 피드백을 받을수 있게 해주는 웹서비스 | ||||
| ||||
Visual Debugger for Jupyter 정식 공개 | ||||
- 노트북에서 브레이크포인트, 변수 확인, 콜스택 조회가 가능 | ||||
YCAdvice - y컴비네이터의 스타트업 어드바이스 모아보기 | ||||
- 약 700여개의 YC 스타트업 레슨들을 정리해서 분류 및 검색 가능하게 만든 사이트 | ||||
| ||||