[iPhone] 아이폰 앱 디자인 실수: 문맥에 대한 간과

아이폰 2013. 2. 16. 02:16



Smashing Magazine 사이트에 아이폰앱 디자인시 범하는 실수에 대한 글이 있어 번역해보았습니다. 좋은 내용이네요 ^^b

(발번역이지만 이해해 주세요 ^^) 

원문: iPhone Apps Design Mistakes  : Disregard Of Context by Alex Komarov




아이폰 앱들의 디자인 실수  : 컨텍스트를 간과한다. 

 - 아이폰은 훨씬 큰 그림의 일부일 뿐이다. 인간과 환경요소들 얼마나 잘 풀어내는냐가 앱의 성공요소를 결정한다.  

    너무나 자주 아이폰 개발자들은 고객과는 동떨어진 제품을 만들어낸다. 

- 정말로 호소력있는 앱을 창조하기 위해서는, 앱의 메커니즘에만 집중하는 행위를 멈춰라. 멀리떨어져서 보아라. 

- 사람을 감싸고 있는 복잡한 환경적인 요소들 뿐만 아니라 애플리케이션을 사용하는 사람들을 이해하라. 

- 이러한 디자인 과제들의 문맥을 더 잘 이해하기 위해서 우리는 몇몇 수준에서 인간과 환경적인 요소들에 주목할 것이다. 


레벨1, 당신은 고객들이 사랑하는 앱을 만들기 위해 여기에 있다. 

         멀리 떨어져서 보아라


레벨1 - 앱자체

- 많은 개발자들이 그들의 앱을 바라보는 관점이다. 당신의 앱이 어떻게 보여야 하고,  왜 고객들이 그것에 관심을 

   주목할 것인지에 대한 비전을 가지고 있다. 그러나  제품에만 몰두하여 바라본다면 잘못된 문맥 속에 놓고  

    잘못된 목적과 잘못된 사용자들을 위해  설계하게 될것이다. 

- 이것이 멀리 떨어져서 보아야 하는 이유이다. 


레벨2, 한명의 사람이 이 앱을 사용하고 있다. 

- 그 사용자는 특정한 목적과 과제를 가지고 있다. : 이 부분에서 가장 두드러지고 가장 무시되는 몇가지에 대해서 알아볼것이다.

- 아이폰에 존재하는 인간적인 요소들. 기본적인 인체공학과 시각적인 한계, 공통적인 디자인 실수에 대해서 이야기 할 것이다. 



레벨 3. 그 사람은 특정한 환경속에서 이 앱을 사용하고 있다.

- 뒤로 물러나라. 그러면 이 앱은 복잡한 사회 환경속에 일부라는 것을 보게 될것이다. 앱은 사람들 사이의 커뮤니케이션하고,

   사람들이 더 큰 목적을 달성하는 것을 돕는 데에 있어서 상대적으로 적은 역할을 맡고 있다.

- 이곳이 사회적 컴포넌들이 동작하는 장소이다. 네트워킹과 커뮤니티, 소셜 기반의 웹사이트와 같은…

- 애플리케이션들과 많은 다른 것들이 환경과 문맥을 창조하는…그 환경속에서 애플리케이션들은 사용되어질 것이다. 



레벨4. 환경은 더 큰 문화의 일부이다.

- 다른 문화들간에 독특한 니즈를 해결하는 당신의 능력이 제품의 성공에 영향을 미칠것이다. 

  그것을 무시하는 것은 너무 비용이 크며, 만일 앱이 세계적으로 팔릴 것이라면 특히 더 그렇다. 

  환경은 글로벌 네트워킹의 일부임을 이해하는 것이 중요하다. 

- 지역문화 뿐만이 아니라 세계적인 성공을 얻을 앱을 창조하기 위해서는 문화적인 차이, 트렌드, 메타포를 인식해야 한다. 




레벨2, 사람의 니즈와 한계를 이해하라. 


"두번 측정하고, 한번 잘라라" 는 실제로도 효과적인 전략이다. 아이폰 개발자로서 한걸음 뒤로 물러나 코딩을 시작하기 전에 

아래와 같은 질문들에 답할 수 있어야 한다. 

- 누가 당신의 애플리케이션들을 사용할 것인가?

- 그 사용자의 기능요구사항은 무엇인가?

- 그 사람의 제한(한계)는 무엇인가?


이 질문에 대한 답들이 당신의 관점을 넓혀주고, 당신 고객의 니즈를 해결하는데 도움을 줄것이다. 

모든 인간적인 요소 전문인들은 단지 이것에 전념한다. 


기본적인 인체공학

- 아이폰과 관련하여 물리적, 인지적, 인체공하적인 진실들이 몇가지 있다. 


