놀람 최소화 원칙

위키백과, 우리 모두의 백과사전.

놀람 최소화 원칙(principle of least astonishment, principle of least surprise, POLA)[1][2]사용자 인터페이스소프트웨어 설계에 적용되는 원칙이다.[3] "필요한 기능에 크나큰 깜짝 놀래킬만한 요소가 있다면 해당 기능을 다시 설계할 필요가 있을 수 있다"는 것이 이 원칙의 일반적인 공식이다.[4]

더 일반적으로 이야기하면 이 원칙은 시스템의 구성 요소가 대부분의 사용자들이 행동할 것으로 예측되는 방식으로 동작하는 것이 좋다는 것을 의미한다. 즉, 해당 동작이 사용자들을 놀래키지 않는 것이 좋다는 것이다.

공식[편집]

교과서적 공식은 다음과 같다: "사람들은 시스템의 일부이다. 설계는 사용자의 경험, 예측, 멘탈 모델과 일치하는 것이 좋다."[5]

이 원칙은 이전에 존재하던 사용자의 지식을 지렛대삼아 학습 곡선을 최소화하는 것이 목적인데, 이를테면 사용자에게 친숙할 가능성이 있는, 기능적으로 유사한 프로그램들로부터 상당 부분을 차용한 인터페이스를 설계함으로써 이루어진다.[1] 이러한 관점에서 사용자 예측은 특정 컴퓨팅 플랫폼이나 전통과 밀접한 관련이 있을 수 있다. 이를테면 유닉스 명령줄 프로그램들은 스위치의 관점에서 특정한 전통을 따를 것으로 예측되며,[1] 마이크로소프트 윈도우 프로그램들의 위젯들은 단축키의 관점에서 특정한 전통을 따를 것으로 예측된다.[6] 다른 예로, API와 같은 더 추상적인 구성에서는 함수나 메소드 이름들이 직관적으로 동작과 일치할 것으로 예측된다.[7] 이러한 실천은 합리적인 기본값 적용을 수반하기로 한다.[4]

같이 보기[편집]

각주[편집]

  1. Raymond, Eric Steven (2003). 《Applying the Rule of Least Surprise》. 《The Art of Unix Programming》 (faqs.org). 20쪽. ISBN 978-0-13-142901-7. 2020년 4월 9일에 확인함. 
  2. James, Geoffrey (1987). 《Law of Least Astonishment》. 《프로그래밍의 도》. 4.1. ISBN 0-931137-07-1. 2014년 2월 5일에 확인함. 
  3. Seebach, Peter (2001년 8월 1일). “The Principle of Least Astonishment”. 《The cranky user》. en:IBM DeveloperWorks. 2014년 1월 23일에 확인함. 
  4. Cowlishaw, M. F. (1984). “The design of the REXX language” (PDF). 《IBM Systems Journal》 23 (4): 333. doi:10.1147/sj.234.0326. 2014년 1월 23일에 확인함. Could there be a high astonishment factor associated with the new feature? If a feature is accidentally misapplied by the user and causes what appears to him to be an unpredictable result, that feature has a high astonishment factor and is therefore undesirable. If a necessary feature has a high astonishment factor, it may be necessary to redesign the feature. 
  5. Saltzer, J. H.; Kaashoek, Frans (2009). 《Principles of computer system design: an introduction》. Morgan Kaufmann. 85쪽. ISBN 978-0-12-374957-4. 
  6. Petroutsos, Evangelos (2010). 《Mastering Microsoft Visual Basic 2010》. Wiley. 133쪽. ISBN 978-0-470-53287-4. 
  7. Bloch, Joshua (2006). 〈How to design a good API and why it matters〉. 《Proceeding OOPSLA '06 Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications》. Association for Computing Machinery. 506–7쪽. doi:10.1145/1176617.1176622. ISBN 1-59593-491-X. 

외부 링크[편집]