| 메모리를 많이 쓰면 저 세상으로 황급히 가시는 프로그램때문에, 최대한 메모리를 아끼는 (그러기에는 이제는 너무 string 객체에 익숙해져 버렸지만…) 작업을 해야했다. 다행히도, 동시에 그 객체를 건드리는 일이 없었기 때문에, 아이디어가 나온게, 정적으로 한번만 할당하고, 계속 그 메모리를 이용하자였다. 그리고 이 메모리를 끊어서 줘야 하는 경우가 생겼는데, 이를 위해서 간단히 한 바이트를 기억해두고, 0으로 변경 후, 전송하고, 다시 원래대로 돌리는 작업을 하게 되었다. 그런데, 그러니 문제가 생겼다. –_-, 깜빡하고 마지막에 되돌리는 것을 잊은 것이다. –_- 중간에는 잘 나오니, 테스트도 쉽게 넘어가 버리고… 마지막에 혼자서 대박 버그를 만들어 버린것이었다. 이 때 배운 교훈, 1. 같은 흐름의 동작이라면, 나뉘기 보다는 하나로 구성해라. 뭐, 컴파일 시점에 속도를 조금이라도 더 올리기 위한것이 아니라면, 같은 조건이 들어가야 하는 함수들은 하나로 묶어두는 것이 좋다.(즉, 한군데만 고치고 다른곳에 적용이 안되는 케이스다 T.T, 로직이 다른 형태로라도 여러군데 있으면 안되고, 한군데서 처리해야 한다.) 2. 실수 할 수 있는 부분을 미리 정의하자. 이번 실수는 충분히 예상할 수 있던 부분이었다. 일이 바뻐서, 중간에 까먹기 때문에 생기는 문제라. 미리 완료해야 할 목록으로 만들어 두었다면 충분히 사전에 막을 수 있었다. TDD를 한다든지나 Code Review를 한다든지, 이번 실수는 Code Review 와 Test 를 했음에도 불구하고, 대충하면 –_- 큰일난다라는 것의 교본이다. T.T 온라인 코드리뷰는 조금 힘든 듯, 작성자로 부터 설명을 듣고, 그 이후에 맞는 지 확인하는 것이 더 좋다라는 T.T |