1. 우리의 손가락들은 마우스 포인터가 아니다. 

- 대다수의 탭가능한 객체들이 너무 작아서 사용하기를 좌절시키는 인터페이스를 사용한다. 

- 구글맵앱보다 2배 적은 핀들을 사용해서, 태핑이 매우 어렵다.(iFitness) 손가락이 3개 이상의 핀영역을 차지하기 때문에..

- 결국 영역을 반복해서 태핑하게 되고 랜덤으로 핀이 활성화되어 원치 않는 결과를 보게 된다. 


인체공학적인 문제들을 해결하기 위한 몇가지 방법이 있다.

1) 버튼과 다른 탭가능한 객체들을 더크게 만들어라.

2) 더크게 만드는 것이 불가능하다면 버튼 그 자체보다 더 크게 클릭 가능하게 영역을 확장해라

3) 각 화면에서 옵션의 수를 줄이고, 선택의 프로세스를 순차적이게 만들어라. 

4) 인터페이스 안에서 다중 터치 제스처를 구현해라. 

    예를 들자면,  두손가락 줌제스처를 사용한것이 머슬 그룹을 더 쉽게 선택할 수 있게 해줄것이다. 


2. 불행하게도 우리는 수퍼 영웅이 아니다. 

- 앱 디자이너들은 시각적인 제약사항들에 대해 고려해야 한다. 모바일 폰들은 일반적으로 컴퓨터보다 조명 조건이 

   좋지 않은 장소에서 사용되어진다. 

- 덜컹거리는 버스 기차에서, 햇빛 비추는 거리에서 걸으면서 앱을 사용하는 사람들을 생각해보아라. 

   기술이 유용하고, 완변하게 실행될 지라도 사람들은 무슨 일이 벌어지는지 알기가 힘들어진다면 앱 사용을 꺼리게 될것이다. 

- 여기 몇가지 시각적인 한계를 고려하지 않은 잠재적으로만 유용한 앱이 몇가지 있다.

   [너무 어무운 색만을 사용해서 앱을 디자인 하지 말아라.]

TweetDeck


여기 몇가지 실수를 피할수 있는 방법들이 있다. 

1) 반드시 필요한 요소들만 선택해라. 그것을 더 크게 만들고, 다른 모든것들은 제거하라. 

    만일 필요하다면 더 많은 옵션을 위해  추가적인 화면을 만들어라. [화면에 덜 필수적인 아이콘들은 제거하라.]


2) 아이폰에서의 픽셀 화면 크기는 컴퓨터 화면보다 작다는 것을 기억해라.  

    시뮬레이터에서 보는 스크린샷은 아이폰에서는  실제로 더 작다. 



레벨3, 사용자의 환경에 특화된 문제(과업)들을 이해하라. 


목적과 환경

- 당신의 앱은 사용자가 더 큰 목적 달성을 돕는데 상대적으로 더 적은 역할을 한다. 

-  사람들이 어떤 목적을 가지고 있고 그들이 그것들을 달성하기 위해 필요한 것을  더 잘 이해할 수록,

   당신은 그들의 니즈를 더 많이 만족하는 앱을 만들수 있다. 

- 모바일폰은 종종 시끄럽고 집중을 저해하는 환경속에서 사용된다. 

    도시를 통과하는 간단한 산책만 하더라도 시끄러운 요소들이 많다. 

- 다음 예제를 보아라. 어떤 목소리 메모앱이 더 역할을 잘 할 것 같은가? (Apple Voice vs  iTalk)

Apple Voice MemosiTalk




애플의 보이스 메모가 더 멋져 보이지만, iTalk가 평균적인 사용자들의 목적과 환경을 더 잘 해결하고 있다. 

생각해 보아라. 왜 사람들은 노트를 쓰는 것보다 목소리를 녹음하는 것을 더 선호하는가? 

오디오 형식은 단순한 텍스트보다 장점이 거의 없다. 검색을 할수도 없고, 텍스트 만큼 쉽게  수정과 보완을 할수 없다. 

대부분의 시나리오에서는 정보를 교환하는 관점에서 텍스트가 훨씬 더 편리한 형식이다. 


그렇다면 … 더 중요하게는 언제 사람들은 목소리 메모를 사용하는가? 언제 그들이 타이핑 할 수 없는가? 

가장 흔한 때는 운전하고 있을 때이다. 운전하면서 타이핑 하는 것이 그렇지 않는 경우보다 사고의 위험이 23배 높다고 한다. 

이러한 경우에 어떤 앱이 더 사용하기 쉬운가? 크고 빛나는 마이크와 작은 녹음 버튼을 가진 앱은 누르기 불편하지 않을까?

반면 화면 절반 크기의 녹음 버튼을 가진 것은? 당연히 후자이다. 


