Android 22

안드로이드 면접 북 스터디 Q30 ~ Q39

안드로이드 기술 면접 책 북 스터디를 하면서보다 간결하게 실제 면접하는 것처럼 글을 정리해보려 한다. 중요하다고 생각된 질문만 정리했다. Q30) R8 최적화란 무엇인가요? R8은 안드로이드 빌드 프로세스에서 APK 또는 AAB의 크기를 줄이고런타임 성능을 향상시키기 위해 사용되는 코드 축소 및 최적화 도구입니다.안드로이드 빌드 시스템에 통합되어 Proguard 도구를 대체하고, 코드 축소, 최적화, 난독화 및 리소스 관리를 위한 제공을 제공합니다. R8 최적화의 주요 특징죽은 코드 제거 : 코드베이스를 분석하여 앱에서 도달할 수 없거나 사용되지 않는 코드를 식별하고 제거인라이닝 : 짧은 메서드나 함수를 호출자쪽에서 직접 인라이닝하여 메서드 호출 오버헤드를 줄이고 런타임 성능을 향상시킵니다.클래스 병합 ..

Study 2025.10.13

안드로이드 면접 북 스터디 Q0 ~ Q9

안드로이드 기술 면접 책 북 스터디를 하면서보다 간결하게 실제 면접하는 것처럼 글을 정리해보려 한다.Q1) 안드로이드란 무엇인가요?안드로이드는 주로 모바일 기기를 위해 설계된 오픈소스 운영 체제리눅스 커널에 기반하여 광범위한 하드웨어 구성과 기기를 지원하는 강력하고 유연한 플랫폼을 제공 안드로이드 아키텍처안드로이드 플랫폼 아키텍처에는 모듈식으로 계층화되어 있으며, 여러 구성 요소로 이루어져 있음리눅스 커널안드로이드 운영체제의 기반을 형성함 하드웨어 추상화를 처리하며 소프트웨어와 하드웨어 간의 원활한 상호 작용을 보장하드웨어 추상화 계층(Hardware abstraction layer (HAL))안드로이드의 Java API 프레임워크를 기기 하드웨어에 연결하는 표준 인터페이스를 제공라이브러리 모듈로 구성되..

카테고리 없음 2025.07.18

짧았지만 강렬했던 첫 팀프로젝트 회고

저는 이번에 청년톡톡 팀프로젝트의 안드로이드 개발자로 활동했던 이건희입니다.한 달 반 정도 활동했고 개발자분들의 이탈로 인해 팀 프로젝트가 종료되었습니다짧은 기간이었지만 팀프로젝트를 진행하면서 느낀 점을 회고해보려 합니다팀 프로젝트에 참여하다저는 대부분의 사이드 프로젝트를 혼자 작업했습니다디자인, 기획, DB 등등...혼자 작업을 하다 보니 편한 점도 있지만항상 결과물에 대해 조금의 아쉬움이 있었습니다.조금만 더 UI가 아름다웠으면 좋겠는데다른 개발자라면 어떻게 작업했을까?누군가와 같이했다면 더 빠르게 각자의 역할에 집중할 수 있지 않았을까?점점 팀 프로젝트에 대한 갈망이 커져가던 중 같이 스터디를 하시는 분이 인프런 팀프로젝트 모집 게시판을 통해서팀프로젝트를 모집했다는 말을 듣고 인프런 팀프로젝트 모집..

카테고리 없음 2025.07.11

성공적인 안드로이드 앱 인수인계를 위한 체크리스트

사람이 바뀌어도 프로젝트는 계속되어야 한다.사람이 바뀌면 계정, 작업환경이 바뀐다그러기에 우리는 언제나 인수인계를 준비해야만 한다.사람이 바뀐다고 모든 계정을 갈아엎고 작업환경을 갈아엎는다면 시간을 많이 사용할 것이다.이번에 팀 프로젝트에 참여하게 되면서 알아두면 좋을 것들을 정리해 봤다. 구글 콘솔, 키파일 관련앱이 만약 플레이스토어에 배포되어 있다면 후임자는 이어받아서 배포를 해야 한다.먼저 앱의 배포 권한을 이전받는 과정을 알아보자.앱 이전받기앱을 이전받으려면 다음 프로세스를 거치면 된다.https://support.google.com/googleplay/android-developer/answer/6230247?hl=ko 다른 개발자 계정으로 앱 이전 - Play Console 고객센터도움이 되었..

Study/Android 2025.06.07

앱 현지화, 개별 앱 언어 변경 설정

저는 현재 하루를 기록하고 관리하는 Routiner라는 안드로이드 앱을 만들고 있습니다.기록알람, 반복 기록 저장과 같은 기능들을 추가하고 있습니다. 최근 들어서 앱에서 다른 언어도 지원하면 어떨까라는 생각을 하게 되었습니다.그렇게 된다면 한국 사용자뿐만 아니라 미국, 일본, 여러 나라에서도 저의 앱을 사용할 수 있어서 좋을 것 같다고 생각했습니다. 안드로이드의 경우 어떻게 적합한 리소스를 찾을까?https://developer.android.com/guide/topics/resources/providing-resources?hl=ko#BestMatch 앱 리소스 개요 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 앱 리소스 개요 컬렉션..

