LinearLayout은 Android UI에서 사용되는 ViewGroup의 한 종류로, 자식 뷰들을 한 방향(한 줄 또는 한 열)으로 순차적으로 배치하는 레이아웃입니다. 주요 특징과 속성은 다음과 같습니다. - 배치 방향(orientation) - orientation="horizontal" 또는 "vertical"으로 자식들을 가로 또는 세로로 배치합니다. 기본값은 horizontal이지만 보통 명시적으로 설정합니다. - 크기 지정 - 각 뷰의 layout_width, layout_height를 사용해 크기를 지정합니다. - match_parent, wrap_content 등을 사용합니다. - layout_weight - 남는 공간을 자식들 사이에 비율로 분배할 때 사용합니다. - weight 값들의 합을 기준으로 각 자식이 차지할 비율이 결정됩니다. 예: 두 뷰에 각각 weight="1"이면 남는 공간을 1:1로 나눕니다. - weight를 사용하면 하나의 축에서 동적 비율 크기 조절이 가능합니다(가로 LinearLayout에서는 width에, 세로 LinearLayout에서는 height에 영향). - gravity vs layout_gravity - LinearLayout의 gravity는 내부의 자식 전체의 정렬(예: 중앙, 오른쪽)을 결정합니다. - 개별 자식의 layout_gravity는 그 자식이 할당된 공간에서 어떻게 정렬될지 결정합니다. - baselineAligned - 텍스트 기반 뷰들의 기준선 정렬을 제어하는 속성(baselineAligned, baselineAlignedChildIndex). - 구분선(divider) - 사이에 구분선을 넣는 divider 속성 등을 지원합니다. - 사용 시기 및 성능 - 간단한 수평/수직 정렬에는 적합하고 이해하기 쉽습니다. - 복잡한 레이아웃에서 LinearLayout을 중첩하면 뷰 계층이 깊어져 성능 저하가 발생할 수 있으므로, 복잡한 레이아웃은 ConstraintLayout 같은 대체 레이아웃을 고려하는 것이 좋습니다. 간단한 예 (XML) 요약: LinearLayout은 자식 뷰를 한 방향으로 차례대로 배치하고 layout_weight로 공간 분배를 제어할 수 있는 단순하고 직관적인 레이아웃입니다.