사용자가 녹음이 활성화 됐다는 것을 확인하게 하는 것도 역시 중요하다. 어떤 인터페이스가 디바이스 상태를 더 잘 알리고 있는가? 당신이 녹음을 완료하고 싶을 때는 어디를 택해야 하는가?


전박적으로 어떤 지다인이 더 잘 동작하는 가에 기초하면, iTalk의 승리이다.  애플 보이스 메모는 친구의 폰을 구경할때는

멋져보이지만 실제환경에서는 유용하지 않다. 



모바일 폰들, 네트워킹과 커뮤니티 

- 의심의 여지없이 모바일폰은 소셜 도구 중에 하나이다. 머 많은 사람들을 관련시킬수록 더 많은 경험들이 발생한다. 

    생각해보아라. 오직 하나의 폰만 가지고 있다면, 별로 유용하지 않을 것이다. 유투브, 페이스북, 트위터는 우리들은 사회적인

    존재임을 이해하고 만들어진 서비스이다.

- 우리는 공유하기를 원한다. 사회적인 인터렉션을 위탁한 설계가 얼마나 극적으로 모바일 세계를 변화시키는지 상상해보아라. 


외견상으로 보이는 정보를 공유하고 획득하는 반복적인 방법들에 사람들은 압도당한다. 그것들에 대처하기 위해서 디자이너들은 

애플리케이션을 가능한한 효과적으로 만들기 위해 아이폰 플랫폼을 잘 이해해야 한다. 

Bump : 단순히 부딪히는 제스터를  통해 연락처 정보를 교환함. 

Mover : 쉽게 정보(사진?)을 전달 할 수 있음.

Loopt : 내 주변에 있는 사용자들을 알 수 있음. 

BumpMoverLoopt




레벨4. 환경은 거대한 문화의 일부이다.


다른 문화간의 독특한 니즈를 해결하는 당신의 능력이 당신 앱의 성공에 영향을 미칠 것이다.  그것들을 무시하는 것은 비용이 

너무 크고, 특히 앱을 세계를 대상으로 판매할 경우 더욱 그렇다. 지다인은 지역적인 문제들에 적응되야 한다. 


사용성 전문가 제이콥 닐슨은 이렇게 이야기 했다. 

"ATM 기 전에는 왜 그렇게 큰 버튼을 가졌는지 이해하지 못했다. 2월의 스톡홀름에서 즉시 이해할 수 있었다. 

두꺼운 장갑을 끼고도 누르는 것이 가능하다."


시스템은 사용자의 문화적인 특성에 부합해야 한다. 이것은 공격적인 아이콘을 피하는 것 이상의 의미를 갖는다. 

비지니스가 수행되는 방식을 수용하고, 다양한 나라에서 사람들이 소통하는 방식을 이해해야 한다. 



결론

훌륭한 앱을 디자인 하는것은 쉬운 일이 아니다. 

하지만 사용자의 니즈를 이해하려는 당신은 노력은 보상받을 것이다. 




디자인 패턴에 대한 고찰

디자인패턴로그 2011. 8. 16. 22:31



1. 동기

대학교 입학후 프로그램을 시작하고 한창 자신감이 쌓여 가던 대학교 3학년 시절...
프로그래밍 분야에서 한발 더 나아가고 싶은 맘에 "디자인 패턴" 에 대해 공부했던 때가 생각난다. 
사실 그 당시에는 디자인 패턴이라는 멋드러진 이름에 매료되어 "어떻게 요구사항을 잘 만족시킬까?"
보다는 "어떻게 디자인 패턴을 적용하여 구조를 이쁘게 만들까?" 라는 생각에 사로잡혀 있었다. 
인터페이스와 구현클래스를 조합하기에 따라 특정 상황(요구사항이 바뀌는 상황)에서 코드에 대한 수정을 
최소화 한채 구조를 변경할 수 있도록 하는 패턴들이 어찌나 대단해 보였는지...
(이해하기 힘든 클래스 다이어그램 때문에 더 대단해 보였다.)

그 시절에 비해 상대적으로 많은 시간(5년)이 흘렀지만 실무 개발을 시작한지는 이제 갓 1년 4개월....정도 
얼마나 실력이 향상 되었겠느냐마는...소프트웨어를 바라보는 시야는 그때에 비하면 크게 성장했다고 생각한다. 

"Head First Design Pattern" 을 교재로 사내 스터디를 시작했다. 첫장을 소개하는 발표자의 음성을 들으면서 문득
예전일이 생각났다.  디자인 패턴에 대한 글을 작성해보려다가 기본원칙 몇개와 책에 있는 패턴을 설명하는 글을 정리해서
올리다가 중간에 그만두었었던 때가 말이다. 그 때는 경험이 결핍된 지식으로는 어쩌면 당연한 결과인 것이다. 

