O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
•
•
•
void DFS(productIndex)	{
if 모든 상품을 다 확인했나? {
for 최적 장바구니 쿠폰 선택
exit
}
for 가능한 상품 쿠폰 하나 선택 {
for 가능한 플러스 쿠폰 하나 선택 {
DFS(pro...
Big𝑂 𝑀×𝑁 (
×𝐶
✫
Big𝑂 𝑀×𝑁 (
×𝐶
✫
∞
𝐁𝐢𝐠𝑶 𝑴×𝑵 𝒑 ×𝑪
𝑩𝒊𝒈𝑶
Big𝑂 𝑀×𝑁 (
×C → Big𝑂 𝑀×𝑁 (
𝑀
𝑁
𝑝
𝐶
Big𝑂 𝑀×𝑁 (
→ Big𝑂 𝑀(
+ 𝑁(
𝑀
𝑁
𝑝
Big𝑂 𝑀(
𝑀
𝑝
𝑀(
𝑀(
𝑀(
The formal definition of the assignment problem is
Given two sets, A and T, of equal size,
together with a weight funct...
𝑀(
Big𝑂(𝐾D
)
ő á
Big𝑂(𝐾D
)
Big𝑂(𝐾D
)
𝑲×𝑲
Big𝑂(𝐾D
)
Big𝑂(𝐾D
)
Big𝑂(𝐾D
)
Big𝑂(𝐾D
)
Big𝑂(𝐾D
)
ő
Big𝑂(𝐾D
)
Big𝑂(𝐾D
)
Big𝑂(𝐾D
)
Big𝑂(𝐾D
)
Big𝑂(𝐾D
)
Big𝑂 𝑀×𝑁 (
×𝐶 → Big𝑂 𝐾D
+ 𝐾D
𝑀
𝑁
𝑃
𝐶
𝐾 M𝑎𝑥(𝑃, 𝑀 𝑜𝑟 𝑁)
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기
Próximos SlideShares
Carregando em…5
×

1

Compartilhar

Baixar para ler offline

[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기

Baixar para ler offline

※다운로드하시면 더 선명한 자료를 보실 수 있습니다.

어느 날 특정 쇼핑몰 API 서버에 CPU full load가 발생했습니다. 원인은 장바구니에 담은 각 상품에 회원이 가진 최대 할인 쿠폰을 매핑하는 API였습니다. 기존 코드를 분석하고 해결한 경험을 소개합니다.
얼핏 보면 단순해 보이는 최적 상품-쿠폰 매칭 문제인데, 기존 코드는 어떻게 작성되었고 왜 CPU full load가 발생하는 걸까요?
Assignment problem이 무엇인지 알아보고 관련 알고리즘을 알아봅니다.

목차
1. 무엇이 문제일까?
2. 왜 느릴까?
3. 해결해 보자!
4. 개선 후 결과 그리고 회고

대상
- 개발에 관심 있는 분 누구나
- 알고리즘의 BigO와 요구되는 성능 간 분석에 관심 있는 분
- 면접이나 대회가 아닌, 실전 이슈 해결에 알고리즘을 이용한 사례가 궁금한 분

■관련 동영상: https://youtu.be/tz0lpRAEgcU

[2019] 쿠폰듀스X101: 가장 좋은 쿠폰을 픽 하려다 만난 CPU full load 개선기

  1. 1. • • •
  2. 2. void DFS(productIndex) { if 모든 상품을 다 확인했나? { for 최적 장바구니 쿠폰 선택 exit } for 가능한 상품 쿠폰 하나 선택 { for 가능한 플러스 쿠폰 하나 선택 { DFS(productIndex + 1) } DFS(productIndex + 1) } for 가능한 플러스 쿠폰 하나 선택 { DFS(productIndex + 1) } DFS(productIndex + 1) } Big𝑂 𝑀×𝑁 ( ×𝐶 𝑀 𝑁 𝑝 𝐶 - - - ❶ - - - ❷ - - - ❸ - - - ❹
  3. 3. Big𝑂 𝑀×𝑁 ( ×𝐶 ✫
  4. 4. Big𝑂 𝑀×𝑁 ( ×𝐶 ✫
  5. 5. ∞ 𝐁𝐢𝐠𝑶 𝑴×𝑵 𝒑 ×𝑪
  6. 6. 𝑩𝒊𝒈𝑶 Big𝑂 𝑀×𝑁 ( ×C → Big𝑂 𝑀×𝑁 ( 𝑀 𝑁 𝑝 𝐶
  7. 7. Big𝑂 𝑀×𝑁 ( → Big𝑂 𝑀( + 𝑁( 𝑀 𝑁 𝑝
  8. 8. Big𝑂 𝑀( 𝑀 𝑝
  9. 9. 𝑀(
  10. 10. 𝑀(
  11. 11. 𝑀( The formal definition of the assignment problem is Given two sets, A and T, of equal size, together with a weight function C : A T → R. Find a bijection f : A → T such that the cost function: : ;∈= 𝐶(𝑎, 𝑓(𝑎)) is minimized.
  12. 12. 𝑀(
  13. 13. Big𝑂(𝐾D ) ő á
  14. 14. Big𝑂(𝐾D )
  15. 15. Big𝑂(𝐾D ) 𝑲×𝑲
  16. 16. Big𝑂(𝐾D )
  17. 17. Big𝑂(𝐾D )
  18. 18. Big𝑂(𝐾D )
  19. 19. Big𝑂(𝐾D )
  20. 20. Big𝑂(𝐾D ) ő
  21. 21. Big𝑂(𝐾D )
  22. 22. Big𝑂(𝐾D )
  23. 23. Big𝑂(𝐾D )
  24. 24. Big𝑂(𝐾D )
  25. 25. Big𝑂(𝐾D )
  26. 26. Big𝑂 𝑀×𝑁 ( ×𝐶 → Big𝑂 𝐾D + 𝐾D 𝑀 𝑁 𝑃 𝐶 𝐾 M𝑎𝑥(𝑃, 𝑀 𝑜𝑟 𝑁)
  • gujjy97

    May. 18, 2021

※다운로드하시면 더 선명한 자료를 보실 수 있습니다. 어느 날 특정 쇼핑몰 API 서버에 CPU full load가 발생했습니다. 원인은 장바구니에 담은 각 상품에 회원이 가진 최대 할인 쿠폰을 매핑하는 API였습니다. 기존 코드를 분석하고 해결한 경험을 소개합니다. 얼핏 보면 단순해 보이는 최적 상품-쿠폰 매칭 문제인데, 기존 코드는 어떻게 작성되었고 왜 CPU full load가 발생하는 걸까요? Assignment problem이 무엇인지 알아보고 관련 알고리즘을 알아봅니다. 목차 1. 무엇이 문제일까? 2. 왜 느릴까? 3. 해결해 보자! 4. 개선 후 결과 그리고 회고 대상 - 개발에 관심 있는 분 누구나 - 알고리즘의 BigO와 요구되는 성능 간 분석에 관심 있는 분 - 면접이나 대회가 아닌, 실전 이슈 해결에 알고리즘을 이용한 사례가 궁금한 분 ■관련 동영상: https://youtu.be/tz0lpRAEgcU

Vistos

Vistos totais

186

No Slideshare

0

De incorporações

0

Número de incorporações

66

Ações

Baixados

6

Compartilhados

0

Comentários

0

Curtir

1

×