| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- OkHttp Interceptor
- 안드로이드
- 안드로이드 갤러리 접근
- DataBinding
- 영어공부
- Android WebView
- Android ProgressBar
- 코틀린 코루틴
- MVP Architecture
- Android 12
- Kotlin FCM
- 알고리즘 자바
- Android 12 대응
- Android Navigation
- 영어독립365
- 프로그래머스 알고리즘
- 카카오 알고리즘
- Android ViewPager2
- scope function
- android recyclerview
- 습관만들기
- Kotlin
- coroutine
- Android Interceptor
- Java
- 66챌린지
- Android Jetpack
- WebView
- 안드로이드 카카오 로그인
- Android
- Today
- Total
목록분류 전체보기 (136)
주맨의 개발노트
들어가며Claude Code로 작업을 맡겨두고 다른 일을 하다 보면 "언제 끝났지?" 하고 화면을 계속 확인하게 됩니다. 특히 여러 프로젝트를 동시에 돌릴 때는 어느 인스턴스가 완료됐는지도 알기 어렵습니다. Android Studio 플러그인, VS Code 터미널, 일반 터미널까지 열어두면 상황은 더 복잡해집니다.저도 처음에는 그냥 터미널 탭을 왔다 갔다 하면서 확인했습니다. 그런데 이게 생각보다 흐름을 많이 끊었습니다. 아직 안 끝난 작업을 확인하러 들어갔다가 다시 원래 하던 일로 돌아오는 일이 반복됐고, 어떤 때는 Claude Code가 이미 제 응답을 기다리고 있는데도 한참 뒤에 알아차리기도 했습니다.그래서 Claude Code의 Hook 시스템으로 macOS 네이티브 알림을 붙였습니다. 제가 실..
들어가며Claude Skill을 처음 만들 때는 보통 "이걸 어떻게 호출하지?"부터 생각하게 됩니다. 저도 처음에는 비슷했습니다. 그런데 디자인 시스템 관련 Skill을 정리하면서 방향이 조금 달라졌습니다. 제가 원한 것은 호출 가능한 기능 세트가 아니라, Claude가 언제 물어봐도 같은 기준으로 답하게 만드는 내부 판단 레이어였습니다.그래서 `design-system-color`, `design-system-spacing`, `design-system-shape`, `design-system-typography` 같은 Skill을 만들면서 일부러 user-invocable: false를 넣었습니다. 이 글은 왜 그렇게 했는지, 그리고 그 선택이 디자인 시스템을 수정하거나 확장할 때 어떤 차이를 만들었..
들어가며Claude Code를 쓰다 보면 생각보다 자주 반복되는 작업이 있습니다. 그중 하나가 바로 커밋 메시지 정리였습니다. 변경 내용을 보고 Conventional Commits 형식으로 적당한 메시지를 떠올리는 일은 어렵지는 않지만, 맥락을 한 번 더 읽고 정리해야 해서 은근히 흐름을 끊었습니다.그래서 저는 이 작업을 아예 Claude Code Skill로 분리해 봤습니다. 이번 글은 제가 만든 recommend-commit-message 스킬의 구조를 기준으로, 어떤 문제를 해결하려고 했는지, 어떻게 규칙을 설계했는지, 실제로 어떤 식으로 활용했는지를 공유하는 기록입니다.참고로 이 스킬은 GitHub에도 공개해뒀습니다. 글을 읽다가 직접 구조를 보고 싶다면 recommend-commit-messa..
들어가며Skills를 만들어보려고 SKILL.md를 처음 열면 바로 질문이 생긴다. frontmatter에는 어떤 필드를 쓸 수 있는가? description은 어떻게 쓰는 게 좋은가? Claude가 Skill을 자동으로 실행하지 않도록 막을 수 있는가? 파일을 어디에 두어야 팀 전체에 공유되는가?이 글은 그 질문들에 답한다. SKILL.md의 파일 구조, frontmatter 각 필드의 의미와 쓰임새, Skill을 어디에 저장하느냐에 따라 달라지는 적용 범위, 인수를 넘기고 시스템 변수를 활용하는 방법까지 — Skills를 설정하고 제어하는 데 필요한 내용을 정리했다.Skill이 동작하는 방식Skill의 핵심은 두 단계 로딩이다. 항상 모든 내용을 메모리에 올리는 게 아니라, 필요할 때만 가져온다. C..
들어가며 Claude API를 처음 사용할 때 대부분의 개발자는 시스템 프롬프트에 배경지식을 쭉 적어 넣습니다. "너는 PDF 전처리 전문가야. 이 라이브러리를 쓰고, 이런 순서로 처리해야 해…" 같은 식으로요. 이 방법은 처음엔 잘 동작하지만, 결국 한계가 옵니다. 지식이 많아질수록 프롬프트는 길어지고, 길어진 프롬프트는 컨텍스트 윈도우를 잠식합니다. 게다가 여러 프로젝트에서 같은 내용을 복붙하다 보면 관리도 엉망이 되죠. Agent Skills는 이 문제를 해결하기 위해 Anthropic이 설계한 구조입니다. 한 번 만들어두면 Claude가 필요할 때 알아서 꺼내 씁니다.Agent Skills가 뭔가요? Agent Skills는 Claude에게 도메인 특화 지식을 제공하는 파일 시스템 ..
Jetpack Compose로 UI를 구성하다 보면 MaterialTheme.colorScheme.primary 같은 코드를 자연스럽게 쓰게 된다.하지만 막상 이렇게 생각해보면 의문이 든다.이 테마는 어디서 정의되는 걸까?색상들은 어떤 기준으로 만들어졌을까?디자인 시스템이라는 건 정확하게 무엇을 의미할까?이 글은 Jetpack Compose에서 Material Design 3 테마 구조를 학습하면서 정리한 내용이다.특히 Material Theme Builder를 활용해 커스텀 테마를 생성하고 Compose에 적용하는 흐름을 중심으로 정리해보려고 한다.학습 프로젝트 소개: Compose Theming Study이 글에서 정리한 내용은 아래 학습용 프로젝트를 기반으로 한다. GitHub - JuhyeokLe..
Android 공식 배발 가이드에서도 네트워크 통신 라이브러리로 Retrofit 사용을 권장하고 있다.나 또한 Retrofit을 당연하게 사용해왔지만 왜 Retrofit 사용이 표준이 되었는지 궁금해졌고 글로 설명된 Retrofit 장점을 직접 느껴보기 위해서 Square에서 제공하는 OkHttp가 어떻게 사용되는지 학습하게 됐다. 이 글에서는 OkHttp를 직접 사용해 네트워크 통신을 구현해보며, OkHttp가 어떤 방식으로 동작하는지와 Java의 HttpURLConnection 대비 어떤 점이 개선되었는지를 정리해본다. OkHttp를 이용한 네트워크 GET 요청 처리OkHttp에서는 HttpURLConnection과 다르게 사용자가 동기적으로 통신할 수 있고 비동기적으로 통신할 수 있는 선택지를 제공..
Android 개발에서 Retrofit은 사실상 표준처럼 사용되지만, "왜 Retrofit이 필요한가?"에 대해서는 깊이 고민해보지 않았다.High-level의 Retrofit을 사용하는 장점을 글로써 이해하는 것이 아니라 직접 경험하기 위해서는 Low-level에서의 네트워크 통신이 어떻게 동작하는지 알 필요가 있다고 느껴졌다. 그래서 Java에서 제공하는 HttpURLConnection을 이용한 네트워크 통신 방법을 학습하기로 했다. HttpURLConnection GET 사용법먼저 Low-level의 HttpURLConnection에서 기본적인 REST API - GET 요청을 하는 소스 코드는 다음과 같다.소스 코드fun fetchUserWithHttpUrlConnection(userId: Int..