본문 바로가기

Android/Tips

Null 체크를 꼭 해야하는가

출시 후 또는 개발 하면서 항상 겪는 Crash Error 중 제일 많은 부분이 NullPointerException 오류였습니다. 처음 앱을 개발할 때에는 Null 체크를 제대로 하지 않은 채 기능의 동작여부만 확인 및 테스트 후 바로 출시 하곤 했습니다. 


우선 이런식으로 개발을 하면 기본적으로 서버 측(Back-End) 과 클라이언트(Front-End) 측의 거의 발생하지 않는? 이슈 ( 트래픽 증가로 인한 서버 다운, 빈 데이터나 또는 null 데이터의 통신 등) 가 발생하지 않는다면 큰 문제가 없이 유지가 됩니다. 하지만 이런 상황들은 꼭 출시 후 일어나서 당황스러운 상황이 발생합니다. 서버측에서 보내는 json데이터가  조금만 바뀌어도 에러가 발생하는 상황이 발생할 수도 있습니다. 


따라서 내린 결론으로

Best 한 것은 UI & Unit 테스팅을 통해서 각각의 화면 / 기능 / 메소드 단의 검증을 거치는 것이 가장 에러를 줄일 수 있는 방법입니다. 


그러나 테스팅 코드를 작성해가며 개발하기엔 너무 번거롭고 어렵게 느껴집니다. 


테스팅 코드를 작성하지 않았다고 하시더라도 최소한 기본적인 Null체크를 하신다면 최소한의 에러를 줄이는데 도움이 됩니다. 


저의 경우엔 항상 어떤 변수를 이용하거나, 서버와의 통신으로 가져온 json 데이터를 gson으로 파싱하여 내부 db (SQLite, Realm, sharedPreference 등)에 저장 후 필요 시 마다 가져와 사용하고 있는데 이 때 각각의 Data Model 에 따라서 Parser 클래스를 두어 null 체킹을 하여 필요한 값을 가져오도록 합니다. null 일 경우 default 값을 설정하여 null 값 이라도 동작에 문제가 없도록 합니다. 


추가로 출시 하기전 Fabric 또는 Firebase 의 Crashlytics 를 붙여서 에러의 발생시 알 수 있도록 하는 것도 중요합니다. 그리고 프로가드 (Proguard) 적용시 map.txt파일도 업로드하는 것도 기억해 두셔야 합니다. 




 

최종 결론. 최소한 Null 체크는 어디든 하도록 하자.

'Android > Tips' 카테고리의 다른 글

Memory Leak 에 관하여  (0) 2018.03.26
프로가드(Proguard), Retrofit 사용시 주의할 점  (0) 2018.03.26
이미지 Color Filter 적용  (0) 2018.03.26
Android API 버전별 정리 참고  (0) 2018.03.26
디바이스 별 화면 비율 참고  (0) 2018.03.26