앞으로 어떻게 개발할 것인가?

최근에 실수를 여러번 하게 되었다. 특히 평가시즌에 실수가 겹친것이 슬프긴 하지만… 덕분에 앞으로 어떻게 개발해야 할 것인가에 대한 좋은 생각을 하게 되었다. (문제는 내가 시니어급 개발자라는 것 T.T 이제서야 이런 생각을 가지면 어떻하자는 건지…)

1. 먼저 Input 과 Output을 정의한다.

이번에 첫번째 실수중의 하나이다. 코드에 문제가 있었는데, Test Framework의 파싱 모듈의 오류로, 중간의 공백이 체크가 되지 않았다. 이로 인해, 실제로 눈에 보이는 결과가 동일했던것… 바이너리 체크를 했다면, 쉽게 찾을 수 있었을 텐데…

명확한 Input 과 Output 을 정의하여,  이에 대해서 원본과 비교하는 Framework 을 만든다. 이것은 Regression 테스로 이용한다. 이를 위해 Python Test Library를 정비해야 한다.

2. 전체 범위를 테스트 한다.

1번과 연결되는 내용이다. 빠지고 넘어간, 그리고 특정 기능이 적용된 유저, 그렇지 않은 유저군으로 나누어서 전체 케이스가 커버 되도록 테스트를 한다. 이는 물론, Test Framework 을 이용해서 할 수 있도록 해야 한다.

3. 코드 리뷰는 중간 중간 올릴 수 있도록 한다.

딱히 큰 해결책이 없어보이지만, 기능별 Commit의 경우, 그 범위가 크면, 다른 사람이 코드 리뷰를 할 수 없게 된다. 이번에도, 그런 일이 생겨서, 코드 리뷰가 되었지만, 부족할 수 밖에 없었다. 이를 위해서, 변경 사항을 중간 중간 올려서, 코드 리뷰를 받는 것이 좋을듯 하다.

4. 설계 리뷰를 중간 중간 한다.

이번에 실수한 것 중에, 기능 적인 문제는 없지만, 설계가 미진한 부분이 있었다. 중간 중간 다른 사람들과 리뷰를 했지만, 심도 있게 하지 못해, 장애에 Flexible 하지 못한 부분이 생겼다. 이는 충분히 리뷰했으면 초반에 해결할 수 있었을 듯 하다.

위의 4가지만 혼자서 지킬 수 있다면, 앞으로, 실수는 많이 줄어들 것이다. 확실히, 실수를 안 할 수 는 없다. 앞으로 당연히 많이 하겠지만, 위의 과정을 잘 지킨다면, 최소한 같은 실수들을 반복하는 것은 많이 줄일 수 있을 것 같다.

실수를 하는 것이 문제가 아니라, 이에 대해서 깨닮음을 가지지 못하는 것이 문제라고 생각하자. “Failure is an opportunity!” 라는 말 처럼, 실수나 실패에서도 발전할 수 있는 사람이 되자!.