Study/Android 2025.05.04

스타트업 면접 후기

JD를 둘러보던 중 제가 원하는 개발 문화와 비전기술 스택을 가진 스타트업이 있어서 지원하게 되었습니다.최종 합격을 하지는 않았지만 사전과제와 1차면접을 보면서 있었던일을 정리해봤습니다.해당 기업의 자격요건과 기술 스택은 다음과 같습니다.자격요건Jetpack Compose 개발 경험이 있으신 분Coroutine, Flow를 활용한 비동기 처리에 능숙하신 분MVVM, MVI 아키텍처에 대한 사용 경험이 있으신 분다양한 직군의 팀원들과 원활한 커뮤니케이션과 협업이 가능하신 분새로운 프로젝트와 기술에 도전하는 것에 열려 있으신 분기술 스택KotlinJetpack Compose, Custom ViewClean Architecture, Multi Module, MVIAAC, Hilt, Coroutine, Flow..

일기 및 일상 2024.11.21

[Android] 멀티모듈 프로젝트 UI단에서 httpException을 처리하는 방법

서두 저는 최근 nexon open api를 이용하여 "메이플스토리" 게임의 캐릭터 정보를 검색하는 앱을 만들고 있습니다. 해당 글 또한 해당 앱을 만들면서 retrofit2.HttpException을 적절한 에러 메시지로 표시하는것을 설명한글입니다. 해당 앱에대해 더 궁금하시다면 아래 링크를 방문해주시면 감사하겠습니다. https://github.com/hegunhee/MapleFinder GitHub - hegunhee/MapleFinder Contribute to hegunhee/MapleFinder development by creating an account on GitHub. github.com 사전 설명 해당 앱은 현재 Multi Module로 구성되어있고 다음 그림과 같습니다(해당 글에 포..

Study/Android 2024.03.11

Moshi에서 kotlinx.serialization로 변경하게된 이유

서두 저는 최근 nexon open api를 이용하여 "메이플스토리" 게임의 캐릭터 정보를 검색하는 앱을 만들고 있습니다. 해당 글 또한 해당 앱을 만들면서 Json 직렬화/역직렬화 라이브러리를 변경하게된 이유를 설명한글입니다. 해당 앱에대해 더 궁금하시다면 아래 링크를 방문해주시면 감사하겠습니다. https://github.com/hegunhee/MapleFinder GitHub - hegunhee/MapleFinder Contribute to hegunhee/MapleFinder development by creating an account on GitHub. github.com Moshi에서 Serialization로 전환하게된 계기 (현 상황) 캐릭터의 장비 정보를 받기위해 api response..

Study/Android 2024.03.03

안드로이드 데이터 바인딩

Databinding이란? xml파일에 Data를 연결(binding)해서 사용할 수 있게 도와주며 Android JetPack라이브러리의 하나의 기능 입니다. data binding은 왜 사용할까? 데이터 바인딩을 사용하면 데이터를 UI 요소에 연결하기 위해 필요한 코드를 최소화할 수 있습니다. data binding을 사용했을 때, 당장 가시적으로 보이는 장점들을 꼽자면 다음과 같습니다. findViewId() 를 호출하지 않아도, 자동으로 xml에 있는 View 들을 만들어줍니다. RecyclerView에 각각의 item을 set 해주는 작업도 자동으로 진행됩니다. data가 바뀌면 자동으로 View를 변경하게 할 수 있습니다. xml 리소스만 보고도 View에 어떤 데이터가 들어가는지 파악 가능합..

Study/Android 2022.01.17

콘텐츠 프로바이더

지난 글중에 액티비티 생명주기에대해 정리한것이 있지만 책을 보고 복습 겸 다시한번 정리하겠습니다. 위 글은 Do it! 깡쌤의 안드로이드 앱 프로그래밍 with 코틀린(강성윤 지음)을 보고 정리한 내용입니다. 콘텐츠 프로바이더는 앱끼리 데이터를 연동하는 컴포넌트 입니다. 앱을 개발하면서 다른 앱의 데이터를 사용할 때 콘텐츠 프로바이더를 이용합니다. 이때 데이터는 대상 앱의 데이터베이스나 파일 또는 앱에 할당된 메모리에 있습니다. 콘텐츠 프로바이더를 이용하면 이런 저장소에 있는 데이터를 가져오거나 수정할 수 있습니다. 어떤 앱의 데이터를 다른 앱에서 이용할 수 있게 하려면 콘텐츠 프로바이더를 이용해야 합니다. 내가 만든 앱의 데이터를 외부에 공개하려면 내 앱에 콘텐츠 프로바이더를 만들고 접근하는 방법을 제..

Study/Android 2022.01.04