본문 바로가기

java

Memory Leak 에 관하여 앱을 출시 하고나서 관리 하다보니 겪은 일이었습니다. 앱이 버벅대고 느려진다는 이슈였습니다. 굉장히 크리티컬한 이슈였지요. 원인을 찾아보니 OOM(OutOfMemory Exception) 에러였습니다. 허용 가능한 메모리가 꽉 차서 앱이 죽는 현상이 발생하는 것이었습니다. 이 원인을 해결하기위해 엄청나게 많은 시간을 쏟아부었습니다. 앱 내에 이미지를 보여주는 부분이 많았는데, 용량이 큰 이미지를 불러오거나 할 때 제대로 GC (Garbage Collect)가 되지않아서 메모리에 지속적으로 쌓이는 것이었습니다. 하지만 원인자체가 이미지 문제가 아니었습니다. 원인은 객체의 참조로 인해 화면 종료시 GC가 제대로 되지 않으면서 계속적으로 Activity 객체들이 쌓이게되고 큰 이미지를 가지고 있는 Activi.. 더보기
Null 체크를 꼭 해야하는가 출시 후 또는 개발 하면서 항상 겪는 Crash Error 중 제일 많은 부분이 NullPointerException 오류였습니다. 처음 앱을 개발할 때에는 Null 체크를 제대로 하지 않은 채 기능의 동작여부만 확인 및 테스트 후 바로 출시 하곤 했습니다. 우선 이런식으로 개발을 하면 기본적으로 서버 측(Back-End) 과 클라이언트(Front-End) 측의 거의 발생하지 않는? 이슈 ( 트래픽 증가로 인한 서버 다운, 빈 데이터나 또는 null 데이터의 통신 등) 가 발생하지 않는다면 큰 문제가 없이 유지가 됩니다. 하지만 이런 상황들은 꼭 출시 후 일어나서 당황스러운 상황이 발생합니다. 서버측에서 보내는 json데이터가 조금만 바뀌어도 에러가 발생하는 상황이 발생할 수도 있습니다. 따라서 내린 결.. 더보기