Skip to main content

사용자모델링

모델: 복잡하고 다양한 현상은 일반화해 중요한 의미를 찾는 기법이다. 복잡한 구조와 관계를 이해하기 쉽게 표현하는 데 매우 강력함. –> 정보 시각화, 이해도 상승 특히 디자인 모델을 적용하면, 정보의 중요한 의미와 구조를 쉽게 파악 가능함.

사용자 중심 디자인에서는 무엇보다 사용자를 이해하는 일이 가장 중요함. 페르소나(persona): 리서치 자료를 토대로 주요 사용자를 설명하는 상세한 사용자 모델

디자인을 잘 하는 방법? 분명한 니즈를 가진 특정 사용자 그룹을 중심으로 디자인하는 일. 수많은 기능을 탑재하여, 모든 사용자를 만족시키려는 제품은 대부분 망한다. 명확한 특정 사용자 그룹을 타겟팅하여 그들을 만족시키는 게 중요함. 한 명의 사용자가 만족하는 제품은 다른 사람도 만족할 확률이 높다.

페르소나의 핵심: 가중 중요한 사용자 그룹을 파악하는 데 있다. 전체 사용자의 니즈를 대표하는 대표 사용자 그룹을 선택함 –> 선택한 사용자 그룹을 중요도에 따라 분류한다. 1순위 사용자 그룹 (중요) 2순위 사용자 그룹 (중요)

페르소나는 실제 사용자를 대표한다.

  • 페르소나의 강점
  • 어떤 제품을 디자인해야하는지, 어떤 기능을 갖춰야 하는지 쉽게 결정할 수 있다
  • 임원진, 개발자, 디자이너와의 의사소통이 수월해진다
  • 팀의 의견을 하나로 모으기가 쉬워진다.
  • 디자인이 적절한지 판단할 수 있는 기준을 제공한다.
  • 사용자와의 테스트를 하지 않고도, 적은 비용으로 디자인을 점검할 수 있다.
  • 영업/마케팅 등에도 도움이 된다.
  • 마케팅 팀에서 페르소나를 홍보수단으로 활용하기도 한다.

페르소나로 피할 수 있는 디자인 문제 - 막연한 사용자 + 사람들은 다들 사용자 사용자라고 외치지만, 그 사용자가 누구인지 명확하지 않다. –> 저마다 사용자가 누군인지 다른 의미로 해석해 버린다. + 사용자가 누구인지 명쾌하게 정의되지 않으면 디자인에 큰 문제가 된다. + 간호사는 다양한다. 응급실 간호사, 소아과 간호사, 수술실 간호사.. 그리고 이들의 니즈와 태도, 적성, 동기는 각기 다르다. - 본인 중심 디자인 + 디자이너와 개발자는 각자 스스로의 목표를 더 중히 여긴다. 그러나 구현모델 중심으로 제품이 만들어 지면, 개발자에게는 편리할지 몰라도, 대부분의 사용자는 혼란스럽고, 애착을 가지지 못 한다. - 극단적 사용자 + 간혹 발생하는 극단적인 사용자에 집착하면 안 된다. 물론 완벽한 제품을 디자인하려면 극단적인 사용자도 고려해야 한다. 그러나 극단적인 사용자를 지나치게 고려해서는 안 된다. 그리고 디자인 중심에 극단적 사용자를 둬서는 안 된다.

  • 페로소나는 재사용되면 안 된다. 페르소나는 특정 제품과 특정 상황에 따라 다르게 제작해야 한다. <– 제품의 전문 분양에 따라 사용자의 목표와 행동 패턴도 달라지기 때문이다. –> 유사한 제품이라도 동일한 페스로사는 활용하는 것은 좋지 않다. 더 많은 제품을 고려할수록 사용자 리서치는 복잡해지고, 리서치 설계와 자료 관리가 어렵다. 따라서 가장 좋은 방법은 제품별로 리서치를 진행하고, 따로 페르소나를 제작하는 일이다.

사용자와 구매자가 다른 경우, 구매자 페르소나(customer persona)와 접대받는 페르소나(served persona)를 구분해야 제작해야 한다.

사용자 목표

목표는 왜 사용자가 그런 행동을 보였는지 뒤에 숨어 있는 동기와 얼마나 제품을 활용하고 싶어하는지를 담는다. 목표를 이해하면, 복잡한 사용자의 행동패턴을 명쾌하게 파악할 수 있다. 사용자는 목표를 바탕으로 과업을 수행하면서 기능을 활용한다. <– 과업은 더 중요한 목표를 달성하기 위한 하나의 표면적 수단이다.

