본문 바로가기
I LEARNED/TIL

[TIL] [troubleshooting] findAll을 지양해야 하는 이유

by veganwithbacon 2022. 10. 6.
반응형

오늘도 나란 똥멍청이가 코드를 이상하게 짜서 배포한 프로젝트에서 조회가 엄청 느려진 이슈가 있었다.

정말 간단한 문제였는데 코드를 먼저 본 것도 아니고, 캐시나 fetchJoin을 먼저 찾고 있었다는게 문제를 해결하고 나서 너무 한심했다..

 

결과만 먼저 말하자면 딱 한줄 바꿨는데 속도적인 면에서 약 26배 정도가 개선되었다.

 

그럼 기존에는 빨랐냐?기존에는 속도가 문제가 발생하기 전보다 좋았었다. 

그러나 기능적으로 불필요한 부분을 쳐내면서 코드를 일부 수정했는데 이 때 기존에 사용하던 코드를 잘못 삭제했는데 확인을 못한 것이었다.

해당 게시물에 대한 상세조회를 하는 것이었는데 

위에서 해당 articleId에 따른 게시물을 찾아놓고 게시물에 연관관계를 맺은 댓글들을 찾는 것이 아닌 모든 댓글을 조회하다보니 속도가 정말 느려졌다.

바로 아래 보이는 articleId만 하더라도 해당 게시글에 대한 댓글이 4개였는데 현 프로젝트에서 댓글의 개수가 600개 가량이 됐는데 findAll로 인해 저 숫자를 모두 조회했다.

상세조회하는데 4초나 걸린다니 내가 서비스했지만,고객이었으면 바로 탈주각이었다.

 

위와 같은 문제가 발생할 때 다행히도 다른 팀원분이 내 코드를 보고 찾아주셔서 바로 수정할 수 있었다.

위 코드에서 아래와 같이 변경했다.

딱 10cm만~도 아니고 한 줄만인데 이 한 줄만 수정했을 뿐인데 아래와 같이 속도가 개선됐다(10cm노래 따라해봤습니다)

 

 

팀 프로젝트를 하며 저번에도 느꼈지만, 본인이 본인 코드를 계속 꿍하게 붙들고 있기보다는 해결이 안 될 때는 팀원에게 한 번 확인해달라고 하는 게 정말 백배 천배 나은 것 같다.

내가 내 코드 계속 봐도 문제가 안보일 때가 은근히 많은 것 같다. 얘도 내 코드라 팔이 안으로 굽는 걸까...

 

 

  오늘의 결론 :  findAll은 지양하자! 끝~

                              은 아니고 항상 배움의 자세를 유지하자! 

반응형

댓글