수행한 프로젝트의 로직1과 로직2의 수행 시간을 비교해보았다.
로직1, 로직2를 수행시키는 Spring test코드를 작성했다. (통합 테스트)
로직1과 로직2의 수행 시간을 측정해보았다.
기존 리팩토링 전의 로직1의 수행시간은 120초
리팩토링 후 로직2의 수행시간은 16초
8배나 차이나는 결과이다.
그때는 기능이 일단 돌아가야한다는 것에 충실해서 이런 부분은 챙기지 못한 것 같다. 시간에 쫓기는 것도 있었다.(나름의 변호)
이런 마음이었다.
지금은 그래도 다르다. 뭔가 작업을 하기 전에 사전 분석을 해서 로직을 짜서 위와 같이 끔찍한 로직을 만드는 빈도수가 좀 적은 것 같다.
앞으로 코드를 짤때는 꼼꼼히 사전 분석을 하고 계획을 세워서 짜자
수행한 프로젝트의 로직1과 로직2의 수행 시간을 비교해보았다.
백준 4179 불! 을 풀게 되면서 알게된 사실이다.
BFS를 수행하면서 조건을 줬었는데
위의 순서로 줬었다.
결과는 실패
까닥하면 위의 결과는 runtime Error를 불러 일으킬 수도 있다.
마지막 블록에서 동서남북을 체크한다고 하면 무조건 범위 바깥을 검사하게 된다.
이때 범위 바깥은 저장된 값이 없는 곳이므로 참조할 수 없는 RunTime Error를 발생시키게 된다.