2026/06 11

Quail 2·Cursor·Claude Code 셋을 한 주 같이 굴려본 맥북 워크플로

세 개를 동시에 쓰면 세 배 빨라질 줄 알았는데, 막상 머지 시간만 36% 줄고 버그 회귀율은 오히려 11%에서 16.7%로 늘었습니다. 지난 한 주(5/18~5/24)에 M3 Pro 36GB 맥북 한 대에서 안드로이드 스튜디오(Android Studio) Quail 2 Canary, 커서(Cursor) 2.5, 클로드 코드(Claude Code) CLI를 동시에 굴려본 한 주 정리예요. 한 마디로 말하면 도구가 늘었다고 코드가 더 좋아지는 건 아니더라고요. M3 Pro 36GB 맥북에서 세 AI 코딩 도구 동시 실행idle 상태에서만 메모리 사용량이 22GB 근처에 머물렀습니다. Quail 2의 JVM, 커서의 Electron 두 프로세스, 클로드 코드 CLI까지 띄우면 16GB 모델은 스왑이 시작됐을..

Kotlin 2.4 RC context parameters로 LoggerContext 6인자 날린 후기

메서드 시그니처 평균 5.2줄이 1.4줄로, 파일 LOC는 312에서 218로 약 30% 감소했습니다. 코틀린(Kotlin) 2.4 context parameters를 LoggerContext 인자 6개에 적용한 실제 수치예요. 5월 13일 풀린 2.4.0-RC를 사이드 프로젝트 안드로이드(Android) 모듈에 올려둔 지 열흘 정도 되었는데요, 그동안 도메인 레이어 한 곳에 부분 적용해본 후기를 정리해봤어요. 빌드 자체는 RC지만 context parameters API는 이번 RC에서 Stable로 확정된 상태라, 문법만 놓고 보면 정식 릴리스 때 그대로 굳혀도 됩니다. Kotlin 2.4 context parameters Stable, 무엇이 풀렸나2.4.0-RC부터 context parameter..

Cursor Composer 2.5 vs Claude Code, 안드 프로젝트 닷새 같이 굴린 1차 후기

지난주 새벽 2시, 안드로이드 스튜디오(Android Studio) 터미널 한쪽엔 클로드 코드(Claude Code), 다른 창엔 커서 컴포저 2.5(Cursor Composer 2.5). Room 마이그레이션을 누가 더 깔끔하게 뽑는지 정면으로 붙여봤거든요. 조건은 단순했어요. 단일 모듈 Compose 앱, Kotlin 2.3.x, AGP 9.2.0. 평가 축은 ① Room 스키마 마이그레이션 ② Compose 화면 추가 ③ Gradle 빌드 실패 디버깅 세 가지로 잡았습니다. 결과부터 미리 흘리자면, 한쪽이 완승하는 그림은 아니었어요. Composer 2.5와 Claude Code, 어디에 강점이 있나커서 컴포저 2.5는 Kimi K2.5 베이스에 Cursor가 후처리를 얹은 에이전트예요. SWE-B..

IntelliJ IDEA 2026.1 코루틴 인스펙션, 6년차 코드를 17번 찌르다

