코드를 수정하다가 생각없이 다음과 같은 코드를

enum SOMEDATA
{
ENUM_CATEGORY1_ITEM1,
ENUM_CATEGORY1_ITEM2,
ENUM_CATEGORY2_ITEM1,
ENUM_CATEGORY2_ITEM2,
ENUM_CATEGORY3_ITEM1,
ENUM_CATEGORY3_ITEM2,
ENUM_CATEGORY4_ITEM1,
ENUM_CATEGORY4_ITEM2,
ENUM_MAX,
};

다음과 같이 수정해버렸습니다. 물론 디버깅할 때 값 읽기 편하게 하는 것이 목적입니다만.

enum SOMEDATA
{
ENUM_CATEGORY1 = 0,
ENUM_CATEGORY1_ITEM1,
ENUM_CATEGORY1_ITEM2,
ENUM_CATEGORY2 = 100,
ENUM_CATEGORY2_ITEM1,
ENUM_CATEGORY2_ITEM2,
ENUM_CATEGORY3 = 1000,
ENUM_CATEGORY3_ITEM1,
ENUM_CATEGORY3_ITEM2,
ENUM_CATEGORY4 = 10000,
ENUM_CATEGORY4_ITEM1,
ENUM_CATEGORY4_ITEM2,
ENUM_MAX,
};

문제는 코드 중에 다음과 같은 코드가 있었다는 겁니다.

for(int i=0 ; i<ENUM_MAX ; i++)
{
//여기서 무언가 한다.
}

그나마 화끈하게 10000 같은 값을 집어넣어서 조기(?)에 발견할 수 있었습니다만, 디버깅하는데 결국 하루를 허비했습니다. 100, 200, 300으로 설정했으면 발견하고 수정하는데 며칠 걸렸을지도. 반성해야겠습니다. OTL.

오늘의 교훈은 수정한 코드가 프로그램의 동작에 가시적인 변화를 일으키지 않아야 한다면 변화를 일으키지 않는다는 것을 테스트하고 넘어가야한다는 것입니다. 그래야 문제가 생겼을 때 가장 최근에 수정된 코드부터 역순으로 추적해나가서 좀 더 빨리 디버깅을 할 수 있습니다.

'게임 만들기 > 프로그래밍' 카테고리의 다른 글

How to  (2) 2007.08.23
GPL 피해가기.  (0) 2005.08.22
기코가 말하는.  (2) 2005.08.05
top