| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- sqlite
- FastAPI
- 보안
- 백엔드
- 온디바이스AI
- 마이그레이션
- php
- contextBridge
- JWT
- 메일자동화
- React
- 프론트엔드
- github actions
- next.js
- 배포
- playwright
- Vite
- Android
- python
- 도메인설계
- 인증
- 상태관리
- 아키텍처
- Kotlin
- 소셜로그인
- REST API
- javascript
- typescript
- 크롤링
- electron
- Today
- Total
목록Kotlin (5)
HM소프트
전화 금융사기 탐지 앱을 완전 온디바이스로 설계해 통화 내용이 기기 밖으로 나가지 않게 한 기록. 녹음 감지부터 오디오 정규화, Whisper STT, 경량 LLM 판정까지 JNI로 붙이고, JSON 실패 시 키워드 폴백과 SQLCipher 암호화로 안전망을 친 파이프라인을 담았다.통화가 끝난 뒤에야 깨닫는다 — 무엇을, 왜 만들었나전화 금융사기(보이스피싱)의 가장 고약한 점은, 당하는 그 순간에는 좀처럼 의심이 들지 않는다는 것이다. "검찰입니다", "고객님 계좌가 범죄에 연루됐습니다", "지금 바로 안전계좌로 옮기셔야 합니다" — 이 흐름은 상대를 긴장시켜 판단력을 마비시키도록 정교하게 설계돼 있다. 그래서 피해자 대부분은 통화가 끝나고 한참 뒤, 혹은 송금까지 마치고 나서야 "뭔가 이상했다"를 깨닫..
AdMob 보상형 광고를 안드로이드 게임에 붙이며 콜백 지옥을 가드 네 겹으로 길들인 기록. 광고 로직을 AdManager 한 곳에 모으고 준비 상태를 StateFlow로 노출해 버튼을 제어하며, 보상 지급은 원자적 SQL UPDATE로, 광고 빈도 정책은 상수로 모았다.마지막 편, 그리고 가장 미뤄둔 편시리즈 마지막이다. 1편에서 Compose + Hilt + Room + MVVM 아키텍처를 세웠고, 2편에서 게임 시스템과 재화 정합성을, 3편에서 Room 마이그레이션과 테스트를 다뤘다. 이번엔 수익화 — AdMob 보상형 광고를 붙이고 게임 재화와 연동한 이야기다.솔직히 광고는 개인 개발 게임에서 가장 미뤄두기 쉬운 작업이다. 재미와 직접 관련이 없고, 잘해야 본전이며, 잘못 붙이면 사용자 경험만 망..
Room 스키마 마이그레이션과 단위 테스트 98개로 모바일 축구 커리어 게임을 안전하게 키운 기록. 순방향 누적 마이그레이션, 인덱스 이름·기본값까지 맞춰야 하는 스키마 검증, 순수 함수 TDD, 부동소수점 delta 비교, DataStore 주입과 가짜 DAO·테스트 디스패처로 DB 없이 ViewModel을 검증한 방법을 다룬다.Room DB 마이그레이션과 단위 테스트 98개를 작성한 안드로이드 개발기다. 3편: 마이그레이션과 테스트2편에서 게임 시스템과 원자적 SQL을 다뤘다. 이번 편은 그 로직들을 안전하게 떠받친 두 가지 — Room 스키마 마이그레이션과 단위 테스트(TDD)다. 게임처럼 상태가 많은 앱은 "DB 스키마가 바뀔 때"와 "로직이 맞는지"를 못 잡으면 금방 무너진다.Room 마이그레이..
모바일 축구 커리어 게임의 사기·부상·재화·은퇴 시스템을 데이터 정합성 중심으로 만든 기록. 계산은 순수 함수로 분리하고, 회복·재화 차감을 단일 원자적 UPDATE로 합쳐 연타 경쟁 상태를 막고, 영향 행 수로 성공을 판정하며, is_retired 플래그로 은퇴를 멱등하게 만든 이층 방어 구조를 다룬다.안드로이드 게임의 시스템 설계와 원자적 SQL 처리를 정리한다. 2편: 게임 시스템1편에서 Compose + Hilt + Room 아키텍처를 다뤘다. 이번 편은 게임의 재미를 만드는 시스템들 — 사기(Morale), 부상 센터, 은퇴/레거시 — 그리고 이들을 구현하며 가장 신경 쓴 데이터 정합성이다.사기(Morale) 시스템선수의 컨디션을 좌우하는 사기 수치를 넣었다. 경기 결과가 사기에 영향을 주고, ..
오프라인 우선 모바일 축구 커리어 게임을 Jetpack Compose·Hilt·Room·MVVM으로 올린 아키텍처 기록. 단방향 의존, 읽기 전용 StateFlow UiState, 변하는 값은 Flow 한 번 값은 suspend 구분, Hilt 모듈 분리와 Room 단일 인스턴스, SQL UPDATE에 불변식을 새긴 동시성 처리, Navigation Compose 경로 관리를 다룬다.Jetpack Compose + Hilt + Room으로 짠 안드로이드 아키텍처를 정리한다. 시리즈를 시작하며선수를 만들어 훈련하고, 경기를 시뮬레이션하고, 시즌과 이적을 거쳐 은퇴하면 다음 세대로 능력이 이어지는 — 모바일 축구 커리어 게임을 안드로이드로 만들었다. 서버 시뮬레이션이 아니라, 게임 로직과 데이터가 대부분 단..