안드로이드 면접 질문 모음

맥모닝·2024년 1월 18일
0

Android

목록 보기
1/6
post-thumbnail

LinearLayout vs ConstraintLayout

  • LinearLayout은 세로나 가로의 단일 방향으로 모든 하위 요소를 정렬하는 뷰 그룹이다.
  • ConstraintLayout은 부모나 다른 뷰에 대한 제약 조건을 설정하여, 다양한 화면 크기와 해상도에 대응하여 반응형 레이아웃을 쉽게 구현할 수 있도록 도와준다.

LinearLayout은 반응형 레이아웃을 만들 수 없나?

  • 일부 반응형 레이아웃을 만들 수는 있지만, 상대적인 위치를 정의하는 데 어려움이 있어, 각 뷰가 유동적으로 조절되기 어렵다.

findViewById vs viewBinding

findViewById

  • XML 레이아웃 파일에서 정의된 뷰를 코드에서 찾아서 참조할 때 사용되는 메서드로, 유효하지 않는 ID는 Null을 반환한다.

viewBinding

레이아웃 파일과 코드 간에 일치하지 않아 발생하는 문제를 컴파일 타임에 확인하며, 뷰의 직접 참조를 제공한다. 그래서 런타임 오류를 줄이고, Null Safety와 Type Safety를 제공하여 안정성을 높인다.

  • 각 XML 레이아웃 파일의 binding 클래스를 생성하여, 뷰들을 코드에서 쉽게 사용할 수 있도록 도와주는 라이브러리이다.
    • binding 클래스 인스턴스에는 상응하는 레이아웃에 ID가 있는 모든 뷰의 직접 참조가 포함된다.
  • 레이아웃 파일과 코드 간에 일치하지 않아 발생하는 문제가 런타임이 아닌 컴파일 타임에 발생하기 때문에 더 빠르게 오류를 잡을 수 있다.
  • null safety
    • 뷰의 직접 참조를 생성하므로 유효하지 않는 뷰 ID로 인해 널 포인터 예외(NullPointerException)가 발생할 위험이 없다.
  • type safety
    • 각 바인딩 클래스에 있는 필드의 유형이 XML 파일에서 참조하는 뷰와 일치하기 때문에 클래스 변환 예외(ClassCastException)가 발생할 위험이 없다.

dp vs sp

  • dp(density-independent pixel) : 주로 뷰의 크기를 지정하는 데 사용되며, 다양한 화면 밀도에서 물리적인 크기가 동일하게 보이도록 하는 픽셀이다.
  • sp(scale-independent pixel) : 주로 텍스트 크기를 지정하는 데 사용되며, 사용자의 폰트 크기 설정에 따라 크기가 조절되는 픽셀 단위이다.

forEach vs map

  • forEach 메서드는 단순히 반복문을 대체하기 위한 함수이다.
  • map 메서드는 요소값을 다른 값으로 mapping한 새로운 배열을 생성하기 위한 고차함수이다.
profile
필요한 내용을 공부하고 저장합니다.

0개의 댓글