정산 회고

김은혁·2022년 10월 16일
0
post-custom-banner

거의 두 달을 괴롭히던 정산 개편 작업이 끝났다. 날짜는 정해져있는데 페스티벌 등등 다른 일정들이 몰아쳐서 날 괴롭게 했던 정산이 끝이 난 것이다.

기존의 코드를 처음 열었을 때는 충격 그 자체,,, 그렇게 복잡한 코드에 주석 한 마디 달려있는 것이 없고 로직마다 뭉텅이가 너무 길어서 코드가 한 눈에 들어오지 않을 뿐더러 수정하기가 상당히 난해한 상태였다. 먼저 코드 각각이 무슨 역할을 하는지 파악하며 주석을 작성해두고 기능 별로 함수로 묶어 가독성을 높였다.

코드를 다 작성하고 로컬 환경, dev, staging 서버에서까지 테스트가 잘 끝나고 실서버에 배포한 후 정산서 일괄 생성을 시켰는데 ,,,, 두둥 ... ! 서버가 다운되고 다시 시작되는... 식은 땀이 줄줄 흐르고 오함마로 뒤통수를 맞은 것마냥 정신이 몽롱해졌다. 다행인건 사용자가 접근할 수 없는 요청이었다는 것...

숨을 고르고 문제를 파악하려보니 promise.all에 한 번에 너무 많은 것을 실행시켜 실행시간을 초과하여 문제가 발생하고 있었다. 이 문제를 해결하기 위해 알아보니 setTimeout을 통해 해결할 수가 있었다. 예전 setTimeout을 공부할 때, 다음 이벤트 사이클에 실행시킨다는 말에 대해 정확히 이해할 수 없었는데 이 문제를 해결하면서 깨달을 수가 있었다.

작업들을 작업 큐에 등록하고 서버 뒷단에서 처리하게 하고 값을 리턴해버려 응답을 마치게 했다. 덕분에 서버는 문제 없이 돌아가고 정산서는 순차대로 생성되었다.

자바스크립트의 동작 원리를 이해하는 것이 개발을 하는 것에 도움이 될 수 있다는 것을 깨닫게 해준 뜻 깊은 경험이었다.

post-custom-banner

0개의 댓글