← 전체 카테고리
03

오버레이 & 피드백

이 문서에서 가장 중요한 카테고리입니다. "팝업 띄워주세요" 한마디에 개발자·디자이너·클라이언트가 각자 다른 걸 상상하고 있을 확률이 매우 높습니다.

23개 용어23개 라이브 데모
"팝업"은 되물어야 하는 단어입니다

팝업·모달·다이얼로그·얼럿은 대등한 형제가 아니라 층위가 다른 말입니다. 이 관계를 한 번 정리해두면 이 구역 전체가 풀립니다 → 깊게 보기: 팝업 4형제 정리하기

03

논모달 · 모달리스

Non-modal · Modeless

이런 상황에서 나옵니다

"작업하면서 같이 볼 수 있게 해주세요" — 흐름을 끊지 않아야 할 때.

떠 있어도 뒤의 화면을 계속 쓸 수 있는 상태입니다. 툴팁, 팝오버, 토스트, 사이드 패널이 여기에 해당합니다.

눈으로 보기 직접 눌러보세요
뒤쪽 화면입니다. 패널이 열려도 여기 버튼을 계속 누를 수 있습니다.

논모달 패널
뒤쪽 버튼이 눌렸습니다
헷갈리는 지점

모달로 만들지 논모달로 만들지는 디자인 취향이 아니라 기획 결정입니다. 사용자의 흐름을 끊어야 하면 모달, 참고만 시키면 논모달입니다. 논모달을 남발하면 화면이 정신없어집니다.

이렇게 요청하세요

이 패널은 논모달로 만들어주세요. 열려 있어도 뒤쪽 화면을 계속 조작할 수 있어야 합니다. 딤 처리는 하지 말아주세요.

04

다이얼로그

Dialog · 대화 상자

이런 상황에서 나옵니다

"확인 창 하나 만들어주세요" — 제목·내용·버튼이 있는 상자를 말할 때.

사용자와 정보를 주고받는 창 컴포넌트입니다. 제목·내용·버튼으로 구성됩니다.

눈으로 보기 직접 눌러보세요

제목 영역

본문 — 무엇을 물어보는지 씁니다.

이 상자 자체가 다이얼로그입니다. 이걸 어두운 배경 위에 띄우면 "모달 다이얼로그"가 됩니다.

헷갈리는 지점

다이얼로그는 모달일 수도 논모달일 수도 있습니다. 즉 "다이얼로그 = 물건", "모달 = 그 물건이 뒤를 막는 방식"입니다. 이 관계를 알면 세 단어(팝업·모달·다이얼로그)가 정리됩니다.

이렇게 요청하세요

다이얼로그 컴포넌트를 만들어주세요. 제목 / 본문 / 버튼 영역 구조이고, 모달·논모달 두 방식 모두 지원하게 해주세요. 최대 너비는 480px입니다.

05

얼럿

Alert · 알림창

이런 상황에서 나옵니다

"에러 나면 알려주세요" — 사용자에게 즉시 알리고 확인받아야 할 때.

다이얼로그의 한 종류로, 사용자에게 즉시 알리고 확인을 받는 가장 단순한 형태입니다. 보통 버튼이 [확인] 하나입니다.

눈으로 보기 직접 눌러보세요
저장에 실패한 상황을 가정합니다.

⚠️

저장하지 못했습니다

네트워크 연결을 확인해주세요.

헷갈리는 지점

브라우저 기본 alert()는 디자인을 전혀 못 바꾸고 페이지 전체가 멈춥니다. 디자인 시안대로 나오게 하려면 "직접 만든 얼럿"이 필요하고, 이건 별도 작업입니다. 시안만 그려두고 "브라우저 기본으로 해주세요"라고 하면 시안과 다른 화면이 나옵니다.

이렇게 요청하세요

브라우저 기본 alert() 대신 직접 만든 얼럿 다이얼로그를 써주세요. 디자인 시안대로 나와야 하고, 확인 버튼 하나만 있으면 됩니다.

06

컨펌

Confirm · 확인 다이얼로그

이런 상황에서 나옵니다

"삭제할 때 한 번 더 물어봐주세요" — 되돌릴 수 없는 행동 직전에.

삭제·결제처럼 되돌리기 어려운 행동 직전에 한 번 더 묻는 다이얼로그입니다. 버튼이 [취소]/[확인] 두 개입니다.

눈으로 보기 직접 눌러보세요
게시글을 지우려는 상황입니다.

이 글을 삭제할까요?

삭제한 글은 되돌릴 수 없습니다.

헷갈리는 지점

