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

 
사전적 의미의 레이아웃이란 아래와 같습니다.
 
명사
책이나 신문, 잡지 따위에서 글이나 그림 따위를 효과적으로 정리하고 배치하는 일.
정원따위의 설계를 이르는 말.
양재에서, 패턴 종이를 배열하는 일
 
위처럼 레이아웃이란 뭔가의 구조를 잡고, 어떻게 배열할지, 어떻게 배치할지, 어떻게 설계할지를 정하는 것입니다.
 
 
 
그렇다면 안드로이드에서 레이아웃은 무엇일까요?
 
안드로이드 프로그래밍에서의 레이아웃은 사용자에게 어떻게 보여줄것인지, 어떻게 비춰질것인지를 고려해서,
UI를 만들고, 위젯들을 구성하고 배치하고, 좀 더 적합하게, 좀 더 효율적으로, 좀 더 편하게 쓸 수 있도록 해주는 것입니다.
 
안드로이드는 모바일플랫폼입니다.
모바일디바이스는 굉장히 작은 디스플레이를 사용하기 때문에,
작은 화면안에서(타블렛 PC는 논외로 합니다.) 모든 것을 보여주고 사용할 수 있도록 되어있습니다. 
그러면서도 필요한 요소들은 화면에 나와있어야 하고, 불필요한 요소들은 최대한 제거해야 하지요.
 
그렇다면 안드로이드 프로그래밍을 하기 위해서
어떻게 해야 필요요소와 불필요요소들을 구별하고 처리하는지를 공부해야 하는 것인가!라고 생각하실지도 모르겠지만,
이미 모바일 플랫폼안에서의 UI는 시간이 흐르면서 사용자들의 경험이 쌓여(UX) 점점 고정되어가고 있는 시점입니다.
 
이런상황에서 정말 획기적으로 편리해지지 않는 이상, 이미 고착되어져 버린 사용자들의 UX를 무시하긴 쉽지않지요.
이미 UI들은 어느정도 선까지는 고정되어있다는 말입니다.
이건 표절도 모방도 아닌 그저 경험에 따른 고착일 뿐입니다.
 
그렇다고했을때, 이미 결정되어있는 UI들을 따라야 할진데,
여기가지 이르게 되어서 생각할 가장 중요한 것은, 어떻게 하면 내가 원하는대로 화면을 구성할 수 있는가?가 됩니다.
 
 
어떻게 하면 내가 원하는대로 화면을 구성할 수 있는가?
 
어렵지만 정말 중요한 이야깁니다.
안드로이드 프로그래밍을 해보셨다면 느끼셨을테지만,
아직 아이폰처럼 UI 생성툴이 발달하지 못한 시점에서 내가 원하는데로 배치하기란 정말 힘듭니다.
 
그래서 앞으로 해나갈 것들을 제시해볼까합니다.
 
1. UI에 사용되는 위젯(뷰)들을 이해하자.
    - 이해란 단어는 어떤 위젯이 어디에 적합하고, 어떤 위젯이 어디에 쓰이면 좋을지 판단할 수 있는걸 뜻합니다.
 
2. 각 위젯의 속성을 이해하자.
    - 각 위젯별로 속성들이 다릅니다. 공통된 속성들도 있지만, 다른것들도 많기때문에 이것들을 알아야합니다.
    - 여기서도 마찬가지로, 각 위젯의 속성을 이해한다는 것은, 
      위젯에 어떤 속성을 주었을 때, 위젯이 화면에 어떻게 보일지를 알고 내 마음대로 위젯을 컨트롤 하는것을 의미합니다.
 
3. 위젯과 위젯의 관계를 이해하자.
    - 위젯과 위젯의 관계를 이해하는 것은 중요합니다. 
      위젯들이 배치되어있을때, 어떤 위젯이 다른 위젯에 영향을 끼칠 수 있기 때문입니다.
    - 여기서의 "이해"는 위젯의 관계에 따라 서로 어떤 영향을 끼칠 수 있는지, 
      또 위젯의 관계(부모, 자식, 형제)에 따라 어떻게 보여질 수 있고 어떻게 배치해야 하는지를 알아야 하는것입니다.
 
4. 화면을 설계하자
    - 일반적으로 하면에 보이는 것을 그대로 나타내기 위해선 화면을 보고 화면에 대한 설계를 해야합니다.
    - 안드로이드의 레이아웃은 트리구조로 되어있기 때문에, 설계없이는 좋은 레이아웃을 뽑아내기 힙듭니다.
      양질의 레이아웃을 만들기 위해서는 하나로 보이는 화면을 분할하고 영역을 나누고,
      위젯들을 화면과 매핑시켜서 트리구조로 설계를 해야합니다.
      예를들면, 로그인화면을 만든다고 했을 때, 단순히 에딧텍스트 2개와 버튼을 배치하고 끝나는 것이 아니라,
      두개의 에딧텍스트가 위아래로 있고, 이 에딧텍스트 오른쪽에 로그인 버튼을 놓고 싶다면, 
      3개의 위젯(에딧텍스트 2개, 버튼 1개)으로 끝나지 않는다는 이야기 입니다.
 
