분류 전체보기(126)
-
[안드로이드] 삼성의 다양한 기기로 테스트 및 디버깅(Remote Debugging)하는 꿀팁!
안드로이드 앱 개발할 때 제일 힘든 부분 중 하나가 바로 기기 파편화 문제입니다. 수 많은 기기에서 어떤 오류가 발생할지 모르기 때문에 다양한 기기에서 테스트를 해보아야하는데요. 삼성에서는 감사하게도 Test Lab이라는 서비스를 제공합니다. 안드로이드 생태계 대부분을 차지하는 삼성의 스마트폰 기기를 온라인으로 사용할 수 있도록 해주는 서비스죠. 많은 분들이 개발한 앱 테스트에 이용을 하는데요. 단순히 앱을 다운로드해서 테스트하는 것 말고 다르게도 쓸 수 있다는 사실 아시나요? 개발할 때 안드로이드 폰이 없어 실제 기기에서 빌드하고 싶을 때. 다양한 기기에서 발생하는 버그를 잡기 위해 디버깅할 때에도 사용할 수 있습니다! 그 방법을 지금 바로 알려드리겠습니다. ADB 설치 삼성 테스트랩에 가입하면 대부분..
2023.03.06 -
[최신] 안드로이드 Kotlin 갤러리에서 이미지 가져오기
이미지 처리는 앱 개발 시 필수적으로 다루게 되는 부분입니다. 특히 갤러리에서 이미지 가져오기는 정말 흔하게 쓰이게 되는데요. 하지만 최근 startActivityForResult가 Deprecated 되어 약간 구현 방식이 바뀌게 되었죠. 이에 대한 내용은 많이 없더군요. 오늘은 registerForActivityResult를 활용해 갤러리에서 가져온 이미지를 ImageView에 보여주는 부분을 상세하게 알려드리겠습니다. 갤러리 이미지 처리 로직 구현 가장 먼저 Activity에 아래 변수들을 선언해주어야 합니다. companion object{ const val REVIEW_MIN_LENGTH = 10 // 갤러리 권한 요청 const val REQ_GALLERY = 1 // API 호출시 Param..
2022.06.15 -
워드프레스 사용시 502 Bad Gateway 문제 발생했을 때 해결방법
먼저 502 Bad Gateway 에러가 언제 발생하는지 파악하는 것이 좋습니다. 이 에러는 특히 Nginx와 php-fpm 조합에서 흔히 발생하는 에러로 알려져 있는데요. php-fpm에서 처리해야 하는 자료 중에서 굉장히 크기가 큰 요청을 처리하는 경우 서버 반응속도가 느려서 php-fpm으로 요청이 전달되는 와중에 서버에서 긴 시간을 요구하는 경우 이렇게 원인을 찾아볼 수 있습니다. 정확이 어떤 에러가 발생하는지 파악하기 위해 먼저 nginx의 error log를 보는 게 좋겠죠. putty로 aws의 bitnami 인스턴스에 접속한 뒤 아래 명령어를 통해 로그를 확인합니다. cd /opt/bitnami/nginx/logs sudo tail ./error.log 2022/05/10 10:33:39 ..
2022.05.10 -
[Android] RecyclerView 사용시 흔하게 겪는 에러 해결방법 총정리!
Android 앱을 개발하면서 가장 필수적이고 많이 쓰이는 View가 있다면 저는 당연 RecyclerView를 얘기할 것 같습니다. 그만큼 많이, 흔하게 쓰이는 View인데요. 하지만 많이 쓰이는 것과 잘 사용하는 것은 전혀 다른 얘기입니다. Adapter, ViewHolder 이 정도만 개념을 익히고 구현해보면 금방 사용할 수 있긴 합니다. 그렇지만 실서비스를 개발하다 보면 여기에서 정말 크고 작은 문제가 많이 발생하죠. 이번에는 RecyclerView 사용할 때 겪을 수 있는 에러 상황들을 살펴보고 원인과 해결방법을 알려드리겠습니다. 혹시 지금 에러를 맞닥뜨렸나요? 끝까지 한번 읽어보세요. 분명 도움이 될껍니다. 아이템 뒤섞임 문제 해결 RecyclerView를 사용하다 보면 스크롤 시 아이템이 마..
2022.03.18 -
[Android] 로컬 데이터베이스 Room 사용법 총정리
Room은 안드로이드에서 손쉽게 사용할 수 있는 로컬 데이터베이스입니다. Realm에 비해 굉장히 낮은 용량(약 64kb)을 차지하면서도 꽤 괜찮은 성능과 쉽게 사용할 수 있다는 장점이 있습니다. 안드로이드 클라이언트에서 데이터를 처리해야 한다면 이 가이드를 보고 약 30분 정도면 적용이 가능하리라 생각합니다. 설치하기 App 레벨의 build.gradle에 아래와 같이 추가해줍니다. // Room Database implementation 'androidx.room:room-runtime:2.4.1' kapt 'androidx.room:room-compiler:2.4.1' Kotlin에서는 kapt 컴파일러 플러그인과 함께 사용하도록 되어있기때문에 아래와 같이 플러그인 설정도 추가해주어야 합니다. //..
2022.01.22 -
[Android] Expandable List View 사용하기
Expandable List Adapter구현 class CategoryListAdapter( private val context: Context, private val viewModel: RecyclerViewModel ): BaseExpandableListAdapter() { private var parentList = emptyList() private var childList = mutableListOf() override fun getGroupCount(): Int { return parentList.size } override fun getChildrenCount(groupPosition: Int): Int { return childList[groupPosition].size } overrid..
2022.01.21