woong's
Android 어플 런칭후 DB 수정시 주의해야할 점 본문
Android 어플 런칭후 DB 수정시 주의해야할 점
이번에 북트리 도서관리 어플을 런칭하고 저의 짧은 지식으로 인한 사용자들에게 불편한점을 끼친 사건이 있었습니다 . 그것은 바로 어플 업데이트를 통해 좀더 좋은 서비스와 기능을 제공하려다 보니 DB 수정이 있었습니다 . 정말 취지는 좋았습니다 .하지만 여기서 문제가 있었습니다 . 1.1.1 버젼을 쓰는 사용자는 기존의 추가 되지 않은 DB 를 사용하다가 업데이트 DB를 받았을 경우 에러가 나타나는 일이 생겼습니다 . 여기에 대해서 어떻게 해결해야 할지 모르고 있었습니다 . 이것때문에 문제가 발생했는데 어떻게 해결해야하지 ? 가 의문이였습니다 . 하지만 역시 저와 같은 경험을 하신분들이 있었네요.. 저와 같은 경험을 하신분들의 글을 통해 해결을 할수 있었습니다 . 저또한 저와 같은 분들이 생기지 않도록 예방하고자 이렇게 포스트를 쓰고 있습니다 . 정답은 바로 여기 있었습니다 !!!!!!!!!!!!!!!!!!!! sqlLite 의 버젼과 , 버젼별 update() 를 통해서 해결 할수 있습니다 .
저의 짧은 지식으로 인한 문제가 되었던 코드 입니다 . 저는 우선 DB의 버젼관리를 하고 있지 않았습니다 . 제일 중요한 opUpgrade 메서드 역시 DB을 삭제하고 다시 만드는 일을 하고있습니다 . 이코드를 통해 사용자에게 신뢰를 잃었지만 이해해주시고 계속 사용해주시는 분들 덕분에 이렇게 문제를 찾고 고치려 노력할수 있는것 같습니다. 우선 이 문제가 있는 코드를 수정 해야 합니다 . 해당 버젼의 기준을 잡고 변경이 있을때 마다 DB 버젼을 올려주어야 합니다 . 올려준 버젼을 통해서 onUpgrade() 에서 버젼 관리를 해주어야 합니다 .
이와 같이 1버젼에 대한 DB 필드를 추가 하고 푸가한 필드의 데이터 값을 넣어주는 방식을 사용해야 합니다 . 여기서 주의할 점이 하나 더 있습니다 . 1버젼을 쓰는 사용자가 2버젼 업데이트를 하지 않고서 3버젼으로 바로 업데이트를 하는 경우 switch 문의 break 문이 있으면 2버젼에 대한 업데이트가 진행되지 않아 오류가 생깁니다 . 그래서 switch 문의 break 문이 없는것을 눈여겨 보셔야 합니다 .
이렇게 DB 관리를 하면 사용자에게 좀더 나은 서비스와 기능을 제공해주면서 에러가 없고 불편함이 없는 어플을 만들수 있는것 같습니다 . 앞으로 저와 같으신 분이 생기지 않았으면 좋겠습니다 ^^:;;; |
'Develop > Android' 카테고리의 다른 글
Android AsyncTask 병렬처리 하기 (0) | 2016.02.14 |
---|---|
Android CountDownTimer 사용하기 (1) | 2016.02.14 |
안드로이드 ProGuard 사용하기 (0) | 2016.02.13 |
Multithreading For Performance (성능 향상을 위한 멀티쓰레딩 기법) (0) | 2016.02.13 |
Android http Retrofit 사용하기 (0) | 2016.02.13 |