2026/04/20

오늘의 이야기


Python을 사용하여 Firebase Realtime Database의 특정 Child 삭제 및 Google Cloud Functions와 Cloud Scheduler를 사용하여 특정 시간에 작업 실행


 


레오나르도 AI


 




Firebase Realtime Database에서 특정 Child 삭제하기



Firebase Realtime Database에서 특정 child를 삭제하려면 Firebase Admin SDK를 사용해야 합니다. 다음은 Python을 사용하여 특정 child를 삭제하는 예제입니다.



1. Firebase Admin SDK 설치



먼저 Firebase Admin SDK를 설치합니다.



pip install firebase-admin



2. Firebase Admin SDK 초기화 및 Child 삭제 코드 작성



Firebase Admin SDK를 초기화하고 특정 child를 삭제하는 코드는 다음과 같습니다.



import firebase_admin
from firebase_admin import credentials
from firebase_admin import db

# Firebase Admin SDK 초기화
cred = credentials.Certificate('path/to/your/serviceAccountKey.json')
firebase_admin.initialize_app(cred, {
'databaseURL': 'https://your-database-name.firebaseio.com'
})

# 특정 child 경로 설정
ref = db.reference('path/to/your/child')

# child 삭제
ref.delete()

print('Child has been deleted successfully.')


여기서 path/to/your/serviceAccountKey.json은 Firebase 프로젝트의 서비스 계정 키 파일 경로로 교체해야 하며, https://your-database-name.firebaseio.com은 Firebase Realtime Database URL로 교체해야 합니다. path/to/your/child는 삭제하려는 child의 경로로 교체해야 합니다.



Google Cloud Functions와 Cloud Scheduler를 사용하여 특정 시간에 작업 실행하기



Google Cloud Functions에서 특정 시간에 작업을 실행하려면 Cloud Scheduler를 사용할 수 있습니다. Cloud Scheduler는 특정 시간 또는 주기적으로 작업을 실행할 수 있는 완전 관리형 크론 서비스입니다.



1. Cloud Function 작성



먼저, Google Cloud Function을 작성합니다. 이 예제에서는 HTTP 트리거를 사용하는 Cloud Function을 작성합니다.



import functions_framework

@functions_framework.http
def scheduled_function(request):
# 실행할 작업
print("This function was triggered by Cloud Scheduler!")
return "Function executed successfully", 200


requirements.txt 파일을 생성하여 필요한 라이브러리를 지정합니다.



functions-framework



2. Cloud Function 배포



이제 Cloud Function을 배포합니다. 다음 명령어를 사용하여 Cloud Function을 배포합니다.



gcloud functions deploy scheduled_function \
--runtime python39 \
--trigger-http \
--allow-unauthenticated



3. Cloud Scheduler 작업 생성



Cloud Scheduler 작업을 생성하여 특정 시간에 Cloud Function을 트리거합니다. 예를 들어, 한국 시간대 (Asia/Seoul)에서 매일 오전 9시에 작업을 실행하려면 다음 명령어를 사용합니다.



gcloud scheduler jobs create http my-scheduled-job \
--schedule="0 9 * * *" \
--uri="https://REGION-PROJECT_ID.cloudfunctions.net/scheduled_function" \
--time-zone="Asia/Seoul"


여기서 --schedule은 크론 표현식으로, 매일 오전 9시에 작업을 실행합니다. --uri는 배포된 Cloud Function의 URL로 교체해야 합니다. --time-zone은 원하는 시간대를 지정합니다.


이제 Cloud Scheduler가 설정한 시간에 Cloud Function을 트리거하여 작업을 실행합니다.



Python 딕셔너리에 항목 추가하기



Python에서 딕셔너리에 항목을 추가하는 다양한 방법을 소개합니다.



# 기존 딕셔너리
my_dict = {
"name": "John",
"age": 30
}

# 새로운 키-값 쌍 추가
my_dict["city"] = "New York"

# 여러 키-값 쌍 추가 (update 메서드 사용)
my_dict.update({
"email": "john@example.com",
"phone": "123-456-7890"
})

# 이미 존재하는 키의 값을 변경
my_dict["age"] = 31

print(my_dict)