정성적 자료 분석

사용자에게 그들의 목표가 무엇인지 직접 물어보는 일은 의미없다. <– 자신의 목표를 정확히 알고 있는 사용자는 거의 없다. 또는 알고 있더라도 명쾌하게 말로 풀어 설명하기가 힘들다. –> 리서치 과정에서 관찰한 사용자 행동을 바탕으로 목표를 도출해야 한다. 페르소나의 목표는 한 문장으로 이해하기 쉽게 작성해야 한다.

사용자 사고 프로세스

  • 본능적 반사
    • 제품을 접하자마자 순간적으로 일어나는 사고 과정
    • 본능적 반사를 만족시키는 디자인을 하려면, 제품을 접하자마자 사용자가 보고 느낄 내용을 이해해야 한다.
    • 예) 외관, 제품 동작, 소리, 촉각
    • 감각이 미치는 영향을 고려해야 함.
    • 외적인 아름다움보다는, 제품을 사용할 때 받아들이는 심리적이고 감정적인 느낌을 파악해야 함
  • 행동 반사
    • 중간 수준의 사고 과정. 도널드 노먼은 사람의 대부분 행동은 행동 반사 과정을 바탕으로 이뤄진다고 지적함.
    • 행동 반사를 만족시키는 디자인을 하려면, 제품의 행동이 사용자의 행동을 뒷받침해야 함.
    • 본능적 반사, 심사숙고 반사보다 더 흔히 일어남.
    • 인터랙션 디자인 시, 가장 큰 초점을 둬야 하는 부분
    • 본능적 반사와 심사숙고 반사는 행동 반사를 보조함
    • 행동 반사에 집중한 채 본능적 반사와 심사숙고 반사에 맞는 디자인 요소를 조화시켜야 함
  • 심사숙고 반사
    • 일정 시간 동안 깊은 생각에 잠긴 뒤에야 일어나는 과정. 과거 경험을 되개셔 본 뒤 반응하는 것임.
    • 본능적 반사와 직접 연결되지 않음
    • 가장 복잡한 단계 (심사숙고 반사를 만족시키는 디자인은 어렵다)
    • 기본적인 기능 + 사용자가 중요하게 생각하는 가치, 문화적 요소 + 미적 만족

3단계 사용자 목표

  • 경험적 목표
    • 단순하고 일반적이다. 지극히 개인적인 경우가 많다.
    • 경험적 목표란, 사용자가 제품을 사용하면서 어떻게 느끼고 싶어하는지를 말한다. 즉, 제품을 사용하는 동안 체험하는 인터랙션의 질을 의미한다.
    • 페르소나의 경험적 목표
      • 제품을 다루는 동안 스스로 현명하다고 느끼고 싶다
      • 즐겁게 사용하고 싶다
      • 보안 등 민감한 정보에 안심하고 싶다
      • 편안한 마음으로 멋진 제품을 즐기고 싶다
      • 제품 조작에 집중하고 싶다 경험적 목표를 만족시키지 못 하면, 제품은 실패한다. 가장한 중요한 목표임
  • 궁극적 목표
    • 궁극적 목표는 사용자가 왜, 어떤 동기로 특정 제품을 사용하는지 설명해 준다.
    • 행동 반사가 중심이 되는 궁극적 목표는 제품 전반적인 경험을 설계할 때, 가장 중요한 요소
    • 페르소나의 궁극적 목표
      • 심각한 문제가 발생하기 전에 미리 알고 싶다
      • 가족 및 친구들과 지속적으로 연락하고 싶다
      • 매일 오후 5시에 할 일 목록을 정리하고 싶다
      • 마음에 드는 음악을 찾고 싶다
      • 값 싸고 좋은 제품을 구매하고 싶다
  • 인생 목표
    • 지금 제품을 사용하는 순간을 넘어 개인적으로 성취하고자 하는 열망을 말 함
    • 제품의 전략, 브랜딩, 전반적인 디자인을 결정할 때, 인생 목표를 고려해야 함
    • 페르소나의 인생 목표는 다음과 같다
      • 즐거운 삶을 살고 싶다
      • 내 꿈을 달성하고 싶다
      • 이 분야의 전문가가 되고 싶다
      • 동료들로부터 인정받고 싶다
    • 경험적 목표와 궁극적 목표를 달성한 다음, 인생 목표까지 만족시키는 제품은 ’만족스런 사용자’를 ’충성 고객’으로 바꿔준다.

