기획 문서가 계속 개정되는 프로젝트에서 LLM이 읽는 위키 만들기사이드 프로젝트를 안드로이드로 구현하면서 기획 문서를 계속 들여다봐야 했다. 기능정의서는 v2에서 v6까지 개정됐고 화면별 정책서도 v0.1에서 v0.3까지 각자 따로 굴러갔다. 지금 원본 파일만 36건이다.두 가지가 걸렸다.파일명으로 판본 계열을 알 수 없었다. G-001-토핑-정책-v0.1의 규격을 대체한 건 G-001-토핑-정책-v0.2가 아니라 이름이 전혀 다른 G-001-무한파르페-간격-정책-v0.2였다. 파일 목록을 훑어서는 이 관계가 보이지 않는다.LLM한테 물어보려면 원본을 통째로 읽혀야 했다. 컨텍스트 낭비도 문제지만 더 큰 건 폐기된 판본을 현행으로 인용하는 사고였다. v0.1과 v0.3이 같은 디렉토리에 나란히 있으면 L..

전체 글
개발 관련 지식을 끄적이고 있습니다 Github: https://github.com/citytexi코루틴 컨텍스트 (CoroutineContext)Job 계층의 생명 주기를 연결하기 위해 사용코루틴 컨텍스트 구현체// kotlin.coroutines.CoroutineContext.class@kotlin.SinceKotlin public interface CoroutineContext { public abstract operator fun get(key: kotlin.coroutines.CoroutineContext.Key): E? public abstract fun fold(initial: R, operation: (R, kotlin.coroutines.CoroutineContext.Element) -> R): R public open operator fun plus(context..
androidx.collection.LruCacheLRULeast Recently Used최근에 사용되지 않는 페이지 교체 알고리즘최대 사이즈를 고정적으로 설정해야함데이터를 추가하여 최대 사이즈를 넘었을 때, 가장 오래된 데이터 삭제저장된 데이터를 읽을 경우, 데이터가 가장 최근 추가된 것으로 이동최종적으로 주로 쓰이지 않는 데이터는 삭제캐시의 히트율 증폭class 내부 구현 구조package androidx.collectionprivate const val MAX_SIZE = Int.MAX_VALUE.toLong()public open class LruCachepublic constructor(@IntRange(from = 1, to = MAX_SIZE) private var maxSize: Int) ..
요약CMP 1.8.0 도입 이후 인앱 브라우저, 내장 카메라 등의 동작 이후 iOS에서 다이얼로그가 나타나지 않는 현상이 있었습니다. 이는 CMP 1.8.0의 Priority Critical 수준의 버그이며 1.8.1에 수정되었습니다.따라서 다른 분들은 CMP 1.8.1로 바로 올리시면 될 것 같습니다.Compose Multiplatform 1.8.0 도입회사에서 Compose Multiplatform을 이용하여 앱 출시를 준비하던 도중 드디어 iOS Stable 버전이 등장을 했다는 소식에 최소한 출시 나가는 앱은 Android, iOS에서 모두 Stable 해야하지 않을까라는 생각에 버전 업 의견을 전달하였고 도입을 결정했다https://github.com/JetBrains/compose-multip..
2024를 돌아보며2025년 신년이 되면서 2024에 대한 기록을 남겨야겠다는 생각이 들어서 급하게 2월에 작성해봅니다 취업2024년 2월 전직장을 퇴사하고 8월까지 거의 놀기만하다가 무턱대고 취업에 도전했습니다.결과는 H사 2차 면접 탈, I사 입사 라는 결과를 가지고 왔습니다.면접은 쉽지않고 인성 면접은 저처럼 소심한 사람한테는 너무 큰 장벽인거 같습니다. 사이드 프로젝트순간이라는 사이드 프로젝트를 하고 있습니다. 사진에 대한 SNS 어플이고 열심히 개발을 하고 있지만 이제 슬슬 지치는건지 애매하네요addition이 약 2만 ~ 3만 정도 간거 같은데 슬슬 일이랑 병행하기 힘든건지 아니면 번아웃이 오는건지 힘든 상황입니다.마무리쓰다보니 별 다른거 적을게 없어서 이만 마치겠습니다.깃허브 링크는 아래와 ..
Compose Multiplatform - shadow open source contribute 도전기https://github.com/adamglin0/compose-shadow GitHub - adamglin0/compose-shadow: a kotlin library for draw shadow in compose multiplatforma kotlin library for draw shadow in compose multiplatform - adamglin0/compose-shadowgithub.com내 게시글 중 조회수가 가장 높은 게시글이 부분은 사람들이 필요로 하고 다른 기술 블로그에는 잘 없는 정보라고 생각해서 이를 라이브러리화 시키는 곳에 contribute를 통해 제공한다면 더 나은 생..
Orbit 없이 MVI 패턴 적용기사이드 프로젝트를 진행하면서 단방향 데이터 흐름을 구현하기 위해 sealed class를 사용하다 보니 nav에서 back을 할 경우 이전 viewmodel에 존재하는 상태 값 때문에 자동으로 navigation 되는 현상을 발견하였다. 이를 해결해보고자 한다.MVVM 적용 시@HiltViewModelclass ExampleViewModel@Injectconstructor( // inject value) : ViewModel() { private val _state = MutableStateFlow(ExampleState.Init) val state = _state.asStateFlow() // ...}Compose에서 해당 방식을 이용하면 nav..
아이나비 맵 SDK Compose로 사용해보기아이나비 맵 SDK는 컴포즈 버전이 따로 존재하지 않고 xml로 되어있는 layout을 이용하거나 Fragment 인스턴스를 이용해서 사용해야한다.해당 작업을 진행하고 나면 아이나비 맵뿐만 아니라 다른 지도 sdk도 compose를 이용하여 작성할 수 있을 것이라고 생각한다.1안 xml layout을 이용하여 AndroidView로 Wrapping@Composablefun InaviMapUsingXmlView( modifier: Modifier = Modifier,) { val context = LocalContext.current AndroidView( modifier = modifier.fillMaxSize(), f..
[백준 12015번] 가장 긴 증가하는 부분 수열 2 - Kotlinhttps://www.acmicpc.net/problem/12015https://github.com/citytexi/daily/pull/24 May/17 by citytexi · Pull Request #24 · citytexi/daily2024년 5월 17일 백준 골드 1문제 12015번 가장 긴 증가하는 부분 수열 2github.com문제수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오.예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이고, 길이는 4이다.입력첫째 줄에 수열 A의 크기 N..
[백준 1644번] 소수의 연속합 - Kotlinhttps://www.acmicpc.net/problem/1644https://github.com/citytexi/daily/pull/22 May/15 by citytexi · Pull Request #22 · citytexi/daily2024년 5월 15일 백준 실버 1문제 11279번 최대 힙 백준 골드 1문제 1644번 소수의 연속합github.com문제하나 이상의 연속된 소수의 합으로 나타낼 수 있는 자연수들이 있다. 몇 가지 자연수의 예를 들어 보면 다음과 같다.3 : 3 (한 가지)41 : 2 + 3 + 5 + 7 + 11 + 13 = 11 + 13 + 17 = 41 (세 가지)53 : 5 + 7 + 11 + 13 + 17 = 53 (두 가지)하..