Career/한글과컴퓨터 3

CPU 사용량에 따른 각 서비스간의 통신 속도 체크 및 최적화된 사용량 찾기

CPU 사용량에 따른 API 통신 속도에 관해서는 생각을 해본 적이 없다가 vultr 서버에 올린 백엔드 서버에서 더미 데이터를 받아오는 속도가 너무 느려 해당 문제에 관심을 가지게 되었고 해당 이슈를 보고했었다. 팀장님이 CPU 사용량을 조절해 보면서 테스트를 해보고 최적의 CPU 사용량을 조사해보라고 하셨다. docker 컨테이너를 띄울 때 --cpus의 옵션을 주어 CPU 최대 점유율을 설정할 수 있다. 조금 차질이 있던게 CPU 최대 점유율 옵션을 주지 않고(최대로 사용하도록 나두었을 때) 사원을 저장하는 기능이 몇분여씩이나 걸렸을 때 해당 이슈를 보고했었는데 해당 코드를 최적화하고 난 뒤에 이 문제에 대해 해결하려고 하여서 조금 늦은감은 있었다. 그래도 전체 사원 리스트를 받아오는 API를 호출..

쿼리 성능과 관련하여

재택근무를 하며 각 백엔드 서버들을 클라우드 컴퓨터를 이용하여 띄워두었다. 기존의 다른 프로젝트를 로컬이나 아마존 EC2를 이용할 때도(해당 프로젝트 또한) 속도와 관련된 별다른 애로사항이 없었기에 이번에도 잘되려니했다. 그런데 이게 왠걸, Batch 작업에서 500개 가량의 레코드를 DB에 삽입할 일이 생겼는데 매번 돌때마다 실행 시간이 증가하다가 결국 14분씩이나 걸리고 말았다. 겨우 500개가 넘는 데이터를 삽입한다고 실행시간이 이렇게나 많이 걸린다는 것은 분명 문제가 있다고 생각했다. 해당 이슈를 해결하기 위해 백엔드 팀원과 함께 여러모로 방법들을 생각해보았다. DB를 거치지 않고 백엔드 서버단에서 HashSet, HashMap 등을 이용하여 중복 데이터들을 정리한 후 DB에 쿼리 날리는 횟수를 ..