2026년 7월 19일 일요일

개인정보 처리방침 — DailyLog

최종 업데이트: 2026-07-20
앱: DailyLog
개발자: gerosyab
문의: gerosyab@gmail.com

1. 요약

  • 사용자 데이터(그룹·트래커·기록)는 기기 로컬에 저장됩니다.
  • 선택적 Google Drive 백업은 사용자 Google 계정의 appDataFolder에 저장됩니다.
  • Google Play 결제, AdMob 광고, UMP 동의, Firebase Analytics / Crashlytics / Remote Config를 사용합니다.

2. 처리 정보

기기 내

트래커·그룹·기록·목표·리마인더·테마/언어·임시 타이머 상태, 사용자가보낸 로컬 백업 파일, 결제 후 로컬 entitlement 캐시

Google Drive (선택, Premium)

로그인·백업 시 사용자 계정 appDataFolder로 ZIP 백업 업/다운로드

Play Billing

구독/영구 잠금해제/후원 — 결제는 Google Play가 처리

광고·동의

AdMob 광고 ID 등(Google 정책 범위). EEA 등에서는 UMP 동의 후에만 광고 요청

분석·Crash

Firebase Analytics 이벤트, Crashlytics 스택·기기/앱 버전. Remote Config는 설정값 fetch(사용자 데이터 업로드 아님)

3. 이용 목적

기능 제공, Premium/광고 제거, 무료 광고, 안정성·사용성 개선, 고객 지원

4. 제3자

Google 서비스(Play, AdMob, Firebase, Drive, UMP)는 각 Google 약관·개인정보 정책이 적용됩니다. 사용자 데이터를 광고 네트워크에 판매하지 않습니다.

5. 보관

  • 로컬: 삭제/앱 제거 시까지
  • Drive: 사용자 계정에서 삭제할 때까지
  • Firebase: Google 보관 주기
  • 지원 메일: 처리에 필요한 기간

6. 권리·삭제

앱 삭제, Drive 로그아웃/백업 삭제, 기기 광고 설정

7. 아동

만 13세(또는 국가별 최소 연령) 미만을 대상으로 하지 않습니다.

8. 문의

gerosyab@gmail.com

Privacy Policy — DailyLog

Last updated: 2026-07-20
App: DailyLog
Developer: gerosyab
Contact: gerosyab@gmail.com

1. Summary

  • User data (groups, trackers, records) is stored on your device.
  • Optional Google Drive backup is stored in your Google account’s appDataFolder.
  • The App uses Google Play Billing, AdMob ads, UMP consent, and Firebase Analytics / Crashlytics / Remote Config.

2. Information we process

On your device

Trackers, groups, records, goals, reminders, theme/language preferences, temporary timer state, local backup files you export, and locally cached purchase entitlement after Play Billing.

Google Drive (optional, Premium)

When you sign in and back up, a ZIP archive is uploaded/downloaded to your account’s appDataFolder.

Play Billing

Subscription, lifetime unlock, and tips — payments are handled by Google Play.

Ads & consent

AdMob advertising ID and related data under Google’s policies. In regions such as the EEA, ads are requested only after UMP consent.

Analytics & crash

Firebase Analytics events; Crashlytics stacks and device/app version. Remote Config only fetches configuration values (it does not upload your user data).

3. How we use information

App features, Premium / ad removal, free-tier ads, stability and usability improvements, and customer support.

4. Third parties

Google services (Play, AdMob, Firebase, Drive, UMP) are governed by Google’s terms and privacy policies. We do not sell your user data to advertising networks.

5. Retention

  • Local: until you delete it or uninstall the App
  • Drive: until you delete it from your account
  • Firebase: per Google’s retention periods
  • Support email: as needed to handle your request

6. Your choices & deletion

Uninstall the App; sign out of Drive / delete backups; adjust device advertising settings.

7. Children

The App is not directed at children under 13 (or the minimum age required in your country).

8. Contact

gerosyab@gmail.com

2026년 7월 11일 토요일

