얼마 전에 안드로이드 앱을 만들어보지 않겠냐는 제안을 받아서, 누군가가 작성한 안드로이드 코드를 이어받아 계속 작성하고 있다. 아직 시작한지는 얼마 되지 않아서 가장 시급한 앱 크래시부터 해결하는 중이다.
남이 작성한 소스코드를 읽어나가는 것부터 시작하는것은 굉장히 괴로운 일이다. 몇 번이나 전화하고 물어보고 하면서 이유를 묻고 고쳐나가다 보면 점점 지쳐간다. 이유는 아마도, 쓰여진 코드만 봐서는 그 사람이 그렇게 작성한 의도를 파악하지 못하는 데 있다. 이 변수를 선언한 이유, 이 부분은 왜 통째로 주석처리가 되어 있는지, 왜 플로우가 이렇게 흘러가는지 알 수가 없다는 것이다. 내가 코드를 작성한 사람의 마음속에 들어갈 수 있는 것도 아니고. 그래서 어쩔 수 없이 전화를 하며 의사소통을 하던 중에 그 사람이 퇴사해버렸다. 이젠 더 물어볼 수도 없고 도움을 청할 수도 없다.
제일 먼저 한 일은 acra를 붙이는 일이었다. 안드로이드 디벨로퍼 콘솔이나 애널리틱스에서 에러 크래시 내역을 확인할 수는 있지만 모든 에러를 확인할 수는 없다. 안드로이드 앱에 acra를 추가하고 깃허브에서 django로 만들어진 간단한 에러 보고 사이트를 적용하였다. 적용하고 나서 꽤나 괜찮게 확인할 수 있어서 좋긴 하지만, 에러 내역이 검색되지 않아 조금 괴롭다. 더 알아보고 괜찮은 에러 보고 사이트를 찾았어야 하는건데. 하지만 이 정도만 되도 꽤나 괜찮게 확인할 수 있다.
그 다음에 한 일은 구글 애널리틱스를 붙이는 것. 다행히도 모든 액티비티가 상속 구조로 이루어져서 수퍼클래스에만 적용해도 괜찮았다. 인상깊었던 것은 실시간으로 앱 사용자를 파악할 수 있는 것이었는데, 생각보다 사용하는 사람이 있어서 조금 놀랬다. 앱 사용 형태나 여러가지 정보도 알 수 있어서 안드로이드 앱을 작성한다면 꼭 필요한 기능이 아닐까 싶다.
그래도 역시 제일 힘든건 코드를 고치는 일이다. 위에서도 말했지만 그 사람의 의도를 파악할 수가 없으니 제일 괴롭다. 거기다 더 큰 문제는 코드가 너무 길고 복잡하다는 것에 있다. 의도를 파악하지 못하는데 코드까지 길어서, 이게 정말 눈에 들어오지 않는 것이다. 내가 그렇게 코드를 우아하게 작성하는 편은 아닌데 이 코드를 보면 나는 정말 다행스런 상황이구나 하는 생각이 들 정도였다.
조금 더 우아하고 단순하게, 코드를 고치고 작성하기 위해 노력을 해야 하겠다.