본문 바로가기

Android/Layout

[Android Layout] 0. 레이아웃이란?


이 글은 레이아웃 마스터를 위한 시발점입니다.
그렇기 때문에 글 번호는 0. 입니다.


 레이아웃이란? 

레이아웃이란 무엇일까요?

사전적 의미의 레이아웃이란 아래와 같습니다.

명사
책이나 신문, 잡지 따위에서 글이나 그림 따위를 효과적으로 정리하고 배치하는 일.
정원따위의 설계를 이르는 말.
양재에서, 패턴 종이를 배열하는 일

위처럼 레이아웃이란 뭔가의 구조를 잡고, 어떻게 배열할지, 어떻게 배치할지, 어떻게 설계할지를 정하는 것입니다.



그렇다면 안드로이드에서 레이아웃은 무엇일까요?

안드로이드 프로그래밍에서의 레이아웃은 사용자에게 어떻게 보여줄것인지, 어떻게 비춰질것인지를 고려해서,
UI를 만들고, 위젯들을 구성하고 배치하고, 좀 더 적합하게, 좀 더 효율적으로, 좀 더 편하게 쓸 수 있도록 해주는 것입니다.

안드로이드는 모바일플랫폼입니다.
모바일디바이스는 굉장히 작은 디스플레이를 사용하기 때문에,
작은 화면안에서(타블렛 PC는 논외로 합니다.) 모든 것을 보여주고 사용할 수 있도록 되어있습니다. 
그러면서도 필요한 요소들은 화면에 나와있어야 하고, 불필요한 요소들은 최대한 제거해야 하지요.

그렇다면 안드로이드 프로그래밍을 하기 위해서
어떻게 해야 필요요소와 불필요요소들을 구별하고 처리하는지를 공부해야 하는 것인가!라고 생각하실지도 모르겠지만,
이미 모바일 플랫폼안에서의 UI는 시간이 흐르면서 사용자들의 경험이 쌓여(UX) 점점 고정되어가고 있는 시점입니다.

이런상황에서 정말 획기적으로 편리해지지 않는 이상, 이미 고착되어져 버린 사용자들의 UX를 무시하긴 쉽지않지요.
이미 UI들은 어느정도 선까지는 고정되어있다는 말입니다.
이건 표절도 모방도 아닌 그저 경험에 따른 고착일 뿐입니다.

그렇다고했을때, 이미 결정되어있는 UI들을 따라야 할진데,
여기가지 이르게 되어서 생각할 가장 중요한 것은, 어떻게 하면 내가 원하는대로 화면을 구성할 수 있는가?가 됩니다.


어떻게 하면 내가 원하는대로 화면을 구성할 수 있는가?

어렵지만 정말 중요한 이야깁니다.
안드로이드 프로그래밍을 해보셨다면 느끼셨을테지만,
아직 아이폰처럼 UI 생성툴이 발달하지 못한 시점에서 내가 원하는데로 배치하기란 정말 힘듭니다.

그래서 앞으로 해나갈 것들을 제시해볼까합니다.

1. UI에 사용되는 위젯(뷰)들을 이해하자.
    - 이해란 단어는 어떤 위젯이 어디에 적합하고, 어떤 위젯이 어디에 쓰이면 좋을지 판단할 수 있는걸 뜻합니다.

2. 각 위젯의 속성을 이해하자.
    - 각 위젯별로 속성들이 다릅니다. 공통된 속성들도 있지만, 다른것들도 많기때문에 이것들을 알아야합니다.
    - 여기서도 마찬가지로, 각 위젯의 속성을 이해한다는 것은, 
      위젯에 어떤 속성을 주었을 때, 위젯이 화면에 어떻게 보일지를 알고 내 마음대로 위젯을 컨트롤 하는것을 의미합니다.

3. 위젯과 위젯의 관계를 이해하자.
    - 위젯과 위젯의 관계를 이해하는 것은 중요합니다. 
      위젯들이 배치되어있을때, 어떤 위젯이 다른 위젯에 영향을 끼칠 수 있기 때문입니다.
    - 여기서의 "이해"는 위젯의 관계에 따라 서로 어떤 영향을 끼칠 수 있는지, 
      또 위젯의 관계(부모, 자식, 형제)에 따라 어떻게 보여질 수 있고 어떻게 배치해야 하는지를 알아야 하는것입니다.

4. 화면을 설계하자
    - 일반적으로 하면에 보이는 것을 그대로 나타내기 위해선 화면을 보고 화면에 대한 설계를 해야합니다.
    - 안드로이드의 레이아웃은 트리구조로 되어있기 때문에, 설계없이는 좋은 레이아웃을 뽑아내기 힙듭니다.
      양질의 레이아웃을 만들기 위해서는 하나로 보이는 화면을 분할하고 영역을 나누고,
      위젯들을 화면과 매핑시켜서 트리구조로 설계를 해야합니다.
      예를들면, 로그인화면을 만든다고 했을 때, 단순히 에딧텍스트 2개와 버튼을 배치하고 끝나는 것이 아니라,
      두개의 에딧텍스트가 위아래로 있고, 이 에딧텍스트 오른쪽에 로그인 버튼을 놓고 싶다면, 
      3개의 위젯(에딧텍스트 2개, 버튼 1개)으로 끝나지 않는다는 이야기 입니다.

5. 다 알았다면 이쁘게 꾸며보자!
    - 위의 네가지를 숙지했다면, 이제 만들기만 하면 됩니다.
    - 위젯들을 이해하고, 화면을 구성할 수 있게 되었다면, 왠만환 화면을 XML로 구성하는건 순식간입니다.
    - 다만 조금 귀찮을 수 있다는걸 명심하십시오.
      모바일 프로그래밍은 사용자에게 보여지는 부분이 70%이상입니다. 항상 이걸 되새김질 해야합니다.
      아무리 기능이 우월하고 뛰어난 어플리케이션을 만들었더라도, 안드로이드 기본 제공되는 UI로 구성한다면,
      그 어플리케이션은 아무도 사용하지 않을것입니다.



여기서 다시한번 말씀드리자면, 가장 중요한것은
어떻게 하면 내가 원하는데로 사용자에게 보여줄수 있는가입니다.
항상 이걸 명심해야합니다. 내가 원하는데로, 
내가 생각했던 그대로 보여준다는 것이 안드로이드에선 상당히 어려울 수 있습니다.
물론 개인적으로 사용하는 어플리케이션을 개발할것이라면, 상관없지만,
많은 디바이스에 공통적으로 적용할 수 있는 레이아웃을 만들기란 쉽지 않습니다.

사설이 길었지만,
레이아웃이 무엇인지, 왜 안드로이드에서 레이아웃이 중요한지에 대해 논해보았습니다.
저는 아직 공부를 해나가고 있기때문에, 제 말이 확실히 맞다!라고 하지는 않겠습니다.

아직 발전하고 싶은 입장에서 제가 아는것들을 나누고,
많은 사람들고 같이 이야기를 하고 싶기에 이렇게 정리를 시작하는 것이죠.


그럼 다음 포스트 부터는 본격적으로 레이아웃에 대해 이야기를 나눠보도록 하겠습니다.




 아이유 팬플 512 아이콘