버튼 문구를 "확인/취소"로만 쓰면 사용자가 무엇에 동의하는지 헷갈립니다. "삭제하기 / 그대로 두기"처럼 행동을 그대로 적는 게 원칙입니다. 위험한 행동 버튼은 빨간색으로 구분합니다.

실무에서 쓸 때

컨펌을 남발하면 사용자가 읽지 않고 확인을 누르는 습관이 생겨서 오히려 위험해집니다. 되돌릴 수 있는 작업이면 컨펌 대신 스낵바 + 실행 취소가 더 낫습니다.

이렇게 요청하세요

삭제 시 컨펌 다이얼로그를 띄워주세요. 버튼 문구는 "삭제하기 / 그대로 두기"로 하고 삭제는 빨간색으로 해주세요. 이 다이얼로그는 딤을 눌러도 닫히지 않게 해주세요.

07

딤 · 백드롭 · 스크림

Dim · Backdrop · Scrim

이런 상황에서 나옵니다

"뒤에 딤 처리해주세요" — 모달 뒤를 어둡게 하는 처리를 말할 때.

모달 뒤를 어둡게 덮는 반투명 레이어입니다. 세 단어가 모두 같은 것을 가리킵니다.

눈으로 보기 직접 눌러보세요
아래 두 버튼의 차이를 비교해보세요.

닫힘 O

어두운 곳을 눌러보세요.

닫힘 X

어두운 곳을 눌러도 안 닫힙니다. 결제·약관 동의에 쓰는 방식입니다.

헷갈리는 지점

한국 실무는 "딤 처리", Material Design은 "스크림", 개발 코드에서는 "backdrop"이라고 씁니다. 딤을 눌렀을 때 닫히는지 아닌지를 설계서에 반드시 적어야 합니다 — 이걸 안 적어서 생기는 QA 이슈가 매우 흔합니다.

이렇게 요청하세요

모달 뒤에 딤(반투명 검정 48%)을 넣어주세요. 일반 안내는 딤 클릭 시 닫히게 하고, 결제·약관 동의처럼 반드시 응답이 필요한 경우에는 딤을 눌러도 닫히지 않게 해주세요.

08

포커스 트랩

Focus Trap

이런 상황에서 나옵니다

접근성 검수에서 "모달에 포커스 트랩이 없습니다"라는 지적을 받을 때.

모달이 열려 있는 동안 키보드 포커스가 모달 밖으로 나가지 못하게 가두는 처리입니다. Tab 키를 계속 눌러도 모달 안에서만 돕니다.

눈으로 보기 직접 눌러보세요
아래를 열고 Tab 키를 계속 눌러보세요.

Tab을 눌러보세요

포커스가 이 상자 안 3개 요소 사이에서만 순환합니다.

헷갈리는 지점

모달을 "제대로" 만들었는지 판별하는 기준입니다. 이게 없으면 키보드·스크린리더 사용자는 모달 뒤의 보이지 않는 요소로 포커스가 넘어가 길을 잃습니다. 검수 때 Tab 키만 눌러봐도 바로 확인됩니다.

이렇게 요청하세요

모달에 포커스 트랩을 넣어주세요. 열리면 첫 번째 요소로 포커스가 이동하고, Tab이 모달 안에서만 순환하며, 닫히면 원래 열었던 버튼으로 포커스가 되돌아가야 합니다.

09

바텀시트

Bottom Sheet

이런 상황에서 나옵니다

"모바일에서는 아래에서 올라오게 해주세요" — 모바일 모달 대안으로.

화면 아래에서 위로 올라오는 패널입니다. 모바일에서 모달 대신 널리 쓰입니다. 손이 닿기 쉬운 아래쪽에 있어서 조작이 편합니다.

눈으로 보기 직접 눌러보세요
모바일 화면이라고 가정합니다.

옵션 선택
헷갈리는 지점

모바일 화면에서는 가운데 모달보다 바텀시트가 거의 항상 더 낫습니다. PC에서는 모달, 모바일에서는 바텀시트로 다르게 가는 경우가 많은데, 이 경우 두 벌을 만들어야 한다는 걸 일정에 반영해야 합니다.

이렇게 요청하세요

767px 이하에서는 모달 대신 바텀시트로 올라오게 해주세요. 상단에 그랩 핸들을 넣고, 아래로 스와이프하거나 딤을 눌러 닫히게 해주세요.

10

액션시트

Action Sheet

이런 상황에서 나옵니다

아이폰을 쓰는 클라이언트가 "액션시트처럼 해주세요"라고 할 때.

화면 아래에서 올라오는 선택지 목록입니다. "공유하기 / 수정 / 삭제 / 취소" 같은 행동을 나열합니다.

