[GN#54] GeekNews 1주년 회고

2020-07-13 ~ 2020-07-19 사이의 주요 뉴스들
긱뉴스가 오픈한지 1주년이 되어서 회고를 적어 보았습니다. 제목과 요약만 둘러봐도 기술 흐름을 놓치지 않는 사이트를 만들겠다고 시작했는데 아직 갈 길이 먼 것 같습니다. 많은 분들이 즐겨찾기 한 글 Top 10을 뽑아 봤는데, Favorite 기능 자체를 몰랐다고 하시는 분들이 꽤 많네요. 회고에 적고 나니 즐겨찾기 수가 급격히 증가 중입니다. 새로 추가할 Ask/Show 기능 및 기존 기능들도 더 편하게 개선해 나가려고 합니다. 이용해주시는 모든 분들께 감사드리고 앞으로 더 열심히 하겠습니다.

TED 강연 "Inside the mind of a master procrastinator"를 요약한 "할 일을 미루는 사람의 심리" 글이 인기를 끌었는데요. 여러분이 혹시(!) 마감을 앞두고 일을 몰아쳐서 하는 사람이시라면 짧게라도 요약본을 읽어보시고, 15분의 시간을 내서 원본 동영상을 보시는 것도 추천해 드려요. 한글 자막도 다 붙어있습니다. 기한이 없는 미루기를 조심하세요.

최근에 GitHub이 계속 사이트 오류가 발생하면서 많은 회사가 업무에 지장을 받기도 했는데요. 이에 깃헙이 사용성 보고서를 통해서 매달 자신들의 에러 처리 경험과 노하우를 공유하겠다는 발표를 했습니다. 이런 대처 방식은 국내 기업들도 배웠으면 좋겠습니다.

인공지능/머신러닝을 주위에서 다들 하니 나도 해야만 할 거 같은 생각이 들지만, 정작 해보면 결과가 예상처럼 좋지 않다는 얘기도 들리는데요. 이에 대해서 왜 내가 만든 인공지능은 똑똑하지 못한지를 비용 관점에서 재미나게 설명하신 "너와 나의 인공지능이 멍청한 이유" 는 꼭 한번 읽어보시기 바랍니다.

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

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


GeekNews 1주년 회고

긱뉴스는 해외와 국내의 다양한 기술뉴스들을 보다 쉽게 접할 수 있는 사이트를 만들어서, 누구든지 제목과 요약만 계속 보면 업계와 기술의 흐름을 놓치지 않도록 도와주는 사이트가 되었으면 해서 시작했어요. 사이트 오픈한지 만 1년이 넘어서 그간의 회고를 적어봤습니다.

- 활성사용자 : MAU 5만, DAU 2천
ㅤ→ 2월부터 급속히 늘어난 MAU의 변곡점은 슬랙봇 때문
- 트위터와 페이스북
- 전체 작성된 글 수 2411개
- 가장 많이 즐겨찾기 한 글 Top 10
- 차후에 하고 싶은 일들

 
(요약) 할 일을 미루는 사람의 심리

너무나 와닿는 글이라 공유합니다.

- 마감이 없는 일을 미루지 않도록 주의하라
- 장기적인 미루기는 마치 자신을 자신의 삶의 구경꾼처럼 만든다.
- 1주일을 상자로 표현하자면, 인생 달력에 상자가 많이 남지 않았으니 아마 오늘부터 시작해야 할 겁니다.

글 마지막에 있는 1주일 단위로 삶을 그려보는 것만 해주는 서비스가 별도로 있습니다.
생일을 입력하면 주단위로 그려주고, 주요 마일스톤들도 표시해 줍니다.

내 삶을 주 단위로 그려 보기 https://news.hada.io/topic?id=1263

 
GitHub Avaliability Report 매달 공개하기로

- 매월 첫째 수요일에 그간의 사고에 대한 설명과 기술적인 설명, 해결 방안 등을 정리한 가용성 보고서를 발간 예정
- 모든걸 투명하게 공유함으로써 단순한 에러보고가 아닌, 누구나 이 경험으로 배울수 있도록 하기 위함
- 최근 많아지고 있는 사이트 오류에 대한 깃헙의 대처

- 5/5 (2:24분간 장애)
MySQL 특정테이블의 auto-increment ID가 Integer Type 최대값을 초과하면서 발생
PK 사이즈의 70%가 넘으면 알림을 날리게 하고, 테스트 프레임워크가 int/bigint 체킹하도록 린터를 추가

- 5/22(5:09분간 장애)
정기 유지보수중 새로 실행된 MySQL Primary 서버가 다운. 급히 원본 Primary로 트래픽을 우회했지만, 6초간 죽어있었을때 Write 트래픽을 받았기 때문에, 이를 복구하기 위해 복제본에서 리스토어 하는데 4시간, 클러스터 재설정하는데 1시간 소요.
복구시간을 최소화 하기 위해 failover 자동화를 계속 테스트중

- 6/19 (51분간 장애)
향상된 A/B 테스트를 위해 넣은 변경사항이 동적생성된 다른 어플리케이션의 파일에 의존성을 가지면서 발생. 배포중 해당파일 생성이 실패하면서 레이트리밋이 걸림.
A/B 및 Multivariate 테스트 설정이 내부적으로 캐쉬되도록 변경

MS가 인수한뒤 부쩍 에러가 많아 졌다는 의심을 받고 있었는데
( Azure 가 불안한거 아니야? 라는쪽으로 이어지니 뜨끔했을지도 )
이에 대해서 투명하게 가용성 보고서를 발간한다는 정공법적인 대책을 발표했네요.
국내 기업들도 이런 대처 방식은 배워야 한다고 봅니다.

약간 다른 얘기지만 해외기업과 국내기업의 "투명성 보고서"를 비교해 보면 굉장히 질적/양적인 차이가 납니다.

투명성 보고서(Transparency Report) : 정부 및 기업의 정책과 조치가 개인정보 보호, 보안, 정보 이용에 미치는 영향을 보여주는 데이터를 공유하는 것

구글 투명성 보고서 : https://transparencyreport.google.com/?hl=ko
페이스북 투명성 보고서 : https://transparency.facebook.com/

네이버 투명성 보고서 : https://privacy.naver.com/transparency/transparency_report_statistic/…
카카오 투명성 보고서 : https://privacy.kakao.com/transparency/statistic

그냥 데이터를 나열만 하는데 그치지 않고,
보고서 자체를 통해서 기업이 생각하는 신념을 담아 잘 보여주도록 꾸며야 한다고 생각합니다.

 
너와 나의 인공지능이 멍청한 이유

왜 우리가 만드는 인공지능은 바보같고, 구글은 왜 TPU 를 만들었을까.
인공지능을 똑똑하게 만드는데 드는 비용에 대한 재미난 이야기

"우리가 바둑 인공지능을 만든다고 한다면 적어도 사람과는 대등하거나 잘 두는 수준이 되어야 쓸 만 하다고 인정을 해 줄 것이다. 이를 카타고 데이터를 토대로 최적화 시켜서 3일 걸린다고 가정을 하더라도 최적화된 계산 비용만 49,351불 한화로 6000만원 가까이를 써야 가능하다. 물론 이 또한 실패는 전혀 없는 모든 게 아마도 완벽한 상태에서의 계산 시간만을 가정했을 때 그렇다는 이야기일 것이다."

누가 왜 인공지능 안하냐고 물어보면, 돈이 없어서 인공지능을 못한다는 핑계가 생겼어요! ㅎㅎ

아... 너와 나는 돈이 없군요.
구글이 텐서플로우를 오픈소스로 푸는 것도 사실은...
자율주행 기술도 큰 부분을 딥러닝이 차지하고 있을텐데 수백억원을 기본으로 사용할 수 있는 회사가 아니면...

데이터를 쌓을 수 있는 규모자체가 달라서, 결국은 데이터 센터와 클라우드를 들고 있는 회사가 이기지 않을까라는 생각도 드네요. ;ㅁ;

 
TensorFlow, Keras and deep learning, without a PhD

구글의 텐서플로, 케라스, 딥러닝 강의 (약 120분 분량)
필기체로 된 숫자들을 인식하는 신경망을 구축하고 훈련하는 방법을 설명
- 신경망이랑 무엇이고, 어떻게 훈련시키는가
- tf.keras로 1계층 신경망 구축하기
- 계층 추가하는 방법
- CNN 구축 방법
- 정규화 기술 사용방법 : 드롭 아웃, 배치 정규화
- 오버피팅(과적합)이란 무엇인가

해커뉴스에서는 제목의 "without a PHD" 라는 말이 약간 이슈 인듯
https://news.ycombinator.com/item?id=23867892 의 첫번째 댓글

"물론 의미있는 일을 하기위해 꼭 학위가 필요한 건 아니지만, 낮은 진입 장벽으로 누구나 쉽게 AI연구 성과를 이력서에 넣게 됨. 이로 인해 발생하는 일들과 저품질의 결과들로 인해서 실제 분야에 있는 사람이 피해를 보게됨. 학위가 필요하지는 않지만, 깊게 이해하기 위해 많은 시간을 투자해야함."

저런 저품질의 결과들은 단순히 if-else로 처리가능한 것들과 차이가 없던 사례를 겪어서 그런지 공감이 됩니다.

 
우리나라 소프트웨어 회사에는 Technical career path가 없다.

공감되는 글이라 공유합니다.
(저는 매니저로 일하고 있지만)

- Technical Career를 어느 정도 걷다보면 모두가 매니저가 되어야하는 한국 커리어 구조
- 반대로 전문적으로 매니저를 하는 인력도 부족
- Technical Leading과 Management는 다른데 국내는 이를 통합하는 느낌.

 
Link Drop - 저장한 URL들을 개인 뉴스레터로

- 크롬/파이어폭스 확장을 이용해서 글 링크를 저장해두면 자신의 메일로 뉴스레터처럼 모아서 보내주는 서비스
- 하루에 한번 발송 되며, 받아 보는 시간은 지정가능

Pocket 과 Instapaper 의 단점은.. 넣어두고 안 읽는다는 건데
이렇게 메일로 보내주면 좀 더 읽게 되지 않을까 생각은 듭니다.

전 요즘 드는 생각은 정보가 너무 빨리 쏟아져나오고 있으니,
좋은 글은 그때 바로 읽어버려야지 나중에 읽어야지 하는건 못 보게 된다고 생각합니다.
대충이라도 글을 읽고 나서 나중에 다시 찾아볼 수 있게 Favorite 해두는게 좋은 방식인거 같아요.

GeekNews 의 Favorite 기능을 많이 활용해주세요 ㅎㅎ

북마크 자체가 뉴스레터로 보내준다고 해도 잘 안 보게 되더라구요. 예전에 웹페이지나 PDF에서 문장을 선택하면 다음 날 메일로 보내주는 걸 만들어서 혼자 잘 쓰고 있었는데 맥이 Open Scripting Architecture (OSA) 지원을 거의 안 하게 되어서 버려진 기억이 나네요. 하이라이트 문장 + 페이스북/트위터 좋아요 + 리디북스 하이라이트 등을 뉴스레터로 서비스하는게 To Do 목록에 있지만.. 귀찮네요 ㅎㅎ

 
dockle - Container Image Linter

- 도커 이미지를 Best Practice 에 맞게 만들어주고, 보안 검사를 해주는 도구
- Center for Internet Security (CIS) Benchmark 지원
- Travis CI/CircleCI/Jenkins 와 연동해서 DevSecOps 도구로 사용 가능

 
애플,MS,구글,페이스북의 데이터 사이언스 인터뷰 질문들

각 회사들의 데이터 사이언스 롤에 대한 설명
- 요구 학력,경력,기술 스킬
- 데이터 사이언스 팀, 상세 직군, 업무
- 인터뷰 절차 : Screen, On-Site
- 샘플 인터뷰 질문들

회사별로 별도로 링크가 되어 있어서 하나로 묶어서 소개합니다. 각 회사별로 비교하면서 보면 좋을것 같습니다.
위 원본 링크는 애플이고, 구글과 MS등은 아래에

구글 DS 인터뷰 절차 : https://interviewquery.com/blog-the-google-data-scientist-interview/
구글 DS 질문과 답 : https://interviewquery.com/blog-google-data-science-interview-question…
마이크로소프트 : https://interviewquery.com/blog-microsoft-data-science-interview-quest…
페이스북 : https://interviewquery.com/blog-facebook-data-science-interview-questi…
트위터 : https://interviewquery.com/blog-the-twitter-data-scientist-interview/
넷플릭스 : https://interviewquery.com/blog-netflix-data-science-interview-questio…
딜로이트 : https://interviewquery.com/blog-the-deloitte-data-scientist-interview/
스냅챗 : https://interviewquery.com/blog-snapchat-data-science-interview-questi…
월마트 : https://www.interviewquery.com/blog-walmart-data-scientist-interview/

 
WindowSwap - 세상 다른 사람들 창밖에는 뭐가 보일까

- 전 세계 사람들이 자신의 창밖 모습을 공유하는 서비스
- 클릭해서 계속 다음 창으로 이동하면 전 세계의 창밖 풍경을 감상 가능
- 실시간은 아니고, 10분 정도의 HD영상을 찍어서 운영자에게 보내면 그걸 랜덤으로 보여주는 방식

전세계의 웹캠을 실시간으로 보는 EarthCam 같은 서비스도 있지만
https://www.earthcam.com/

남의 창문 밖이라는 컨셉 자체가 좋은거 같아요.
이런 것은 실시간일 필요도 없고, 느낌 좋은 영상만 모아서 볼수 있으니까요.
별도 장비 필요없이 스마트폰으로 10분정도 찍어서 공유하는게 많은 것 같습니다.
보고 있으면 은근 재미있어요. (가끔 창가에 고양이가 같이 나오면 계속 보게됩니다..)

 
AWS Well-Architected 프레임워크

기업들이 클라우드 애플리케이션을 구축하기 위한 올바른 방향을 알려주고, 그 과정을 안내하는 프레임 워크
한국어 백서 PDF (86p) 및 5가지 기본요소에 대해서 각각 한국어 PDF들 제공

- 운영 효율성 : 시스템을 실행, 모니터링하여 비즈니스 가치를 창출하고 지원하는 프로세스와 절차를 지속적으로 개선하는 능력
- 보안 : 정보, 시스템, 자산을 보호하면서도 위험 평가와 완화 전략을 통해 비즈니스 가치를 창출하는 능력
- 안정성 : 시스템이 인프라 또는 서비스 중단으로부터 복구되고, 수요에 맞게 동적으로 컴퓨팅 리소스를 확보하고, 잘못된 구성이나 일시적인 네트워크 문제 등으로 인한 중단 사태를 완화하는 능력
- 성능 효율성 : 컴퓨팅 리소스를 효율적으로 사용하여 시스템 요구 사항을 따르고 수요 변화와 기술 발전 속에서도 그러한 효율성을 유지하는 능력
- 비용 최적화 : 시스템을 실행하여 가장 낮은 가격대로 비즈니스 가치를 창출하는 능력

 
내가 실전에서 사용하는 자료구조와 알고리즘

종종 인터뷰에서 물어보는 알고리즘 질문들이 실전에서는 안 쓰인다고 얘기되는데,
필자가 실제로 Skype/Uber 등에서 일하며 자주 사용했던 것들을 예제와 함께 정리하고 기초로 읽을 것들 추천

그래프와 그래프 탐색 : Skype & Uber
가중그래프와 최단거리 : SkyScanner
정렬 : Skype
해쉬테이블과 해슁 : 모든 곳
스택과 큐 : 때때로
암호화(Crypto) , 확률이론과 추측, Hexagonal Grid 와 계층 인덱스 : Uber

* 인터뷰에서의 알고리즘과 자료구조에 대해

인기 있는 알고리즘이나 특이한 자료구조를 아는 것은 중요하지 않습니다.
알고리즘이란게 무엇인지 알고, Greedy 알고리즘처럼 간단한 알고리즘은 생각할 수 있어야 합니다.
해시테이블, 큐&스택 같은 기본 자료구조는 알아야 하지만, Dijkstra 나 A* 같은 특별한 알고리즘들은 외울 필요는 없습니다.
제가 정렬을 넘어선 알고리즘 들에 했던 대부분의 일은 찾아보고 이해하려고 노력하는 정도입니다.
Red-Black 이나 AVL 트리 같은 특이한 자료구조도 마찬가지구요.
실제로 이런 자료구조를 쓸 일도 없었고, 필요하다고 해도 다시 검색해서 알아볼 것입니다.

실리콘밸리에서 동적 프로그래밍이나 특이한 자료구조를 묻는 질문을 하는게 점점 더 일반적이 되어갑니다.
이런 질문이 뛰어난 엔지니어를 뽑는데는 도움이 될지 몰라도, 실제로 고급 알고리즘 지식이 필요 없는 일을 아주 잘하는 사람들을 못 뽑게 됩니다.

정말 필요한 것은, 가장 일반적인 데이터 구조에 대한 인식과 문제를 해결하기 위한 가장 간단한 알고리즘을 도구로 사용하는 능력입니다.

데이터 구조와 알고리즘은 툴셋일 뿐입니다.
소프트웨어 개발을 할때 자신있게 사용해야 하는 도구 입니다.
이런 도구들을 잘 알면, 이런 것들을 사용한 코드들을 보는데 익숙해 질겁니다.
또한 어려운 문제를 푸는 솔루션을 구현하는데 좀 더 자신감이 생길겁니다.

기본적인 것을 알기 위해 다음의 것들을 추천합니다. (링크는 댓글에)

- GeekforGeeks 의 Data Structures Overview (온라인 글 모음)
- HackerRank 의 DataStructure Collection (문제 풀며 배우기)
- Grokking Algorithms : 그림으로 개념을 이해하는 알고리즘(번역서)
- The Algorithm Design Manual 과 Algorithms: Fourth Edition 은 너무 건조하고 매일 실전에서 쓰기에는 적합하지 않아요.

- GeekforGeeks 의 Data Structures Overview
https://geeksforgeeks.org/overview-of-data-structures-set-1-linear-dat…

- HackerRank 의 DataStructure Collection
https://www.hackerrank.com/domains/data-structures

- Grokking Algorithms : 그림으로 개념을 이해하는 알고리즘
영문 : https://www.amazon.com/gp/product/1617292230/?tag=amzneu-20
한글판 (한빛미디어): https://www.hanbit.co.kr/store/books/look.php?p_code=B5896248244

The Algorithm Design Manual https://www.amazon.com/gp/product/1848000693?tag=amzneu-20
Algorithms : 4th Edition https://www.amazon.com/gp/product/032157351X/?tag=amzneu-20
- 알고리즘 개정4판 (이북) http://www.yes24.com/Product/Goods/71729526

 
개발자가 선택할 수 있는 23가지 커리어 패스

코딩 말고 할 수 있는 일들을 6가지 분야로 구분

- Customer-Facing Roles
1. Developer Relations, Advocacy, or Evangelism
2. Developer Marketing
3. Sales Engineer
4. Technical Recruiter

- Product Roles
5. Quality Assurance or Test Engineer
6. Business Analyst
7. Project Manager
8. Scrum Master
9. Product Manager
10. Designer
11. No or Low-Code Developer

- Support Roles
12. Sysadmin or DevOps Engineer
13. Database Administrator
14. Site Reliability Engineer
15. Technical or Customer Support

- Teaching and Writing Roles
16. Technical Writer
17. Teacher
18. Trainer

- Analytical Roles
19. Data Scientist or Engineer
20. Security Analyst
21. R&D

- Independence and Flexibility
22. Freelancer or Consultant
23. Startup Founder

사실, "개발자" 라고 하면 실제로 코딩을 하는 사람들만을 지칭하는 것 같습니다만, 이 모든 사람들도 개발자라고 생각합니다.

국내에선 1. DR & 에반젤리스트가 더 많이 나와야하고, 경영진이 이게 왜 필요한지 인식하는게 필요해요.
DR이 필요한 환경이 되기 위해서는 플랫폼 기업이 많아지고, 기술얘기를 외부에 할만한, 또는 자신들의 오픈소스가 많은 회사가 더 많아져야 하는데 그런 회사가 국내에 많지 않은것도 사실이죠. 그런 회사가 생기라고 얘기할 수는 없으니 먼저 DR들이 많아지고 그들이 옮겨갈 회사들이 국내에도 많아지면 좋겠습니다.

2번은 이름은 마케팅이지만, 이들이 Growth Hacker 들이라고 생각합니다. 3번에도 일부 포함되구요.

개발자를 가장 잘 뽑을 수 있는건 개발자라고 생각하구요. 보통 스타트업들은 CTO들이 그 역할을 해주는 데요. 전문적으로 개발직군 출신 리크루터를 뽑을 수 있다면 큰 힘이 될거라고 생각합니다.

개발자 출신 Project Manager 와 Product Manager 는 정말 중요한데, 개발자들이 사실 "관리직" 이라면서 싫어하기도 합니다만..
하지만, 이 일에 알맞는 개발자들이 분명히 있고, 그들을 키우는 것은 국내에서 조직이 좀 커진 회사들의 의무가 아닐까 생각합니다.

 
클라우드 Analytics & BI 스택 구축 가이드 한글 번역판

Holistics에서 공개한 "The Analytics Setup Guidebook"의 내용이 좋아 빠르게 한글 번역을 해 보았습니다.

※ 한글판 PDF 업로드에 관해, Holistics의 허락을 받았습니다.

이제 읽어봤는데.. 정말 도움이 되었습니다. 내부 분석시스템 설계에 많은 도움이 될것 같아요

 
Halfmoon - 대쉬보드/제품 페이지를 위한 프론트엔드 프레임워크

- 다크모드 내장(단축키로 쉽게 변경가능)
- 반응형 디자인
- Bootstrap과 비슷한 클래스
- IE11 부터 대부분의 브라우저 지원
- CSS,JS 파일 한개로 구성 (no jQuery)
- Starter Template Generator 로 기본 형태 쉽게 생성 가능
- MIT 라이센스 오픈소스

 
텍스트를 입력하세요: 더 나은 사용자 입력 폼 UX를 위한 조언들

웹 페이지 등에서 사용자 입력을 받을 때 사용하는 텍스트 필드를 구성요소별로 해부하고, 더 나은 사용자 입력 UX를 제공하는 데 도움이 되는 조언을 모은 Medium 글의 한국어 번역입니다. (한국어) 좋은 UX를 위해서는 신경써야 할 것이 참 많습니다.

참고 - 원문(영어):
https://uxdesign.cc/text-fields-forms-design-ui-components-series-2b32…

이 UI Component 시리즈는 한달에 한개 정도씩 새 글이 올라와서 한번 묶어서 소개하고 싶었는데 번역글이 나왔네요.
해당 브런치 제목이 "번역하는 디자이너" 이시니 나중에 다른 글도 혹시.. ㅎㅎ

1. Button Design https://uxdesign.cc/button-design-user-interface-components-series-852…
2. Selection Controls https://uxdesign.cc/selection-controls-ui-component-series-3badc0bdb54…
3. Text fields & Forms design https://uxdesign.cc/text-fields-forms-design-ui-components-series-2b32… (위 번역글 )

 
Tour of Rust - 단계별로 배우는 Rust 가이드

- Rust Playground 를 활용하여 대화형으로 학습 가능
- 영어 및 다양한 언어로 번역 (한국어는 초반만 번역됨)
#1 언어 기본
#2 기본 제어 흐름
#3 기본 자료 구조 타입
#4 제네릭 타입
#5 소유권 & 데이터 빌려오기
#6 텍스트
#7 객체지향 프로그래밍
#8 스마트 포인터
#9 프로젝트 구성 및 구조

 
Netflix가 데이터 인프라 비용을 효율화하는 방법

넷플릭스의 분산된 인프라 구조 및 "자유와 책임" 사내 문화때문에 효율화는 꽤 어려운 일이어서, 비용 투명성을 제공하고 효율화 관련 컨텍스트를 의사 결정자 가까이에 두기 위해 맞춤형 대시 보드를 개발했음.

이 "데이터 효율성 대시보드"를 만든 방법과 교훈들

* 넷플릭스의 데이터 플랫폼 환경 : 두가지로 분류가능
1. Data at Rest : Snowflake, S3, Hive, RDS, ElasticSearch, Cassandra, Druid
2. Data in Motion : Keystone, Flink, Mantis, Spark, Kafka, Presto

** 사용량 및 비용 가시성을 한눈에 보기 **
모든 플랫폼의 비용을 취합하는데, 각 비용을 의미있는 유닛들로 쪼갤수 있는 정보를 포함한 채로 취합
ㅤ→ 유닛 : 테이블, 인덱스, 컬럼 패밀리, 잡 등

이 비용 정보의 원천은 기본적으로 서비스 및 태그로 분류한 AWS 빌링정보에 의존하는데, 이것 만으로는 리소스/팀 별 구분이 불가능해서 다음과 같은 방법들을 이용

- EC2기반 플랫폼
ㅤ→ 병목현상을 일으키는 메트릭(bottlenec metric)들을 플랫폼 별로 정의
ㅤ→ 예를 들어, Kafka 는 네트웍에 바운드되지만, Spark 는 CPU와 메모리에 바운드.
ㅤ→ Atlas 와 플랫폼 로그, Rest API를 활용해서 각 리소스당 메트릭들을 구분하고 비용을 할당

- S3기반 플랫폼
ㅤ→ 각 리소스당 S3 Prefix 를 붙이고, 스토리지 가격 기준으로 리소스당 비용을 계산

- Dashboard View
Apache Druid 기반의 커스텀 대시보드를 사용해서 각 비용을 팀에 할당.
이 비용정보의 주요 고객은 엔지니어링 & 데이터팀. 그들이 해당 정보에 기반해서 액션 할수 있도록 제공
추가로, 엔지니어링 리더들에게는 더 높은 수준에서 볼수 있도록 제공.
유스케이스에 따라서 데이터 자원 단위 또는 조직 단위로 그룹화 해서 볼 수 있고, 스냅샷 및 시계열로 데이터 보는 것이 가능

** 자동화된 스토리지 추천 - Time to Live (TTL) **
일부 시나리오에서는 투명성 제공을 넘어서 최적화 권장 사항도 제공.
데이터 스토리지는 사용량도 많고, 비용 모멘텀(저장후 까먹어버리는 것 같은)이 많으므로,
데이터 사용량 패턴을 기반으로 최적의 스토리지 기간(TTL)을 결정하는 분석을 자동화.
S3의 빅데이터 웨어하우스용 테이블들에 대해서는 TTL 추천을 적용

- 비용 계산과 비즈니스 로직
가장 큰 S3 비용은 트랜잭션 테이블에서 발생하며, 일반적으로 날짜별로 파티셔닝
S3 억세스로그와 S3 prefix-to-table-partition 매핑을 이용하여 액세스할 날짜 파티션을 결정할수 있음.
지난 180일간의 액세스(읽기/쓰기) 활동을 보고 최대 Lookback(돌아보기) 일자를 확인.
이 Lookback 일자에 의해 해당 테이블의 TTL 값이 결정.
이 계산된 TTL을 기반으로 실현가능한 연간 절감액을 계산

- Dashboard View
데이터 오너들은 상세한 데이터 접근 패턴을 볼 수 있으며, TTL의 추천값 vs. 현재값을 보고, 가능한 비용 절감액도 확인 가능

** 커뮤니케이션과 사용자에게 알리기 **
데이터 비용을 확인 하는 것은 기술팀의 일상 업무가 되어서는 안됨. 특히나 의미없는 데이터 비용들이라면.
그래서 데이터 비용에 대한 인식을 높일수 있게 데이터 사용량이 많은 팀들에게만 이메일 푸시 알림 하는 기능을 개발.
또한 비용 절감 가능성이 있는 테이블에 대해서만 자동으로 TTL 권장 값을 보냄.
현재, 이런 이메일은 매월 전송되고 있음

** 교훈과 도전과제 **

1. 각 자산들의 메타 데이터를 식별하고 유지하는 것은 비용 할당에 중요함
ㅤ→ 이를 위해 Netflix Data Catalog (NDC) 라는 메타데이터 저장소를 구축
ㅤ→ 데이터 접근 및 검색이 쉬워져서 기존 데이터나 신규 데이터 어떤 것이든 관리가 가능
ㅤ→ NDC 를 비용 계산의 시작점으로 활용
2. 시간 추세 데이터는 도전적
ㅤ→ 추세 데이터는 스냅샷보다 유리 관리 부담이 훨씬 큼
ㅤ→ 데이터 불일치 및 처리 대기 시간 때문에 일관된 보기를 제공하는 것은 어려운 일
ㅤ→ 두가지의 과제를 해결 해야 했음
ㅤㅤ- 자원의 소유권 변경 : 스냅샷은 자동으로 소유권 변경사항이 반영 되어야 하고, 시계열 보기의 경우는 변경 사항 조차도 메타데이터에 반영이 필요
ㅤㅤ- 데이터 문제 발생시 상태 손실 : 자원의 메타데이터는 API를 통해서 다양한 소스에서 추출되다 보니 수집중 실패할 경우 상태가 손실. 이런 데이터 들은 일시적이므로 API추출만으로는 한계가 있음. Keystone 쪽으로 데이터를 펌핑하는 것 과 같은 대안을 찾아야 함

** 결론 **
고도로 분산된 데이터 플랫폼이 있다면, 이런 대시보드를 통해 피드백 루프를 생성하고 사용량 및 비용 컨텍스트를 통합하면 효율성을 크게 향상 시킬수 있음.
가능하다면 자동화된 추천을 통해서 효율성을 높이도록 해야함.
넷플릭스의 경우 데이터 보존 기간을 추천하는 것이 높은 ROI 를 보여줬음.
이 대쉬보드와 TTL 추천을 통해서 전체 데이터 웨어하우스의 저장 공간을 10% 이상 줄일 수 있었음.

좋네요. 실시간 모니터링 기계를 볼 수 있다면 불수의근도 움직일 수 있다는 연구를 어디선가 봤는데 갑자기 떠올랐습니다.

추천 기능은 시청자만을 위한 것이 아니었군요.

 
BigHeads - 랜덤 아바타 생성 오픈소스

- 게임/커뮤니티 사이트에서 동적으로 아바타를 생성해서 사용
ㅤ→ 상반신+원형 프로필 이미지
- 얼굴,피부,머리모양/색상,옷 종류/색상/로고,눈/눈썹/입/수염/입술,액세서리,모자 등 모두 커스터마이징
ㅤ→ 각 부위가 SVG 파일로 되어있어서 추가 가능
- React 사이트에서는 바로 쉽게 적용가능
- 포함된 이미지로도 그냥 유료사이트에 사용 가능 (MIT)
- 편집기 통해서 편집하고 SVG로 Export 해서 사용

 
Trail Router - 달리기 경로 생성 도구

- 지도정보를 통해 녹지와 자연을 위주로 달리기 경로를 생성
- 공원/숲/물을 거치는 경로를 선호하며, 교통정보가 있다면 바쁜 도로는 회피
- 원하는 거리를 지정하면 왕복경로를 생성하거나, 지점 지점 찍어서 경로 생성 가능
- 생성된 경로는 드래그앤 드롭으로 자유롭게 조정 가능
- GPX 또는 KML 파일로 Export 가능하며, 남과 공유도 가능
- Strava 데이터를 통한 도로별 heatmap 표시 가능
- 안드로이드/아이폰 앱도 제공

 
Spotify의 신입사원 온보딩 절차

한 개발자가 스포티파이 인터뷰,입사 및 첫주를 겪으면서 느낀 장점들을 정리
1. 바로 생산적일걸 기대하지 않음 : "6개월간은 본인이 생산적이라고 느끼지 못하실꺼에요"
2. 온보딩을 도와줄 Buddy 를 지정
3. 여러 단계로 이루어진 심층적인 개발자 튜토리얼 "The Golden Path" 제공 : 개발자 환경 구축부터 내부도구와 프로세스를 활용한 풀스택 어플리케이션 개발까지
4. 팀 소개를 위한 시간을 별도로 스케줄링
5. 온보딩 절차 자체를 Trello 보드에서 별도로 관리하고, 첫 2주간 매니저와 하루에 30분씩 트렐로의 태스크들에 대해서 논의

음 잘 정리된거는 같지만, 국내에도 이정도 하는 회사들은 많을거 같다는 느낌 ^^;
아래 글도 같이 참고하세요.

신규입사자를 잘 온보딩 시키는 방법 - How to onboard a new hire https://news.hada.io/topic?id=233

 
SideQuest - 슬랙전용 티켓 시스템

- 슬랙 앱으로 슬랙 안에서 모든 것이 사용가능
- 워크스페이스내 멤버간 티켓 발행 및 수신
- 개인 혹은 다수, 또는 채널 대상으로 티켓 발행 가능
- 자동 일간 브리핑
- 슬랙 대화/DM 메시지에서 티켓 생성 가능
- 데드라인 설정 가능
- 각 티켓 내부에서 대화 가능

- 현재 베타기간 중이라 무료

 
구글 BigQuery Omni 공개

GCP,AWS,Azure의 데이터에 BigQuery UI로 통합 접근하게 해주는 멀티 클라우드 분석 도구
클라우드간 데이터 이동 필요없이 통합 데이터 분석을 실행가능
구글 Anthos 기반
Avro, CSV, JSON, ORC, Parquet 지원
BiqQuery의 Compute 와 Storage 를 분리. Storage 는 다른 클라우드를 사용가능하게 하여 구현

 
billboard.js 2.0 릴리즈

네이버 박재성님이 만드는 D3 v4+ 기반의 차트 오픈소스
쉽고 간결한 인터페이스로 다양한 차트를 지원하는게 특징
2.0 변경점
- TypeScript 로 전환하고, 아키텍쳐를 재구성
- ESM 으로 변경해서 더 작은 빌드사이즈
- 실행속도 개선 (~50%)
- 하위 호환 유지

지원 차트 타입 : Area, Area Range, Bar, Bubble, Combination, Donut, Gauge, Line, Pie, Radar, Scatter, Spline, Stacked Bar, Step

billboard.js 차트 오픈소스 개발기
https://www.slideshare.net/deview/5-d2-campus-fest-ot-billboardjs

 
Bree - Node.js 용 잡 스케줄러

- Worker 쓰레드로 스크립트를 로딩해서 Job 수행
- async/await 지원, 재시도 및 쓰로틀링 제어 가능
- Cron 구문 및 later, human-interval, ms 등의 다양한 시간 구문 사용 가능
- Graceful Cancel & Reloading
- bull과 달리 Redis에 의존하지 않음

항상 저 Graceful 번역이 좀 애매해서 그냥 원문을 적곤 하는데,
저는 "뭔가 특이한 것 없이 정상적으로 처리됨" 이란 느낌으로 인식하고 있습니다.
https://en.wikipedia.org/wiki/Graceful_exit

 
Apollo Client 3.0 릴리즈

똘똘한 로컬 캐슁을 위해 설계된 GraphQL 클라이언트 라이브러리
React,Angular,iOS,Android 등 다양한 환경에서 사용가능
- In Memory Cache API 추가
- 로컬 State 관리 개선
- Reactive Variables
- Field Policy : Pagination을 별도 로직없이 구현가능

 
해커가 사회공학 기법을 이용해서 유명인 트위터 계정을 해킹

- 해커가 엘런 머스크,빌게이츠,조 바이든,우버,애플 등의 유명 계정을 해킹해서 자신에게 비트코인을 보내라는 지갑 주소를 트윗
- 트위터 조사에 따르면, 사회공학 기법을 통해 트위터 직원들의 정보를 알아낸뒤 트위터 관리자 도구에 접근했다고
- 해커 "Kirk" 는 이 트윗들로 $100,000 이상의 돈을 불법으로 획득한 것으로 알려져
- 원래는 비트코인을 받고 특정 계정을 해킹해주는 것을 하다가 이 방식으로 선회

이걸 통해 알려진 사실중 하나는 트위터의 어드민 도구의 기능
- 이메일 주소도 바꿀 수 있음
- Readonly 로 설정 가능
- 블랙리스트 가 있고, 거기서 검색하는 기능이 있음

해당 해킹된 트윗들 캡쳐는 아래 링크에서 볼 수 있음
계정별로 문구도 바꾸는 세심함을 보여주는 군요 ㅡ.ㅡ;
https://theverge.com/2020/7/…

역시 서비스는 보안이 생명이네요~~ 다시 한번 느껴집니다..