[우리가 데이터를 쓰는 법] 모바일 게임 로그 데이터 분석 이야기 - 엔터메이트 공신배 팀장Dylan Ko
Gonnector(고넥터) 고영혁 대표가 주최한 스타트업 데이터 활용 세미나 '우리가 데이터를 쓰는 법' 의 세 번째 발표 자료
세미나 : 우리가 데이터를 쓰는 법 (How We Use Data)
일시 : 2016년 4월 12일 화요일 10:00 ~ 18:00
장소 : 마루180 (Maru180) B1 Think 홀
제목 : 모바일 게임 로그 데이터 분석 이야기
연사 : 엔터메이트 공신배 팀장
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 1부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
ChatGPT is a natural language processing technology developed by OpenAI. This model is based on the GPT-3 architecture and can be applied to various language tasks by training on large-scale datasets. When applied to a search engine, ChatGPT enables the implementation of an AI-based conversational system that understands user questions or queries and provides relevant information.
ChatGPT takes user questions as input and generates appropriate responses based on them. Since this model considers the context of previous conversations, it can provide more natural dialogue. Moreover, ChatGPT has been trained on diverse information from the internet, allowing it to provide practical and accurate answers to user questions.
When applying ChatGPT to a search engine, the system searches for relevant information based on the user's search query and uses ChatGPT to generate answers to present along with the search results. To do this, the search engine provides an interface that connects with ChatGPT, allowing the user's questions to be passed to the model and the answers generated by the model to be presented alongside the search results.
최보경 : 실무자를 위한 인과추론 활용 - Best Practices
발표영상 https://youtu.be/wTPEZDc6fw4
---
PAP가 준비한 팝콘 시즌1에서 프로덕트와 함께 성장하는 데이터 실무자들의 이야기를 담았습니다.
---
PAP(Product Analytics Playground)는 프로덕트 데이터 분석에 대해 편안하게 이야기할 수 있는 커뮤니티입니다.
우리는 데이터 드리븐 프로덕트 문화를 더 많은 분들이 각자의 자리에서 이끌어갈 수 있도록 하는 것을 목표로 합니다.
다양한 직군의 사람들이 모여 프로덕트를 만들듯 PAP 역시 다양한 멤버로 구성되어 있으며, 여러분들의 참여로 만들어집니다.
---
공식 페이지 : https://playinpap.oopy.io
페이스북 그룹 : https://www.facebook.com/groups/talkinpap
팀블로그 : https://playinpap.github.io
Spark 의 핵심은 무엇인가? RDD! (RDD paper review)Yongho Ha
요즘 Hadoop 보다 더 뜨고 있는 Spark.
그 Spark의 핵심을 이해하기 위해서는 핵심 자료구조인 Resilient Distributed Datasets (RDD)를 이해하는 것이 필요합니다.
RDD가 어떻게 동작하는지, 원 논문을 리뷰하며 살펴보도록 합시다.
http://www.cs.berkeley.edu/~matei/papers/2012/sigmod_shark_demo.pdf
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 2부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
데이터를 둘러싼 정책과, 기업과 기술의 진화는 빠르게 변화하고 있으며, 모든 지향점은 기업들이 다양한 데이터를 활용하여 경쟁력을 확보하고 이를 통해 AI기반의 혁신을 하고자 하는데 있다.
이 과정에서 수 많은 기업의 업무 전무가, 데이터 사이언티스트 등이 다양한 기업의 혁신을 지원할 수 있는 AI 모델을 검증하는 과정을 거치게 됩니다.
하지만, 이렇게 수 많은 AI 모델이 실제 비즈니스에 적용되기 위해서는 인프라, 및 서비스 관점의 기술이 반드시 필요하게 됩니다.
MLOps는 기업에 필요한 혁신적인 아이디어(AI Model)을 적시에 비즈니스 환경에 적용할 수 있도록 지원하는 기술 및 트렌드 입니다.
주요 내용은
- 데이터를 둘러싼 환경의 변화
- 기업의 AI Model 적용시 마주하는 현실
- MLOps가 해결 가능한 문제들
- MLOps의 영역별 주요 기술들
- MLOps 도입 시 기업의 AI 환경은 어떻게 변할까?
- AI 모델을 비즈니스 환경에 적용(배포)한다는 것은?
2021년 12월 코리아 데이터 비즈니스 트렌드(데이터산업진흥원 주최)에서 발표한 내용을 공유 가능한 부분만 정리함.
발표 영상 참고 : https://www.youtube.com/watch?v=lL-QtEzJ3WY
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) Yongho Ha
http://ga.yonghosee.com 에서 진행하는 구글 어날리틱스(google analytics) 에 대한 강의 슬라이드 입니다. 이 슬라이드는 샘플이지만, 초반부는 실재 강의 교재 그대로 입니다. 이것 자체로도 여러분이 GA를 이해하는데 좀 도움이 된다면 기쁘겠습니다^^ 감사합니다.
RecSysOps: Best Practices for Operating a Large-Scale Recommender SystemEhsan38
Ensuring the health of a modern large-scale recommendation system is a very challenging problem. To address this, we need to put in place proper logging, sophisticated exploration policies, develop ML-interpretability tools or even train new ML models to predict/detect issues of the main production model. In this talk, we shine a light on this less-discussed but important area and share some of the best practices, called RecSysOps, that we’ve learned while operating our increasingly complex recommender systems at Netflix. RecSysOps is a set of best practices for identifying issues and gaps as well as diagnosing and resolving them in a large-scale machine-learned recommender system. RecSysOps helped us to 1) reduce production issues and 2) increase recommendation quality by identifying areas of improvement and 3) make it possible to bring new innovations faster to our members by enabling us to spend more of our time on new innovations and less on debugging and firefighting issues.
https://dl.acm.org/doi/10.1145/3460231.3474620
Causal Inference KR 커뮤니티에서 진행한 발표입니다.
프로덕트 개발 조직의 데이터 분석가로 일하며 진행했던 인과추론 분석을 회고하는 내용입니다.
자료 조회가 안되실 경우 https://drive.google.com/file/d/1GAuAqggoxbX50EEwdzTaV4z4G0j8pLRf/view?usp=sharing 를 확인해주세요.
1. 인과추론에 빠져드는 이유
2. A/B 테스트의 현실, 왜 안된다고 할까?
3. 실험이 예상치 못한 지표를 침해했다
4. 기능을 늘리는 게 MAU 성장에 도움이 될까?
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스Minwoo Kim
2018년 8월 9일, sopoong 액셀러레이팅 워크샵 강의: 데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스.
- 발표 전문 읽기: http://bit.ly/2nrDhPv
데이터에 기반한 성장을 하기 위한 기반들, 필수 선결 조건들에 대해서 이야기해보려고 합니다. 제가 생각하는 필수 선결 조건은 Product-Market Fit, Instrumentation, 그리고 프로세스 이렇게 세 가지입니다. (이건 제가 만들어낸 개념들은 아니고, 기존에 성공적으로 스타트업의 성장을 만들어 냈던 선배들에게서 배운 내용입니다.)
'꿈꾸는 데이터 디자이너' 과정의 학생들에게 소개한
'직업의 세계(?)' 강의 자료 입니다.
https://www.facebook.com/datadesigner2015
데이터를 다루기 위한 스킬과
보면 유용한 책들을 간단히 소개하였습니다.
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [무드등] : 무신사를 활용한 고객 상황에 따른 의류 추천 스타일링 대시보드BOAZ Bigdata
데이터 시각화 프로젝트를 진행한 무드등 팀에서는 아래와 같은 프로젝트를 진행했습니다.
무신사를 활용한 고객 상황에 따른 의류 추천 스타일링 대시보드
20기 이호림 숙명여자대학교 경영학부
20기 노승혜 숙명여자대학교 소비자경제학과
20기 정다인 성신여자대학교 통계학과
20기 홍나연 숭실대학교 정보통계보험수리학과
[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표Dylan Ko
Gonnector(고넥터) 고영혁 대표가 주최한 스타트업 데이터 활용 세미나 '우리가 데이터를 쓰는 법' 의 첫 번째 발표 자료
세미나 : 우리가 데이터를 쓰는 법 (How We Use Data)
일시 : 2016년 4월 12일 화요일 10:00 ~ 18:00
장소 : 마루180 (Maru180) B1 Think 홀
제목 : 좋다는 건 알겠는데 좀 써보고 싶소. 데이터!
연사 : 넘버웍스 하용호 대표
Course Overview:
This course offers a comprehensive exploration of recommender systems, focusing on both theoretical foundations and practical applications. Through a combination of lectures, hands-on exercises, and real-world case studies, you will gain a deep understanding of the key principles, methodologies, and evaluation techniques that drive effective recommendation algorithms.
Course Objectives:
Acquire a solid understanding of recommender systems, including their significance and impact in various domains.
Explore different types of recommendation algorithms, such as collaborative filtering, content-based filtering, and hybrid approaches.
Study cutting-edge techniques, including deep learning, matrix factorization, and graph-based methods, for enhanced recommendation accuracy.
Gain hands-on experience with popular recommendation frameworks and libraries, and learn how to implement and evaluate recommendation models.
Investigate advanced topics in recommender systems, such as fairness, diversity, and explainability, and their ethical implications.
Analyze and discuss real-world case studies and research papers to gain insights into the challenges and future directions of recommender systems.
Course Structure:
Introduction to Recommender Systems
Collaborative Filtering Techniques
Content-Based Filtering and Hybrid Approaches
Matrix Factorization Methods
Deep Learning for Recommender Systems
Graph-Based Recommendation Approaches
Evaluation Metrics and Experimental Design
Ethical Considerations in Recommender Systems
Fairness, Diversity, and Explainability in Recommendations
Case Studies and Research Trends
Course Delivery:
The course will be delivered through a combination of lectures, interactive discussions, hands-on coding exercises, and group projects. You will have access to state-of-the-art resources, including relevant research papers, datasets, and software tools, to enhance your learning experience.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
[NDC18] 야생의 땅 듀랑고의 데이터 엔지니어링 이야기: 로그 시스템 구축 경험 공유 (2부)Hyojun Jeon
NDC18에서 발표하였습니다. 현재 보고 계신 슬라이드는 2부 입니다.(총 2부)
- 1부 링크: https://goo.gl/3v4DAa
- 2부 링크: https://goo.gl/wpoZpY
(SlideShare에 슬라이드 300장 제한으로 2부로 나누어 올렸습니다. 불편하시더라도 양해 부탁드립니다.)
데이터를 둘러싼 정책과, 기업과 기술의 진화는 빠르게 변화하고 있으며, 모든 지향점은 기업들이 다양한 데이터를 활용하여 경쟁력을 확보하고 이를 통해 AI기반의 혁신을 하고자 하는데 있다.
이 과정에서 수 많은 기업의 업무 전무가, 데이터 사이언티스트 등이 다양한 기업의 혁신을 지원할 수 있는 AI 모델을 검증하는 과정을 거치게 됩니다.
하지만, 이렇게 수 많은 AI 모델이 실제 비즈니스에 적용되기 위해서는 인프라, 및 서비스 관점의 기술이 반드시 필요하게 됩니다.
MLOps는 기업에 필요한 혁신적인 아이디어(AI Model)을 적시에 비즈니스 환경에 적용할 수 있도록 지원하는 기술 및 트렌드 입니다.
주요 내용은
- 데이터를 둘러싼 환경의 변화
- 기업의 AI Model 적용시 마주하는 현실
- MLOps가 해결 가능한 문제들
- MLOps의 영역별 주요 기술들
- MLOps 도입 시 기업의 AI 환경은 어떻게 변할까?
- AI 모델을 비즈니스 환경에 적용(배포)한다는 것은?
2021년 12월 코리아 데이터 비즈니스 트렌드(데이터산업진흥원 주최)에서 발표한 내용을 공유 가능한 부분만 정리함.
발표 영상 참고 : https://www.youtube.com/watch?v=lL-QtEzJ3WY
오늘 밤부터 쓰는 google analytics (구글 애널리틱스, GA) Yongho Ha
http://ga.yonghosee.com 에서 진행하는 구글 어날리틱스(google analytics) 에 대한 강의 슬라이드 입니다. 이 슬라이드는 샘플이지만, 초반부는 실재 강의 교재 그대로 입니다. 이것 자체로도 여러분이 GA를 이해하는데 좀 도움이 된다면 기쁘겠습니다^^ 감사합니다.
RecSysOps: Best Practices for Operating a Large-Scale Recommender SystemEhsan38
Ensuring the health of a modern large-scale recommendation system is a very challenging problem. To address this, we need to put in place proper logging, sophisticated exploration policies, develop ML-interpretability tools or even train new ML models to predict/detect issues of the main production model. In this talk, we shine a light on this less-discussed but important area and share some of the best practices, called RecSysOps, that we’ve learned while operating our increasingly complex recommender systems at Netflix. RecSysOps is a set of best practices for identifying issues and gaps as well as diagnosing and resolving them in a large-scale machine-learned recommender system. RecSysOps helped us to 1) reduce production issues and 2) increase recommendation quality by identifying areas of improvement and 3) make it possible to bring new innovations faster to our members by enabling us to spend more of our time on new innovations and less on debugging and firefighting issues.
https://dl.acm.org/doi/10.1145/3460231.3474620
Causal Inference KR 커뮤니티에서 진행한 발표입니다.
프로덕트 개발 조직의 데이터 분석가로 일하며 진행했던 인과추론 분석을 회고하는 내용입니다.
자료 조회가 안되실 경우 https://drive.google.com/file/d/1GAuAqggoxbX50EEwdzTaV4z4G0j8pLRf/view?usp=sharing 를 확인해주세요.
1. 인과추론에 빠져드는 이유
2. A/B 테스트의 현실, 왜 안된다고 할까?
3. 실험이 예상치 못한 지표를 침해했다
4. 기능을 늘리는 게 MAU 성장에 도움이 될까?
데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스Minwoo Kim
2018년 8월 9일, sopoong 액셀러레이팅 워크샵 강의: 데이터 기반 성장을 위한 선결 조건: Product-Market Fit, Instrumentation, 그리고 프로세스.
- 발표 전문 읽기: http://bit.ly/2nrDhPv
데이터에 기반한 성장을 하기 위한 기반들, 필수 선결 조건들에 대해서 이야기해보려고 합니다. 제가 생각하는 필수 선결 조건은 Product-Market Fit, Instrumentation, 그리고 프로세스 이렇게 세 가지입니다. (이건 제가 만들어낸 개념들은 아니고, 기존에 성공적으로 스타트업의 성장을 만들어 냈던 선배들에게서 배운 내용입니다.)
'꿈꾸는 데이터 디자이너' 과정의 학생들에게 소개한
'직업의 세계(?)' 강의 자료 입니다.
https://www.facebook.com/datadesigner2015
데이터를 다루기 위한 스킬과
보면 유용한 책들을 간단히 소개하였습니다.
제 19회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [무드등] : 무신사를 활용한 고객 상황에 따른 의류 추천 스타일링 대시보드BOAZ Bigdata
데이터 시각화 프로젝트를 진행한 무드등 팀에서는 아래와 같은 프로젝트를 진행했습니다.
무신사를 활용한 고객 상황에 따른 의류 추천 스타일링 대시보드
20기 이호림 숙명여자대학교 경영학부
20기 노승혜 숙명여자대학교 소비자경제학과
20기 정다인 성신여자대학교 통계학과
20기 홍나연 숭실대학교 정보통계보험수리학과
[우리가 데이터를 쓰는 법] 좋다는 건 알겠는데 좀 써보고 싶소. 데이터! - 넘버웍스 하용호 대표Dylan Ko
Gonnector(고넥터) 고영혁 대표가 주최한 스타트업 데이터 활용 세미나 '우리가 데이터를 쓰는 법' 의 첫 번째 발표 자료
세미나 : 우리가 데이터를 쓰는 법 (How We Use Data)
일시 : 2016년 4월 12일 화요일 10:00 ~ 18:00
장소 : 마루180 (Maru180) B1 Think 홀
제목 : 좋다는 건 알겠는데 좀 써보고 싶소. 데이터!
연사 : 넘버웍스 하용호 대표
Course Overview:
This course offers a comprehensive exploration of recommender systems, focusing on both theoretical foundations and practical applications. Through a combination of lectures, hands-on exercises, and real-world case studies, you will gain a deep understanding of the key principles, methodologies, and evaluation techniques that drive effective recommendation algorithms.
Course Objectives:
Acquire a solid understanding of recommender systems, including their significance and impact in various domains.
Explore different types of recommendation algorithms, such as collaborative filtering, content-based filtering, and hybrid approaches.
Study cutting-edge techniques, including deep learning, matrix factorization, and graph-based methods, for enhanced recommendation accuracy.
Gain hands-on experience with popular recommendation frameworks and libraries, and learn how to implement and evaluate recommendation models.
Investigate advanced topics in recommender systems, such as fairness, diversity, and explainability, and their ethical implications.
Analyze and discuss real-world case studies and research papers to gain insights into the challenges and future directions of recommender systems.
Course Structure:
Introduction to Recommender Systems
Collaborative Filtering Techniques
Content-Based Filtering and Hybrid Approaches
Matrix Factorization Methods
Deep Learning for Recommender Systems
Graph-Based Recommendation Approaches
Evaluation Metrics and Experimental Design
Ethical Considerations in Recommender Systems
Fairness, Diversity, and Explainability in Recommendations
Case Studies and Research Trends
Course Delivery:
The course will be delivered through a combination of lectures, interactive discussions, hands-on coding exercises, and group projects. You will have access to state-of-the-art resources, including relevant research papers, datasets, and software tools, to enhance your learning experience.
어느 해커쏜에 참여한 백엔드 개발자들을 위한 교육자료
쉽게 만든다고 했는데도, 많이 어려웠나봅니다.
제 욕심이 과했던 것 같아요. 담번엔 좀 더 쉽게 !
- 독자 : 백엔드 개발자를 희망하는 사람 (취준생, 이직 희망자), 5년차 이하
- 주요 내용 : 백엔드 개발을 할 때 일어나는 일들(개발팀의 일)
- 비상업적 목적으로 인용은 가능합니다. (출처 명기 필수)
이인영 : AWS QuickSight 맛보기
발표영상 https://youtu.be/ckofNXBKDgo
---
PAP가 준비한 팝콘 시즌1에서 프로덕트와 함께 성장하는 데이터 실무자들의 이야기를 담았습니다.
---
PAP(Product Analytics Playground)는 프로덕트 데이터 분석에 대해 편안하게 이야기할 수 있는 커뮤니티입니다.
우리는 데이터 드리븐 프로덕트 문화를 더 많은 분들이 각자의 자리에서 이끌어갈 수 있도록 하는 것을 목표로 합니다.
다양한 직군의 사람들이 모여 프로덕트를 만들듯 PAP 역시 다양한 멤버로 구성되어 있으며, 여러분들의 참여로 만들어집니다.
---
공식 페이지 : https://playinpap.oopy.io
페이스북 그룹 : https://www.facebook.com/groups/talkinpap
팀블로그 : https://playinpap.github.io
SK Planet에서 주최한 TechPlanet 2012에서 발표했던 자료입니다. 소셜 큐레이션 서비스에 대한 간략한 소개와 관련 기술, 향후 전망 등을 담고 있습니다.
! 정정합니다. 32페이지의 pypi install ... 은 pip install 이 올바른 코드입니다.
Session 1 - 김득중 쇼핑검색 React 전환 경험 공유
2019년 9월 6일 네이버 쇼핑 개발자 meet up 행사인 'SHOWROOM' 에 발표된 자료입니다.
보다 자세한 내용은 http://nshop-developer.github.io 을 참고해주세요.
(2019년 9월 30일 오후 오픈 예정)
6. 추천 시스템은 복잡한 문제입니다.
https://leankit.com/blog/2016/01/managing-complex-workflows-in-leankit/
7. 추천 시스템은 복잡한 문제입니다.
하지만, 우리가 해야할 일을 아주 간단히 축소하면,
다음 두가지 맥락으로 해석할 수 있습니다
https://leankit.com/blog/2016/01/managing-complex-workflows-in-leankit/
10. 쿼리 유사도 정렬 메타데이터/선호도 조회
필터링
다이어트
바나나...
품절
사과혐오
아이템 추천 시나리오
어떤 게 적합할까?
여기서 원하는 게 뭘까?
11. 2. 관계, 유사도, 거리, .... • 상품명
• 재고량
• 가격
• 판매처
• …
3. 상품 정보1. 활동 정보
• 좋아요
• 싫어요
• 산 것/본 것
• …
12. 이런 저런 기술로 만들어요
2. 관계, 유사도, 거리, ....
오렌지 토마토 레몬
바나나 0.831321 0.8221123 0.747661
• 상품명
• 재고량
• 가격
• 판매처
• …
3. 상품 정보1. 활동 정보
• 좋아요
• 싫어요
• 산 것/본 것
• …
13. 2. 관계, 유사도, 거리, ....
3. 상품 정보
1. 활동 정보
데이터베이스
데이터 수집
데이터 분석
어플리케이션 서버
장보기/과일추천
{
type: “similar”,
database: “장보기”,
filter: {“kind”: “disliked”, “n”: 5},
where: {“status”: “okay”},
limit: 20
}
과일추천
Rule(Schema)
16. 유사도/메타/이력 데이터 적재
수평 확장이 용이해야하며 대량
의 쓰기와 읽기에도 안정적인 성
능을 유지해야함
실시간 개인화 추천, 복잡한 필터
링, 비지니스 로직, 온라인 기계학
습에 필요한 실시간 분석 기능을
제공해야 하며 실시간 서비스에
필요한 수준으로 빠르게 처리해
야함
실시간분석 데이터베이스
관계형 분석 기능을 제공하며 낮
은 지연시간을 보장해야함(실시
간 분석에 필요한 시간을 위해)
OLTP
실시간분석 Online Transaction Processing 데이터베이스
어플리케이션 서버 요구 사항 분석
17. 유사도/메타/이력 데이터 적재
수평 확장이 용이해야하며 대량
의 쓰기와 읽기에도 안정적인 성
능을 유지해야함
실시간 개인화 추천, 복잡한 필터
링, 비지니스 로직, 온라인 기계학
습에 필요한 실시간 분석 기능을
제공해야 하며 실시간 서비스에
필요한 수준으로 빠르게 처리해
야함
실시간분석 데이터베이스
관계형 분석 기능을 제공하며 낮
은 지연시간을 보장해야함(실시
간 분석에 필요한 시간을 위해)
OLTP
실시간분석 Online Transaction Processing 데이터베이스
어플리케이션 서버 요구 사항 분석
중요!
18. 실시간 개인화 추천, 복잡한 필터
링, 비지니스 로직, 온라인 기계학
습에 필요한 실시간 분석 기능을
제공해야 하며 실시간 서비스에
필요한 수준으로 빠르게 처리해
야함
실시간분석
실시간분석
어플리케이션 서버 요구 사항 분석
개인화 추천을 미리 계산하는 것은 매우 비효율적.
실시간 분석이 적합.
19. 벤치마킹
실시간분석 OLTP 데이터베이스 기타
실시간분석이 거의 제공 되지 않음
스케일 아웃이 쉽지 않음(확장성)
실시간분석이 거의 제공 되지 않음
OLTP성 작업에 제약이 있음
일부 실시간분석이 가능하지만 처리 속도가 느림
안정성이 충분히 검증되지 않음
일부 실시간분석을 만족할만한 시간 내에 처리 하지만
안정성이 낮음(버전 1.0이하 테스트)
실시간분석 기능을 가장 많이 제공하나, 여전히 불충분
하고, 유료임
20. 그냥 있는거 쓰면 안되요? 네.
1. 실시간분석
• “결과가 없으면 같은 카테고리내 다른 상품을 보여줬으면 좋겠어요.”
• “본 거는 빼주세요. 그런데 3번 정도 봐야 빠졌으면 좋겠어요.”
• 대용량 개인화 추천, 온라인 기계학습
2. 속도/성능
• 데이터베이스 작업을 단순화하고, 복잡한 로직을 더 효과적으로 구현하자. (혹은 써드파티 라이브러리의 활용)
3. 확장성/안정성
• 대용량 데이터베이스의 특성과 실시간 분석 두가지를 하나의 플랫폼으로 만족시키기 어렵다.
4. 완결성
• API를 사용하는 입장에서 추가 작업 없이 바로 사용 가능하도록 하자.
21. 이제 만들어 보자!
실시간분석 데이터베이스OLTP
실시간분석과 OLTP 연산을 처리하는 것에 집중하고
데이터베이스는 외부 솔루션에 의존
만드려는 것은 여기에 집중
22. L7 스위치백엔드
마라톤 LB (HaProxy)
마라톤 앱
NGINX
GUNICORN
APP APP
Redis
Mongo
DB
External
API
APP
MySQL
룰(스키마)
리소스
실시간 분석
28. 서비스에 사용중이던 파이썬2 + 토네이도 기반의 비슷한 구현체가
있었습니다
가능하면 재활용을 하고 싶었지만, 몇가지 장점으로 파이썬3 +
Sanic 조합으로 변경했습니다
python2 v.s. python3
29. 코드 가독성 증가 및 LOC 감소
Sanic의 문법이 tornado보다 간결하기도 하지만 파이썬3와 써드
파티 라이브러리 전반적으로 코드 사용이 더 쉬웠습니다
python2 v.s. python3
30. 성능
uvloop 덕택인지 tornado 구현체 대비해 동일 환경에서 약 2.1배
가량 빠른 응답 속도를 보였습니다
https://magic.io/blog/uvloop-blazing-fast-python-networking/
python2 v.s. python3
35. 코드를 최적화 하다 보니 결국에는 쿼리를 처리하는데 소요되는 대
부분의 시간은 데이터베이스 조회에(혹은 다른 RPC) 사용됐습니다
데이터베이스는 MongoDB를 사용했습니다 sanic-motor를 사용
하면 쉽게 비동기 호출 방식으로 사용할 수 있습니다
고민이 되는 지점은 데이터베이스의 기능을 어디까지 사용할지 입
니다
데이터베이스 프로파일링
ELSE
32%
DB
68%
ELSE
1%
DB
99%
Rule A Rule B
40. 꼼꼼한 캐싱
데이터베이스 조회 비용이 비싸기 때문에 최대한 캐싱을 꼼꼼히 할
필요가 있습니다
인스턴스내 여러 프로세스로 앱 프로세스가 생성되기 때문에 프로
세스간 중복되는 연산을 줄이기 위해 임베디드 캐시 대신 Redis를
사용했습니다
APP
Redis
APPAPP
44. 복잡한 필터링
바나나 싫다
바나나 싫다
제거하기
뒤로 밀어내기
최근에 봤거나, 결과 수를 일정하게
유지 하기 위해서는 커스텀 필터 구현
45. 복잡한 필터링
빌트인 프로시져로 처리할 수 없는 필터링의 경우를 위해
룰에 파이썬 코드를 심고 런타임 컴파일을 사용
brunch/similar
{
“bucket_A”: {
“$filter”: “{"$match": {"$and": [{"is_black_user": {"$eq": 0}}, {"status": {"$eq": “normal”}}]}}”,
},
“bucket_B”: {
“@filter”: “lambda x: “,
}
53. 퍼포먼스
API
API 요청 350M+
평균 응답 속도 17ms
100ms 이하 응답 비율 99.7%
/ day
데이터베이스
INSERT 1B+
UPDATE 1.5B+
SELECT 1.2B+
/ day
인스턴스(1Thread)
294.98 TPS
20 가상 유저, 60초 버스트
평균 전송 데이터 43KB
linear scalability
55. 파이썬으로 그런거 만드는 거 아니에요
(그만 좀 들었으면... 실제로 이런 경우가 적지 않습니다)
실시간 어플리케이션 서버의 병목 대부분 네트워크 IO
(왜 우리 파이썬한태 그래요!!?!)
CPU 연산의 경우 수치 연산에 최적화된 라이브러리를 잘 활용하자
(그래도 느리다면 내 코드가 문ㅈ...)