{{위키데이터 속성 추적}}
'''놀람 최소화 원칙'''({{lang|en|principle of least astonishment}}, {{lang|en|principle of least surprise}}, '''POLA''')<ref name="Raymond2004">{{서적 인용|url=http://www.catb.org/~esr/writings/taoup/html/ch11s01.html |title=Applying the Rule of Least Surprise |work=The Art of Unix Programming |first=Eric Steven |last=Raymond |authorlink=Eric S. Raymond |page=20 |publisher=faqs.org |year=2003 |isbn=978-0-13-142901-7 |accessdate=2020-04-09}}</ref><ref>{{서적 인용|url=http://www.canonical.org/~kragen/tao-of-programming.html#book4|first=Geoffrey |last=James|authorlink=The Tao of Programming<!--Geoffrey James (writer)-->|isbn=0-931137-07-1|title=Law of Least Astonishment|work=[[프로그래밍의 도]]|at=4.1|year=1987|accessdate=2014-02-05}}</ref>은 [[사용자 인터페이스]]와 [[소프트웨어 설계|소프트웨어]] 설계에 적용되는 원칙이다.<ref>{{웹 인용|url=http://www.ibm.com/developerworks/web/library/us-cranky10/index.html |title=The Principle of Least Astonishment |work=The cranky user |first=Peter |last=Seebach |publisher=[[:en:IBM DeveloperWorks]] |date=2001-08-01 |accessdate=2014-01-23}}</ref> "필요한 기능에 크나큰 깜짝 놀래킬만한 요소가 있다면 해당 기능을 다시 설계할 필요가 있을 수 있다"는 것이 이 원칙의 일반적인 공식이다.<ref name="rexx">{{저널 인용
|url=https://www.cs.tufts.edu/~nr/cs257/archive/mike-cowlishaw/rexx.pdf |title=The design of the REXX language |first=M. F. |last=Cowlishaw |journal=IBM Systems Journal |volume=23 |issue=4 |year=1984|page=333|quote=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.
|doi=10.1147/sj.234.0326|authorlink=Mike Cowlishaw|accessdate=2014-01-23}}</ref>

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

== 공식 ==
교과서적 공식은 다음과 같다: "사람들은 시스템의 일부이다. 설계는 사용자의 경험, 예측, [[멘탈 모델]]과 일치하는 것이 좋다."<ref name="SaltzerKaashoek2009">{{서적 인용|last1=Saltzer|first1=J. H.|last2=Kaashoek|first2=Frans|authorlink2 =  Frans Kaashoek | title=Principles of computer system design: an introduction |url=https://books.google.com/books?id=I-NOcVMGWSUC&pg=PA85|year=2009|publisher=Morgan Kaufmann|isbn=978-0-12-374957-4|page=85}}</ref>

이 원칙은 이전에 존재하던 사용자의 지식을 지렛대삼아 [[학습 곡선]]을 최소화하는 것이 목적인데, 이를테면 사용자에게 친숙할 가능성이 있는, 기능적으로 유사한 프로그램들로부터 상당 부분을 차용한 인터페이스를 설계함으로써 이루어진다.<ref name="Raymond2004" /> 이러한 관점에서 사용자 예측은 특정 [[컴퓨팅 플랫폼]]이나 [[전통]]과 밀접한 관련이 있을 수 있다. 이를테면 [[유닉스]] 명령줄 프로그램들은 [[스위치]]의 관점에서 특정한 전통을 따를 것으로 예측되며,<ref name="Raymond2004" /> [[마이크로소프트 윈도우]] 프로그램들의 [[GUI 위젯|위젯]]들은 [[단축키]]의 관점에서 특정한 전통을 따를 것으로 예측된다.<ref name="Petroutsos2010">{{서적 인용|last=Petroutsos|first=Evangelos|title=Mastering Microsoft Visual Basic 2010|url=https://books.google.com/books?id=x7LZTSVKZDoC&pg=PA133|year=2010|publisher=Wiley |isbn=978-0-470-53287-4|pages=133}}</ref> 다른 예로, [[API]]와 같은 더 추상적인 구성에서는 함수나 메소드 이름들이 직관적으로 동작과 일치할 것으로 예측된다.<ref>{{서적 인용|chapterurl=http://portal.acm.org/citation.cfm?id=1176622 |chapter=How to design a good API and why it matters |last=Bloch|first=Joshua |authorlink=Joshua Bloch |publisher=Association for Computing Machinery |year=2006 |pages=506–7  |doi=10.1145/1176617.1176622 |isbn=1-59593-491-X  |title=Proceeding OOPSLA '06 Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications }}</ref> 이러한 실천은 합리적인 [[기본값]] 적용을 수반하기로 한다.<ref name="rexx" />

== 같이 보기 ==
* [[설정보다 관습]]
* [[룩 앤드 필]]
* [[오컴의 면도날]]
* [[위지위그]]

== 각주 ==
{{각주}}

== 외부 링크 ==
* [http://c2.com/cgi/wiki?PrincipleOfLeastAstonishment Principle of Least Astonishment] at [[:en:Portland Pattern Repository]]

[[분류:발견법]]
[[분류:인간공학]]
[[분류:인간-컴퓨터 상호 작용]]
[[분류:프로그래밍 원칙]]