본문 바로가기

분류 전체보기236

[안드로이드 면접] - 17 : 1. 코틀린 확장함수(Extension Function) 란? 더보기 언어별 프레임워크 안에 오픈소스로 구현되어 있는 여러 함수들 있다. 예를 들면 자바 toString() 함수를 생각해보자. 해당 메서드는 출력 형식은 고정되어 있지만, 우리가 필요한 형식이 아닐 수 있다. 여기서 우린 이 부분을 사용하는 목적에 맞게 커스텀해서 사용하고 싶은 생각을 할 수 있지만, 자바는 안 된다. 하지만, 코틀린에서는 이러한 요구사항을 처리할 수 있는 함수가 라이브러리에 존재한다. 이게 바로 확장함수이다. 기본으로 정의된 함수인 것처럼 새로운 기능을 추가하는 기능이다. 정리하자면, 기존 클래스에 새로운 함수를 확장한다. 2. 코틀린 범위지정함수(Scope Function)란? 더보기 범위지정 함수는 고차함수로 정의되고.. 2023. 2. 18.
[안드로이드 면접] - 16 : 1. ListView 의 ViewHolder 패턴에 대해 설명하고 왜 사용하는 지 설명하시오. 더보기 ViewHolder 이란? View 를 관리를 하는 Holder를 가지고 화면에서 보이는 아이템 개수만 생성하고, 스크롤이 발생하면 ViewHolder에 등록한 뷰를 재사용한 후, 데이터만 바꿔주기 패턴이다. 이는 앱의 효율성이 향상되는 패턴이다. ListView 는 일반적으로 내부 화면에 보여질 뷰 배열만 몇 개 생성하고, 스크롤 되었을 때 이것을 재사용하게 된다. 이 부분은 ConvertView 를 이용하여 메모리 낭비를 줄인다고 생각하면 된다. 하지만, 뷰를 인플레이팅하는 과정은 ConvertView 를 이용하여 줄였지만, 뷰의 id 를 찾아서 데이터 세팅하는 과정은 계속해서 진행하기 때문에 고비용.. 2023. 2. 17.
[안드로이드] - MVC 패턴과 안드로이드 MVC 패턴 MVC 제록스 팰러앨토 연구소에서 스몰토크 관련 일을하던 Trygve Reenskaug 이 1979년 최초로 소개를 했다. MVC 패턴은 이름에서도 알 수 있듯이 모델(Model), 뷰(View), 컨트롤(Controller) 세 개의 컴포넌트로 이루어져있다. 각 컨포넌트는 고유한 역할을 수행한다. 모델(Model) 데이터 가공을 책임지는 컴포넌트를 말한다. 모델은 애플리케이션의 정보, 데이터를 나타낸다. 데이터베이서, 처음 정의하는 상수, 초기화 값, 변수 등을 뜻한다. 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달한다. 모델은 다음과 같은 규칙을 가지고 있다. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다. 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다. 변경이.. 2023. 2. 15.
[안드로이드 면접] - 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.
[안드로이드] MVVM 패턴과 안드로이드 MVVM 패턴 마이크로소프트 MVVM 패턴 VS Google AAC ViewModel (android mvvm pattern) 처음에 굉장히 혼잡했다.. AAC ViewModel 개념을 볼 때 이게 MVVM 과 다르다는 말을 하는데, 무엇이 다르다는 지 처음에는 많이 헷갈렸다. 그래서 오늘 MVVM을 톺아보려 한다. 이번 블로그에서는 Google AAC ViewModel 과 Microsoft 아키텍트 존 구스먼이 발표한 MVVM 의 ViewModel 차이를 가지고 설명할 것 같다. MVVM 패턴은 마틴 파울러의 MVP(프레젠테이션 모델) 디자인 패턴을 변형하여 만든 것이고, 2005년에 마이크로소프트 아키텍트인 '존 구스먼' 이 처음으로 공개해 세상에 알려졌다. 구글은 '존 구스먼'이 발표한 MVVM 패턴과 흡사하게 .. 2023. 2. 11.
[안드로이드 면접] - 13 : 1. Vector 와 Bitmap 차이는? 더보기 Vector (ai, eps, svg) 점과 점을 연결하여 수학적 원리로 그림을 그려 표현하는 방식 이미지를 리사이징(크기를 늘리고 줄여도) 하여도 손상이 되지 않는다. 하지만 사진과 같은 복잡한 그림을 표현하려면 컴퓨터에 부담을 줄 수 있다. Bitmap (jpg, jpeg, png, gif) 서로 다른 많은 점(픽셀)들의 조합으로 그려지는 이미지 표현 방식 비트맵 이미지는 정교하고 화려한 표현이 가능(주로 사진 이미지에 사용) 하지만 리사이징(크기를 늘리고 줄이는) 하면 원본 이미지에 손상이 갈 수 있음. 2. View 와 ViewGroup 차이는? 더보기 View 안드로이드 화면의 구성요소이다. 화면에 보이는 모든 것은 View 이다. View는 자.. 2023. 2. 9.