코루틴 안티패턴 12건, Flow 최적화 5건. IDEA 2026.1 새 인스펙션을 제 안드로이드 사이드 프로젝트에 돌리고 나온 숫자입니다. 6년차가 짠 코드인데도요. 정식 출시된 IntelliJ IDEA 2026.1 Ultimate 를 깔고, 평소처럼 사이드 프로젝트 폴더를 열었어요. 30초쯤 지나니까 우측 거터에 노란 줄이 쫙 깔리더라고요. "이거 다 새로 잡힌 건가?" 싶어서 Problems 탭을 열어보니 17건. 잠시 멍해졌습니다. IDEA 2026.1 코틀린 코루틴 인스펙션 12종, 어디까지 잡아주나새 인스펙션은 제 나름대로 크게 세 그룹으로 정리됩니다. 1. 취소·구조적 동시성 (4종)suspendCoroutine 이 취소를 보장하지 못하는 지점, CoroutineContextWithJob(J..

JetBrains Air와 ACP, 안드로이드 IDE에 멀티 에이전트가 붙는 시대

코드를 더 빨리 짜주는 IDE가 아닙니다. 오히려 개발자가 코드를 직접 안 짜도록 설계된 IDE가 젯브레인즈 에어(JetBrains Air)의 정체예요. KotlinConf 2026 무대에서 ACP(Agent Client Protocol)와 에어가 같은 흐름으로 묶여 발표됐을 때, 옆자리 동료한테 "이거 안드로이드 스튜디오는 어떡하지" 라는 말이 먼저 나왔어요. 6년차 안드러로서, 윈도우 위에서 클로드 코드(Claude Code)와 주니(Junie)를 따로따로 굴리고 있는 입장에서는 이 그림이 한 번에 정리되지 않더라고요. Agent Client Protocol(ACP), 에디터와 에이전트를 분리하는 표준ACP는 한 줄로 정리하면 LSP(Language Server Protocol)의 AI 에이전트 버전..

Junie 안드로이드 모드와 Junie CLI, 클로드 코드·커서 사이에 끼운 자리

지난 봄, 릴리즈 빌드만 KSP 충돌로 죽길래 주니(Junie) 안드로이드 모드에 던졌더니 libs.versions.toml 까지 까서 PR 초안을 뽑아주더라고요. 클로드 코드(Claude Code)도 커서(Cursor)도 못 한 일이었습니다. (미리 짚어두면, '안드로이드 모드'는 공식 토글이나 제품명이 아니라, 주니가 코틀린·안드로이드 프로젝트 컨텍스트를 잘 잡는 동작을 제가 편의상 부르는 표현이에요.) 이게 그냥 자동완성 채팅이랑 다르다는 걸 그날 처음 체감했어요. 주니는 안드로이드 스튜디오(Android Studio) 의 시맨틱 인덱스를 직접 읽어가면서 멀티모듈 그래프를 따라 다닙니다. 클로드 코드는 파일 시스템 수준에서 grep 으로 훑고, 커서는 자체 임베딩으로 따로 색인을 만들지요. 같은 B..

Claude Opus 4.7 Fast Mode, 2.5배 빠른데 6배 비싼 자리 5곳

어제 새벽 2시, 야간 자동 빌드 로그를 보다가 손이 멈췄습니다. 평소 단가의 6배가 찍혀 있었거든요. 범인은 며칠 전 라이브 코딩하다 켜둔 Fast Mode가 꺼지지 않고 그대로 따라온 거였어요. Fast Mode는 한 번 켜면 세션을 넘어 계속 유지(persists)되는 옵션이라, 명시적으로 끄지 않으면 다음 작업까지 그대로 물고 갑니다. 그 사실을 모르고 둔 야간 스크립트가 새벽 내내 6배 단가로 돌아간 거죠. 5월 한국 사용자 입장에서 이 옵션을 어디에 켜고 어디에 꺼야 할지, 제 일감 5가지로 직접 계산해봤습니다. Claude Opus 4.7 Fast Mode 란 무엇인가먼저 오해부터 풀어두면, Fast Mode 는 별도 모델이 아닙니다. 같은 Opus 4.7 모델을 속도 우선 설정으로 돌리는 ..

Koog 1.0 stable 출시 — Vadim Briliantov '안드 에이전트도 Kotlin으로', 본인 사이드 프로젝트에 첫 에이전트 끼운 한 주 일지

KotlinConf 2026 키노트 영상을 켜둔 채 메모만 하던 게 엊그제 같은데, 막상 한 주가 지나고 보니 제 사이드 프로젝트 한 켠에 Koog 에이전트가 하나 끼어 있더라고요. KotlinConf 2026, Koog 1.0 stable로 못 박혔어요뮌헨에서 5월 20일부터 22일까지 열린 KotlinConf 2026 키노트에서 Koog 1.0 stable이 정식으로 발표됐어요. Vadim Briliantov가 무대에서 "안드로이드 에이전트도 이제 Kotlin으로"라는 메시지를 띄울 때, 채팅창이 한 번 출렁이는 게 보이더라고요. JetBrains Kotlin 블로그의 키노트 하이라이트 정리본에도 Gemma 온디바이스 데모가 같이 잡혀 있어서, "JVM 쪽에서 가장 진지하게 가는 AI 에이전트 프레임..

개발 일지 2026.06.04

안드로이드 위젯 통합 테스트, remote-testing으로 뚫린 사각지대

일주일 9시간 투자해서 수동 QA가 놓친 위젯 버그 3건을 잡았습니다. 젯팩 컴포즈(Jetpack Compose) 최근 알파에서 추가된 remote-testing 덕분이었습니다. Glance 위젯은 본문을 그대로 룰에 던질 수 없고 어댑터로 한 번 감싸야 하는데, 그 얘기는 뒤에서 다시 풀게요. remote-testing 라이브러리가 위젯 테스트에서 의미하는 것그동안 위젯은 테스트 사각지대였습니다. 앱과 분리된 프로세스(out-of-process)에서 렌더링되니까 createComposeRule 기반의 표준 UI 테스트가 닿지 않습니다. Glance 위젯도, 잠금화면 보조 화면도, Wear OS 표면도 사정은 비슷했습니다. Remote Compose 라는 프레임워크가 그 사각지대를 일단 비집고 들어왔어요..

KMP 2.3 production-ready 선언, 6년차 안드러가 본 진짜 도입선

KMP 도입의 진짜 장벽은 Swift 가 아니라 Gradle 이었습니다. 일주일 작업의 60% 가 build.gradle.kts 와 버전 매트릭스에 빨려 들어가더라고요. 지난 주말에 6년차 안드로이드 개발자인 제가 사이드 프로젝트 Repository 모듈 6개를 코틀린 멀티플랫폼(Kotlin Multiplatform)으로 이식해봤어요. 클로드 코드(Claude Code) 로 build script 진단을 돌려가며, 친구들 디스코드 사이드 프로젝트 채널에 빌드 로그 스샷을 던지면서요. 한 줄로 적자면, "쓸 만은 한데, 처음 한 주는 코드보다 설정에 멘붕이 옵니다." 코틀린 멀티플랫폼 2.3 Stable 범위, 어디까지가 production 인가코틀린 멀티플랫폼에서 production-ready 가 붙은 ..