Closed daadaadaah closed 2 months ago
이 개선 사항은 동기 -> 비동기로 변경함으로서 성능 향상된걸 따로 뺀 것이다. 싱글 스레드로 안하면, 더 빠른 성능을 얻을 수 있지만, 데이터 일관성 때문에 싱글 스레드로 제한했다. 따라서, #75에 포함시키면, 싱글 스레드 내용을 추가해야 이 내용을 따로
만약, #75 에 포함시킨다면, 다음과 같이 #75 를 변경할 것 같다.
@Async
로 비즈니스 로직과 Logging 로직을 디커플링하여 장애 격리 및 성능 4.5배 향상 (평균 45초→10초 단축)강한 결합력
때문이라고 생각했습니다. 왜냐하면, 비즈니스 로직인 Github 작업과 부가 기능 로직인 Google Sheets Logging 작업이 동기 방식
으로 이루어지다 보니, 한 쪽의 문제가 다른 쪽에 영향을 주었기 때문입니다.디커플링
시켜야겠다고 생각을 했고, @Async 어노테이션
을 도입하여 비동기 방식으로 변경했습니다.독립적
으로 실행될 수 있게 되었고, 다음과 같은 성과를 얻었습니다.
기존 방식
동기 방식
으로 동작해서, 부가 기능인 Logging 작업의 지연이 비즈니스 로직인 Github 작업에도 영향을 미쳤습니다.해결 과정
성과
As-is
To-be