눈으로 보기 직접 눌러보세요
공유하기
수정하기
삭제하기
헷갈리는 지점

iOS 고유 용어입니다. 안드로이드와 웹에서는 같은 걸 바텀시트로 만듭니다. 아이폰 쓰는 클라이언트가 "액션시트처럼"이라고 하면 이 모양을 말하는 겁니다.

이렇게 요청하세요

더보기 버튼을 누르면 iOS 액션시트 형태로 하단에서 올라오게 해주세요. 항목은 공유/수정/삭제이고 삭제는 빨간색, 아래에 별도로 취소 버튼을 두세요. 웹에서는 바텀시트로 구현하면 됩니다.

11

툴팁

Tooltip

이런 상황에서 나옵니다

"여기에 설명 좀 붙여주세요" — 짧은 보조 설명이 필요할 때.

마우스를 올리거나 포커스했을 때 나타나는 짧은 설명 텍스트입니다. 한 줄 정도의 보조 정보만 담습니다.

눈으로 보기 직접 눌러보세요

결제 시 적립금이 함께 쌓이며, 교환·반품도 신청할 수 있습니다.

점선 글자에 마우스를 올려보세요. (모바일이라면 아무 일도 일어나지 않는 것 — 그게 바로 문제입니다)

헷갈리는 지점

툴팁 안에 버튼이나 링크를 넣으면 그건 툴팁이 아니라 팝오버입니다.모바일에는 마우스 호버가 없어서 툴팁으로만 정보를 주면 모바일 사용자는 영영 못 봅니다. 중요한 정보는 툴팁에 넣으면 안 됩니다.

이렇게 요청하세요

이 항목에 툴팁을 붙여주세요. 단, 모바일에는 호버가 없으니 <b>탭으로도 열리게</b> 해주세요. 중요한 정보는 툴팁이 아니라 본문이나 헬퍼 텍스트로 노출해주세요.

12

팝오버

Popover

이런 상황에서 나옵니다

"버튼 옆에 작은 설정 패널 붙여주세요" — 툴팁보다 내용이 많고 조작이 필요할 때.

특정 요소에 붙어서 뜨는 작은 패널입니다. 툴팁과 달리 안에 버튼·링크·입력창을 넣을 수 있습니다.

눈으로 보기 직접 눌러보세요
정렬 기준
헷갈리는 지점

툴팁과의 구분 기준은 딱 하나 — 안의 내용을 조작할 수 있는가입니다. 조작 가능하면 팝오버, 읽기만 하면 툴팁입니다. 팝오버는 클릭으로 열고, 툴팁은 호버로 엽니다.

이렇게 요청하세요

필터 버튼에 팝오버를 붙여주세요. 안에 라디오 버튼과 적용 버튼이 들어갑니다. 클릭으로 열리고, 바깥을 클릭하거나 Esc로 닫히게 해주세요. (호버로 열리는 툴팁이 아닙니다)

13

토스트

Toast

이런 상황에서 나옵니다

"저장됐다고 살짝 알려주세요" — 흐름을 막지 않는 가벼운 알림.

화면 한쪽에 잠깐 떴다가 자동으로 사라지는 알림입니다. 토스터에서 빵이 튀어나오는 모습에서 온 이름입니다.

눈으로 보기 직접 눌러보세요
저장되었습니다
헷갈리는 지점

사용자의 작업을 방해하지 않는 가벼운 피드백에만 씁니다. 놓쳐도 괜찮은 내용이어야 합니다. 오류 메시지를 토스트로 처리하면 안 됩니다 — 사용자가 못 보고 지나갈 수 있고, 다시 볼 방법도 없습니다.

이렇게 요청하세요

저장 성공 시 토스트로 "저장되었습니다"를 2초간 띄워주세요. 화면 하단 가운데에 표시하고, 여러 개가 동시에 뜨면 쌓이게(스택) 해주세요.

14

스낵바

Snackbar

이런 상황에서 나옵니다

"삭제했는데 되돌릴 수 있게 해주세요" — 실행 취소를 제공할 때.

토스트와 거의 같지만 행동 버튼이 하나 붙어 있는 알림입니다. "삭제되었습니다 — [실행 취소]"처럼요.

눈으로 보기 직접 눌러보세요
메일 1개를 삭제했습니다 실행 취소

"정말 삭제할까요?"를 묻는 대신, 일단 실행하고 되돌릴 기회를 주는 방식입니다.

헷갈리는 지점

