diff options
Diffstat (limited to 'docs/html-intl/intl/ko/design/patterns/notifications.jd')
-rw-r--r-- | docs/html-intl/intl/ko/design/patterns/notifications.jd | 872 |
1 files changed, 872 insertions, 0 deletions
diff --git a/docs/html-intl/intl/ko/design/patterns/notifications.jd b/docs/html-intl/intl/ko/design/patterns/notifications.jd new file mode 100644 index 0000000..aab5eac --- /dev/null +++ b/docs/html-intl/intl/ko/design/patterns/notifications.jd @@ -0,0 +1,872 @@ +page.title=알림 +page.tags="notifications","design","L" +@jd:body + + <a class="notice-developers" href="{@docRoot}training/notify-user/index.html"> + <div> + <h3>개발자 문서</h3> + <p>사용자에게 알리기</p> + </div> +</a> + +<a class="notice-designers" href="notifications_k.html"> + <div> + <h3>Android 4.4 이하 버전의 알림</h3> + </div> +</a> + +<!-- video box --> +<a class="notice-developers-video" href="https://www.youtube.com/watch?v=Uiq2kZ2JHVY"> +<div> + <h3>비디오</h3> + <p>DevBytes: Android L Developer Preview의 알림</p> +</div> +</a> + +<style> + .col-5, .col-6, .col-7 { + margin-left:0px; + } +</style> + +<p>알림 시스템을 사용하면 친구로부터 받은 새 채팅 메시지나 캘린더 이벤트와 같이 앱에서 관련된 +시기 적절한 +이벤트에 대한 알림을 사용자에게 표시할 수 있습니다. +알림을 중요한 +이벤트가 +발생한 경우 사용자에게 이에 대해 알리는 뉴스 채널이나 사용자가 앱에 집중하고 +있지 않은 동안에 이벤트를 시간순으로 기록하는 로그라고 생각하세요. 또한, 적절한 경우 모든 Android 기기에 걸쳐 동기화될 수도 있습니다.</p> + +<h4 id="New"><strong>Android 5.0의 새로운 기능</strong></h4> + +<p>Android 5.0에서는 구조적, +시각적, 그리고 기능적으로 중요한 업데이트를 알림을 통해 받을 수 있습니다.</p> + +<ul> + <li>새로운 +머티어리얼 디자인 테마와 일치하도록 알림이 시각적으로 바뀌었습니다.</li> + <li> 알림이 이제 기기 잠금 화면에 표시되나, +민감한 콘텐츠는 여전히 +숨길 수 있습니다.</li> + <li>기기가 사용 중일 때 수신되는 최우선 순위의 알림은 이제 +헤드업 알림이라는 새로운 형식을 사용합니다.</li> + <li>클라우드와 동기화되는 알림: Android +기기 중 하나에서 알림을 해지하면 +다른 기기에서도 해지됩니다.</li> +</ul> + +<p class="note"><strong>참고:</strong> 이 +Android 버전의 알림 디자인은 이전 버전과 많이 +다릅니다. 이전 +버전의 알림 디자인에 대한 자세한 내용은 <a href="./notifications_k.html">Android 4.4 이하 버전의 알림</a>을 참조하세요.</p> + +<h2 id="Anatomy">알림의 해부학적 구조</h2> + +<p>이 섹션에서는 알림의 기본적인 부분과 다양한 유형의 기기에서 알림이 어떻게 +표시될 수 있는지에 대해 살펴봅니다.</p> + +<h3 id="BaseLayout">기본 레이아웃</h3> + +<p>모든 알림은 기본적으로 다음을 포함하는 기본 레이아웃으로 구성됩니다.</p> + +<ul> + <li> 알림 <strong>아이콘</strong>. 알림 아이콘은 +알림을 발생시킨 앱을 나타냅니다. 또한, +앱이 두 가지 이상의 +유형을 생성하는 경우 알림 유형을 나타낼 수도 있습니다.</li> + <li> 알림 <strong>제목</strong> 및 추가 +<strong>텍스트</strong>.</li> + <li> <strong>타임스탬프</strong>.</li> +</ul> + +<p>이전 플랫폼 버전의 +{@link android.app.Notification.Builder Notification.Builder}로 생성된 알림은 시스템이 대신 +처리하는 사소한 스타일 변화를 제외하면 Android +5.0에서 똑같이 표시되고 동작합니다. 이전 +Android 버전의 알림에 대한 자세한 내용은 +<a href="./notifications_k.html">Android 4.4 이하 버전의 알림</a>을 참조하세요.</p></p> + + + <img style="margin:20px 0 0 0" src="{@docRoot}images/android-5.0/notifications/basic_combo.png" alt="" width="700px" /> + + +<div style="clear:both;margin-top:20px"> + <p class="img-caption"> + 핸드헬드 알림(왼쪽) 및 Wear에서 표시되는 동일한 알림(오른쪽)의 기본 레이아웃 +- 사용자 사진 및 알림 아이콘 포함 + </p> + </div> + +<h3 id="ExpandedLayouts">확장 레이아웃</h3> + + +<p>앱 알림이 얼마나 자세한 정보를 +제공하도록 할지는 직접 선택할 수 있습니다. 메시지의 처음 +몇 줄을 보여주거나 더 큰 이미지 미리보기를 보여줄 수 있습니다. 이러한 추가 +정보는 사용자에게 더 많은 +컨텍스트를 제공하며, 경우에 따라 이를 통해 사용자는 메시지 +전체를 읽을 수도 있습니다. 사용자는 +핀치-줌(pinch-zoom) 또는 한 손가락으로 밀기를 이용하여 축소 레이아웃과 +확장 레이아웃 간을 전환할 수 있습니다. + Android는 단일 이벤트 알림에 대해 세 개의 확장 레이아웃 +템플릿(텍스트, 받은 편지함, +이미지)을 애플리케이션에 사용할 수 있도록 제공합니다. 다음 이미지는 +단일 이벤트 알림이 +핸드헬드(왼쪽) 및 웨어러블(오른쪽)에서 어떻게 표시되는지 보여줍니다.</p> + +<img style="margin-top:30px" +src="{@docRoot}images/android-5.0/notifications/expandedtext_combo.png" + alt="" width="700px" height;="284px" /> +<img style="margin-top:30px" +src="{@docRoot}images/android-5.0/notifications/stack_combo.png" + alt="" width="700px" height;="284px" /> +<img style="margin-top:30px" +src="{@docRoot}images/android-5.0/notifications/ExpandedImage.png" + alt="" width="311px" height;="450px" /> + +<h3 id="actions" style="clear:both; margin-top:40px">작업</h3> + +<p>Android는 알림의 +맨 아래 부분에 표시되는 선택적인 작업을 지원합니다. +이러한 작업을 통해 사용자는 알림을 발생시킨 +애플리케이션을 열 필요 없이 알림 창에서 특정 +알림에 대한 가장 일반적인 태스크를 처리할 수 있습니다. +이 기능은 밀어서 해제하기와 함께 작용하여 상호 작용의 속도를 향상시키며, 사용자가 자신에게 중요한 알림에 +집중하는 데 도움이 됩니다.</p> + + + <img src="{@docRoot}images/android-5.0/notifications/action_combo.png" alt="" width="700px" /> + + + +<p style="clear:both">알림에 +포함할 작업의 수는 신중하게 결정해야 합니다. 더 많은 +작업을 포함할수록 인지적 복합성이 가중됩니다. 당장에 중요하며 의미 +있는 작업만 포함하여 작업 +수를 최소한으로 +제한해야 합니다.</p> + +<p>알림에 포함하기에 적합한 작업은 다음과 같습니다.</p> + +<ul> + <li> 표시하려는 +콘텐츠 유형과 관련하여 필수적이고, 자주 사용되며 전형적인 작업 + <li> 사용자가 신속하게 태스크를 완료할 수 있게 하는 작업 +</ul> + +<p>다음과 같은 작업은 피합니다.</p> + +<ul> + <li> 애매모호한 작업 + <li> "읽기" 또는 +"열기"와 같이 알림의 기본 작업과 동일한 작업 +</ul> + + + +<p>작업 +아이콘 및 이름으로 각각 구성된, 최대 세 개의 작업을 지정할 수 있습니다. + 단순한 기본 레이아웃에 작업을 추가하면 알림이 확장 가능하게 되며, +알림에 +확장 레이아웃이 없는 경우에도 이러한 사항이 적용됩니다. 작업은 +확장된 +알림에서만 표시되고 그 외에는 숨겨져 있으므로 +사용자가 알림에서 +호출할 수 있는 모든 작업을 관련 애플리케이션 내에서도 +사용할 수 있는지 확인해야 합니다.</p> + +<h2 style="clear:left">헤드업 알림</h2> +<div class="figure" style="width:311px"> + <img src="{@docRoot}images/android-5.0/notifications/hun-example.png" alt="" width="311px" /> + <p class="img-caption"> + 몰입형 앱의 +최상위에 +표시되는 헤드업 알림의 예(걸려오는 전화, 최우선 순위) + </p> +</div> + +<p>최우선 순위의 알림을 수신하면(오른쪽), 가능한 작업을 보여주는 확장된 레이아웃 형태로 +잠시 동안 사용자에게 +표시됩니다.</p> +<p> 그런 다음, 알림이 알림 +창으로 돌아갑니다. 알림에 대한 <a href="#correctly_set_and_manage_notification_priority">우선 순위</a> 플래그가 HIGH, MAX 또는 전체 화면으로 +지정된 경우 헤드업 알림이 표시됩니다.</p> + +<p><b>헤드업 알림의 좋은 예</b></p> + +<ul> + <li> 기기 사용 시 걸려오는 전화</li> + <li> 기기 사용 시 알람</li> + <li> 새 SMS 메시지</li> + <li> 배터리 부족</li> +</ul> + +<h2 style="clear:both" id="guidelines">가이드라인</h2> + + +<h3 id="MakeItPersonal">개인에 맞게 만들기</h3> + +<p>다른 사람이 보낸 항목(메시지 또는 +상태 업데이트)에 대한 알림의 경우 +{@link android.app.Notification.Builder#setLargeIcon setLargeIcon()}을 사용하여 그 사람의 이미지를 포함합니다. 또한 +그 사람에 대한 정보를 알림의 메타데이터에 추가합니다({@link android.app.Notification#EXTRA_PEOPLE} 참조).</p> + +<p>알림의 기본 아이콘이 여전히 표시됩니다. 따라서 사용자는 +해당 아이콘을 상태 표시줄에 +보이는 아이콘과 관련시킬 수 있습니다.</p> + + +<img src="{@docRoot}images/android-5.0/notifications/Triggered.png" alt="" width="311px" /> +<p style="margin-top:10px" class="img-caption"> + 누가 트리거했는지와 보낸 내용을 보여주는 알림입니다. +</p> + + +<h3 id="navigate_to_the_right_place">적합한 곳으로 이동하기</h3> + +<p>사용자가 작업 +버튼 외부에서 알림을 터치하면, 사용자가 알림에서 +참조되는 데이터를 확인하고 처리할 수 있는 곳에서 +앱이 열리도록 합니다. 대부분의 경우, 메시지와 같은 단일 데이터 항목을 표시하는 상세 뷰가 이에 해당합니다. +하지만 알림이 중첩되어 있을 경우에는 +요약 뷰일 수도 있습니다. 앱이 +최상위 레벨 아래의 위치에서 열린 경우 +사용자가 시스템의 뒤로 버튼을 눌러 최상위 레벨로 돌아갈 수 있도록 앱의 백 스택에 탐색 경로를 삽입합니다. 자세한 내용은 +<a href="{@docRoot}design/patterns/navigation.html#into-your-app">탐색</a> +디자인 패턴의 <em>홈 화면 위젯 및 알림을 통한 앱 탐색</em>을 참조하세요.</p> + +<h3 id="correctly_set_and_manage_notification_priority">알림의 +우선 순위를 정확하게 설정하고 +관리하기</h3> + +<p>Android는 알림 우선 순위 플래그를 지원합니다. 이 플래그를 통해 다른 알림에 상대적으로 알림이 표시되는 위치가 +결정되도록 할 수 있습니다. 또한 +사용자가 가장 중요한 알림을 항상 가장 먼저 볼 수 있게 +할 수 있습니다. 알림을 게시할 때 +다음 우선 순위 중에서 +선택할 수 있습니다.</p> +<table> + <tr> + <td class="tab0"> +<p><strong>우선 순위</strong></p> +</td> + <td class="tab0"> +<p><strong>용도</strong></p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>MAX</code></p> +</td> + <td class="tab1"> +<p>시간에 민감한 +또는 +특정 태스크를 계속 진행하기 전에 처리해야 할 +상황을 사용자에게 알리는 중요하고 긴급한 알림에 사용합니다.</p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>HIGH</code></p> +</td> + <td class="tab1"> +<p>중요한 대화에 주로 사용합니다. 일례로 사용자에게 특별히 흥미로운 내용이 포함된 메시지 또는 채팅 +이벤트가 이에 해당합니다. +최우선 순위의 알림은 헤드업 알림이 표시되도록 합니다.</p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>DEFAULT</code></p> +</td> + <td class="tab1"> +<p>여기서 설명하지 않은 기타 모든 우선 순위의 알림에 사용합니다.</p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>LOW</code></p> +</td> + <td class="tab1"> +<p>사용자에게 알려야 하지만 긴급하지 않은 +알림에 사용합니다. 우선 순위가 낮은 알림은 보통 목록의 맨 아래에 표시되며, +공개 또는 대상이 불특정한 소셜 업데이트에 사용하기 +좋습니다. 사용자가 +요구한 +알림이지만, 이러한 알림은 긴급하거나 직접적인 +대화를 우선할 수 없습니다.</p> +</td> + </tr> + <tr> + <td class="tab1"> +<p><code>MIN</code></p> +</td> + <td class="tab1"> +<p>날씨 정보 또는 상황에 맞는 +위치 정보와 같은 상황별 또는 배경 정보에 사용합니다. +최소 우선 순위 알림은 상태 표시줄에 표시되지 않습니다. 이러한 알림은 사용자가 알림 창을 확대하면 +볼 수 있습니다.</p> +</td> + </tr> +</table> + + +<h4 id="how_to_choose_an_appropriate_priority"><strong> +적절한 +우선 순위를 선택하는 방법</strong></h4> + +<p><code>DEFAULT</code>, <code>HIGH</code> 및 <code>MAX</code>는 작업을 중단시키는 우선 순위이며, 사용자의 액티비티를 +중단시키는 +위험 요소입니다. 앱 사용자를 성가시게 하지 않으려면 다음과 같은 +알림에만 작업을 중단시키는 우선 순위를 지정해야 합니다.</p> + +<ul> + <li> 다른 사람이 관련된 알림</li> + <li> 시간에 민감한 알림</li> + <li> 실제 환경에서의 사용자 행동을 즉시 바꿀 수 있는 알림</li> +</ul> + +<p><code>LOW</code> 및 <code>MIN</code>으로 설정된 알림도 사용자에게 +중요할 수 있습니다. 대부분은 아니지만 많은 알림이 사용자의 +즉각적인 주의를 필요로 하지 않거나 사용자의 손목에 진동을 줄 필요가 없지만, 사용자가 알림을 확인하고자 +했을 때 유용하다고 +여길 정보를 포함합니다. <code>LOW</code> 및 <code>MIN</code> +우선 순위 알림에 대한 조건은 다음과 같습니다.</p> + +<ul> + <li> 다른 사람이 관련되지 않음</li> + <li> 시간에 민감하지 않음</li> + <li> 사용자가 흥미를 가질 만하지만 시간이 있을 때 +보기를 원할 수 있는 내용을 포함함</li> +</ul> + + + <img src="{@docRoot}images/android-5.0/notifications/notifications_pattern_priority.png" alt="" width="700" /> + + +<h3 style="clear:both" id="set_a_notification_category">알림 +범주 설정하기</h3> + +<p>알림이 미리 정의된 범주에 포함될 경우(아래 +참조), +그에 따라 할당합니다. 알림 창(또는 +다른 알림 +수신자)과 같은 시스템 UI의 기능은 순위 및 필터링 결정을 내리는 데 이 정보를 활용할 수 있습니다.</p> +<table> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_CALL">CATEGORY_CALL</a></code></p> +</td> + <td> +<p>수신 전화(음성 또는 화상) 또는 이와 유사한 동기적 대화 +요청</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_MESSAGE">CATEGORY_MESSAGE</a></code></p> +</td> + <td> +<p>수신되는 직접 메시지(SMS, 인스턴트 메시지 등)</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_EMAIL">CATEGORY_EMAIL</a></code></p> +</td> + <td> +<p>비동기적 대량 메시지(이메일)</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_EVENT">CATEGORY_EVENT</a></code></p> +</td> + <td> +<p>캘린더 이벤트</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_PROMO">CATEGORY_PROMO</a></code></p> +</td> + <td> +<p>홍보 또는 광고</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_ALARM">CATEGORY_ALARM</a></code></p> +</td> + <td> +<p>알람 또는 타이머</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_PROGRESS">CATEGORY_PROGRESS</a></code></p> +</td> + <td> +<p>장기간 실행 중인 백그라운드 작업의 진행 상황</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_SOCIAL">CATEGORY_SOCIAL</a></code></p> +</td> + <td> +<p>소셜 네트워크 또는 공유 업데이트</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_ERROR">CATEGORY_ERROR</a></code></p> +</td> + <td> +<p>백그라운드 작업 또는 인증 상태 오류</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_TRANSPORT">CATEGORY_TRANSPORT</a></code></p> +</td> + <td> +<p>재생에 대한 미디어 전송 제어</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_SYSTEM">CATEGORY_SYSTEM</a></code></p> +</td> + <td> +<p>시스템 또는 기기 상태 업데이트. 시스템용으로 예약됨</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_SERVICE">CATEGORY_SERVICE</a></code></p> +</td> + <td> +<p>실행 중인 백그라운드 서비스에 대한 표시</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_RECOMMENDATION">CATEGORY_RECOMMENDATION</a></code></p> +</td> + <td> +<p>한 가지 특정 항목에 대한 구체적이고 시기적절한 권장 사항. 예를 들어, 뉴스 +앱이 사용자가 다음으로 읽기 원할 것이라고 생각하는 뉴스를 +권하고자 하는 경우</p> +</td> + </tr> + <tr> + <td> +<p><code><a +href="/reference/android/app/Notification.html#CATEGORY_STATUS">CATEGORY_STATUS</a></code></p> +</td> + <td> +<p>기기 또는 상황별 상태에 대한 지속적인 정보</p> +</td> + </tr> +</table> + +<h3 id="summarize_your_notifications">알림 요약하기</h3> + +<p>특정 유형의 알림이 이미 보류 중일 때 앱에서 같은 유형의 새 +알림을 보내려고 하는 경우, 이 앱에 대해 두 알림을 하나의 요약 알림으로 결합합니다. 새로운 개체는 +생성하지 않아야 합니다.</p> + +<p>요약 알림은 사용자가 특정 종류의 알림이 +몇 개나 보류 중인지 +파악할 수 있도록 간단한 개요를 표시합니다.</p> + +<div class="col-6"> + +<p><strong>잘못된 사용</strong></p> + <img src="{@docRoot}images/android-5.0/notifications/Summarise_Dont.png" alt="" width="311px" /> +</div> + +<div> +<p><strong>올바른 사용</strong></p> + + <img src="{@docRoot}images/android-5.0/notifications/Summarise_Do.png" alt="" width="311px" /> +</div> + +<p style="clear:left; padding-top:30px; padding-bottom:20px">확장된 다이제스트 레이아웃을 사용하여 +요약에 포함된 각각의 알림에 대한 +더 자세한 정보를 제공할 수 있습니다. 이 방식을 통해 사용자는 +어떠한 알림이 보류 중이고, +관련된 앱에서 +상세 정보를 읽고 싶을 정도로 알림이 흥미로운지를 +판단할 수 있습니다.</p> +<div class="col-6"> + <img src="{@docRoot}images/android-5.0/notifications/Stack.png" style="margin-bottom:20px" alt="" width="311px" /> + <p class="img-caption"> + 확장된 알림 및 축소된 요약 알림(<code>InboxStyle</code> 사용) + </p> +</div> + +<h3 style="clear:both" id="make_notifications_optional">알림을 +선택 항목으로 만들기</h3> + +<p>사용자는 항상 알림을 통제할 수 있어야 합니다. 애플리케이션 설정에 알림 설정 항목을 추가하여 +사용자가 앱의 +알림을 +해제하거나 경고 속성(예: 경고음 및 진동 사용 +여부)을 변경할 수 있도록 허용합니다.</p> + +<h3 id="use_distinct_icons">뚜렷한 아이콘 사용</h3> +<p>알림 영역을 봄으로써 사용자는 현재 +어떠한 종류의 +알림이 보류 중인지 파악할 수 있어야 합니다.</p> + +<div class="figure"> + <img src="{@docRoot}images/android-5.0/notifications/ProductIcons.png" alt="" width="420" /> +</div> + + <div><p><strong>올바른 사용</strong></p> + <p>Android 앱이 이미 제공하는 알림 아이콘을 살펴본 후 본인의 앱에서 +뚜렷히 나타날 수 있는 +알림 아이콘을 만듭니다.</p> + + <p><strong>올바른 사용</strong></p> + <p>작은 아이콘에 +적절한 <a href="/design/style/iconography.html#notification">알림 아이콘 스타일</a>을 사용하며, 작업 +아이콘에는 머티어리얼 라이트 +<a href="/design/style/iconography.html#action-bar">작업 모음 아이콘 +스타일</a>을 사용합니다.</p> +<p ><strong>올바른 사용</strong></p> +<p >아이콘은 시각적으로 단순하게 유지하고, +알아차리기 힘들 정도로 과도하게 세부적인 디자인은 피합니다.</p> + + <div><p><strong>잘못된 사용</strong></p> + <p>작은 +아이콘 및 작업 +아이콘에 알파(어둡게 설정 또는 페이드 효과)를 추가합니다. 아이콘의 가장자리를 안티-앨리어싱할 수는 있지만, Android가 이러한 +아이콘을 마스크(즉, +알파 채널만 사용됨)로 사용하기 때문에 일반적으로 이미지는 최대 수준의 +불투명도로 그려집니다.</p> + +</div> +<p style="clear:both"><strong>잘못된 사용</strong></p> + +<p>다른 앱과의 차별화를 위해 색상을 사용합니다. 알림 아이콘은 투명한 배경 이미지에 흰색 아이콘이어야만 +합니다.</p> + + +<h3 id="pulse_the_notification_led_appropriately">알림 LED를 +적절하게 사용하기</h3> + +<p>많은 Android 기기에는 알림 LED가 내장되어 있으며, 이러한 알림 LED는 화면이 꺼져 있을 때 +사용자에게 +이벤트에 대해 알리기 위해 사용됩니다. 우선 순위가 <code>MAX</code>, +<code>HIGH</code> 또는 <code>DEFAULT</code>인 알림의 경우 +LED가 켜지며, 낮은 우선 순위(<code>LOW</code> 및 +<code>MIN</code>)의 알림의 경우 LED가 켜지지 않습니다.</p> + +<p>알림과 관련하여 사용자는 LED도 제어할 수 있어야 합니다. +DEFAULT_LIGHTS를 사용하는 경우 +LED는 흰색으로 켜집니다. 사용자가 +명시적으로 지정한 경우 외에는 다른 알림 +색상을 사용할 수 없습니다.</p> + +<h2 id="building_notifications_that_users_care_about">사용자가 관심을 가질 만한 +알림 만들기</h2> + +<p>사용자의 사랑을 받는 앱을 만들기 위해서는 +알림을 신중하게 디자인해야 합니다. +알림은 앱의 목소리를 대변하며, 앱의 +개성에 큰 영향을 미칩니다. 원하지 않거나 +중요하지 않은 알림은 사용자를 성가시게 하거나 앱에서 +많은 신경을 +쓰게 하는 것에 대해 짜증이 나게 합니다. 따라서 알림을 사용할 때는 현명하게 판단해야 합니다.</p> + +<h3 id="when_to_display_a_notification">알림을 표시해야 하는 경우</h3> + +<p>사람들이 즐겨 사용하는 애플리케이션을 만들려면 사용자의 +주의와 집중을 흐트러뜨리지 않고 보호해야 하는 리소스임을 +인지하는 것이 중요합니다. Android의 +알림 시스템은 알림이 사용자의 주의를 최대한 방해하지 않도록 +디자인되었습니다. +하지만 +알림이 +사용자의 태스크 흐름을 방해한다는 사실을 계속해서 인지해야 합니다. +알림을 계획할 때 알림이 사용자의 작업을 중단할 만큼 +중요한지 곰곰히 생각해 보시기 바랍니다. 잘 모르겠는 경우, 사용자가 앱의 알림 설정을 사용하여 알림에 대한 수신 동의를 +선택할 수 있도록 허용하거나 알림 우선 순위 플래그를 <code>LOW</code> 또는 <code>MIN</code>으로 +조정하여 사용자 작업을 +방해하지 +않도록 합니다.</p> + + <img src="{@docRoot}images/android-5.0/notifications/TimeSensitive.png" alt="" width="311px" /> + <p style="margin-top:10px" class="img-caption"> + 시간에 민감한 알림의 예 + </p> + +<p>일반적으로 잘 만들어진 앱은 사용자의 요청이 있을 때에만 정보를 알리고 +요청하지 않은 알림은 꼭 필요한 경우에만 표시하도록 합니다.</p> + +<p>알림은 <strong>시간에 민감한 이벤트</strong>에 주로 사용하며, 특히 +이러한 동기적 이벤트에 <strong>다른 사람이 관련된 경우</strong>에 사용합니다. 예를 +들어 수신되는 채팅 메시지는 +실시간으로 진행되는 동기적 대화 형식이며, 이때 다른 사람은 +적극적으로 응답을 기다립니다. 캘린더 이벤트는 언제 +알림을 사용하고 +사용자의 주의를 끌어야 하는지에 대해 알 수 있는 또 다른 좋은 예입니다. 왜냐하면 이는 임박한 이벤트이며, 캘린더 이벤트에는 종종 다른 사람이 +관련되기 때문입니다.</p> + +<h3 style="clear:both" id="when_not_to_display_a_notification">알림을 +표시하지 않아야 하는 경우</h3> + +<div class="figure" style="margin-top:60px"> + <img src="{@docRoot}images/android-5.0/notifications/AntiSample1.png" alt="" width="311px" /> +</div> + +<p>다른 대부분의 경우 알림은 적합하지 않습니다.</p> + +<ul> + <li> 사용자와 +직접 관련이 없는 정보나 시간에 민감하지 않은 +정보는 알리지 않도록 합니다. 예를 들어 소셜 네트워크를 통한 비동기적이며 +대상이 불특정한 업데이트는 +일반적으로 실시간으로 +사용자를 방해할 수 없습니다. 그러한 업데이트를 원하는 사용자의 +경우에는 사전에 수신 동의를 설정할 수 있게 하면 됩니다.</li> + <li> 관련된 새 정보가 현재 +화면에 표시된 경우에는 알림을 생성하지 않아야 합니다. 대신 애플리케이션 UI를 +사용하여 컨텍스트 내에 새로운 정보가 있음을 사용자에게 +직접 알립니다. + 예를 들어 채팅 애플리케이션은 +사용자가 다른 사용자와 대화 중일 때는 시스템 알림을 생성하지 않아야 합니다.</li> + <li> 정보 저장 +또는 동기화, 애플리케이션 업데이트와 같은 낮은 수준의 기술 정보의 경우 사용자가 개입하지 +않아도 앱이나 시스템에서 스스로 알아서 처리할 수 있다면 사용자를 방해하지 않도록 합니다.</li> + <li> 사용자가 아무런 조치를 +취하지 않아도 애플리케이션 스스로 오류를 복구할 +수 있는 경우, 이러한 오류에 대해 사용자에게 알리지 않도록 합니다.</li> + <li> 알리는 내용은 없고 +단순히 앱을 +홍보하는 알림은 만들지 않습니다. 알림은 유용하고, 시기적절하며 새로운 정보를 제공해야 하며, 단지 앱 출시를 위한 용도로는 +사용하지 +않습니다.</li> + <li> 단지 +사용자에게 브랜드를 알리기 위한 불필요한 알림은 만들지 않도록 합니다. + 그러한 알림은 사용자를 짜증 나게 만들어 앱에 대한 관심을 멀어지게 합니다. 소량의 +업데이트된 정보를 제공하면서 사용자가 지속적으로 +앱에 관심을 +갖게 만드는 최고의 +방법은 +홈 화면에 추가할 수 있는 위젯을 개발하는 것입니다.</li> +</ul> + +<h2 style="clear:left" id="interacting_with_notifications">알림과 +상호 작용하기</h2> + +<p>알림은 상태 표시줄에 아이콘으로 표시되며, +알림 창을 열어서 +확인할 수 있습니다.</p> + +<p>알림을 터치하면 관련 앱이 열리고 알림에 +해당되는 세부 내용이 표시됩니다. 알림을 왼쪽이나 오른쪽으로 +스와이프하면 알림 창에서 제거됩니다.</p> + +<h3 id="ongoing_notifications">지속적인 알림</h3> +<div class="figure" style="width:311px"> + <img src="{@docRoot}images/android-5.0/notifications/MusicPlayback.png" alt="" width="311px" /> + <p class="img-caption"> + 음악 재생으로 인한 지속적인 알림 + </p> +</div> +<p>지속적인 알림은 +백그라운드에서 진행 중인 프로세스에 대해 사용자에게 알립니다. +예를 들어 음악 플레이어는 사용자가 재생을 멈출 때까지 +알림 시스템 내에 현재 재생 중인 트랙을 +계속 표시합니다. 또한 지속적인 알림은 파일을 다운로드하거나 비디오를 인코딩하는 등의 장기 태스크에 대한 +피드백을 사용자에게 +표시할 수도 있습니다. 지속적인 알림은 사용자가 알림 창에서 직접 +제거할 수 없습니다.</p> + +<h3 id="ongoing_notifications">미디어 재생</h3> +<p>Android 5.0에서는 잠금 화면에 사용이 중단된 +{@link android.media.RemoteControlClient} 클래스에 대한 전송 제어가 표시되지 않습니다. 하지만 알림은 <em>표시되며</em>, 각 +앱의 재생 알림이 현재 사용자가 잠금 상태에서 재생을 제어하는 기본 +방법입니다. 이 동작은 화면의 잠금 여부와 상관없이 사용자에게 +일관된 환경을 제공하면서, 어떠한 버튼을 +어떻게 표시할지에 대해 앱이 더 세부적으로 제어할 수 있도록 +지원합니다.</p> + +<h3 style="clear:both" +id="dialogs_and_toasts_are_for_feedback_not_notification">대화 상자 +및 알림 메시지</h3> + +<p>현재 +화면에 표시되어 있는 경우가 아니라면 앱은 대화 상자나 알림 메시지를 생성해서는 안 됩니다. 대화 상자나 알림 메시지는 +앱 내에서 +사용자가 어떠한 행동을 취했을 때 이에 대한 즉각적인 응답으로만 표시되어야 합니다. +대화 상자 및 알림 메시지 사용에 대한 자세한 지침은 +<a href="/design/patterns/confirming-acknowledging.html">확인 및 승인하기</a>를 참조하세요.</p> + +<h3>순위 및 순서</h3> + +<p>알림은 뉴스이므로, 기본적으로 발생한 순서의 역순으로 +표시되며, 특히 +앱에서 명시된 알림 +<a href="#correctly_set_and_manage_notification_priority">우선 순위</a>에 따라 순서가 결정됩니다.</p> + +<p>알림은 잠금 화면에서 중요한 부분이며, 기기의 화면이 켜질 +때마다 +표시됩니다. 잠금 화면의 공간은 협소하기 때문에 가장 긴급하고 관련 있는 알림을 식별하는 것이 +가장 +중요합니다. 이러한 +이유 때문에 Android에는 다음을 고려한 +더욱 정교한 정렬 알고리즘이 있습니다.</p> + +<ul> + <li> 타임스탬프 및 애플리케이션에 명시된 우선 순위.</li> + <li> 알림이 최근에 소리 또는 +진동으로 사용자를 방해했는지에 대한 여부. (즉, +휴대폰에서 방금 소리가 났을 때 사용자가 "방금 무슨 +일이 있었지?"에 대해 알고 싶어하는 경우 잠금 화면을 +보면 한 눈에 알 수 있어야 합니다.)</li> + <li> {@link android.app.Notification#EXTRA_PEOPLE}을 사용하여 알림에 첨부된 사람, +그리고 특히 즐겨찾기에 추가된 연락처인지에 대한 여부.</li> +</ul> + +<p>이러한 정렬 알고리즘을 잘 이용하기 위해서는 목록의 특정 부분에 초점을 두기 보다는 생성하고자 +하는 사용자 +환경에 초점을 둡니다.</p> + + <img src="{@docRoot}images/android-5.0/notifications/AntiSample3.png" alt="" width="700px" /> + + <p class="img-caption" style="margin-top:10px">Gmail 알림은 +기본 우선 순위이기 때문에 +보통은 행아웃과 같은 인스턴트 메시징 앱에서 온 메시지보다 하위에 정렬됩니다. 하지만 +새 메시지가 들어오면 +일시적으로 순위가 올라갑니다. + </p> + + +<h3>잠금 화면</h3> + +<p>알림은 잠금 화면에 표시되기 때문에 사용자의 개인 정보 보호가 +특히 +중요하게 고려해야 할 사항입니다. 알림은 종종 민감한 정보를 포함하기 때문에, 아무나 +기기의 화면을 켰을 때 볼 수 있게 할 필요는 +없습니다.</p> + +<ul> + <li> 보안 잠금 화면(PIN, 패턴 또는 암호)이 있는 기기의 인터페이스에는 +공개 및 비공개 부분이 있습니다. 공개 인터페이스는 보안 잠금 화면에 표시될 수 있기 때문에 +누구나 볼 수 있습니다. 비공개 인터페이스는 잠금 화면 뒤에 있기 때문에 +기기의 잠금 화면을 푼 사람만 볼 수 있습니다.</li> +</ul> + +<h3>보안 잠금 화면에 표시된 정보에 대한 사용자 제어</h3> +<div class="figure" style="width:311px"> + <img src="{@docRoot}images/android-5.0/notifications/LockScreen@2x.png" srcset="{@docRoot}images/android-5.0/notifications/LockScreen.png 1x" alt="" width="311px" /> + <p class="img-caption"> + 사용자가 기기의 잠금을 푼 후 보이는 콘텐츠와 함께 잠금 화면에 표시된 알림 + </p> +</div> + +<p>보안 잠금 화면을 설정할 때 사용자는 +민감한 세부 정보를 보안 잠금 화면에서 숨기도록 선택할 수 있습니다. 이러한 경우 시스템 UI는 알림의 <em>정보 공개 수준</em>을 +고려하여 +안전하게 표시할 수 있는 정보를 파악합니다.</p> +<p> 정보 공개 수준을 제어하려면 +<code><a +href="/reference/android/app/Notification.Builder.html#setVisibility(int)">Notification.Builder.setVisibility()</a></code>를 호출한 후 +다음 값 중 하나를 지정합니다.</p> + +<ul> + <li><code><a +href="/reference/android/app/Notification.html#VISIBILITY_PUBLIC">VISIBILITY_PUBLIC</a></code>. 알림의 전체 내용을 +표시합니다. + 정보 공개 수준을 지정하지 않을 경우 시스템 기본값입니다.</li> + <li><code><a +href="/reference/android/app/Notification.html#VISIBILITY_PRIVATE">VISIBILITY_PRIVATE</a></code>. +잠금 화면에 알림의 +아이콘과 알림을 게시한 앱의 이름을 포함하여 해당 알림의 존재에 대한 기본 정보를 표시합니다. 알림의 나머지 세부 사항은 표시되지 않습니다. +다음과 같은 몇 가지 유용한 사항을 염두해야 합니다. + <ul> + <li> 시스템이 보안 잠금 화면에 다른 공개 버전의 알림을 +표시하도록 제공하려는 경우, <code><a +href="/reference/android/app/Notification.html#publicVersion">Notification.publicVersion</a></code> +필드에 대체 +알림 개체를 제공해야 합니다. + <li> 이렇게 설정하면 앱에서 여전히 유용하지만 개인 정보를 노출하지 않는 편집된 버전의 +내용을 생성할 수 있습니다. 예를 들어, 알림에 SMS 텍스트, 발신자 이름 및 연락처 아이콘을 포함하는 +SMS 앱이 있다고 가정합니다. +이 알림은 <code>VISIBILITY_PRIVATE</code>여야 하지만, <code>publicVersion</code>은 다른 식별 +정보 없이 "3개의 새 메시지"와 같이 여전히 유용한 정보를 +포함할 수 있습니다. + </ul> + </li> + <li><code><a +href="/reference/android/app/Notification.html#VISIBILITY_SECRET">Notification.VISIBILITY_SECRET</a></code>. 최소한의 정보만 표시하며, 알림의 아이콘마저 +표시하지 않습니다.</li> +</ul> +<h2 style="clear:both" id="notifications_on_android_wear">Android Wear에 +표시되는 알림</h2> + +<p>Android Wear에 표시되는 알림과 해당 <em>작업</em>은 기본적으로 Wear 기기에 연결되어 있습니다. +개발자는 어떠한 알림을 +휴대폰에서 워치로, +그리고 그 반대로 연결할지 제어할 수 있습니다. 또한 개발자는 어떠한 작업을 연결할지도 제어할 수 있습니다. 앱이 +단일 탭으로 실행할 수 없는 +작업을 포함하는 경우, 이러한 작업을 +Wear +알림에 표시되지 않도록 숨기거나 Wear 앱에 연결하여 사용자가 +워치에서 작업을 +끝낼 수 있도록 합니다.</p> + +<h4>알림과 작업 연결하기</h4> + +<p>휴대폰과 같이 연결된 기기는 알림을 Wear 기기에 연결하여 해당 기기에서 +알림이 표시될 수 있게 합니다. 마찬가지로 작업도 연결할 수 있기 때문에 사용자는 Wear 기기에서 +알림을 바로 처리할 수 있습니다.</p> + +<p><strong>연결해야 할 사항</strong></p> + +<ul> + <li> 새 인스턴트 메시지</li> + <li> +1, Like, Heart와 같은 단일 탭 작업</li> +</ul> + +<img src="{@docRoot}images/android-5.0/notifications/WearBasic.png" width="156px" height="156px" alt="" /> + +<p><strong>연결하지 않아야 할 사항</strong></p> + +<ul> + <li> 새로 도착한 팟캐스트의 알림</li> + <li> 워치에서 수행할 수 없는 기능에 매핑되는 작업</li> +</ul> + + + +<p><h4>Wear에 대해서만 정의할 수 있는 고유한 작업</h4></p> + +<p>Wear에서만 수행할 수 있는 작업이 몇 가지 있으며, 이러한 작업은 다음과 같습니다.</p> + +<ul> + <li> "금방 올게"와 같은 미리 준비된 대답으로 구성된 빠른 목록</li> + <li> 휴대폰에서 열기</li> + <li> 음성 입력 화면을 불러오는 "댓글 달기" 또는 "응답" 작업</li> + <li> Wear에 특화된 앱을 실행하는 작업</li> +</ul> + +<img src="{@docRoot}images/android-5.0/notifications/ReplyAction.png" width="156px" height="156px" alt="" /> |