| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- capitalize
- 프로그래머스
- suspend programming
- keystore
- 백준
- 실버2
- LazyColumn
- 브론즈 1
- 최댓값 최솟값
- 개발하는 정대리
- 피보나치 수 2
- Android
- kotlin
- compose
- github action
- .github
- 브론즈1
- LazyRow
- Activirty
- 사담콘
- 데이터베이스 첫걸음
- DB 기능
- Bitrise
- DB
- 데이터베이스
- 2레벨
- 실버 4
- Myungpyo Shim
- gradlew
- 성빈랜드
- Today
- Total
목록전체 글 (59)
Rather_Happy의 개발 블로그
오늘은 GDG에서 주최하는 DevFest에 다녀왔다. 평소 Android 개발을 하며 사용 중인 Firebender, 개발자 커뮤니티, 그리고 최근 회사에서도 진행한 성과 평가 등 관심 있는 주제가 많았다. 만원 초반대의 저렴한 가격에 맛있는 맥주와 함께 알찬 세션을 들을 수 있다니, 소위 말해 정말 '혜자'로운 행사였다.Koin은 Service Locator가 아닙니다 - 박상권Android 개발자들의 연예인이신 상권 님께서 Koin과 관련된 발표를 해주셨다. 현재 우리 팀은 Hilt를 사용하고 있다. 예전에 Koin을 처음 접했을 때 by inject 형식의 문법과 컴파일 타임에 에러를 검출하지 못한다는 점 때문에 사용하기 꺼려졌던 기억이 있다. 하지만 이번 발표를 통해 최근의 Koin은 컴파일 시 ..
목차문제 상황사용 방법내부 원리문제 상황Hilt를 사용하면 Activity, Fragment처럼 Hilt가 직접 관리하는 안드로이드 컴포넌트에서는 @Inject 어노테이션 하나만으로 아주 편리하게 의존성을 주입받을 수 있습니다.하지만, Hilt의 관리 밖에 있는 class(e.g. object)에서는 @Inject를 사용해도 의존성을 주입할 수 없습니다.object Test(){ @Inject lateinit var repository : TestRepository X 사용불가 }이럴경우, Hilt내에서 이미 생성된 객체를 어떻게 사용할 수 있을까요?사용 방법 이런 문제에서 해결할 수 있는 방법이 있습니다. 바로 EntryPoints를 사용하면 됩니다.EntryPoints를 사용 시, Hi..
요즘 저는 사이드 프로젝트에 큰 관심을 가지고 있습니다. 흥미로워 보이는 프로젝트에 참가 신청을 하거나 직접 아이디어를 구현해보곤 하는데요.하지만 꾸준히 이어온 프로젝트가 아직 없다는 점이 늘 아쉬움으로 남아 있었습니다. 이런 갈증을 느끼던 중, 우연히 스위프 동아리에서 사이드 프로젝트 데모데이가 열린다는 소식을 듣고 참가하게 되었습니다. 다양한 프로젝트, 그리고 인상 깊었던 아이디어이번 행사에는 총 7개 팀이 참가했습니다. 어떤 프로젝트는 흥미로웠고, 어떤 프로젝트는 다소 이해하기 어려운 부분도 있었는데요.그중 가장 기억에 남았던 것은 PLAZA 팀의 프로젝트였습니다.이 서비스는 모임의 최적 장소를 찾고 싶을 때, 모임 인원의 거주지와 원하는 테마를 입력하면 조건에 맞는 장소를 추천해주는 아이디어였습..
개요기존 Room, Dgger등 의 라이브러리를 사용할 때 를 Kapt를 사용합니다.Kapt를 사용할 경우 다음과 같은 문제점이 있습니다.문제Kotlin은 kotlinc, Java는 javac라는 서로 다른 컴파일러를 사용하기 때문에,Hilt처럼 내부에 Java로 구현된 Annotation Processor를 사용하는 경우,Java 컴파일러는 Kotlin 코드를 직접 이해하지 못합니다.따라서 를 사용해Kotlin 코드(@Inject 등) → 가 Java Stub 생성 → Java Annotation Processor가 이를 처리 → 자동 코드 생성 → 최종 컴파일 의 흐름으로 동작하게 됩니다.를 사용할 경우 Java Stub을 만드는 과정이 시간이 오래 소요되기 때문에 KSP를 사용하여 개선할 수 있습니..
안녕하세요.금일 사담콘을 참석후, 얻은 인사이트를 공유하려고 합니다. 그전에 사담콘이란?> 사이프 동아리에서 주최하는 컨퍼런스로 다양한 분야의 개발자들의 인사이트를 얻을 수 있는 행사 입니다. 개발자로 현업에 일한지 3년차가 됨가 동시에 우연히 해당 행사를 알게되어 다양한 개발자 분들의 인사이트를 얻고싶다는 마음에 참석했습니다. 컨퍼런스의 목차는 다음과 같습니다.대규모 동시성 이벤트에서의 데이터 정합성 : Redis 분산 락 실전 적용기알잘딱 AI 에이전트 만들기 w. 컨텍스트 엔지니어링지구 반대편을 대응하는 어플리케이션을 위해Real-World LLMOps디자이너 출신 개발자의 PM 도전기개발 유튜버 할래말래 애매하긴해풀스택 프리랜서가 AI시대에 프로젝트를 구성하는 방식아쉽게도, 저의 주 전공인 And..
문제 정의.Android 공식 문서 기준 2023년 4월부터는 Kotlin DSL 사용이 권장되고 있으며, Groovy 기반 설정은 구버전 방식으로 기술 부채로 간주될 수 있습니다.이는 Android의 공식 언어가 Java에서 Kotlin으로 전환된 흐름과 유사하며, Kotlin DSL 도입은 이러한 방향성에 부합하는 자연스러운 변화입니다.이에 따라, Gradle 스크립트의 Kotlin DSL 전환을 고려해야합니다.장점Grovy 대비 Kotlin DSL 을 사용했을 때의 장점은 다음과 같습니다.Kotlin 기반 문법을 사용함으로써 팀에게 더 친숙하고 일관된 개발 환경을 제공합니다.IDE 자동 완성 및 정적 분석 기능을 더 효과적으로 활용할 수 있습니다.런타임이 아닌 작성 시점에 구문 오류를 확인할 수 있..
Edge to Edge 대응Android TargetSDK 35 이상부터 Edge to Edge 디자인이 기본 적용됩니다.이에 따라 기존 레이아웃과 달리 시스템바 영역까지 UI가 확장됩니다.이 문서에서는 Edge to Edge의 의미와, 기존 UI와 동일한 동작을 구현하기 위한 방법을 Compose 기반과 XML 기반으로 나누어 설명합니다.Edge To Edge란Edge to Edge의 속성은 시스템바의 범위까지 레이아웃을 그릴 수 있습니다.이로 인해 더 넓은 범위까지 사용자에게 화면을 제공할 수 있습니다.따라서 Target SDK 35인 디바이스 에서는 별도의 시스템 인셋을 적용해야합니다.System Inset 적용예시 코드 :private fun setupWindowInsets() { ViewC..
문제java 기반에서는 이모지를 한 글자가 아닌 여러글자로 취급합니다.Why?Java기반의 언어는 UTF-16을 기반으로 문자열을 표시합니다. (문자 하나를 2비이트(16비트) 취급)유니코드는 최대 21비트 범위(U+10FFFF)를 포함합니다. UTF-16은 16비트 단위로 구성되므로, U+10000 이상의 문자는 두 개의 코드 유닛(Surrogate Pair)로 표현됩니다.이모지가 이 예시에 해당됩니다.예: 👨👩👧👦 → U+1F468, U+200D, U+1F469, U+200D, U+1F467, U+200D, U+1F466 (총 7개)하지만 시각적으로는 사용자에게 "하나의 글자"처럼 보이기 때문에, 문자 수를 정확히 세기 위해서는 Grapheme Cluster 단위로 처리해야 합니다.해결B..