리팩토링을 떠올렸을 때, 2개의 방향성으로 고쳐봐야겠다고 생각이 들었습니다. 먼저, 성능 개선
과 객체 지향적 구조
의 두 개의 방향으로 개선해보겠다는 생각이 들었습니다.
저번 리팩토링에서 아쉬움이 남았던 부분을 이전 개발일지에 기록을 해두었는데, 이는 거의 객체 지향적 구조로의 개선이 많았습니다. 성능 개선에 대해 우선적으로 생각이 들었던 부분은 graceful shutdown하는 부분에서 인공지능이 계속해서 중복로직에 대해 지적을 해주어서, 이 부분을 중심으로 성능 또한 개선하면 좋겠다는 생각이 들었습니다.
이전부터 가장 개선하고 싶었던 부분인데, graceful하게 shutdown 하는 부분에서 공통 로직을 handleShutdown
로 추출하여, ‘forEach’문을 이용하여,
'SIGINT', 'SIGTERM'
두 시그널을 모두 한 번에 처리하여 로직을 단순화 하였습니다.
위와 같은 방식으로 타임아웃을 설정했습니다. graceful한 shutdown이 더 잘 이루어질 수 있기 위해서 타임 아웃을 추가했다고 간단하게 생각하면 좋을 것 같습니다.
: ‘클래스는 하나의 책임만 가져야 한다’