데이터 블로그 챌린지 Day 8

데이터 기반 서비스 개선 (2/3) - 데이터 시각화

서버 스펙 찾기 에 이어 섬네일 추출 로그를 시각화하는 작업을 해보려한다.

결론

단순히 전체의 처리 속도를 가지고 판단해도 좋지만 더욱 세밀하게 각 이미지 별 처리 기록을 데이터 시각화했을 때 얻을 수 있는 정보가 너무나 많고 유익하다. 어디에서 처리 속도가 많이 증가하는지, 시간이 많이 소요되는지 등을 알 수 있으므로 필요에 따라 개선할 부분을 찾을 수도 있을 것이다.

데이터 시각화를 할 때 얻을 수 있는 정보는 숨은 보화다.

데이터 분석

파일 준비

import pandas as pd

df = pd.read_csv('image-process.csv')

df.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 990 entries, 0 to 989
Data columns (total 8 columns):
 #   Column          Non-Null Count  Dtype  
---  ------          --------------  -----  
 0   revision        990 non-null    object 
 1   epoch           990 non-null    int64  
 2   filename        990 non-null    object 
 3   duration        990 non-null    float64
 4   extension       990 non-null    object 
 5   size_with_unit  990 non-null    object 
 6   size_kb         990 non-null    int64  
 7   type            990 non-null    object 
dtypes: float64(1), int64(2), object(5)
memory usage: 62.0+ KB

epoch 별 처리 시간의 합

df.groupby('epoch')['duration'].sum()
epoch
0    101308.503682
1     96664.948304
2     98391.829086
3     97524.716005
4     98224.209695
Name: duration, dtype: float64

편차는 있지만 큰 차이가 없어 epoch 별 처리 속도의 합으로 볼 때 이상치가 있다고 판단이 되지는 않는다.

epoch 별 처리 속도

df.plot(kind = 'scatter', x = 'epoch', y = 'duration')

plt.show()

8-1.png

epoch 마다 나타나는 일종의 패턴이 비슷하다.

파일 확장자와 처리 시간의 관계

import matplotlib.pyplot as plt

df.plot(kind = 'scatter', x = 'extension', y = 'duration')
plt.show()

8-2.png

heic 확장자가 처리 시간이 오래 걸린 경우가 많다.

heic 를 제외하고도 확장자에 따라 편차가 있어보이나 heic 의 값이 커 편차가 눈에 쉽게 보이지는 않는다.

revision 별 확장자와 처리 속도

import seaborn as sns

sns.set_theme(style="darkgrid")
sns.scatterplot(x="extension", y="duration", hue="revision", data=df)

8-3.png

y 상단에 hw2, hw3 가 주로 위치한 것을 확인할 수 있다. 이를 제외하고는 비슷하게 위치하고 있는 것을 볼 수 있다.

heic 확장자 제외
df_without_heic = df[df.extension != 'heic']

sns.scatterplot(x="extension", y="duration", hue="revision", data=df_without_heic)

8-4.png

여러 확장자 중 webp 처리 속도가 느린 것을 확인할 수 있다. 또한 png 도 jpeg 와 tiff 에 비해 처리 속도가 높은 구간도 있음을 확인할 수 있다.

파일 크기 별 처리 속도

sns.scatterplot(x="size_with_unit", y="duration", hue="revision", data=df)

8-5.png

1MB 이전 까지는 heic 도 다른 확장자에 비해 처리 속도가 크게 차이가 나지는 않지만 1MB 부터는 차이가 크게 벌어지는 것을 확인할 수 있다.

2, 12, 48, 160MB 는 동영상 파일이다.

heic 확장자 제외
sns.scatterplot(x="size_with_unit", y="duration", hue="revision", data=df_without_heic)

8-6.png

용량이 커짐에 따라 속도가 선형적으로 늘어나는 것도 볼 수 있는데 이를 가지고 다음 글에서는 수리 모델을 만들어보려 한다.


데이터 블로그 챌린지 Day 7

데이터 기반 서비스 개선 (1/3) - 서버 스펙 찾기

섬네일 추출 기능...

데이터 블로그 챌린지 Day 9

데이터 기반 서비스 개선 (3/3) - 수리 모델

NCloud LB & SourcePipeline 구축하기
tech collection 서비스 성능 개선하기
Selenium 복권 구매 자동화 만들어보기
디자인 패턴
책 리뷰
블로그 챌린지