2026/03/03

오늘의 이야기

 


청사옆 숲길



점심을 먹고 나서면 이제 제법 낮볓이 뜨겁다.  청사가 가까이에 있어 주변에 조성된 숲길(?)이 이제 제법 시원하게 느껴 지기도 한다. 점심을 먹고 나면 잠깐 낮잠이 오히려 필요한 것 같은 요즘이기는 하나, 갈수록 무거워지는 몸을 지탱하기 위해 오늘도 길을 나섰다. 그래봐야 이제 두달을 조금 넘겨가고 있는 것 같으나, 무거워져 가는 몸뚱이는 변함이 없다.


 


크~ 오늘 저녁에도 회식이라는 핑계(?)로 마음을 추스리며 한가득 뱃속을 채우고 돌아 왔으니, 가벼워지길 바라는 것은 아무래도...


 


내일도 난 나의 몸이 가벼워지길 바라며, 길을 나서겠지만... 언제쯤 일까 ?  아직 잘 알 수는 없다. 


 





오늘의 이야기

https://itnext.io/a-comprehensive-guide-to-android-12s-splash-screen-api-644609c811fa



 


A Comprehensive Guide to Android 12's Splash Screen API


For years Android Devs have always resorted to using a windowBackground or Activity or Fragment for their splash screen. Using the…


itnext.io





스플래쉬 화면 : 앱이 실행 되기 전에 로딩중 보이는 화면 ( 앱이 처리 되는 동안 보이는 progressbar 와는 다른 ...)

오늘은 인터넷에서 퍼온 글 하나를 올려 본다.

요새 배우는중인 jetpack compose 통해서 화면 작업을 해 보고 있는데, splash 화면 만드는 가이드가 나와 있어서 퍼 왔다.

시간이 생기면 작업중인 앱에 적용을 해 보아야 겠다.






오늘의 이야기



#스치니1000프로젝트 #재미 #행운기원 #Compose #Firebase

🎯 야 너 토요일마다 로또 확인하냐?
나도 맨날 "혹시나~" 하면서 봤거든 ㅋㅋ

근데 이제는 그냥 안 해
AI한테 맡겼어 🤖✨

그것도 구글 Gemini로다가!

그래서 앱 하나 만들었지
👉 "로또 예상번호 by Gemini" 🎱

AI가 분석해서 번호 딱! 뽑아줌
그냥 보고 참고만 하면 됨

재미로 해도 좋고…
혹시 모르는 거잖아? 😏


https://play.google.com/store/apps/details?id=com.billcorea.gptlotto1127




오늘의 이야기

 





일상이 풍요로운 건 아무래도 길가에 핀 꽃들 때문이지 않나 싶다.  여름이 성금더 가까이에 와 있음을 느끼는 오후, 갑천을 따라 걸었다. 가는 길도 멀기도 했고, 오느길도 아득 하기만 했는데,  보라색 아지랭이가 있어 길을 멈추었다.


 


5월의 따뜻한(?) 햇살을 받으며 피어오르는 아지랭이는 ... 이름도 모르는 들꽃 ... 나만 모르는 건가 ?


 


그건 뭐 알 수는 없으나, 길가에서 만난 들꽃은 나름의 피로를 날려 버리게 하고, 오늘도 잘 살았으니, 내일도 화이팅 해 보자고...


 


 





오늘의 이야기


#스하리1000명프로젝트

스치니들!
내가 만든 이 앱은, 내 폰에 오는 알림 중에서 중요한 키워드가 있는 경우
등록해둔 친구에게 자동으로 전달해주는 앱이야 📲

예를 들어, 카드 결제 알림을 와이프나 자녀에게 보내주거나
이번 달 지출을 달력처럼 확인할 수도 있어!

앱을 함께 쓰려면 친구도 설치 & 로그인해줘야 해.
그래야 친구 목록에서 서로 선택할 수 있으니까~
서로 써보고 불편한 점 있으면 알려줘 🙏

👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기

 


https://billcorea.tistory.com/198



 


안드로이드 앱 만들기 : 코드 난독화, 축소의 폐해(?)


https://developer.android.com/studio/build/shrink-code.html?hl=ko#kts 앱 축소, 난독화 및 최적화  | Android 개발자  | Android Developers 사용하지 않는 코드와 리소스를 삭제하기 위해 출시 빌드에서 코..


billcorea.tistory.com




 


이전에 posting 했던 글처럼, 코드 난독화를 설정하고 릴리즈를 했을 때 발생했던 상황이 정리가 되어, 그 정리 방안을 기록해 두어야겠다.


 


먼저 gradle 파일에 코드 난독화 설정 하기에 예외 처리 등록하는 방법은 다음과 같이 설정하면 된다. 


 


gradle 파일의 설정