Dooray Chat Export - Privacy Policy

Dooray Chat Export — 개인정보 처리방침

최종 수정일: 2026-07-12

본 확장 프로그램("Dooray Chat Export")은 사용자의 Dooray 메신저 채팅 내용을 로컬에서 내보내기 위한 도구입니다.

1. 수집하는 데이터

본 확장은 별도의 개인정보를 수집·저장·전송하지 않습니다.

  • 채팅 내보내기 시 Dooray 페이지에서 표시된 내용을 사용자 기기에서만 처리합니다.
  • 내보낸 파일은 사용자 브라우저의 다운로드 폴더에 저장됩니다.
  • 개발자 또는 제3자 서버로 데이터를 전송하지 않습니다.

2. 로컬 저장 (chrome.storage)

다음 설정만 브라우저 로컬 저장소에 보관합니다.

  • FAB(플로팅 버튼) 표시 여부 (showFab)

이 데이터는 확장 기능 UI 설정용이며 외부로 전송되지 않습니다.

3. 권한 사용 목적

  • activeTab — 현재 Dooray 메신저 탭에서 내보내기 실행
  • storage — 사용자 UI 설정 저장
  • host_permissions (*.gov-dooray.com, *.dooray.com) — Dooray 메신저 페이지에서 콘텐츠 스크립트 실행 및 API 응답 접근

4. 제3자 서비스

본 확장은 Dooray(NHN) 공식 제품이 아니며, Dooray와 제휴 관계가 없습니다. 내보내기 과정에서 Dooray 웹사이트의 기존 API를 사용자 세션 범위 내에서 호출할 수 있습니다.

5. 아동

본 확장은 13세 미만 아동을 대상으로 하지 않습니다.

6. 변경

본 방침은 필요 시 업데이트될 수 있습니다. Chrome Web Store 등록 페이지의 개인정보처리방침 URL을 통해 최신 버전을 확인하세요.

7. 문의

문의: gerosyab@gmail.com


Privacy Policy (English)

Dooray Chat Export does not collect, store, or transmit personal data to any external server.

All export processing runs locally in your browser. Exported files are saved to your Downloads folder.

Only UI preference (FAB visibility) is stored in chrome.storage.local.

Permissions: activeTab (current tab export), storage (settings), host permissions for Dooray messenger domains.

This extension is unofficial and not affiliated with Dooray/NHN.

Contact: gerosyab@gmail.com

2022년 1월 18일 화요일

개인정보처리방침2

 gerosyab 은(는) 개인정보 보호법 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리지침을 수립․공개합니다. 


1. 개인정보의 처리 목적 : gerosyab 은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며, 이용 목적이 변경되는 경우에는 개인정보 보호법 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.
 - Google Admob 맞춤 광고를 위한 목적으로 개인정보를 처리합니다.


2. 개인정보의 처리 및 보유 기간 :
 - 보유 하지 않음


3. 개인정보의 제3자 제공에 관한 사항
 - 제공하지 않음


4. 개인정보처리의 위탁에 관한 사항
 - 해당 없음


5. 정보주체의 권리․의무 및 그 행사방법에 관한 사항
 - 해당 없음

6. 처리하는 개인정보의 항목
 - 없음

7. 개인정보의 파기에 관한 사항
 - 개인 정보 보유 하지 않음


8. 개인정보 보호책임자에 관한 사항
 - 개발자 : gerosyab@gmail.com


9. 개인정보 처리방침의 변경에 관한 사항
 - 이 개인정보 처리방침은 2022. 1. 19 부터 신규 적용됨
 - 이후 개인정보 처리방침은 별도 링크를 통해 제공될 예정


10. 개인정보의 안전성 확보조치에 관한 사항
 - 개인정보를 수집하거나 자체 보유하지 않음


11. 참고 정보
 - Google 개인정보처리방침 : https://www.google.com/intl/ko/policies/privacy/
 - 한국 거주자를 위한 개인정보 관련 추가 정보 : https://www.google.co.kr/policies/privacy/additional/

