일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 반응형웹
- javascript animation
- npx
- sequelize
- 웹크롤링
- go
- socket.io
- Redux
- AWS
- 회고
- 포트포워딩
- typescript
- route
- component
- Recoil
- express
- cicd
- docker
- 성능최적화
- graphql
- Modal
- 정규표현식
- 웹팩
- react
- CDN
- styled-component
- scrapping
- Today
- Total
프로그래밍 공부하기
좋은 쿠키 있으면 소개 시켜줘 본문
쿠키런의 메인 컨텐츠 중 하나는 떼탈출이다. 무한 맵에서 3가지 이상의 쿠키들을 사용해 이어달리며 최고 기록을 달성하는 것이다. 그리고 쿠키런은 떼탈출 조합추천이라는 기능이 있다. 그런데 조합추천 기능을 사용하면서 이상함을 느꼈다.
나는 쿠키런을 아주 초창기 때부터 해온 유저이다. 내 계정의 쿠키와 펫, 보물들은 거의 풀 스펙이다. 따라서 조합추천기능을 사용하면 최상위권 유저들(랭커)의 조합과 비슷하게 나올 줄 알았다. 그러나 완전 다른 추천결과가 나온 것이다. 대체 왜 그런 것인지 궁금해 하다가 위 영상을 발견하게 되었다.
떼탈출의 원리는 그리디 알고리즘이다. 떼탈출의 모든 조합을 찾는 것은 엄청 많은 경우의 수를 가지고 있기 때문에 전체를 탐색하는 것은 무리가 있기 때문에 일부분을 탐색하는 그리디 알고리즘을 사용한 것이다. 그리디 알고리즘이란 매 순간에 최적이라고 생각되는 쿠키 조합을 선택하는 것이다. 또한 유저의 기본조합보다 적어도 같거나 높은 조합을 보장해주어야하기 때문에 기존 유저조합과 그리디 알고리즘의 결과조합을 합친 경우의 수들을 만들어내고 이들 중 가장 높은 조합을 최종 결과로 한다. ([모두 그리디추천, 유저조합 1번째 주자 + 나머지 그리디 추천, 유저조합 2번째 주자 + 나머지 그리디 추천....., 모두 유저조합] 중 가장 높은 조합이 최종 결과가 된다.)
영상에서 인상깊었던 것이 2가지가 있다.
첫 번째는 추천 시스템의 목표 설정이다. 추천 시스템을 생각하면 보통 유저가 갖고있는 자원에서 가장 최상의 선택을 알려줘야겠다고 생각한다. 쿠키런 팀은 이를 구현하려 했지만 현실적으로 불가능함을 깨달았다. 이 때 쿠키런 팀은 추천시스템에 대한 유저 경험을 다시 생각해본 것같다. 사실 유저들은 추천시스템을 통해 내 기록이 더 높아지기를 원한다. 즉, 최상의 선택을 제공하지 않아도 현재의 유저들의 상황을 더 나아지게하는 선택지를 제공하는 것으로 유저들을 충분히 만족시킬 수 있는 것이다. 유저 경험에 대한 분석.. 이 것이 얼마나 중요한 것인지 느낄 수 있는 인상적인 예시였다.
두 번째는 기능을 추가할 때 단순히 유저들의 니즈 뿐만 아니라 기능을 추가하였을 때 수입적으로 이익을 가져올 수 있는지 확인하는 작업이었다. 유저들의 과금 패턴에 대한 분석 결과 60%의 신규 유저들은 떼탈출 최고 등급 도달 이전보다 도달 이후에 과금을 더 많이 구매하는 경향이 있다는 것이다. 프로젝트를 할 때 단순히 내 생각에 있으면 편리한 기능이니까 라는 이유로 기능을 추가하는 것 보다는 비즈니스적으로 어떤 가치가 있을지 구체적으로 생각하고 판단해야겠다는 생각이 들었다.
'감상문' 카테고리의 다른 글
코어 자바스크립트 (0) | 2021.02.07 |
---|---|
영어 변수명을 잘 지어보자 (0) | 2021.02.07 |
그런 REST API로 괜찮은가 (0) | 2021.02.06 |
어쨌든 이벤트 루프는 무엇입니까? (0) | 2021.02.03 |
유저동향분석시스템 (0) | 2021.01.07 |