Android 개발자라면 UI 를 구성할 때 어떤 Layout 을 써야할지 한번쯤 고민하는 시간을 가졌을 것이라고 생각한다. View Rendering 과정의 성능을 최적화 시키기 위해선 ConstraintLayout 을 사용해 View 평탄화 작업을 해야한다는 사실은 알고 있을 것이다.
이번 포스팅에서는 여러 Layout 의 용도와 왜 ConstraintLayout 다른 Layout 보다 더 나은 성능을 제공하는지에 대해 알아보고자 한다.
아래 Reference 의 FrameLayout Usage
를 먼저 들어가보면 FrameLayout 의 용도를 쉽게 파악할 수 있을 것이라고 생각한다. FrameLayout 은 다른 Layout 과는 달리 View 를 중첩시켜 UI 를 구성하는데 사용된다.
LinearLayout 은 이름에서도 알 수 있듯이 View 를 Linear 하게 보여주어야 할 때 사용되며 orientation 속성으로 vertical, horizontal 방향을 설정할 수 있다. 다만, vertical, horizontal 방향이 계속 바뀌는 UI 를 LinearLayout 만을 사용하여 구성하게 되면 중첩된 Layout 구조가 되기 때문에 View Rendering 과정에서 좋지 않은 성능을 보이게 된다.
View 와 View 사이의 상대적 위치를 이용하여 UI 를 구성하게 되어 중첩된 구조가 아닌 Layout 평탄화가 이루어지기 때문에 View Rendering 과정에서 좋은 성능을 보이는 Layout 이다. 그럼에도 불구하고 더 좋은 성능의 Layout 구성을 위해선 ConstraintLayout 이 권장되어진다.
현업에서는 물론이고 대부분 Project 를 진행할 때 ConstraintLayout 을 많이 사용한다. ConstraintLayout 도 View 와 View 사이의 관계를 통해 UI 를 구성하면서 View 의 중첩을 방지하는 측면에서는 RelativeLayout 과 유사한 역할을 한다고 생각될 수 있지만, RelativeLayout 보다 더 유연한 기능을 제공하고 Layout Editor 와 함께 더 쉽게 View 를 구성할 수 있다는 장점이 있다.
필자가 생각하는 가장 대표적인 Layout 에 대해서 간단히 알아보았다. 어느 상황에 어떤 Layout 을 써야할지 판단하는 것은 개발자에게 달려있고, 그 중에서 더 좋은 성능과 더 좋은 도구를 제공해주는 ConstraintLayout 에 대해서 깊이 있게 공부할 필요가 있다고 생각한다.
이번 포스팅에서는 깊이 있는 주제에 대해 다룬건 아니지만 필자가 생각하는 가장 대표적인 Layout 에 대해 알게 되었으니 오늘도 필자는 성장했다.