본문 바로가기

전체 글236

[안드로이드 면접] - 8 : 1. recyclerView 와 listView 차이는? 더보기 listView 는 recyclerView 에 유연성 있는 view를 만들기 위해선 recyclerview 에 비해서 뷰 커스텀 작업에 대한 유연성이 떨어지는 단점이 있다. 또한, listView 는 view 를 그릴 때마다 findViewById() 를 호출하기 때문에 성능 저하 문제가 발생한다. 이 점을 ViewHolder 패턴으로 해결할 수 있지만, recyclerview 는 이 부분을 강제하지만, listview 는 강제하지 않아 일일이 ViewHolder 생성코드를 직접 작업해줘야 하고 자칫 깜빡하는 경우가 빈번히 발생한다. 고로 이 부분이 상대적으로 단점이 된다. 💡유연성 있는 view 란? item layout 을 다양하게 적용.. 2023. 1. 31.
[안드로이드 면접] - 7 : 1. lateinit, lazy 를 사용하는 이유는? 더보기 보통 클래스에서 변수를 초기화하면 클래스 생성 시 해당 변수도 함께 생성되며 초기화 된다. 그렇게되면 클래스 객체를 생성할 때마다 해당 변수도 함께 초기화되니, 바로 사용할 수 있는 장점이 있다. 하지만, 해당 변수를 바로 사용하지 않거나 꼭 사용하는 경우가 아니라면 오히려 클래스 생성마다 해당 변수를 만들고 초기화 하는 것이 시간과, 메모리 낭비가 된다. 또한, 전역 변수를 선언하기 위해 굳이 null 처리를 해야하는 경우가 있다. 2. Android 와 AndroidX 차이는? 더보기 AndroidX 는 Jetpack 내에 라이브러리를 개발, 테스트, 패키지화, 버전 및 릴리즈를 하기 위해 사용하는 오픈소스 프로젝트이다. 기존 Android.. 2023. 1. 30.
[안드로이드] - 클린아키텍처 - 1 이전 블로그에선 아키텍처를 왜 알아야할까? 에 대해 알아봤다면 이번 블로그 글에선 아키텍처가 무엇인지 좀 더 깊게 알아보자. 아키텍처 소프트웨어 아키텍처란? 시스템을 구축했던 사람들이 만들어낸 시스템의 형태이다. 💡시스템을 구축한 사람은 소프트웨어 아키텍트이다. 그 모양은 시스템을 1. 컴포넌트로 분할하는 방법. 2. 분할된 컴포넌트를 배치하는 방법, 3. 컴포넌트가 서로 의사소통하는 방식에 따라 정해진다. 그리고 그 형태는 아키텍처 안에 담긴 소프트웨어 시스템이 쉽개 개발, 배포, 운영 유지보수 되도록 만들어진다. 이 정의에 놀랐을 수도 있다. 아마도 소프트웨어 아키텍처의 목표가 시스템을 제대로 동작하도록 만드는 데 있다고 생각하고 있었을 것이다. 물론 우리는 시스템이 제대로 동작하기를 바라며, 시스템.. 2023. 1. 29.
[안드로이드 면접] - 6 : 1. 왜 언어를 코틀린으로 선택했을까? 더보기 결론적으로 자바와 호환도 잘되면서 실용적이고 간결하며 안전한 언어이기 때문이다. 또한, 자바 플랫폼에서 돌아가기 때문에 기존 자바 라이브러리나 프레임워크에서 잘 동작하며 성능도 자바와 같은 수준이기 때문에 대체하여 좋은 이점을 더 갖은 상태로 개발할 수 있다. 그러한 이유는 코틀린이 갖는 언어적 특징 때문이다. 코틀린 특징 정적 타입 지정언어 : 컴파일 시점에서 객체 타입이 결정된다. 이를 정적 타입이라고 일컫는다. 이와 반대로 런타임 시점에서 객체 타입이 결정되는 동적타입은 파이썬, 자바스크립트가 존재한다. Null 안정성 : Java 는 NullPointer Exception 을 많이 경험했을 것이다. 이 점을 개선하여 Nullable 과 non-null.. 2023. 1. 29.
[안드로이드 면접] - 5: 1. Activity 클래스의 onSaveInstanceState(), onRestoreInstanceState() 메소드의 역할은 무엇인가? onSaveInstanceState() 더보기 해당 메소드는 Activity 가 onPause 되기 전에 데이터를 저장하게 된다. onRestoreInstanceState() 더보기 Activity 가 파괴되고 다시 재생성될 때, Activity 가 가지고 있는 Bundle 로부터 데이터를 회복할 수 있다. 또한 onCreate() 와 onRestoreInstanceState() 콜백 메서드는 같은 번들 객체를 전달 받는다. 그래서 보통은 데이터를 회복하는 코드를 onRestoreInstanceState() 에 많이 작성하는 편이다. onCreate() 에서 sa.. 2023. 1. 28.
[안드로이드] - 클린아키텍처 - 0 클린 아키텍처에 대해서 공부하기 이전에 왜 아키텍처를 공부해야 하는지 알아보자. 쓴이는 안드로이드 개발을 하면서 정말 다양한 디자인 패턴과 아키텍처를 접했다. MVC, MVP, MVVM, MVI 패턴 등등 또는 클린 아키텍처에 이르기까지 정말 다양하게 접했다. 블로그에서 트렌드라고 많이 나와있고 모르면 안된다는 생각에 그냥 사용법 익히면서 이런거구나 하고 넘어 갔었다. 섣부른 판단일 수 있겠지만 나와 같은 사람이 있을 것이다. 그래서 한 번 제대로 알아보려고 한다. 차근차근 정리해가며 알아가보자. 의문점 하나! Design 과 Architecture 는 무엇인가? 설계와 아키텍처 설계(design) : 특정 유형의 문제를 해결하는 방법으로 아키텍처보다는 좁은 개념이다. 아키텍처(architecture) .. 2023. 1. 27.