Comments

Popular posts from this blog

Sqlite database is locked

sqlite는 embedded system에서 널리 사용되는 무료 dbms?(dbms라고 말하긴 좀 그렇지만, dbms라 불러주자 ㅎ) 이다. 특히 memory db 기능이 아주 유용하다. 그 밖의 dbms에서도 이 기능이 있으나, 이 기능이 지원되는 버전은 대부분 고가이다. 따라서, 무료인 sqlite를 많이들 애용하는 것 같다. 멀티쓰레드를 sqlite DB를 구현하고 롱런테스트를 하다보면, pthread_mutex_lock으로 쓰레드 간의 교착상태를 막아줘도, sqlite lock 에러가 간헐적으로 발생할 것이다. 이에 대해 본인은 다음과 같은 에러 처리 구문을 준비하여 사용하고 있다. sqlite Error가 발생하면, sqlite3_exception함수를 호출한다. 이 함수에서 sqlite error code를 구분하여, 만약, busy 또는 locked이면 최대 2초간 sleep 상태로 만드는 sqlite3_busy_timeout, busy handler를 호출한다. 그 다음, goto 구문으로 재차 sqlite3_exec를 실행한다. 단, sqlite3_exec는 transaction의 begin과 commit 또는 rollback 구문 사이에서 실행한다. 대부분 lock 에러가 발생하더라도 1~2번 실패 후에, 처리된다는 것이 본인의 테스트 결과이다. 단, journal를 WAL로 변경하였음. 기존 journal은 멀티쓰레드 지향적이지 않다는 점을 잊지마시길.... Error Code SQLITE_LOCKED (6): Database Is Locked This error code occurs when you try to do two incompatible things with a database at the same time from the same database connection. For example, if you are in the middle of a SELECT statement and y...

맥OS 사전에 사전 파일 추가하기

1. http://code.google.com/p/mac-dictionary-kit/에서 sdconv를 다운로드 받는다. 2. e4u 등과 같은 사전 파일(stardict 형식)을 다운받는다. 3. 사전 파일의 압축을 풀면, e4u.ifo, e4u.dict.dz, e4u.idx와 같은 파일이 보인다. 4. sdconv 디렉터리 내의 convert 실행 파일로 convert e4u.ifo를 실행한다. 5. 위 과정이 완료되면 아래와 같이 사전에 e4u가 추가된 점을 확인할 수 있다. 6. 순서를 조절하여 사용하면 된다.

SAStruts란

SAStruts 개요 Struts는 Spring Framework 다음으로 많이 사용되고 있는 FrameWork이다. Struts는 프레임워크로 강력한 기능을 제공한다. 하지만, 개발 과정에서 부수적인 설정 작업이 개발자들을 힘들게 했다. 이 문제를 해결하기 위해, 일본 개발자 커뮤니티 Seasar(일본 오키나와의 전설 동물, 우리나라의 해태와 비슷^^) 에서 개발한 프레임워크가 SAStruts(Super Agile Struts)이다. 아래 아키텍처 그림과 같이, SAStruts의 모태는 Struts이다. 다만, 상기한 복잡하고 까다로운 설정 작업을 그림2와 같이 SAStruts가 개발자 대신 내부적으로 처리해 준다. 예를 들어, Struts는 항상 struts-config.xml을 읽고 Action 클래스를 호출한다. 이 때문에, 개발자는 소스 코드를 수정한 후, 늘 struts-c onfig.xml 파일을 검토 또는 수정해야 한다. 또한, 대형 프로젝트일 경우는, 이 struts-config.xml 파일이 경합을 자주 일으킨다. 이는 실로 개발자의 스트레스 치수를 높이는 원인이다. 반면, SAStruts는 이 번거로운 작업을 알아서 처리해 준다. 아리가또~~~ 입니다. 그림1 Struts 아키텍처 그림2 SAStruts 아키텍처 그럼, 이 번거로운 작업을 SAStruts는 어떻게 처리하는 것인지 궁금할 것이다. 그것은 Java의 annotation기술을 이용한 점이다. 예를 들어, @Execute, @ActionForm, @Resource 등 Seasar 커뮤니티에서 제공하는 Dolteng 플러그인을 사용하면, SAStruts 개발이 더욱 효율적이다. SAStruts 프로젝트는 다음과 같은 패키지 구조로 형성된다. [root package].action Action 클래스 [root package].condition 데이터베이스에 엑세스하는 조건 설정 [root p...