Android Q&A26 [안드로이드 면접] - 16 : 1. ListView 의 ViewHolder 패턴에 대해 설명하고 왜 사용하는 지 설명하시오. 더보기 ViewHolder 이란? View 를 관리를 하는 Holder를 가지고 화면에서 보이는 아이템 개수만 생성하고, 스크롤이 발생하면 ViewHolder에 등록한 뷰를 재사용한 후, 데이터만 바꿔주기 패턴이다. 이는 앱의 효율성이 향상되는 패턴이다. ListView 는 일반적으로 내부 화면에 보여질 뷰 배열만 몇 개 생성하고, 스크롤 되었을 때 이것을 재사용하게 된다. 이 부분은 ConvertView 를 이용하여 메모리 낭비를 줄인다고 생각하면 된다. 하지만, 뷰를 인플레이팅하는 과정은 ConvertView 를 이용하여 줄였지만, 뷰의 id 를 찾아서 데이터 세팅하는 과정은 계속해서 진행하기 때문에 고비용.. 2023. 2. 17. [안드로이드 면접] - 15 : 1. 안드로이드 사용해본 레이아웃 설명하기 더보기 LinearLayout 여러 View 들을 가로 또는 세로 방향으로 나열할 때 사용하는 레이아웃이다. orientation 속성을 가지고 있어서 가로(Horizontal), 세로(Vertical) 을 설정할 수 있다. 자식들은 중첩되지 않고, 지정한 방향으로 쌓이는 형태로 표시된다. weight 속성은 가중치를 설정할 수 있다. 💡가중치 설정은 어떤건가? 이 속성은 뷰가 화면에서 얼마만큼의 공간을 차지해야 하느냐에 따라 해당 뷰에 '중요도' 값을 할당하게 된다. 다양한 디바이스 화면에 dp 가 아니라 비율에 따른 대응으로 좋다 하지만, 뷰 렌더링하는 과정에서 onLayout() 을 자주 호출하여 상관관계를 파악하기에 성능 상 좋지 않다. RelativeL.. 2023. 2. 15. [안드로이드 면접] 면접 질문 리스트 > 해당 블로그 'Android One a day' 카테고리에 있는 질문을 리스트업 해놓았습니다. 1. OOM Killer 2. OOM 발생원인은? 3. LMK 에 대해서 설명하시오 4. ANR 이란? 5. HTTP VS HTTPS 6. HTTP 를 왜 사용하는 걸까? 7. RESTful API 란? 8. OkHttp VS Retrofit 9. OkHttp Interceptor 10. 트랜잭션이란? 11. ACID 는 무엇인가? 12. 스키마란? 13. RDBMS, NOSQL 이란? 14. RDBMS VS NOSQL 차이 15. 인덱스란? 16. 조인(join) 에 대해서 설명하시오 17. TCP 와 UDP 차이는? 18. TCP 3,4 way handshake 에 대해서 설명하시오 19. 동기 VS 비.. 2023. 2. 15. [안드로이드 면접] - 14 : 1. 뷰가 렌더링에 대한 용어 정리 더보기 디스플레이 : 안드로이드 단말기가 가지고 있는 하드웨어 화면을 의미한다. 윈도우(Window) : 안드로이드에서 실행되는 App 이 그림(View)을 그릴 수 있는 영역을 의미한다. 사용자로부터 입력(터치, 키) 이벤트를 받아 앱에 전달한다. 서피스(Surface) : 화면에 합성되는 픽셀을 보유한 객체이다. 화면에 표시되는 모든 윈도우에 자신만의 서피스가 포함되어 있으며, 서피스 프린저가 여러 소스로부터 그래픽 데이터 버퍼를 받고 그것을 합성해 디스플레이로 보낸다. 즉, 그림(뷰)을 그릴 때 그림이 저장되는 메모리 버퍼를 의미한다. 캔버스(Canvas) : 실제 UI 를 그리기 위한 공간으로 비트맵이 그려지는 공간이라고 생각하면 된다. 뷰 : 사용자 인터페이스.. 2023. 2. 13. [안드로이드 면접] - 13 : 1. Vector 와 Bitmap 차이는? 더보기 Vector (ai, eps, svg) 점과 점을 연결하여 수학적 원리로 그림을 그려 표현하는 방식 이미지를 리사이징(크기를 늘리고 줄여도) 하여도 손상이 되지 않는다. 하지만 사진과 같은 복잡한 그림을 표현하려면 컴퓨터에 부담을 줄 수 있다. Bitmap (jpg, jpeg, png, gif) 서로 다른 많은 점(픽셀)들의 조합으로 그려지는 이미지 표현 방식 비트맵 이미지는 정교하고 화려한 표현이 가능(주로 사진 이미지에 사용) 하지만 리사이징(크기를 늘리고 줄이는) 하면 원본 이미지에 손상이 갈 수 있음. 2. View 와 ViewGroup 차이는? 더보기 View 안드로이드 화면의 구성요소이다. 화면에 보이는 모든 것은 View 이다. View는 자.. 2023. 2. 9. [안드로이드 면접] - 12 : 1. 코틀린 Any, Unit, Nothing 타입을 설명하시오. 더보기 Any : 자바에서 Object 가 클래스 계층의 최상위 타입이듯, 코틀린에서는 Any 가 그 역할을 한다. 자바 Object 와 차이는 자바는 참조 타입만 Object 를 정점으로 하는 타입 계층에 포함되지만, 코틀린은 Int 와 같은 원시 타입도 포함할 수 있다. Unit : 자바와 Void 는 같은 기능이다. 자바와 다른 점은 Unit 은 모든 기능을 갖는 일반적인 타입이라는 점이다. Unit 타입에 속한 값은 단 하나 뿐이며, 그 이름도 Unit 이다. void 와 달리 Unit 은 타입 인자로도 사용 가능하다. Unit 타입의 함수는 Unit 값을 묵시적으로 반환하게 된다. Nothing : 코틀린에는 결코 성공적으로 값을.. 2023. 2. 7. [안드로이드 면접] - 11 : 1. 람다함수와 고차함수와 익명함수를 설명하시오 더보기 고차함수(High Order Function) 매개 변수 또는 반환 값으로 또 다른 함수(람다)가 사용되는 함수를 말한다. 자바에서 많이 들어봤던 콜백함수가 그와 비슷하다. 과거 자바 8버전에서 '람다' 를 발표하기 이전까지 함수를 매개 변수로 전달하기 위해서는 해당 함수가 선언된 인터페이스를 구현한 클래스를 정의하고 객체를 생성하여 그 객체를 매개 변수로 전달하는 방법을 주로 사용했다. 안드로이드 API24 이후부터 람다 사용이 가능해지면서 위와 같은 방법 구현이 쉬워졌다. 람다식(Lambda) 함수 간단하게 말하면 메서드를 하나의 식으로 표현한다고 말할 수 있다. 이로 이루어진 함수를 일컫는다. 람다식으로 만들어진 함수는 이름이 없고 반환값이 없.. 2023. 2. 3. [안드로이드 면접] - 10 : 1. Thread 와 Process 를 설명하자면? 더보기 프로세스는 메모리 상에서 실행 중인 프로그램을 일컫는다. 스레드는 이 프로세스 안에서 실행되는 흐름 단위를 말한다. 프로세스는 최소 하나의 스레드를 보유하고 있고, 각각 별도의 주소 공간을 독립적으로 할당 받는다. 스레드는 이 중에 Stack 만을 따로 개별적으로 할당 받고, 나머지 영역은 스레드끼리 서로 공유할 수 있다. 2. Process 가 가진 단점과 스레드 출현 목적은? 더보기 프로세스의 문제점 프로세스 생성에 큰 오버헤드가 있다. 프로세스 컨텍스트 스위칭이 비효율적이고, 이 또한 오버헤드가 크다. 프로세스 사이에 통신이 어렵다. (IPC 를 사용해야 함) 스레드의 출현 목적 프로세스보다 크기가 작은 실행 단위 필요했다 프로세스의 생성 .. 2023. 2. 2. 이전 1 2 3 4 다음