Material Design 용어이고, 실무에서는 토스트와 거의 구분 없이 섞어 씁니다. 굳이 나눈다면 버튼이 있으면 스낵바, 없으면 토스트입니다. 실행 취소를 붙이면 삭제 전 컨펌 다이얼로그를 없앨 수 있어 흐름이 훨씬 부드러워집니다.

이렇게 요청하세요

삭제할 때 컨펌 다이얼로그 대신, 일단 삭제하고 스낵바로 "1개 삭제됨 [실행 취소]"를 5초간 띄워주세요. 실행 취소를 누르면 복구되게 해주세요.

16

인라인 메시지

Inline Message

이런 상황에서 나옵니다

"어느 칸이 잘못됐는지 모르겠어요" — 폼 오류 처리 방식을 고칠 때.

문제가 생긴 요소 바로 옆이나 아래에 표시되는 안내·오류 문구입니다.

눈으로 보기 직접 눌러보세요
이메일 형식이 올바르지 않습니다
사용할 수 있는 아이디입니다
헷갈리는 지점

폼 오류는 토스트가 아니라 인라인이 원칙입니다. "필수 항목을 입력하세요"를 토스트로 띄우면 어느 칸이 문제인지 알 수 없습니다. 오류는 언제나 문제가 있는 자리에 붙여야 합니다.

이렇게 요청하세요

폼 오류는 해당 입력칸 바로 아래 인라인 메시지로 표시해주세요. 입력칸 테두리도 빨간색으로 바꾸고, 제출 시 첫 번째 오류 칸으로 스크롤·포커스 이동해주세요.

17

로딩 스피너

Spinner · Loader

이런 상황에서 나옵니다

"기다리는 동안 뭔가 보여주세요" — 얼마나 걸릴지 모를 때.

빙글빙글 도는 대기 표시입니다. 얼마나 걸릴지 알 수 없을 때 씁니다.

눈으로 보기 직접 눌러보세요
불러오는 중…
헷갈리는 지점

진행률을 알 수 있으면 프로그레스 바, 모를 때만 스피너입니다. 스피너가 3초 이상 도는 화면은 사용자가 "멈췄나?"라고 느끼므로, 그럴 땐 스켈레톤이나 안내 문구를 함께 씁니다.

이렇게 요청하세요

데이터를 불러오는 동안 스피너를 보여주세요. 다만 목록처럼 형태를 미리 알 수 있는 영역은 스피너 대신 스켈레톤 UI로 해주세요.

18

스켈레톤 UI

Skeleton

이런 상황에서 나옵니다

"로딩이 느려 보여요" — 체감 속도를 개선하고 싶을 때.

콘텐츠가 로딩되는 동안 들어올 자리에 회색 뼈대를 먼저 깔아두는 표현입니다.

눈으로 보기 직접 눌러보세요
헷갈리는 지점

실제 속도가 빨라지는 건 아니지만 체감 대기 시간이 줄어듭니다. 화면이 어떻게 채워질지 미리 보여주기 때문입니다. 요즘 서비스의 사실상 표준이라 시안에 로딩 상태도 같이 그려주는 게 좋습니다.

이렇게 요청하세요

목록 로딩 중에는 스피너 대신 스켈레톤 UI를 보여주세요. 실제 카드와 같은 크기·개수로 깔아서 로딩 후 화면이 덜컹거리지 않게 해주세요.

19

프로그레스 바

Progress Bar

이런 상황에서 나옵니다

"업로드 몇 % 됐는지 보여주세요" — 진행률을 알 수 있을 때.

작업 진행률을 길이나 퍼센트로 보여주는 표시입니다.

눈으로 보기 직접 눌러보세요
파일 업로드 중40%

아래 막대를 드래그해보세요.

헷갈리는 지점

파일 업로드처럼 끝을 알 수 있는 작업에만 씁니다. 진행률을 모르면서 가짜로 채우면 신뢰가 깨집니다. 여러 단계 폼에서는 스텝 인디케이터와 함께 쓰기도 합니다.

이렇게 요청하세요

파일 업로드에 프로그레스 바를 넣어주세요. 실제 전송 진행률을 반영하고 퍼센트 숫자도 함께 표시해주세요. 취소 버튼도 넣어주세요.

20

엠티 스테이트

Empty State · 빈 화면

이런 상황에서 나옵니다

개발 중 "데이터 없을 때는 뭐 보여줘요?"라는 질문이 나올 때. 시안에 없으면 여기서 막힙니다.

보여줄 데이터가 하나도 없을 때 나오는 화면입니다. "아직 주문 내역이 없습니다" 같은 화면입니다.