그때를 떠올리며 이제는 내 생각으로 디자인 패턴에 대해 설명할 수 있지 않을까? 는 생각이 들었다. 
시간이 흐르면 많은 생각들이 또 변하겠지만 중간 점검으로는 적절한 때인듯 하다.





2. 디자인 패턴(Design Pattern)이란?

디자인 패턴을 구성하고 있는 패턴들에 대해 알아보기 앞서 디자인 패턴이란 무엇인지 알아보는 것은 당연한 일!!
소프트웨어를 하나 둘 개발하며 경험을 쌓다보면 늘 모든 일에서 그렇듯이 소프트웨어 개발에 있어서의 반복적으로
등장하는 상황이 발생하기 시작한다. 누구나 한 분야의 일에 대해 여러번의 경험을 반복하면 효율적으로 그일을 처리하는 Know-how가 쌓이기 마련이다. 소프트웨어 개발에 있어서 그러한 Know-how 중 Design 즉 설계에 있어서의 노하우를
디자인 패턴이라고 한다.
덧붙히자면 소프웨어 개발은 고객과 대화를 통해 요구사항을 추출해내고, 해당 분야에 대한 정보수집을 토대로 분석과정을
거쳐 설계에 이르고 실제 구현을 하게 된다. 이런 소프트웨어 모든 각 단계에 대한 노하우 즉 패턴이 존재한다.
(하지만 노하우 전달이 어려울뿐..) 요구사항 수집 패턴, 정보수집 패턴, 분석패턴, 설계패턴, 구현패턴 갖가지 패턴들이
존재할 수 있으며 디자인 패턴은 설계 단계에 있어서의 패턴에 특별히 주목하는 것이다. 

물론 이 디자인 패턴들은 먼저 소프트웨어 개발을 지긋이 했던 선배들 (GOF 선배들이라고 들어봤나?)이 경험을 통해
이름을 붙이고 알기쉽게 분류를 해놓았다. 개개의 노하우에 이름을 붙히고 언제 사용하면, 무엇이 좋은가에 대한 것을
기준으로 분류를 해놓아 책으로 엮은 것이 그 유명한 "GOF(Gang Of Four)의 디자인 패턴" 이다.
디자인 이름만 이야기해도 뭔가 뽀대가 나지만, 알맹이 없는 어중이 떠중이가 되고 싶지 않다면 적어도 하나의 패턴에 대해
이야기 할때는 "패턴의 이름", "패턴을 적용할 상황", "적용시 장점과 단점" 까지는 함께 이해하는 것이 좋으리라.... 






3. 디자인 패턴을 사용하면 좋은 점?

초보 운전자에게 베스트 드라이버께서 운전 노하우를 요목조목 설명해주면 어떻겠는가? 디자인 패턴은 소프트웨어 개발 중 
발생할 수 있는 여러 문제상황 속에서 검증된 해결책이다.  적어도 비슷한 상황속에서 이 패턴을 사용하면 더 적은 노력으로
원하고자 하는 답을 얻을 수 있다는 것이다.  하지만 각양각색의 상황 속에 완전히 일치하는 해결책이란 존재하지 않는다.
자신의 상황에 맞게 패턴을 변형해서 적용해야 하는 경우가 더 많을 것이다. 
책에서 자주 언급되는 디자인 패턴 적용의 장점 중 하나는 의사소통 비용의 감소이다. 디자인 패턴에 대해 잘 알고 있는
개발자 간에 대화시 패턴의 이름은 그 어떤 구구절절한 설명보다도 간단 명료하게 전달 될 것이다. 하지만 디자인 패턴을
잘 모르는 개발자가 있다면? ...






4. 디자인 패턴을 공부하면서 주의할 점은?

노하우란 경험을 통해서만 습득할 수 있는 것이다. 개발 경험이 부족한 초급 개발자들이 디자인 패턴을 이해하기 어려워하는
것은 당연한 일이다.  내가 예전에 그랬듯이 소프트웨어에 어떤 디자인 패턴을 적용할까 라는 고민은 잘못된 고민이다.
소프트웨어에 발생하는 이 문제를 해결하기에 이 패턴을 사용하면 이러이러한 장점이 생길 것 같은데...라는 자세가 옳다고
생각한다.  디자인 패턴은 목적이 아니라 다만 최선의 답을 위한 해결책 중 하나의 선택안이라는 것을 명심하길 바란다. 




 

'디자인패턴로그' 카테고리의 다른 글

객체지향의 원칙  (0) 2011.08.17
알고리즘과 데이터 구조 그리고 패턴  (0) 2011.08.16
디자인 패턴에 대한 고찰  (0) 2011.08.16