buildTypes {
debug {
buildConfigField "Boolean", "DEBUG_MODE", "true"
}
release {
buildConfigField "Boolean", "DEBUG_MODE", "false"
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

빌드 타입에 따라서 debug 모드에서는 빌드 되는 시간을 절약하기 위해서 설정을 넣지 않았고, release 모드에서 설정이 되도록 추가하였다.  


 


다음은 proguade-rules.pro 파일에 설정을 추가 하였다. 


# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html

# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable

# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile

# Add this global rule
-keepattributes Signature

# This rule will properly ProGuard all the model classes in
# the package com.yourcompany.models.
# Modify this rule to fit the structure of your app.
-keep public class com.bill...........databean.** { *; }

-keep public class 뒤에 따라오는 건 내 project 의 package 이름의 경로라고 보면 된다.  databean 아래에 있는 모든 class는 난독화를 하지 않겠다고 하는 것이다. 


 


데이터 저장된 예시



 


코드 난독화가 된 이후에도 database 구조는 구현된 이름 그대로 저장 되어 있는 것을 볼 수 있었다.   이것으로 난독화를 했을 때 야기될 수 있는 문제점에 대한 이해와 그 해결에 대한 정리를 마무리해 두어야겠다.


 





오늘의 이야기

https://developers.google.com/identity/one-tap/android/get-saved-credentials#disable-one-tap



 


저장된 자격 증명으로 사용자 로그인  |  One Tap for Android  |  Google Developers


경고 : 이 데이터는 Google 사용자 데이터 정책에 따라 제공됩니다. 정책을 검토하고 준수하십시오. 그렇게하지 않으면 프로젝트가 정지되거나 계정이 정지 될 수 있습니다. 이 페이지는 Cloud Transl


developers.google.com




 


16: Caller has been temporarily blocked due to too many canceled sign-in prompts.  이런 오류 메시지을 만나게 되면


 


당황스럽지 않을까 ?  구글에서 찾아보니 이런 해결책이 있었다. 나의 경우는 


 


참고 : 개발 과정이 24 시간 재사용 대기 기간이 발생하는 경우, 당신은 구글 플레이 서비스 '응용 프로그램 저장을 취소하여 재사용 대기 시간을 초기화 할 수 있습니다. 또한, 테스트 장치에이 재사용 대기 시간 ON / OFF 전환 및 / 또는 에뮬레이터 모두, 단순히 걸기 응용 프로그램 입력에 다음 코드를 이동 : *#*#66382723#*#* . 제출 시 피드백은 없지만 다이얼러는 모든 입력을 지우고 닫힐 수 있습니다. 이 후에는 쿨다운을 해제해야 합니다. 다시 켜려면 같은 코드를 다시 입력하세요.


 


이런 가이드를 따라 하는 것으로 해결이 완결 되었다.


 


 





오늘의 이야기


#스하리1000명프로젝트,
Đôi khi thật khó để nói chuyện với người lao động nước ngoài phải không?
Tôi đã tạo một ứng dụng đơn giản có ích! Bạn viết bằng ngôn ngữ của bạn và những người khác nhìn thấy nó bằng ngôn ngữ của họ.
Nó tự động dịch dựa trên cài đặt.
Siêu tiện dụng để trò chuyện dễ dàng. Hãy xem khi bạn có cơ hội!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기

https://amirdiafi.medium.com/how-i-code-for-8-hours-without-feeling-tired-3d2b22f917af



 


👨🏻‍💻How I code for 8 hours without feeling tired.


🔴 I have coded wrong my whole life.


amirdiafi.medium.com




 


인터넷 펌 글...   그냥 읽어보면서 느낌을 알아야 하는 글...





오늘의 이야기

https://developer.android.com/studio/build/shrink-code.html?hl=ko#kts 



 


앱 축소, 난독화 및 최적화  |  Android 개발자  |  Android Developers


사용하지 않는 코드와 리소스를 삭제하기 위해 출시 빌드에서 코드를 축소하는 방법을 알아보세요.


developer.android.com




playstore에 앱을 등록하려고 하다 보면 코드 난독화를 통해 debugging을 대비 하라는 요구(?)를 받게 된다. 


그래서 한번 해 보기로 했다.  먼저 gradle 에 적용을 해 보았다.


 


buildTypes {
debug {
buildConfigField "Boolean", "DEBUG_MODE", "true"
}
release {
buildConfigField "Boolean", "DEBUG_MODE", "false"
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

 


새로 빌드된 앱을 playstore 에 올리고 게시가 되기를 기다렸다가,  실행해 보았다. 개발할 때는 오류가 나지 않던 앱의 실행에 문제가 생긴다. 왜?  오류를 확인하기 위한 log을 찍어보고 찾아보고... 흠흠...  하다가 혹시나 하고 생성된 database을 삭제해 보았다.


 


그리고 실행된 후 새로 실행해서 보았더니, database 가 그림과 같이 생성이 되어 버렸다.  코딩할 때 생성했던 코드는 이런데도 말이다.


 


...

data class ChatRooms(
var chatRooms:String = "",
var chatTitle:String = "",
var roomOwner:String = "",
var chatNo:String = "",
var locale:String = "",
var badUser:String = "",
var chatGuests:Int = 0,
var secret:Boolean = false,
var passwd:String = ""
)

 


코드 축소된 경우의 realtime database



이유는 무었일까 ??? 


 


생각을 하다 보니, 코드 난독화에서 발생하는 현상이었다. 


 


이제 이 난국(?)을 어떻게 해소할 것인가 ?


 


 


 


 


 


 


 


 


 


 


 


 


 


 


 


난독화는 뭐래 ?



 


그 방법은 다음과 같이 설명이 되어 있다.  


유지할 코드 설정



 


이제 실체를 확인해 보아야겠다.   결과는 다음에...





오늘의 이야기


#billcorea #운동동아리관리앱
🏸 Schneedle, một ứng dụng cần có cho các câu lạc bộ cầu lông!
👉 Đấu trận – Ghi điểm & Tìm đối thủ 🎉
Hoàn hảo cho mọi nơi, một mình, với bạn bè hoặc trong câu lạc bộ! 🤝
Nếu bạn thích cầu lông, nhất định phải thử nó

Vào ứng dụng 👉 https://play.google.com/store/apps/details?id=com.billcorea.matchplay




오늘의 이야기

  청사옆 숲길 점심을 먹고 나서면 이제 제법 낮볓이 뜨겁다.  청사가 가까이에 있어 주변에 조성된 숲길(?)이 이제 제법 시원하게 느껴 지기도 한다. 점심을 먹고 나면 잠깐 낮잠이 오히려 필요한 것 같은 요즘이기는 하나, 갈수록 무거워지는 몸을 지탱...