위의 코드는 my_dict에 새 항목을 추가하고 기존 항목을 업데이트하는 방법을 보여줍니다. update 메서드를 사용하면 한 번에 여러 항목을 추가할 수 있습니다.


이 포스트에서는 Firebase Realtime Database에서 특정 child를 삭제하는 방법과 Google Cloud Functions와 Cloud Scheduler를 사용하여 특정 시간에 작업을 실행하는 방법을 다루었습니다. 또한 Python 딕셔너리에 항목을 추가하는 방법도 소개했습니다. 이러한 기술을 통해 프로젝트를 더욱 효과적으로 관리하고 실행할 수 있습니다.


 


 


 



kling ai 가 만드는 동영상


 





오늘의 이야기


#스하리1000명프로젝트,
有时候和外劳说话很难,对吧?
我制作了一个简单的应用程序,可以帮助您!你用你的语言写作,其他人用他们的语言看到它。
它根据设置自动翻译。
超级方便,可以轻松聊天。有机会就来看看吧!
https://play.google.com/store/apps/details?id=com.billcoreatech.multichat416




오늘의 이야기

MITM(Man-in-the-Middle) 공격에 맞서 안드로이드 앱 확보

서울의 달 여의도공원




• 안드로이드 개발의 중요한 보안 취약점인 MITM(Man-in-the-Middle) 공격은 공격자가 앱과 서버 간의 통신을 가로채 데이터를 훔치거나 멀웨어를 주입하거나 세션을 하이잭하는 것을 포함하며 OWASP 모바일 Top 10 위험 M3 및 M9에 정렬한다.

• MITM 공격을 방지하는 것은 신뢰할 수 있는 인증서 당국의 유효한 SSL/TLS 인증서인 TLS 1.2 또는 1.3과 HTTPS를 사용하는 것으로 시작되며 HSTS는 모두 네트워크 보안 구성을 사용하여 AndroidManifest.xml 내에서 시행된다.

• 인증서 고정은 중요합니다. 앱이 특정 인증서만 신뢰하도록 보장하여 인증서 권한이 손상되더라도 공격자가 사기 인증서를 사용하여 서버를 사칭하는 것을 방지합니다.

• 안드로이드 7.0에 도입된 안드로이드 네트워크 보안 구성(NSC)은 보안 정책에 대한 세분화된 제어를 제공하여 개발자가 TLS를 시행하고 클리어텍스트 트래픽을 비활성화하며 XML 파일(network_security_config.xml)을 통해 인증서 고정을 구현할 수 있다.

• 적절한 인증서 검증은 무엇보다 중요하며, 앱은 강력한 트러스트 관리자를 사용하여 신뢰할 수 있는 CA에 대한 인증서를 검증하고 자체 서명 또는 알려지지 않은 인증서를 거부하고 개발 중 SSL 검증을 비활성화하는 것을 피해야 한다.

• 마지막으로 AES-GCM 또는 ChaCha20-Poly1305와 같은 강력한 암호화 알고리즘을 사용하고 SSL 3.0 및 TLS 1.0과 같은 구식 프로토콜을 비활성화하는 것은 공격자가 보안 통신을 손상시키기 위해 약한 암호화를 이용하는 것을 방지하는 데 필수적이다.

https://proandroiddev.com/man-in-the-middle-mitm-attacks-in-android-development-how-to-secure-your-app-062d1fdb3a7e





오늘의 이야기

양민혁 선수와 QPR 최근 소식, 양민혁 선수, QPR 임대 후 맹활약!

친구들




2024년 K리그 최고의 신인으로 떠오른 양민혁 선수가 잉글랜드 챔피언십(2부 리그) 퀸즈 파크 레인저스(QPR)에 임대된 후 성공적인 적응을 하고 있다는 소식입니다.

* QPR 임대 배경:  양민혁 선수는 토트넘 홋스퍼와 시즌 중간에 계약했지만, 구단의 요청으로 2024년 12월 조기 합류했습니다. 등번호 18번을 부여받으며 기대를 모았으나, 데뷔 기회를 얻지 못하고 QPR로 임대되었습니다. 토트넘의 요한 랑 테크니컬 디렉터는 양민혁 선수의 발전을 위해 임대를 결정했으며, 2025-2026시즌 프리시즌에는 토트넘으로 복귀하여 경쟁할 것이라고 밝혔습니다. (뉴시스  참조)

