아코디언(Accordion)

아코디언(Accordion)은 악기 아코디언처럼 접었다 펼쳤다 할 수 있는 형태의 UI 컴포넌트입니다. 수직으로 배치된 여러 개의 헤더를 클릭하면, 그 아래 숨겨져 있던 세부 내용이 나타나거나 사라지는 방식이죠. UX/UI 디자이너이자 개발자의 관점에서, 이 컴포넌트가 왜 중요하고 어떻게 설계해야 하는지 정리해 드립니다.

아코디언 이미지 예시

아코디언 예시 이미지

아코디언의 핵심 UX 목적: "점진적 정보 공개"

사용자가 모든 내용을 한꺼번에 읽어야 할 필요가 없을 때, 아코디언은 가장 강력한 도구가 됩니다.

  • 공간 절약: 긴 텍스트를 페이지에 그대로 나열하면 스크롤이 끝도 없이 길어집니다. 아코디언은 이를 깔끔하게 숨겨서 페이지의 가독성을 높입니다.
  • 사용자 주도권: 사용자는 자신이 관심 있는 제목만 클릭하여 내용을 확인하므로, 불필요한 정보에 압도되지 않습니다.
  • 계층 구조: 전체적인 목차를 먼저 보여주고, 세부 내용은 필요할 때만 보여줌으로써 사용자가 정보를 구조적으로 파악하게 돕습니다.

디자인 설계 시 주의사항

시각적 힌트(Visual Cues)

가장 중요한 부분입니다. 사용자가 클릭할 수 있다는 것을 알게 해야 합니다. 보통 우측에 + 아이콘이나 화살표(▼, ▲)를 배치합니다.

단일 확장 vs 다중 확장

  • 단일 확장: 하나를 열면 이전에 열려 있던 것이 자동으로 닫히게 설정합니다. (FAQ 페이지에 적합)
  • 다중 확장: 사용자가 여러 섹션을 동시에 열어두고 비교하며 읽을 수 있게 합니다. (설명서나 설정창에 적합)

초기 상태

특별한 이유가 없다면 첫 번째 섹션만 열어두거나, 모든 섹션을 닫아두어 사용자가 선택하게 하는 것이 일반적입니다.

실전 코드 예시 (HTML/CSS/jQuery)

아코디언은 jQuery의 .slideToggle() 메서드를 활용하면 아주 간단하게 만들 수 있습니다.

HTML

<div class="accordion">
  <div class="accordion-item">
    <div class="accordion-header">자주 묻는 질문 1 <span class="icon">▼</span></div>
    <div class="accordion-content">여기에 답변 내용이 들어갑니다.</div>
  </div>
  <div class="accordion-item">
    <div class="accordion-header">자주 묻는 질문 2 <span class="icon">▼</span></div>
    <div class="accordion-content">여기에 답변 내용이 들어갑니다.</div>
  </div>
</div>

CSS

.accordion-header {
  padding: 15px;
  background: #f4f4f4;
  cursor: pointer;
  border-bottom: 1px solid #ddd;
  display: flex;
  justify-content: space-between;
}

.accordion-content {
  padding: 15px;
  display: none; /* 기본적으로 숨김 */
  background: #fff;
  border-bottom: 1px solid #ddd;
}

jQuery

$(document).ready(function() {
  $('.accordion-header').on('click', function() {
    // 클릭한 헤더의 다음 요소(content)를 부드럽게 토글
    $(this).next('.accordion-content').slideToggle(300);
    
    // 아이콘 회전 효과 (선택 사항)
    $(this).find('.icon').toggleClass('rotate');
  });
});

실제 데모

자주 묻는 질문 1
자주 묻는 질문 2
자주 묻는 질문 3

아코디언 vs 탭(Tabs) vs 모달(Modal)

언제 무엇을 써야 할지 고민될 때 이 가이드를 참고하세요.

  • 아코디언: 수직 확장 - FAQ, 제품 상세 제원, 긴 텍스트 분할
  • 탭(Tabs): 수평 전환 - 서로 다른 범주의 내용 분리 (예: 상품설명, 후기)
  • 모달(Modal): 별도 레이어 - 사용자의 완전한 집중이 필요한 정보

교수님의 실전 팁

"아코디언의 핵심은 '사용자가 읽고 싶어 하는 것을 숨기지 않는 것'입니다. 만약 사용자가 반드시 알아야 하는 핵심 내용을 아코디언 깊숙한 곳에 숨겨두면, 사용자는 그 정보를 절대 보지 않을 확률이 높습니다. 중요도는 낮지만 알아두면 좋은 부가 정보를 숨길 때 가장 효과적입니다."