본문 바로가기

전체 글

(6)
AI 시대에 살아남는 개발자 서론불과 1~2년 전까지만 해도 관심이 있는 소수만이 실무에서 AI를 도입하고 유즈케이스들을 검증했습니다. 하지만 현재 대부분의 기업들이 AI Agent를 실무자들에게 지원하고 실무자들은 이를 활용해 생산성을 높이고 있습니다. 저도 Claude Code를 회사에서 지원받아 툴에 대한 이해도를 높이고 이를 활용해 생산성을 높이는 방법에 대해 고민하고 주변 활용 사례나 여러 아티클 등을 접하면서 인사이트를 얻고 있습니다. 지금 글을 작성하는 시점에서 저의 생각 역시 1년전과 크게 달라진 것을 미루어 보아 지금의 생각이 얼마나 유효할지 의문입니다만 현 상황에서의 생각을 정리하는 것도 의미가 있을 것 같아 글을 작성하게 되었습니다. AI 시대에 살아남는 개발자는 어떤 개발자일까요? 이러한 고민에 대한 답을 내리..
Growth 개발자가 몰라서 정리한 AdTech 지식 서론이번 글에서는 개발에 대한 인사이트보다는 제품(Product)에 대해서 이야기를 해보려고 합니다. Growth 스쿼드의 일원으로서 광고에 대한 최소한의 지식이 있어야 지표를 보는 시야와 커뮤니케이션이 원활하다는 사실을 깨닫고 생소한 AdTech 분야에 대해 정리해보려고 합니다. 대규모 트래픽을 이용한 광고는 앱을 통해 얻을 수 있는 수익이자 비즈니스 모델이기 때문에 어느정도 트래픽이 있는 B2C 앱에서는 대부분 광고 시스템을 도입하기 때문에 나중에 창업을 하거나 다른 제품을 개발할 때에도 이번 글이 도움이 될 것이라 생각합니다.용어 정리Ad Network우리가 흔히 사용하는 카카오톡을 보면 앱 곳곳에 광고가 노출됨을 알 수 있습니다. 이러한 광고는 아래의 과정을 통해 사용자들에게 노출됩니다. 아래 그..
Float과 Double 함부로 사용하지 마세요 서론 파스타(PASTA)에서 AI 체형 예측 기능을 사용하기 위한 정보 입력 화면입니다. 사진에서 알 수 있듯이 키와 체중은 소수점 첫째 자리까지 입력이 가능합니다. 정책상 현재 체중의 입력 가능한 범위는 입력된 키에 영향을 받고 목표 체중의 입력 가능한 범위는 키와 현재 체중에 영향을 받습니다. 입력 가능한 정보 중 하나라도 값이 바뀔 때마다 소수점 연산이 계속해서 일어나게 되고 아무 생각 없이 Float 타입끼리의 연산 코드를 작성한 주인장은 예상치 못한 크래시와 오차 값들을 마주하게 됩니다.부동 소수점fun main() { val a = 1.1f val b = 0.2f println(a+b) // 1.3이 아닌 1.3000001이 출력됩니다.} 대부분의 사람들은 위 코드를 실..
지연 읽기와 Donut-hole Skipping을 통한 recomposition 최적화 Defer Read(지연 읽기)지연 읽기라는 개념은 Compose에만 국한되지는 않는다. 다만, Compose에서 불필요한 Recomposition을 최적화하기 위한 방법으로 활용할 수 있다. 이를 이해하기 위해서는 몇 가지 사전 개념에 대한 이해가 필요하다.Recomposition의 범위상태가 변하면 Recomposition이 일어나면서 UI를 다시 그린다. Composable은 UI 트리 형태로 그려지기 때문에 상태가 변경되면 그 중 가장 가까운(바로 상위의) Composable Scope만 invalidation이 일어난다. 다음 코드를 보자. 매우 흔하게 사용되는 패턴으로 ViewModel에서 state를 결정하고 Screen에서 구독하고 있는 형태이다. 이 상태에서 uiState의 값이 변하면 ..
해시 알고리즘 서론어떤 콜백 함수가 값을 넘겨줄 때 SparseArray 타입으로 넘겨주는 것을 보고 SparseArray가 무엇이고 언제 사용해야 하는지에 대해 정리해보고자 한다. SparseArray에 대해 이해하는 과정에서 HashMap과 ArrayMap는 필수적으로 선행되어야 함을 알게 되었고, 이 과정에서 자료구조와 알고리즘에 해당하는 Map과 해시테이블에 대한 이해가 기반이 되어야 하기에 카테고리를 CS로 정하게 되었다. 최근 들어 안드로이드 개발에 있어 CS적 관점에 대해 많이 고민하고 있어서 흥미롭게 공부할 수 있었다.맵(Map) 맵은 키(Key)-값(Value) 쌍을 하나의 데이터로 보고 이 쌍들을 저장하는 자료구조로 정의한다. 위 사진과 같이 키 234에는 Banana라는 값을 가지게 되고 키 382..
안드로이드 앱 아키텍쳐 서론프로젝트에 신규 피쳐가 추가될 때마다 설계를 고민하게 되면서 자연스럽게 아키텍쳐에 대한 고민도 함께 하게 된다. 현재 회사 프로젝트의 전반적인 아키텍쳐는 구글 권장 아키텍쳐이다. 하지만 최근 맡게 된 피쳐의 모듈은 클린 아키텍쳐로 구성하는 경험을 하게 되었는데, 각 아키텍쳐를 경험해보았을 때 주관적인 견해를 기록해보려고 한다.안드로이드 권장 아키텍쳐친절하게도 구글은 안드로이드를 개발할 때 이런 아키텍쳐를 쓰길 바란다며 공식문서에 상세하게 나와있다. 물론 개발 요구사항이나 프로젝트의 규모에 따라 이를 수정할 수도 있다. 아키텍쳐는 말 그대로 하나의 건축 양식을 정하는 것일 뿐, 정답은 없다고 생각한다. 아래 그림을 통해 구글 권장 아키텍쳐에 대해 핵심적인 부분을 살펴볼 수 있다. 구글 권장 아키텍쳐는 ..