pyo92 / project-lottery

Spring boot 복권 서비스 (Monolithic)
1 stars 0 forks source link

[고도화] selenium - purchaser 속도 개선 #211

Closed pyo92 closed 5 months ago

pyo92 commented 5 months ago

이번 PR 은 프로젝트의 가장 핵심 기능이라고 할 수 있는 구매 대행의 속도 개선 작업이다.

사실 기존 로직 자체가 엄청나게 문제가 있었던 부분은 아니다. 로컬에서 docker-compose container 에 올려 테스트해 봤을 때, 각 기능별 1초 정도 소요된다.

free tier 정책상 t2.micro 라는 인프라적 한계로 인해, 각 기능별 대략 20초 정도 소요됐다. 하나의 container 라도 덜어보려고, db 를 aws rds 로 전환했으나 영향은 미미했다. 그래서 결국 극한의 최적화가 필요했다.

최적화를 통해 상당히 체감이 많이 될 정도로 빨라졌다. 원래는 이 정도로 최적화가 됐으면, free tier 임을 감안해서 여기까지 하려고 했었다.

하지만, 실무 경험을 위해서 sns 와 sqs 를 이용한 msa 구조로 분리해보려고 한다.


아래는 단계별 소요 시간을 점검했던 내용이다.

(0) 기존에는 worst case 로 로그인만 26초가 소요됐다. image

(1) chrome driver 옵션만 최적화 했을 때의 결과이다. 절반 가까이 줄었다. Image

(2) 1번 + 로직 최적화(method 분리 등)의 결과이다. 기존보다 절반 넘게 줄었다. Image

(3) 1번 + 2번 + docker 옵션 최적화의 결과이다. 거의 1/4로 줄었다. 👍 👍 👍 image Image