2017년 2월 6일 월요일

개인정보 처리방침 / Privacy Policy

개인정보처리방침

gerosyab은(는) 개인정보 보호법 제30조에 따라 정보주체의 개인정보를 보호하고 이와 관련한 고충을 신속하고 원활하게 처리할 수 있도록 하기 위하여 다음과 같이 개인정보 처리지침을 수립·공개합니다.

  1. 개인정보의 처리 목적

gerosyab은(는) 다음의 목적을 위하여 개인정보를 처리합니다. 처리하고 있는 개인정보는 다음의 목적 이외의 용도로는 이용되지 않으며, 이용 목적이 변경되는 경우에는 개인정보 보호법 제18조에 따라 별도의 동의를 받는 등 필요한 조치를 이행할 예정입니다.

  • Google AdMob 맞춤 광고를 위한 목적으로 개인정보를 처리합니다.

  1. 개인정보의 처리 및 보유 기간

  • 개인정보를 자체적으로 보유하지 않습니다.

  1. 개인정보의 제3자 제공에 관한 사항

  • 맞춤 광고용 정보가 Google AdMob에 제공될 수 있습니다.

  1. 개인정보 처리의 위탁에 관한 사항

  • 해당 없음

  1. 정보주체의 권리·의무 및 그 행사방법에 관한 사항

맞춤 광고를 위해 사용자는 Google 광고 설정에서 관심 분야 및 인구통계 정보를 직접 확인하거나 수정할 수 있습니다. 또한 일부 사용자는 맞춤 광고를 선택 해제할 수 있습니다.

  1. 처리하는 개인정보의 항목

  • 기기 ID

  1. 개인정보의 파기에 관한 사항

  • 개인정보를 자체적으로 보유하지 않습니다.

  1. 개인정보 보호책임자에 관한 사항

  1. 개인정보 처리방침의 변경에 관한 사항

  • 이 개인정보 처리방침은 2017년 2월 7일부터 적용됩니다.

  • 이후 변경되는 개인정보 처리방침은 별도의 링크를 통해 제공될 예정입니다.

  1. 개인정보의 안전성 확보조치에 관한 사항

  • 서비스 제공에 필요하지 않은 개인정보를 수집하거나 자체적으로 보유하지 않습니다.

  1. 참고 정보

────────────────────────────────────────

Privacy Policy

In accordance with Article 30 of the Personal Information Protection Act, gerosyab establishes and discloses this Privacy Policy to protect users’ personal information and to handle related complaints promptly and efficiently.

  1. Purpose of Processing Personal Information

gerosyab processes personal information for the purposes described below. Personal information will not be used for any purpose other than those specified below. If the purpose of processing changes, gerosyab will take the necessary measures, such as obtaining separate consent in accordance with Article 18 of the Personal Information Protection Act.

  • Personal information may be processed for the purpose of providing personalized advertisements through Google AdMob.

  1. Processing and Retention Period of Personal Information

  • gerosyab does not independently retain personal information.

  1. Provision of Personal Information to Third Parties

  • Information used for personalized advertising may be provided to Google AdMob.

  1. Entrustment of Personal Information Processing

  • Not applicable.

  1. Rights and Obligations of Users and How to Exercise Them

For personalized advertising, users may view or modify their interests and demographic information through Google Ads Settings. Some users may also opt out of personalized advertising.

  1. Categories of Personal Information Processed

  • Device ID

  1. Destruction of Personal Information

  • gerosyab does not independently retain personal information.

  1. Personal Information Protection Officer

  1. Changes to This Privacy Policy

  • This Privacy Policy took effect on February 7, 2017.

  • Any subsequent changes to this Privacy Policy will be provided through a separate link.

  1. Measures to Ensure the Security of Personal Information

  • gerosyab does not collect or independently retain personal information that is not necessary for providing the service.

  1. Additional Information

2015년 9월 15일 화요일

[Guide] Floating in circular boundary (or rectangular) with accelerometer sensor