눈으로 보기 직접 눌러보세요
🗂️
아직 등록한 상품이 없어요
첫 상품을 등록하면 여기에 표시됩니다.
헷갈리는 지점

외주 프로젝트에서 가장 자주 빠뜨리는 화면입니다. 시안에 없으면 개발자가 임의로 만들거나 그냥 빈 화면이 나옵니다. 빈 화면은 ①왜 비었는지 ②무엇을 하면 되는지 두 가지를 반드시 담아야 합니다. 견적·일정에 꼭 포함시키세요.

실무에서 쓸 때

엠티 스테이트는 기회입니다. "아직 없습니다"로 끝내지 말고 첫 행동을 유도하는 버튼을 넣으면 전환율이 올라갑니다.

이렇게 요청하세요

데이터가 없을 때의 엠티 스테이트 화면을 만들어주세요. 아이콘 + "아직 ~가 없어요" + 한 줄 안내 + 첫 행동을 유도하는 버튼 구성으로 해주세요.

21

에러 스테이트

Error State

이런 상황에서 나옵니다

"서버 죽으면 어떤 화면 보여줘요?" — 오픈 직전에 급히 챙기게 되는 화면.

오류가 났을 때 보여주는 화면입니다. 404(페이지 없음), 500(서버 오류), 네트워크 끊김 등이 있습니다.

눈으로 보기 직접 눌러보세요
😵
잠시 문제가 발생했어요
잠시 후 다시 시도해주세요.
계속 문제가 있다면 고객센터로 문의해주세요.
헷갈리는 지점

엠티 스테이트와 마찬가지로 시안에서 자주 누락됩니다. 좋은 에러 화면은 사과문이 아니라 다음 행동(다시 시도·홈으로·문의하기)을 줍니다. 개발자에게 던지는 기술 용어("500 Internal Server Error")를 사용자에게 그대로 보여주면 안 됩니다.

이렇게 요청하세요

404 / 500 / 네트워크 오류 세 가지 에러 화면을 만들어주세요. 기술 코드는 노출하지 말고, 각각 "다시 시도"와 "홈으로" 버튼을 넣어주세요.

22

스플래시 스크린

Splash Screen

이런 상황에서 나옵니다

"앱 켤 때 로고 뜨는 화면" — 앱·PWA 초기 화면을 말할 때.

앱을 실행했을 때 준비되는 동안 잠깐 보이는 첫 화면입니다. 보통 로고만 있습니다.

눈으로 보기 직접 눌러보세요
📘
SERVICE NAME
헷갈리는 지점

일부러 오래 보여주면 안 됩니다. "브랜드 노출"을 이유로 3초씩 잡아두는 경우가 있는데, 사용자에게는 그냥 느린 앱입니다. 준비가 끝나면 즉시 넘어가야 합니다.

이렇게 요청하세요

앱 시작 시 스플래시 스크린을 넣어주세요. 로고만 표시하고, 초기화가 끝나면 <b>즉시</b> 메인으로 넘어가게 해주세요. 최소 노출 시간을 인위적으로 두지 말아주세요.

23

⭐ 팝업 vs 모달 vs 다이얼로그 vs 얼럿

The Big Four · 한 장 정리

이런 상황에서 나옵니다

이 네 단어가 회의에서 뒤섞여 나올 때 꺼내서 보여주면 즉시 정리됩니다.

가장 많이 혼동되는 네 단어의 관계입니다. 서로 대등한 형제가 아니라 층위가 다른 말이라는 게 핵심입니다.

눈으로 보기 직접 눌러보세요
팝업  — 층위 없는 뭉뚱그린 말. 회의에서 나오면 되물을 것
모달  — 방식: 뒤를 막는가? (막으면 모달 / 안 막으면 논모달)
다이얼로그  — 물건: 제목·내용·버튼으로 된 상자
얼럿 / 컨펌  — 종류: 알리기만 / 확인받기

들여쓰기가 곧 포함 관계입니다. → 깊게 보기에서 단계별로 실습하기

헷갈리는 지점

한 문장으로 외우세요 — "다이얼로그(물건)를 모달(방식)로 띄웠는데, 그중 단순히 알리기만 하는 게 얼럿(종류)이고, 이 모든 걸 뭉뚱그려 부르는 잘못된 말이 팝업이다."

이렇게 요청하세요

앞으로 "팝업" 대신 정확한 이름으로 요청드리겠습니다 — 뒤를 막아야 하면 "모달 다이얼로그", 확인만 받으면 "얼럿", 되돌릴 수 없는 행동 전이면 "컨펌", 잠깐 알리기만 하면 "토스트"로 부르겠습니다.