5. 다 알았다면 이쁘게 꾸며보자!
    - 위의 네가지를 숙지했다면, 이제 만들기만 하면 됩니다.
    - 위젯들을 이해하고, 화면을 구성할 수 있게 되었다면, 왠만환 화면을 XML로 구성하는건 순식간입니다.
    - 다만 조금 귀찮을 수 있다는걸 명심하십시오.
      모바일 프로그래밍은 사용자에게 보여지는 부분이 70%이상입니다. 항상 이걸 되새김질 해야합니다.
      아무리 기능이 우월하고 뛰어난 어플리케이션을 만들었더라도, 안드로이드 기본 제공되는 UI로 구성한다면,
      그 어플리케이션은 아무도 사용하지 않을것입니다.
 
 
 
여기서 다시한번 말씀드리자면, 가장 중요한것은
어떻게 하면 내가 원하는데로 사용자에게 보여줄수 있는가입니다.
항상 이걸 명심해야합니다. 내가 원하는데로, 
내가 생각했던 그대로 보여준다는 것이 안드로이드에선 상당히 어려울 수 있습니다.
물론 개인적으로 사용하는 어플리케이션을 개발할것이라면, 상관없지만,
많은 디바이스에 공통적으로 적용할 수 있는 레이아웃을 만들기란 쉽지 않습니다.
 
사설이 길었지만,
레이아웃이 무엇인지, 왜 안드로이드에서 레이아웃이 중요한지에 대해 논해보았습니다.
저는 아직 공부를 해나가고 있기때문에, 제 말이 확실히 맞다!라고 하지는 않겠습니다.
 
아직 발전하고 싶은 입장에서 제가 아는것들을 나누고,
많은 사람들고 같이 이야기를 하고 싶기에 이렇게 정리를 시작하는 것이죠.
 
 
그럼 다음 포스트 부터는 본격적으로 레이아웃에 대해 이야기를 나눠보도록 하겠습니다.
 

 

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

 

[출처] http://croute.me/338

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
» 레이아웃이란 무엇일까요? 졸리운_곰 2016.04.30 237
52 안드로이드 네트워크/쓰레드 프로그래밍 예제 - HTTP file 졸리운_곰 2016.04.30 318
51 안드로이드 와이파이 연결시 준비된 코드 실행2 졸리운_곰 2016.04.30 171
50 안드로이드 와이파이 연결시 준비된 코드 실행 졸리운_곰 2016.04.30 423
49 Worked solution for Kivy + Admob on android 졸리운_곰 2016.04.30 580
48 Broadcast Receiver로 문자(SMS) 수신해보자 file 졸리운_곰 2016.04.29 761
47 How do you get the Android's primary e-mail address (or a list of e-mail addresses)? 졸리운_곰 2016.04.29 221
46 지니모션 설치 방법 총정리 (한글키보드 + 구글플레이 설치) file 졸리운_곰 2016.04.23 1065
45 넥서스5 USB to PC 연결 뒤 아무것도 안 보인다면 file 졸리운_곰 2016.04.18 732
44 워드프레스와 모바일웹, 앱 file 졸리운_곰 2016.04.17 191
43 워드프레스 기반 안드로이드 앱 만들기 file 졸리운_곰 2016.04.17 522
42 안드로이드/Android 액티비티(Activity) 투명 처리 하기 file 졸리운_곰 2016.04.14 196
41 Audio Capture 졸리운_곰 2016.04.08 212
40 [안드로이드] 앱이 파일을 읽고 쓰는 위치 졸리운_곰 2016.03.24 879
39 안드로이드 네트워크 연결 상태 확인 졸리운_곰 2016.03.23 437
38 안드로이드 > 네트워크 연결 상태를 확인하는 ConnectivityManager 졸리운_곰 2016.03.23 652
37 [펌][안드로이드예제] 카메라로 찍은 사진(이미지파일)을 웹서버에 전송하는 프로그램예제 졸리운_곰 2016.03.12 2730
36 안드로이드 통화 녹음 소스 : android call recoder source file 졸리운_곰 2016.03.12 2118
35 안드로이드 앱 : 앱 개발시 코드에서 다른 앱 설치 및 제거 졸리운_곰 2016.03.09 295
34 [Android] 첨부파일 포함한 이메일 보내기 file 졸리운_곰 2016.03.05 911
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED