2025/05 5

[Java][Android] SharedPreferences 데이터 암호화 하기!

내 앱의 비밀번호, SharedPreferences에 그냥 저장해도 될까? 🤫 EncryptedSharedPreferences로 안전하게!안녕하세요, 안드로이드 개발자 여러분! 앱 설정을 저장하거나 간단한 사용자 데이터를 유지할 때 SharedPreferences는 정말 편리한 도구입니다. 하지만 여기에 사용자 ID, 토큰, 심지어 (절대 그러면 안 되지만) 비밀번호 같은 민감한 정보를 그대로 저장하고 계신가요? 😱 루팅된 기기에서는 SharedPreferences 파일에 쉽게 접근하여 내용을 볼 수 있다는 사실, 알고 계셨나요? 오늘은 이러한 보안 문제를 해결하고, SharedPreferences에 저장되는 데이터를 안전하게 암호화하는 방법, 바로 **EncryptedSharedPreference..

Android 2025.05.26

[Java][Android] 화면 회전, 메모리 부족 onSaveInstanceState()로 데이터 지키기

안녕하세요, 안드로이드 앱을 만들다 보면 사용자가 화면을 가로로 돌리거나 세로로 돌릴 때, 입력했던 데이터나 현재 상태가 사라지는 경험을 해보신 적 있으신가요? 오늘은 이 문제를 해결하는 가장 기본적인 방법 중 하나인 onSaveInstanceState()와 onRestoreInstanceState()에 대해 알아보겠습니다. 왜 사라질까요?안드로이드에서 화면 방향이 변경되면, 현재 액티비티는 파괴(Destroy)된 후 다시 생성(Create)됩니다.이 과정에서 액티비티 내에 저장되어 있던 멤버 변수들의 값은 초기화되어 버립니다. 대처하기안드로이드는 이런 상황을 대비해 임시 데이터를 저장하고 복원할 수 있는 메커니즘을 제공합니다. 바로 onSaveInstanceState()와 onRestoreInstan..

Android 2025.05.19

[Java][Android]SMTP 지메일(Gmail) 연동하여 사용하기

연동할 지메일 계정으로 들어가 설정에서 모든 설정보기 클릭 다음 메뉴에서 전달 및 POP/IMAP 선택 후 아래와 같이 설정구글 오른쪽 상단 구글 계정 관리 클 보안 클릭 후 앱 비밀번호 검색 (검색 바로해도 상관없음) 개발에 사용 할 앱 이름이나(테스트 이름, 앱 이름 등등) 설정하면 비밀번호가 나온다 이런식으로 나온다. 잘 복사해서 저장하

Android 2025.05.13

[Java][Android] 안드로이드 가속계(accelerometer)센서, 흔들림 감지 예제

1. 개요안드로이드의 가속도계(Accelerometer) 센서를 이용하면 기기의 움직임, 방향, 흔들림 등을 감지할 수 있습니다.이 예제에서는 기기가 흔들렸을 때 특정 동작(예: 토스트 메시지 출력)을 실행하는 기본적인 흔들림 감지 앱을 만들어 보겠습니다.2. 왜 사용할까요??가속도계를 사용하면 다음과 같은 동작 기반 인터랙션을 구현할 수 있습니다:기기를 흔들어 기능 실행 (예: 랜덤 뽑기, 새로고침)사용자의 움직임 감지 (만보기, 피트니스 앱)게임 컨트롤러로 사용 (기울이기, 흔들기)보안 기능 (예: 강제 흔들 때 긴급 메시지 전송)3. 어디에 사용하면 좋을까요???예시설명랜덤 추첨 앱흔들면 결과를 무작위로 선택QR 스캐너흔들면 플래시 ON/OFF메모 앱흔들면 ‘실수로 지운 항목 복구’게임기기를 기울이..

Android 2025.05.12

[Java][Android] WorkManager로 백그라운드 작업 하기

개발에 따라 사용자와의 상호작용과 별개로 처리해야하는 작업들이 있습니다.: 예를들어 서버에서 데이터를 받아오거나, 파일을 저장하거나, 복잡한 연산이 필요한 경우 등등 여러가지 가 있습니다. 이런작업들을 화면을 그리는 메인 스레드 (UI 스레드)에서 직접 처리하면 ANR 오류 (애플리케이션이 응답하지 않습니다) 가 발생합니다. 고민을 해결하기 위해 Google에서는 Android Jetpack 라이브러리의 일부로 WorkManager를 선보였습니다. WorkManager는 백그라운드 작업을 처리할 수 있도록 합니다. 1. WorkManager란?WorkManager는 안드로이드 Jetpack 라이브러리의 핵심 구성 요소 중 하나로, 지연 가능하고(Deferrable) 실행이 보장되는(Guaranteed) ..

Android 2025.05.05