인터랙티브 컴포넌트 가이드
Published
- 32 min read
Contents ✚
이 문서는 아코디언, 탭, 콜아웃, 인용, FAQ, 코드블럭, 키보드, 다운로드 버튼 등 구조와 상호작용이 있는 서식 요소를 정리한 가이드입니다. 각 항목은 작성법과 렌더링 결과를 나란히 배치해 바로 복사해서 사용할 수 있습니다.
이 시리즈의 다른 가이드:
- 마크다운 요소 가이드 — 순수 마크다운 문법 (제목, 목록, 표, 인용, 코드, 각주 등)
- 기본 요소 가이드 — 이미지, 비디오, 화살표, 툴팁, 색상, 여백, 각주
아코디언
아코디언은 :::zippy[제목] 디렉티브로 생성합니다. 클릭 전까지 내용이 접혀 있어 문서 길이를 줄이면서도 정보를 유지할 수 있습니다. 자주 조회하지 않는 상세 내용, 예외 처리 절차, 보조 정보를 담기에 적합합니다.
기본
단락, 목록, 코드블럭 등 마크다운 문법을 내부에 자유롭게 사용할 수 있습니다.
작성법
:::zippy[제목]설명 단락, 목록, 코드 등 마크다운 문법을 함께 사용할 수 있습니다.:::렌더링 결과
예시 아코디언
아코디언은 긴 본문을 접어 두고 필요한 시점에만 펼쳐 읽도록 설계할 때 유용합니다. 운영 문서에서는 점검 기준, 예외 처리, 승인 조건을 한 덩어리로 묶어 제공하면 문서 길이를 줄이면서도 정보 누락을 막을 수 있습니다.
- 정책 변경 사유와 적용 일정을 함께 기록
- 담당자와 검수 완료 시각을 같은 블록에 기록
- 실패 시 복구 절차를 단계형으로 제공
여러 개 연속
아코디언을 연속으로 배치하면 각 항목을 독립적으로 접고 펼칠 수 있습니다. 유사한 성격의 내용을 그룹으로 구성할 때 적합합니다.
작성법
:::zippy[설치 순서]
1. 배포 대상 버전과 변경 이력 확인2. 사전 점검 체크리스트(로그/알림/헬스체크) 실행3. 적용 순서에 맞춰 배포 명령 실행4. 완료 후 모니터링 지표와 기능 상태 점검
:::
:::zippy[문제 해결]
- 배포 직후 오류가 발생하면 최근 변경 범위를 우선 확인- 롤백 기준(오류율, 응답 지연, 실패 트랜잭션)을 문서 기준과 비교- 권한/환경 변수/외부 API 상태를 순서대로 점검
:::렌더링 결과
설치 순서
- 배포 대상 버전과 변경 이력 확인
- 사전 점검 체크리스트(로그/알림/헬스체크) 실행
- 적용 순서에 맞춰 배포 명령 실행
- 완료 후 모니터링 지표와 기능 상태 점검
문제 해결
- 배포 직후 오류가 발생하면 최근 변경 범위를 우선 확인
- 롤백 기준(오류율, 응답 지연, 실패 트랜잭션)을 문서 기준과 비교
- 권한/환경 변수/외부 API 상태를 순서대로 점검
아코디언 내부에 다른 디렉티브 같이 사용
중첩 디렉티브를 사용할 때는 바깥 컨테이너의 콜론 개수를 한 단계 더 크게 잡아야 파싱이 안정적으로 동작합니다. :::zippy 안에 :::note를 쓰려면 바깥을 ::::zippy로 올려야 합니다.
작성법
::::zippy[고급 예시]:::note아코디언 안에서도 콜아웃 사용 가능:::
`코드`나 목록도 함께 작성 가능::::렌더링 결과
고급 예시 (중첩 동작)
아래 예시는 아코디언 내부에서 콜아웃과 코드블럭을 함께 사용하는 구조입니다. 긴 안내 문서를 작성할 때 핵심 경고와 실행 예시를 한 섹션에서 제공하면 정보 전달이 쉬워집니다.
사전 승인 없이 운영 값을 직접 변경하지 않도록 기준 문구를 고정해 두면, 문서 해석 차이를 줄일 수 있습니다.
pnpm buildpnpm preview- 변경 요청 번호 확인
- 승인자 확인
- 배포 후 상태 공유
탭
탭은 ::::tabs + :::tab[탭명] 구조로 생성합니다. OS별 명령, 환경별 설정, 요약/상세 보기처럼 동일 주제를 여러 관점으로 나눠 제공할 때 유용합니다. 페이지 스크롤 없이 관련 정보를 한 위치에서 전환할 수 있어 문서 밀도를 높이는 데 효과적입니다.
기본 2탭
작성법
::::tabs:::tab[요약]이 탭은 변경 목적과 영향 범위를 먼저 전달해야 할 때 사용합니다.
- 변경 목적: 왜 이 문서를 수정했는지- 영향 범위: 어떤 사용자/화면/기능이 달라지는지- 확인 기준: 수정 후 무엇을 검증해야 하는지
:::
:::tab[상세]이 탭은 실제 작업자가 그대로 따라할 수 있도록 절차 중심으로 작성합니다.
1. 사전 조건 확인2. 실행 단계 수행3. 결과 검증4. 실패 시 복구 절차
:::::::렌더링 결과
운영체제별 탭 (코드 포함)
OS별로 명령이 다를 때 탭으로 분리하면 독자가 자신의 환경에 맞는 내용만 확인할 수 있습니다. 탭 안에 코드블럭을 포함할 때는 코드블럭 내부 백틱과 충돌이 없도록 쿼트 수준을 높여 작성합니다.
작성법
::::tabs:::tab[Windows]
Windows 환경에서는 설치 관리자 확인 후 실행 권한을 먼저 점검합니다.아래 명령은 환경 확인용 예시이며, 실제 작업 전 PATH와 버전 충돌 여부를 함께 확인하는 것이 좋습니다.
```powershellwinget --version```
- 설치 경로 확인- 관리자 권한 필요 여부 확인- 실행 로그 저장 위치 확인
:::
:::tab[macOS]
macOS 환경에서는 쉘 설정 파일(`.zshrc`, `.zprofile`) 반영 여부를 먼저 확인합니다.동일 명령이어도 사용자 셸 설정에 따라 결과가 달라질 수 있으므로 버전 정보와 경로 정보를 함께 기록합니다.
```bashsw_vers```
- OS 버전 기록- 셸 환경 변수 확인- 도구 경로 충돌 확인
:::::::렌더링 결과
3탭 이상
탭 수에는 제한이 없습니다. 3개 이상 사용할 때도 구조는 동일합니다.
작성법
::::tabs:::tab[요약]의사결정자가 전체 변경 요지를 1분 내로 파악하는 상황을 가정합니다. 변경 목적, 기대 효과, 잠재 위험을 짧은 문장으로 정리하면 사전 승인 과정이 빨라집니다.::::::tab[상세]실제 작업자가 따라갈 절차를 기준으로 작성합니다. 입력값 형식, 필수 옵션, 예외 처리 기준을 순서대로 제공하면 재현성이 올라갑니다.::::::tab[트러블슈팅]장애 상황에서 바로 사용할 수 있는 점검 순서를 제공합니다. 로그 위치, 임계치 기준, 롤백 조건을 함께 명시하면 대응 시간이 줄어듭니다.:::::::렌더링 결과
탭 안에 콜아웃/코드 함께 사용
탭 내부에 콜아웃을 중첩할 때는 바깥 컨테이너 콜론 수를 한 단계 더 올립니다. :::::tabs 안에서 ::::tab + :::note 형태로 사용합니다.
작성법
:::::tabs::::tab[빠른 시작]:::note기본 옵션으로 먼저 실행한 뒤, 결과를 확인하고 고급 옵션을 단계적으로 적용합니다.:::
1. 기본 설정 적용2. 결과 확인3. 필요 시 고급 옵션 적용
::::::::tab[고급 설정]
```bashpnpm dev --host```
```bashpnpm build && pnpm preview```
고급 설정은 로컬 재현이 끝난 뒤에만 운영 환경에 반영하는 것을 권장합니다.
- 설정 변경 전후 비교값 기록- 실패 시 되돌릴 기준 명시- 검증 완료 시간과 담당자 기록
:::::::::중첩 디렉티브를 쓸 때는 바깥 컨테이너 콜론 수를 하나 더 늘리면 파싱 안정성이 올라갑니다.
렌더링 결과
콜아웃
콜아웃은 본문 흐름 중에 독자의 시선을 끌어야 하는 정보를 강조 블록으로 표시합니다. :::note는 참고·안내용, :::caution은 주의가 필요한 경고·위험 내용에 사용합니다.
note
:::note는 선택 사항이거나 추가 확인이 필요한 내용을 안내할 때 사용합니다. 기능 동작에는 영향을 주지 않지만 독자가 알아두면 유용한 정보에 적합합니다.
단일 라인
작성법
:::note이 설정은 선택 항목이며 기본값으로도 기능 사용이 가능합니다.:::렌더링 결과
이 설정은 선택 항목이며 기본값으로도 기능 사용이 가능합니다.
멀티 라인(다른 서식 포함)
작성법
:::note이 설정은 기능 동작에 필수는 아니지만, 문서 품질을 일정하게 유지하는 데 도움이 됩니다.문서 리뷰 시에는 아래 항목을 함께 점검하면 누락 가능성을 줄일 수 있습니다.
- 필수/선택 옵션 구분- 기본값과 권장값 분리- 변경 이력 링크 연결
검증 명령 예시: `pnpm build`<br />참고 문서: [문서 작성 규칙](https://example.com/docs/style-guide):::렌더링 결과
이 설정은 기능 동작에 필수는 아니지만, 문서 품질을 일정하게 유지하는 데 도움이 됩니다. 문서 리뷰 시에는 아래 항목을 함께 점검하면 누락 가능성을 줄일 수 있습니다.
- 필수/선택 옵션 구분
- 기본값과 권장값 분리
- 변경 이력 링크 연결
검증 명령 예시: pnpm build
참고 문서: 문서 작성 규칙
caution
:::caution은 잘못 적용하면 장애나 데이터 손실로 이어질 수 있는 경고에 사용합니다. 운영 값 변경, 롤백 조건, 승인 필요 사항 등을 표시할 때 적합합니다.
단일 라인
작성법
:::caution운영 값 변경은 승인 절차를 거친 뒤에만 진행합니다.:::렌더링 결과
운영 값 변경은 승인 절차를 거친 뒤에만 진행합니다.
멀티 라인(다른 서식 포함)
작성법
:::caution운영 환경 변경은 즉시 반영되므로 사전 점검 없이 적용하면 장애로 이어질 수 있습니다.아래 항목을 기준으로 변경 전후를 반드시 비교해 주세요.
1. 오류율/응답 시간 기준치 확인2. 롤백 기준 및 담당자 확인3. 공지 문구와 실제 영향 범위 일치 여부 확인
즉시 복구가 필요할 때는 `pnpm preview` 결과 확인 후 이전 버전으로 되돌립니다.<br />참고 문서: [릴리스 체크리스트](https://example.com/docs/release-checklist):::렌더링 결과
운영 환경 변경은 즉시 반영되므로 사전 점검 없이 적용하면 장애로 이어질 수 있습니다. 아래 항목을 기준으로 변경 전후를 반드시 비교해 주세요.
- 오류율/응답 시간 기준치 확인
- 롤백 기준 및 담당자 확인
- 공지 문구와 실제 영향 범위 일치 여부 확인
즉시 복구가 필요할 때는 pnpm preview 결과 확인 후 이전 버전으로 되돌립니다.
참고 문서: 릴리스 체크리스트
인용
:::quote[출처] 디렉티브는 외부 문구나 내부 정책 원칙을 강조해서 인용할 때 사용합니다. 일반 마크다운 > 인용문보다 시각적으로 더 부각됩니다. 대괄호 안에 출처나 제목을 적으면 하단에 표시됩니다.
작성법
:::quote[문서 작성 원칙]문서의 목적은 정보를 많이 담는 것이 아니라, 필요한 정보를 빠르게 찾고 같은 방식으로 재현할 수 있게 만드는 것입니다.:::렌더링 결과
문서의 목적은 정보를 많이 담는 것이 아니라, 필요한 정보를 빠르게 찾고 같은 방식으로 재현할 수 있게 만드는 것입니다.
멀티 라인(다른 서식 포함)
인용 블록 내부에도 마크다운 서식(목록, 링크, 인라인 코드)을 그대로 사용할 수 있습니다.
작성법
:::quote[문서 품질 기준]문서 업데이트는 기능 변경과 같은 수준으로 관리해야 하며, 아래 항목이 함께 갱신되어야 합니다.
- 변경 목적- 영향 범위- 검증 결과
참고 링크: [문서 작성 규칙](https://example.com/docs/style-guide):::렌더링 결과
FAQ
FAQ는 ::::faq + :::q[질문] 구조로 작성합니다. 동일한 질문이 반복되는 문서에서 응답 품질을 균일하게 유지할 때 효과적입니다. 질문 클릭 시 답변이 펼쳐지는 아코디언 방식으로 렌더링됩니다.
작성법
::::faq:::q[FAQ 섹션은 어떤 상황에서 사용하는 것이 적절한가요?]FAQ는 동일한 질문이 반복되는 문서에서 응답 품질을 균일하게 유지할 때 효과적입니다.특히 안내 문서가 길어질수록 핵심 질문을 상단에 모아두면 탐색 시간이 줄어듭니다.
- 정책/절차 문서: 공통 문의를 빠르게 안내- 설정 문서: 단계별 오류 원인을 분리해 설명- 배포 문서: 검수/복구 기준을 질문 단위로 정리
:::
:::q[답변 본문은 어느 정도 길이로 작성하는 것이 좋나요?]단문 한 줄로 끝내기보다, 핵심 설명 2~3문장과 보조 항목 목록을 함께 제공하는 구성이 안정적입니다.예를 들어 `필수 조건`, `예외 상황`, `확인 방법`을 분리하면 문서 해석 차이를 줄일 수 있습니다.
1. 필수 조건을 먼저 제시합니다.2. 예외 상황을 별도 항목으로 구분합니다.3. 마지막에 확인 경로(링크/명령)를 제공합니다.
참고 링크는 [문서 작성 규칙](https://example.com/docs/style-guide)처럼 명확한 이름으로 작성합니다.:::::::렌더링 결과
FAQ 섹션은 어떤 상황에서 사용하는 것이 적절한가요?
FAQ는 동일한 질문이 반복되는 문서에서 응답 품질을 균일하게 유지할 때 효과적입니다. 특히 안내 문서가 길어질수록 핵심 질문을 상단에 모아두면 탐색 시간이 줄어듭니다.
- 정책/절차 문서: 공통 문의를 빠르게 안내
- 설정 문서: 단계별 오류 원인을 분리해 설명
- 배포 문서: 검수/복구 기준을 질문 단위로 정리
답변 본문은 어느 정도 길이로 작성하는 것이 좋나요?
단문 한 줄로 끝내기보다, 핵심 설명 2~3문장과 보조 항목 목록을 함께 제공하는 구성이 안정적입니다.
예를 들어 필수 조건, 예외 상황, 확인 방법을 분리하면 문서 해석 차이를 줄일 수 있습니다.
- 필수 조건을 먼저 제시합니다.
- 예외 상황을 별도 항목으로 구분합니다.
- 마지막에 확인 경로(링크/명령)를 제공합니다.
참고 링크는 문서 작성 규칙처럼 명확한 이름으로 작성합니다.
코드블럭
코드블럭은 astro-expressive-code 기반으로 렌더링됩니다. 언어 지정, 줄 강조, 텍스트 마킹, 파일명 표시, 터미널 스타일 등 다양한 옵션을 백틱 세 개 뒤에 붙여 사용합니다.
기본
언어를 지정하면 해당 언어 구문 강조(syntax highlighting)가 적용됩니다.
작성법
```tsconst documentTitle = 'Sample Documentation'```렌더링 결과
const documentTitle = 'Sample Documentation'라인 강조
{n} 형식으로 강조할 줄 번호를 지정합니다. 범위는 {2-4}, 복수는 {1,3,5} 형식으로 사용합니다.
작성법
```js {2-3}function demo() { return 'highlight'}```렌더링 결과
function demo() { return 'highlight'}텍스트/삽입/삭제 강조
코드 내 특정 문자열을 강조하거나 추가/삭제 라인을 표시합니다. "string"으로 텍스트를, ins="추가" del="삭제"로 변경 라인을 나타낼 수 있습니다.
작성법
```js "return true" ins="추가" del="삭제"function demo() { console.log('삭제') return true}```렌더링 결과
function demo() { console.log('삭제') return true}파일 경로 표시
주석 첫 줄에 파일 경로를 작성하면 파일명 탭으로 표시됩니다. 코드가 어느 파일에 속하는지 명시할 때 사용합니다.
작성법
```js
// src/data/site.config.ts
export const siteConfig = {
homeLayout: 'list',
tocLayout: 'content',
commentsEnabled: true
}
```
렌더링 결과
export const siteConfig = { homeLayout: 'list', tocLayout: 'content', commentsEnabled: true}터미널 스타일
언어를 bash, sh, powershell 등으로 지정하면 터미널 프레임이 적용됩니다. 쉘 명령 예시를 제공할 때 시각적으로 구분하기 쉬워집니다.
작성법
```bashpnpm dev```렌더링 결과
pnpm dev언어 미지정(일반 텍스트)
언어를 모를 때는 text 또는 txt를 사용하면 안전합니다. 구문 강조 없이 고정폭 폰트만 적용됩니다. 환경 변수 목록처럼 특정 언어에 속하지 않는 내용에 적합합니다.
작성법
```txtREGION=ap-northeast-2FEATURE_FLAG=true```렌더링 결과
REGION=ap-northeast-2FEATURE_FLAG=true줄바꿈 비활성화 + 줄번호
wrap=false로 자동 줄바꿈을 끄면 긴 줄이 가로 스크롤로 유지됩니다. showLineNumbers를 추가하면 왼쪽에 줄 번호가 표시됩니다. 긴 단일 라인 코드의 길이를 그대로 보여줘야 할 때 유용합니다.
작성법
```js wrap=false showLineNumbersconst veryLongLine = 'wrap=false 예시는 긴 한 줄 텍스트가 컨테이너 너비를 넘어갈 때 자동 줄바꿈이 되지 않고 가로 스크롤로 유지되는지 확인하는 용도입니다.'```렌더링 결과
const veryLongLine = 'wrap=false 예시는 긴 한 줄 텍스트가 컨테이너 너비를 넘어갈 때 자동 줄바꿈이 되지 않고 가로 스크롤로 유지되는지 확인하는 용도입니다.'객체형 라인 마커(del/ins 범위)
{"숫자":줄번호} 형식의 객체형 마커로 강조, 삭제, 추가 범위를 동시에 지정할 수 있습니다. 코드 변경 사항을 리뷰 형식으로 문서화할 때 유용합니다.
작성법
```js title="astro.config.mjs" {"1":5} del={"2":7-8} ins={"3":10-12}import { defineConfig } from 'astro/config'import astroExpressiveCode from 'astro-expressive-code'
export default defineConfig({ integrations: [ astroExpressiveCode({ frames: { showCopyToClipboardButton: false }, styleOverrides: { frames: { shadowColor: '#124' } } }) ]})```렌더링 결과
import { defineConfig } from 'astro/config'import astroExpressiveCode from 'astro-expressive-code'
export default defineConfig({ integrations: [ astroExpressiveCode({ frames: { showCopyToClipboardButton: false }, styleOverrides: { frames: { shadowColor: '#124' } } }) ]})키보드
HTML <kbd> 태그로 키보드 단축키를 표시합니다. 단축키 안내, 조작 설명, 도움말 문서에서 실제 키 입력 표현이 필요할 때 사용합니다. 마크다운 내에서 HTML 태그를 그대로 사용할 수 있습니다.
작성법
<kbd>Ctrl</kbd> + <kbd>C</kbd> 로 복사합니다.렌더링 결과
Ctrl + C 로 복사합니다.
멀티 라인(다른 서식 포함)
목록과 함께 사용하면 단축키 목록을 깔끔하게 정리할 수 있습니다.
작성법
단축키 예시:
- 복사: <kbd>Ctrl</kbd> + <kbd>C</kbd> — 선택한 내용을 클립보드에 저장합니다.- 붙여넣기: <kbd>Ctrl</kbd> + <kbd>V</kbd> — 클립보드 내용을 현재 위치에 삽입합니다.- 저장: <kbd>Ctrl</kbd> + <kbd>S</kbd> — 현재 파일을 즉시 저장합니다.
운영체제별 차이는 [단축키 안내](https://example.com/docs/shortcuts) 문서에서 확인합니다.렌더링 결과
단축키 예시:
- 복사: Ctrl + C — 선택한 내용을 클립보드에 저장합니다.
- 붙여넣기: Ctrl + V — 클립보드 내용을 현재 위치에 삽입합니다.
- 저장: Ctrl + S — 현재 파일을 즉시 저장합니다.
운영체제별 차이는 단축키 안내 문서에서 확인합니다.
다운로드 버튼
.center-button + .button CSS 클래스를 사용해 중앙 정렬된 다운로드 버튼을 만듭니다. 파일 배포, 패키지 제공, 외부 링크 유도 등에 사용합니다. href에 실제 파일 URL을 넣으면 됩니다.
작성법
<div class="center-button"> <a href="https://example.com/file.zip" class="button">DOWNLOAD</a></div>렌더링 결과
멀티 라인(다른 서식 포함)
버튼 아래에 안내 문구를 함께 배치할 수 있습니다. 버튼과 설명 텍스트 사이는 빈 줄로 구분해야 합니다.
작성법
<div class="center-button"> <a href="https://example.com/docs/latest.zip" class="button">문서 패키지 다운로드</a></div>
<p>다운로드 전에는 버전 정보와 체크섬을 함께 확인하세요.</p>렌더링 결과
다운로드 전에는 버전 정보와 체크섬을 함께 확인하세요.
내부 문서 서식 규칙
이 블로그 문서 작성 시 일관성을 유지하기 위한 기준 규칙입니다. 새 문서를 만들거나 기존 문서를 수정할 때 기준점으로 사용합니다.
- 제목은
##부터 시작 —#(h1)은title프론트매터가 대신하므로 본문에서는 사용하지 않습니다. - 한 섹션에는 한 주제만 작성 — 섹션이 길어지면
###으로 하위 항목을 분리합니다. - 예시는 바로 복붙 가능한 형태로 작성 — 작성법과 렌더링 결과를 짝으로 배치합니다.
- 내부 링크:
[문서명](/슬러그/)형식 — slug는permalink프론트매터 값과 일치해야 합니다. - 이미지/파일은 문서 폴더 안에 두고
./파일명.png또는![[파일명.png]]로 참조합니다. - 중첩 디렉티브 사용 시 바깥 컨테이너의 콜론 수를 한 단계 올려 파싱 안정성을 확보합니다.
draft: true로 설정한 문서는 프로덕션 빌드에서 제외되지만 로컬 개발 서버에서는 정상 노출됩니다.