Gitsunmin

TIL

TIL
(=Today I Learned)

마이크로인터랙션

마이크로인터랙션은 무엇인가?

마이크로인터랙션이란?

마이크로인터랙션(Microinteraction)이란 사용자의 행동에 반응하여 제공되는 작은 단위의 상호작용을 의미합니다. 이는 사용자 경험(UX)을 향상시키고, 피드백을 제공하며, 직관적인 인터페이스를 만드는 데 중요한 역할을 합니다.

마이크로인터랙션의 주요 목적은 다음과 같습니다:

  • 사용자 피드백 제공: 버튼을 클릭하거나 폼을 제출할 때 시각적/청각적 피드백을 제공
  • 작업 상태 표시: 로딩 애니메이션, 데이터 저장 상태 표시 등
  • 사용자 행동 유도: 애니메이션을 통해 특정 기능을 유도하거나 강조
  • 감성적 경험 향상: 재미있는 애니메이션이나 상호작용을 통해 감성적인 만족감 제공

프론트엔드 개발에서는 CSS 애니메이션, JavaScript, 프레임워크(React, Vue 등)를 활용하여 마이크로인터랙션을 구현할 수 있습니다.

마이크로인터랙션의 단계

마이크로인터랙션은 네 가지 주요 단계로 구성됩니다.

1. 트리거 (Trigger)

트리거는 마이크로인터랙션을 시작하는 요소입니다. 사용자의 직접적인 행동이나 시스템 상태 변화에 의해 트리거될 수 있습니다.

  • 사용자 트리거: 버튼 클릭, 입력 필드 포커스, 마우스 오버 등
  • 시스템 트리거: 네트워크 요청 후 응답이 도착했을 때, 배터리 상태 변경, 알람 등

예시 (사용자 트리거):

<button class="like-btn">👍 좋아요</button>
.like-btn:hover {
  transform: scale(1.1);
  transition: transform 0.2s ease-in-out;
}

2. 동작규칙 (Rules)

동작규칙은 마이크로인터랙션이 작동하는 방식을 결정하는 규칙입니다. 특정 조건을 만족할 때 어떤 애니메이션이나 동작이 실행될지 정의합니다.

예시 (클릭 시 색상 변경):

document.querySelector('.like-btn').addEventListener('click', function() {
  this.classList.toggle('liked');
});
.liked {
  color: red;
}

3. 피드백 (Feedback)

피드백은 사용자가 동작을 수행했을 때 어떤 일이 발생했는지를 시각적, 청각적, 촉각적 요소로 전달하는 것입니다.

예시 (애니메이션 효과 추가):

.liked {
  color: red;
  transform: scale(1.2);
  transition: all 0.3s ease-in-out;
}

4. 순환과 모드 (Loops & Modes)

순환과 모드는 마이크로인터랙션이 반복되는지, 지속되는지 또는 특정 조건에서만 활성화되는지를 결정합니다.

  • 순환 (Looping): 애니메이션이 지속적으로 반복되는지 여부 (예: 로딩 스피너)
  • 모드 (Modes): 특정 상태에서만 동작하는지 여부 (예: 다크 모드 설정 유지)

예시 (로딩 스피너 구현):

<div class="loader"></div>
.loader {
  border: 4px solid #f3f3f3;
  border-top: 4px solid #3498db;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  animation: spin 1s linear infinite;
}

@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}