This guide is about floating, moving a point in coordinate system.

It may be useful to make spirit level (bubble level) or magic 8 ball and so on 

Just use device's accelerometer sensor to moving a center point.

I wrote android custom view which implements SensorEventListener.

Do some initialization (measuring screen size, set boundary size, assign values...) first.

Draw the x, y axis and boundary and little circle.

In end of the onDraw(), invalidate() makes little circle keep moving.



Important formula to make little circle inside circular boundary is below.



add the sensor's value to x, y coordinate (xCon, yCon) and check it is out of the circular boundary.
If it is change the value with the Formula

x = cos(atan2(y, x)) * CIRCULAR_BOUDNARY_RADIUS
y = sin(atan2(y, x)) * CIRCULAR_BOUDNARY_RADIUS

You can select the circle to float on water or roll on ground just change addition <-> subtraction.

- For simulating object floating on water, against gravity
xCon += mSensorX;
yCon -= mSensorY;

- For simulating object rolling on ground, adjust to gravity
xCon -= mSensorX;
yCon += mSensorY;

Also you can change boundary shape easily
For rectangle boundary





onSensorChanged() I just add sensor values(weighted) to center point x, y and it seems to be quite enough to do rough simulation.

Whole source code of my custom view is like below.




Hope this is helpful!

Thanks

[GUIDE] Customize Lollipop's official Clock application



I am a person who needs many many multiple alarms to wake up early in the morning.
Every clock/alarm applications I tried has no feature that turning on or off all alarms at once.
So I decided to customize google's official android clock app.

Let's get it started.

### Needed #####
google's clock app source (I use Lollipop's source for my device)
buttons icon image

### Steps #####

1) download source from googlesource.com repository
android system clock application's package name is "DeskClock".
You can clone the source like below


git clone -b lollipop-release https://android.googlesource.com/platform/packages/apps/DeskClock

2. import it & remove errors
When you import the project to your IDE, you will get thousand of import errors.
Check below
SDK Version
- Make sure that you have lollipop sdk and check "Build Target" in "Project Properties"
AndroidManifest
- Specify min/targetSdkVersion, if it is not in AndroidManifest.xml
- There is "DEVICE_POWER" permission because it is android system app but we can't build system application so just remove it. (In my usage, it seems to be no problem)
Library
- Put android support-library jar file and add it to project build path.

3. Add button icons

- add ic_all_on.png, ic_all_off.png as drawable


4. Edit the sources
There is "DeskClockFragmet" class which is parent of alam/timer/stopwatch/clock's Fragment class.
It uses common layout "desk_clock.xml". It has three buttons (Fab, sub buttons) in the bottom of the screen and Alarm Fragment does not use and just hide sub buttons.
Which means we can easily add buttons to that place.
setLeftRightButtonAppearance() in AlarmClockFragment.java

set mLeft/RightButton enabled and change visibilty to VISIBLE, set button image as drawable we added.

Override onLeftButtonClick/onRightButtonClick() from parent (DeskClockFragment.class) and call switchAlarms() what we will implement.

+ I just hide menu button in bottom-right just in alarm tab because right and menu button are overlayed.

onCreateView() in AlarmClockFragment.java

There is AlarmItemAdapter sub class in AlarmClockFragment.java which extends CursorAdapter.
We have to implement something that change actual alarm data in inner database and change views depend on each alarm's on/off value.
I just added a method "swichAlarms" into this sub class to do that.

boolean enabled value is passed as parameter (on : true / off : false)
Get every alarm's view and change the view when the alarm on/off status has to be changed

Also there's a way to get alarms llist in Alarm.java that is getAlarms() method.
I use it to get alarms list a alarm's enabled value is different.
And change alarms enabled value with asyncUpdateAlarm() method in AlarmClockFragment.java


That's all!
easy? 






Now I feel comfortable to sleep lately in the evening and wake up early in the morning 
Hope this thread is helpful to someone like me.
I attached project archive and apk.
Enjoy it!