요즘 이런 저런 일정들 때문에 정작 해야 할 일을 계속 못하고 있다가, 오늘은 퇴근을 하자마자, 열심히 붙잡고 코딩!!
계속 성능이 안 나오던 부분이 있었는데, 지난 주에 이 부분을 멀티 쓰레드로 바꿨더니 어마어마하게 빨라졌다. 그런데 결과가 쓰레드를 쓰지 않을 때와 달라지는 사태가.. orz 계산 부분은 내가 만든 게 아니라서 정확하게 thread safe 하다고 하기는 어려운데, thread 간의 공유하는 상태 변수도 없고, 코드를 최대한 쫓아가면서 결과, 크게 의심이 가는 부분은 없었다.
계속해서 의심스러운 부분을 고쳐나가기를 며칠 째, 분명히 오늘 작업을 하기 전에 테스트를 돌릴 때도 분명히 결과가 달랐다. 그런데 오늘 수정을 하고 났더니 non thread 버전이랑 동일한 결과가 똭!!!!
여기서 끝낼 수도 있었겠지만, 그래도 어디서 문제가 났는지를 파악하고, 내공을 좀 더 키우기 위해, 다시 back tracking을 시도.. 일단 svn에 정상 동작하는 버전을 올려 놓고, 하나씩 back tracking을 해 가면서, 결과를 비교해 가기를 한 시간.. 그런데 결과가 계속 똑같네? –_-? 이게 대체 어찌된 일이람.. 결국 오늘 major하게 수정한 부분을 다 원래대로 복구를 하고 테스트를 해 봤는데도, 이상하게 틀린 결과가 나오지 않는다.
결국 문제를 해결은 했으나, 왜 해결이 됐는지는 나도 잘 모르는.. 이런 찜찜한 사태가.. ㅜ.ㅜ