본문 바로가기
Study/프로그래밍 기초공부

프로그래밍 할때 오류 잡는 방법

by 황금표정 2012. 6. 10.
  1. 디버깅을 진행한다.
    디버깅할 때 함수에 제대로 값이 들어오는지부터 확인한다. (브레이크 포인트 F9)

  2. 함수 또는 조건문이 맞는지 확인한다.
    Ex) if문을 사용할 때 실수로 비교를 잘못 적지는 않았는지 확인

    // Undead일 경우 데미지 2배
    if(monsterType == eType.Undead)
    {
     ApplyDamage(Damage * 2);
    }
    // 조건을 잘못 사용한 경우
    if(monsterType != eType.Undead)
    {
     ApplyDamage(Damage * 2);
    }
  3. 비교 연산이 있는지 확인한다.
    ( == ) 확인 대입으로 처리되었는지

    // ==을 실수로 = 으로 대입해서 오류나는 경우
    if(monsterType = eType.Undead)
    {
     ApplyDamage(Damage * 2);
    }
  4. 조건 확인
    들어와야 할 함수가 들어오지 않는다면 해당 함수를 들어오게 하는 상위 조건을 찾아서 확인한다. (콜 스택을 따라서 올라간다.)

  5. 알 수 없는 오류 사항은?
    가끔 개발하다 보면 정말 이상한 오류, 버그들을 많이 보게 된다.
    코드 로직에 의한 버그는 조급해하지 말고 천천히 찾아보면 언젠가는 발견해서 문제가 안되는데 문제는 코드 로직도 전부 정상인데 제대로 동작하지 않는 것들이 있다.

    엔진을 사용한다면 엔진명을 명시해서 나타나는 증상을 영어로 적어서 구글링을 한다.
    예를 들면 "유니티에서 콜백이 안 온다."라고 한다면
    "Unity, callback not working"이라던가 "Unity, callback no response"라던가
    이런 식으로 검색하다 보면 단어나 유사한 문장이 나오게 되는데 그걸 활용해서 원하는 내용에 대한 검색 히트율을 높여가는 것도 좋다.

    엔진을 사용하면 기능을 사용해서 문제가 발생하면 대부분 오류 로그가 같이 출력되는데 해당 로그 내용이 개발 중인 프로젝트에서 넣어둔 게 아니라면 해당 오류 로그를 통해 구글링을 하면 좋다.

    코드는 멀쩡한 것 같은데 게임이 동작하다가 발생하는 오류사항은 재현 스탭을 발견하여 해결하는 수밖에 없다.
    모바일 기기는 디버깅이 힘들기 때문에 의심 가는 부분에 대해 오류 로그를 디테일하게 넣어서 원인을 찾아야 한다.
    (더 좋은 방법이 있다면 소개해주세요)

반응형

'Study > 프로그래밍 기초공부' 카테고리의 다른 글

자료형에 대해서  (0) 2012.06.10