* QPR 데뷔 및 활약:  1월 29일 QPR 임대 발표 후, 양민혁 선수는 빠르게 팀에 적응하며 존재감을 드러내고 있습니다.  2월 5일 블랙번 로버스와의 홈 경기에서는 팀의 2-1 승리를 자축하며 SNS에 기쁨을 표현하기도 했습니다. (노컷뉴스 참조)

* 최근 경기 활약:  최근 경기에서 양민혁 선수는 데뷔 어시스트를 기록하며 팀의 4-0 대승에 기여했습니다.  영국 매체 스포키는 "양민혁이 뛰었던 35분 동안 영향력은 훌륭했다"고 평가했습니다. (스포키 참조)

* QPR 잔류 가능성:  일부 전문가들은 양민혁 선수의 QPR 잔류 가능성을 제기하고 있습니다.  축구 전문가 존 웬햄은 "양민혁은 QPR에서 첫 어시스트를 기록했다. 이는 좋은 일이었다"며 긍정적인 전망을 내놓았습니다.  토트넘 홋스퍼 뉴스 역시 "양민혁이 QPR에 잔류할 것이다. 토트넘에서 빛을 발할 기회를 조금 더 기다려야 할지도 모른다"고 전망했습니다. (스포키 참조)

* 향후 전망:  양민혁 선수의 활약에 대해 '스퍼스 웹'은 "양민혁은 QPR에서 연속 선발 출전을 기대하고 있다. 더 빠르게 적응할 수 있기를 바라고 있다. 엔제 포스테코글루 감독과 토트넘 스태프들은 양민혁을 다음 시즌 토트넘 1군 선수단에 합류시킬지 여부를 QPR에서 깊게 지켜보며 생각할 것이다." 라고 보도했습니다. (스포키 참조

결론

양민혁 선수는 QPR 임대 후 성공적으로 잉글랜드 축구에 적응하고 있으며, 뛰어난 활약을 보여주고 있습니다.  QPR에서의 활약을 바탕으로 다음 시즌 토트넘 1군 합류 가능성을 높이고 있으며,  QPR 잔류 가능성 또한 제기되고 있어 앞으로의 행보가 더욱 주목됩니다.

참고 자료:

* 뉴시스: 'QPR 임대' 양민혁, 여름부터 토트넘서 뛴다…"프리시즌서 경쟁"
* 동아일보: 임대 떠난 양민혁…英 2부리그 QPR은 기회의 땅일까
* 스포키: '양민혁이 선발 아니라고?' 英 매체도 놀랐다...QPR 감독은 "후반에 쓰고 싶었어! YANG 활약은 인상적"
* 노컷뉴스: "올라갈 일만 남았다" 양민혁, 2경기 만에 QPR 적응 완료…토트넘서 경쟁도 가능?
* 스포키: "양민혁, 다음 시즌 QPR에서 뛰어도 놀랍지 않아" 잔류 주장 등장…왜? "많은 기회 얻을 수 있어"





오늘의 이야기

Firebase ML Translate vs Google Cloud Translate: 성능, 기능, 비용 비교 및 안드로이드 앱 개발 효율성 간략 비교


디지털 노마드



 


안드로이드 앱 개발 시, Firebase ML Translate와 Google Cloud Translate 중 어떤 것이 더 효율적인지에 대해 알아보겠습니다. 성능, 기능, 비용 등을 비교하고, Kotlin을 이용한 기능 설계 예제도 포함하여 정리해 보겠습니다.


성능 및 기능 비교


Firebase ML Translate



  • 성능: Firebase ML Translate는 온디바이스(on-device) 번역을 지원하여 빠른 번역 속도를 제공합니다. 인터넷 연결 없이도 번역이 가능하며, 59개 언어를 지원합니다.

  • 기능: Firebase ML Translate는 Google Translate 앱의 오프라인 모드와 동일한 모델을 사용합니다. 동적 모델 관리 기능을 통해 필요한 언어 팩을 동적으로 다운로드하고 관리할 수 있습니다.

  • 제한사항: 온디바이스 번역은 간단한 번역에 적합하며, 번역 품질은 언어 쌍에 따라 다를 수 있습니다. 비영어권 언어 간 번역 시 중간 언어로 영어를 사용하기 때문에 품질이 저하될 수 있습니다.


Google Cloud Translate



  • 성능: Google Cloud Translate는 클라우드 기반 번역을 제공하여 높은 정확도와 품질을 자랑합니다. Neural Machine Translation(NMT) 모델을 사용하여 더 자연스러운 번역을 제공합니다.

  • 기능: Google Cloud Translate는 100개 이상의 언어를 지원하며, 실시간 번역, 대량 번역, 문서 번역 등의 다양한 기능을 제공합니다.

  • 제한사항: 클라우드 기반 번역이므로 인터넷 연결이 필요하며, 온디바이스 번역에 비해 속도가 느릴 수 있습니다.


비용 비교


Firebase ML Translate



  • Firebase ML Translate는 Firebase의 일부로 제공되며, Firebase의 무료 요금제를 사용할 수 있습니다. 다만, 사용량이 많아질 경우 유료 요금제로 전환해야 할 수 있습니다.


Google Cloud Translate



  • Google Cloud Translate는 사용량 기반 요금제를 적용합니다. 번역 문자 수에 따라 비용이 부과되며, 대량 번역 시 비용이 증가할 수 있습니다.


안드로이드 앱 개발 효율성


Firebase ML Translate는 온디바이스 번역을 제공하여 인터넷 연결 없이도 빠른 번역이 가능하므로, 오프라인 환경에서의 번역이 중요한 앱에 적합합니다. 반면, Google Cloud Translate는 높은 번역 품질과 다양한 기능을 제공하므로, 정확한 번역이 필요한 앱에 적합합니다.


Kotlin을 이용한 기능 설계 예제


다음은 Kotlin을 이용하여 Firebase ML Translate와 Google Cloud Translate를 사용하는 예제입니다.


Firebase ML Translate 예제



kotlin



// Firebase ML Translate 설정
val options = FirebaseTranslatorOptions.Builder()
.setSourceLanguage(FirebaseTranslateLanguage.EN)
.setTargetLanguage(FirebaseTranslateLanguage.KO)
.build()
val translator = FirebaseNaturalLanguage.getInstance().getTranslator(options)

// 번역 모델 다운로드
translator.downloadModelIfNeeded()
.addOnSuccessListener {
// 번역 모델 다운로드 성공
translator.translate("Hello, world!")
.addOnSuccessListener { translatedText ->
// 번역 성공
println(translatedText)
}
.addOnFailureListener { exception ->
// 번역 실패
println("Translation failed: ${exception.message}")
}
}
.addOnFailureListener { exception ->
// 번역 모델 다운로드 실패
println("Model download failed: ${exception.message}")
}




Google Cloud Translate 예제



kotlin



// Google Cloud Translate 설정
val translate = TranslateOptions.getDefaultInstance().service

// 번역 요청
val translation = translate.translate(
"Hello, world!",
Translate.TranslateOption.sourceLanguage("en"),
Translate.TranslateOption.targetLanguage("ko")
)

// 번역 결과 출력
println(translation.translatedText)




위 예제들을 참고하여 Firebase ML Translate와 Google Cloud Translate를 안드로이드 앱에 통합할 수 있습니다. 각 서비스의 장단점을 고려하여 앱의 요구사항에 맞는 번역 서비스를 선택하시기 바랍니다.


: Translation | ML Kit for Firebase : Google Translate vs. Google Cloud Translate - Stack Overflow


이 블로그 포스트가 안드로이드 앱 개발에 도움이 되길 바랍니다! 추가적인 질문이 있으면 언제든지 알려주세요. 😊





오늘의 이야기

Java에서의 CORBA 및 대체 라이브러리


 



귀요미


 


1. org.omg.CORBA 패키지가 포함된 JAR 파일


org.omg.CORBA 패키지가 포함된 JAR 파일을 찾기 위해 corba-api-5.0.1.jar 파일을 다운로드할 수 있는 링크를 소개해 드렸습니다.


2. CORBA의 대체 라이브러리


Java에서 CORBA를 대체할 수 있는 라이브러리로 다음과 같은 옵션들을 소개해 드렸습니다:



  • gRPC: 고성능의 오픈 소스 RPC 프레임워크.

  • Apache Thrift: 다양한 언어를 지원하는 확장 가능한 크로스 언어 서비스 개발을 위한 프레임워크.

  • RMI (Remote Method Invocation): Java에서 기본 제공되는 원격 통신 메커니즘.

  • SOAP (Simple Object Access Protocol): 구조화된 정보를 교환하는 프로토콜.

  • REST (Representational State Transfer): HTTP를 사용하여 통신하는 현대적인 접근 방식.


3. org.omg.CORBA 패키지 위치


org.omg.CORBA 패키지는 JDK에서 rt.jar 파일 안에 포함되어 있으며, JDK 설치 디렉토리의 lib 폴더에서 찾을 수 있습니다.


 


레오나르도 AI 가 그려준 이미지



 





오늘의 이야기


#스하리1000명프로젝트,
¿Perdido en Corea? Incluso si no hablas coreano, esta aplicación te ayuda a moverte fácilmente.
Simplemente hable su idioma: traduce, busca y muestra resultados en su idioma.
¡Genial para viajeros! Admite más de 10 idiomas, incluidos inglés, japonés, chino, vietnamita y más.
¡Pruébalo ahora!
https://play.google.com/store/apps/details?id=com.billcoreatech.opdgang1127




2026/04/19

오늘의 이야기

개발자들을 위한 퍼플렉시티 AI 활용법: 효율적인 검색과 정보 요약


ai가 그린 이미지




• 퍼플렉시티 AI는 출처가 명확한 요약된 답변을 제공하는 AI 기반 검색 엔진으로, 기존 검색 엔진의 한계를 극복하고 개발자들에게 유용한 정보를 신속하게 제공합니다.

• 실시간 웹 검색 기능을 통해 최신 기술 트렌드를 파악하고, 다양한 AI 모델(OpenAI GPT-4, Anthropic Claude 등)을 지원하여 다양한 질문에 정확한 답변을 제공합니다.

• 검색 결과의 신뢰성을 높이기 위해 모든 답변에 출처를 명시하고, 웹, 학술, 소셜 모드 등 검색 범위를 선택할 수 있는 옵션을 제공하여 사용자에게 정보의 투명성을 보장합니다.

• 최근 도입된 딥 리서치 기능은 AI가 문서를 분석하여 핵심 내용을 종합한 보고서를 생성하며,  'Humanity’s Last Exam' 벤치마크에서 높은 정확도를 기록하여 주목받고 있습니다. (현재 무료 제공, 향후 Pro 구독자에게 무제한 제공 예정)

• 검색어를 구체적으로 입력하는 것이 중요하며, 검색 대상과 범위를 명확히 설정하고, 원하는 결과물의 형태를 지정하고, 배경과 상황을 추가하여 더욱 정확한 답변을 얻을 수 있습니다.  (/site:, /filetype:, /after:, /before: 명령어 활용법 등이 제시됨)

• 퍼플렉시티 AI는 후속 질문 기능을 제공하여 심층적인 정보 분석을 가능하게 하지만, 모든 출처의 신뢰도를 보장할 수 없으므로, 결과 확인 및 출처 검증이 필요하며, 무료 버전의 기능 제한 또한 고려해야 합니다.

• 퍼플렉시티 AI는 챗GPT와 달리 대화형 인터페이스가 아닌 검색 및 요약에 초점을 맞춘 도구이므로, 복잡한 질문이나 연속적인 분석에는 추가 검색이 필요할 수 있습니다.

https://yozm.wishket.com/magazine/detail/3001/

개발자들이 사랑하는 ‘퍼플렉시티 AI’ 잘 쓰는 법 | 요즘IT

최근 기술 변화의 속도는 그야말로 광속이다. 새로운 라이브러리, 프레임워크, 베스트 프랙티스가 하루가 다르게 등장하는 이 시대에, 더 이상 오래된 블로그 글이나 부정확한 답변을 뒤적일 시

yozm.wishket.com





오늘의 이야기


#스하리1000명프로젝트

오늘 내가 만든앱 하나 알려주고 싶어, 이 앱은 알림수집기 라고 이름을 붙였는 데,
내 폰에 표시 되는 알림을 읽어서 내가 지정한 단어가 들어 있고, 지출기록을 남겨야 하는 알림이
있으면 수집하고, 카카오톡으로 친구에게 전달해 주는 기능을 구현해 줄꺼야. 📲

이번 패치에서는 하루 한번 지정한 시간에 나에게 알림(노티) 하도록 기능을 추가 했어. 🙏
한번 써보고 불편한 거 있으면 말해줘.

앱 바로가기
👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기


#스하리1000명프로젝트

오늘 내가 만든앱 하나 알려주고 싶어, 이 앱은 알림수집기 라고 이름을 붙였는 데,
내 폰에 표시 되는 알림을 읽어서 내가 지정한 단어가 들어 있고, 지출기록을 남겨야 하는 알림이
있으면 수집하고, 카카오톡으로 친구에게 전달해 주는 기능을 구현해 줄꺼야. 📲

이번 패치에서는 하루 한번 지정한 시간에 나에게 알림(노티) 하도록 기능을 추가 했어. 🙏
한번 써보고 불편한 거 있으면 말해줘.

앱 바로가기
👉 https://play.google.com/store/apps/details?id=com.nari.notify2kakao





오늘의 이야기

**디젤 차량의 DPF 재생 방법과 유지 관리 팁**


경고등 이미지




**DPF란 무엇인가요?**
디젤 차량에는 DPF(Diesel Particulate Filter)라는 매연 필터가 장착되어 있습니다. 이 필터는 디젤 엔진에서 나오는 미세 입자를 걸러내어 배출가스를 줄이는 역할을 합니다. 그러나 DPF가 지속적으로 입자를 모으다 보면 점점 막혀서 성능이 떨어지기 때문에 주기적으로 재생(클리닝)해야 합니다.

**DPF 재생이란?**
DPF 재생은 높은 온도로 필터 내부의 입자를 태워서 제거하는 과정을 말합니다. 차량이 고속 주행과 같은 특정 조건을 만족할 때 엔진이 충분한 열을 발생시키며 재생이 이루어집니다. 일반적으로 **고속도로에서 60km 이상 주행**하거나, **자동변속기 2단 이상에서 엔진 회전수를 1,500 ~ 2,000rpm으로 25분 이상 주행**하면 재생이 이루어집니다.

**DPF 재생 주기**
DPF 재생 주기는 차량의 주행 조건과 운전 습관에 따라 달라질 수 있습니다. 일반적으로 **200~500km** 주행 후에 재생이 이루어집니다. 고속도로 주행과 같은 일정한 속도로 주행할 때 재생 주기가 길어질 수 있으며, 시내 주행과 같이 자주 멈추고 서는 경우 재생 주기가 짧아질 수 있습니다.

**DPF 성능을 유지하는 방법**
1. **고속 주행**: 주기적으로 고속도로에서 60km 이상 주행을 하면 DPF가 효율적으로 재생될 수 있습니다.
2. **고급 연료 사용**: 저품질 연료는 더 많은 재를 발생시킬 수 있으므로, 고급 연료를 사용하는 것이 좋습니다.
3. **정기적인 차량 점검**: 주기적으로 차량을 점검하고 DPF 상태를 확인하면 성능 저하를 예방할 수 있습니다.
4. **엔진 오일 교환**: 오염된 엔진 오일이 DPF에 영향을 미칠 수 있으므로, 적절한 주기마다 엔진 오일을 교환하는 것이 중요합니다.
5. **적절한 운전 습관**: 급가속과 급제동을 피하고, 일정한 속도로 주행하는 습관을 가지면 DPF의 성능을 유지하는 데 도움이 됩니다.

이렇게 DPF 재생을 통해 차량의 성능을 유지하고 배출가스를 줄일 수 있습니다. 정기적으로 점검하고, 적절한 주행 조건을 유지하여 DPF의 성능을 향상시켜 보세요!





오늘의 이야기

Kotlin Multiplatform 프로젝트를 위한 최신 업데이트 그아이와 친구들 ?   Android Studio Meerkat | 2024.3.1 Patch 1 Build #AI-243.2497...