전체 글
-
2016년에 만든 D-day 앱을 AI 에이전트와 4일 만에 다시 만든 이야기AI 2026. 10. 25. 12:09
디데이어(Ddayer) 3.1 → 4.3 리뉴얼 기록. Claude Code와 함께 레거시 Android 앱을 현대화하면서 배운 것들.들어가며 디데이어는 2016년 4월에 처음 올린 D-day 앱입니다. 시험, 여행, 기념일까지 남은 날을 세고 홈 화면 위젯으로 보여주는 단순한 앱이지만, 10년 가까이 Google Play에서 사용자들이 꾸준히 쓰고 있었습니다.문제는 코드였습니다. 마지막으로 제대로 손본 버전(3.1.2225)은 이런 상태였습니다.minSdk 21, Java와 Kotlin이 섞인 View 기반 화면RxJava + 직접 만든 저장 로직(SharedPreferences에 JSON 통째로 저장)서명 키 정보가 빌드 스크립트 근처에 있던 시절의 흔적Google Play 대상 API 요구사항 때문..
-
개인정보처리방침 (Privacy Policy)카테고리 없음 2026. 10. 25. 11:28
시행일: 2026년 10월 25일DN_Developer(https://dnight.tistory.com, 이하 "본 블로그")는 방문자의 개인정보를 소중히 여기며, 관련 법령(대한민국 개인정보 보호법, EU 일반개인정보보호규정(GDPR) 등)을 준수합니다.1. 수집하는 정보본 블로그는 회원가입 기능이 없으며, 운영자가 직접 이름·연락처 등 개인정보를 수집하지 않습니다. 다만 다음 정보가 자동으로 수집될 수 있습니다.접속 IP 주소, 브라우저 종류, 기기 정보, 방문 일시, 방문 페이지 등 접속 기록쿠키(Cookie) 및 유사 기술을 통해 생성되는 정보댓글 작성 시 입력하는 닉네임 등 (티스토리/카카오 서비스를 통해 처리됨)2. 쿠키 및 광고본 블로그는 Google AdSense를 통해 광고를 게재합니다...
-
대규모 Android 멀티모듈 프로젝트에 AI 하네스를 깔며 배운 것들 (2부)AI 2026. 10. 23. 15:11
※ 1부에서 이어지는 글입니다. 하네스의 개념, 전체 구조, 진입점 설계, 토큰 경제, 워크플로우, 세션 인계, 외부 컨텍스트 수집, 자동 가드레일(0~8장)은 1부에서 다룹니다. (대규모 Android 멀티모듈 프로젝트에 AI 하네스를 깔며 배운 것들 (1부))9. 스킬 — 반복 작업을 "절차 + 스크립트" 패키지로9-1. 배선 사고와 해결스킬은 처음부터 docs/skill//SKILL.md 구조로 만들었다. 그런데 몇 달 뒤 알고 보니 frontmatter까지 갖춘 스킬 6개가 한 번도 자동 발동되지 않았다. Claude Code는 .claude/skills/만 탐색하기 때문이다. 그동안은 진입점의 수동 라우팅 표로 겨우 불러 쓰고 있었고, 표에 없는 스킬은 아예 호출되지 않았다.정본을 .claude..
-
대규모 Android 멀티모듈 프로젝트에 AI 하네스를 깔며 배운 것들 (1부)AI 2026. 10. 23. 14:57
문서 몇 장으로 시작한 AI 코딩 규칙이 워크플로우, 검증 게이트, 스킬, 자기 개선 루프를 갖춘 하네스가 되기까지 약 8개월 동안의 기록이다. 대상은 수십 개 모듈로 이루어진 Kotlin·Compose 기반 Android 앱이고, 주 도구는 Claude Code다. 초기 일부 기간은 Cursor도 함께 썼다.목차0. 하네스 엔지니어링이 뭔가1. 진화 타임라인2. 전체 구조3. 진입점 설계 — "작은 AGENTS.md"4. 토큰 경제 — 읽힐 시점에 맞춰 문서를 쪼갠다5. 워크플로우 오케스트레이션 — 역할을 나누고 전이 조건을 적는다6. 세션 연속성 — 인계는 기억이 아니라 기록으로7. 외부 컨텍스트 수집 — "기획서 다시 읽어"를 제대로 하게 만들기8. 자동 가드레일 — 문서를 무시해도 막히게9. 스킬..
-
JetBrains의 KoogKotlin 2026. 6. 5. 10:49
https://www.jetbrains.com/ko-kr/koog/ Koog: JetBrains가 개발한 JVM 네이티브 AI 에이전트 구축용 프레임워크입니다 www.jetbrains.com 최근 AI 에이전트 기술이 주목받는 가운데, JetBrains가 공개한 Koog 프레임워크를 검토해 보았다. 기존 챗봇이 일회성 응답에 그쳤다면, Koog 기반의 에이전트는 부여된 목표를 위해 스스로 판단하고 도구를 선택해 자율적으로 작업을 완수한다.안드로이드 개발자에게 가장 큰 장점은 익숙한 Kotlin 환경에서 개발이 가능하다는 점이다. @Tool 및 @LLMDescription과 같은 직관적인 어노테이션을 활용하여 에이전트가 사용할 도구를 손쉽게 확장할 수 있다. 프로젝트 구조를 파악하고 코드를 분석해 SQL..
-
Process 'command 'git'' finished with non-zero exit value 69Android 2024. 11. 21. 09:46
안드로이드 스튜디오에서 아래의 오류가 발생하면서 gradle sync 가 안 되는 문제가 있었는데Process 'command 'git'' finished with non-zero exit value 69 해결책은 간단하다 xcode EULA에서 동의를 받으면 끝이다.xcode의 git를 같이 쓰다 보니 Mac에서 안드로이드 스튜디오를 사용하는 사용자는 xcode의 영향도 같이 받는 것 같다.동의 후에는 정상적으로 작동한다. https://stackoverflow.com/questions/40263185/gradle-sync-failed-process-command-git-finished-with-non-zero-exit-value-69 Gradle sync failed: Process 'command ..
-
Google I/O 2024Conference 2024. 5. 15. 15:32
https://io.google/2024 Google I/O 2024Don't miss our biggest developer conference, featuring product news and innovations from Google. Tune in to I/O for livestreamed keynotes and technical sessions on demand.io.google https://www.youtube.com/live/XEzRZ35urlk?si=gMEHWqSgcA6JzreoGoogle Keynote (Google I/O ‘24) https://www.youtube.com/live/ddcZnW1HKUY?si=OiqxdJLl28PQc62oDeveloper Keynote (Googl..
-
Native vs Flutter 그리고 KMPConference 2024. 4. 6. 13:30
https://event-us.kr/79581 [안드로이드 컨퍼런스] Native vs Flutter 그리고 KMP - 이벤터스 크로스 플랫폼이냐 네이티브냐 세기의 대결 event-us.kr 마루 180 에서 열린 안드로이드 컨퍼런스 Native vs Flutter 그리고 KMP 입니다. 입장하는 사람들... 준비되어 있건 간식들 입장 팔지 입니다. jetbrain 설문조사를 참여하면 주는 상품인데 jetbrains 양말은 처음 받아 보네요... 큰기대 하지 않고 참여했는데 생각보다 내용이 재미 있었습니다. flutter 나 KMP 를 사용해서 개발하는 사람들의 의견도 들을수 있었고 다른 사람들이 어떤 생각으로 사용하고 있는지도 들을수 있어서 좋았습니다.
-
Android StrictModeAndroid 2024. 4. 4. 10:27
https://developer.android.com/reference/android/os/StrictMode StrictMode | Android Developers developer.android.com StrictMode는 안드로이드에서 개발자에게 앱의 성능과 안정성을 개선하기 위한 도구를 제공합니다. 주로 디버깅 및 테스트 목적으로 사용되며, 다음과 같은 목적으로 사용될 수 있습니다: 네트워크와 디스크 작업 감시: StrictMode는 메인 스레드에서 네트워크 요청이나 디스크 I/O 작업을 감지하여 이러한 작업을 백그라운드 스레드에서 수행하도록 권장합니다. 메인 스레드에서 이러한 작업을 수행하면 앱의 응답성이 떨어지고 ANR(Application Not Responding)이 발생할 수 있습니다...