Markdown 서식확인 샘플

2026. 4. 20. 09:18·티스토리

제목 1 (Heading 1)

제목 2 (Heading 2)

제목 3 (Heading 3)

제목 4 (Heading 4)

제목 5 (Heading 5)
제목 6 (Heading 6)

📌 텍스트 스타일

이것은 굵은 텍스트(Bold) 입니다.
이것은 기울임 텍스트(Italic) 입니다.
이것은 굵은 기울임(Bold & Italic) 입니다.
이것은

취소선(Strikethrough)

입니다.
이것은 인라인 코드(Inline Code) 입니다.
이것은 밑줄(Underline) 입니다.
이것은 일반 텍스트^위첨자^ 입니다.
이것은 일반 텍스트

아래첨자

입니다.

💡 이것은 인용문(Blockquote) 입니다.
여러 줄로 작성할 수 있습니다.

중첩된 인용문도 가능합니다.

3단계 중첩 인용문


📋 목록 (Lists)

순서 없는 목록

  • 항목 1
    • 하위 항목 1-1
      • 하위 항목 1-1-1
    • 하위 항목 1-2
  • 항목 2
  • 항목 3

순서 있는 목록

  1. 첫 번째
  2. 두 번째
    1. 두 번째의 하위 1
    2. 두 번째의 하위 2
  3. 세 번째

체크리스트

  • 완료된 항목
  • 이것도 완료
  • 미완료 항목
  • 아직 안 한 일

🔗 링크 & 이미지

링크

구글 바로가기
네이버

자동 링크

https://www.github.com

이미지

대체 텍스트

이미지 + 링크

클릭 가능한 이미지


📊 테이블 (Table)

이름 나이 직업 비고
홍길동 25 개발자 풀스택
김철수 30 디자이너 UI/UX
이영희 28 PM 퇴사
박지민 22 학생 인턴

:--- 왼쪽 정렬 | :---: 가운데 정렬 | ---: 오른쪽 정렬


💻 코드 블록 (Code Blocks)

JavaScript

// 화살표 함수와 비동기 처리
const fetchUserData = async (userId) => {
  try {
    const response = await fetch(`/api/users/${userId}`);
    const data = await response.json();

    const { name, email, age } = data;
    console.log(`사용자: ${name}, 이메일: ${email}`);

    return data;
  } catch (error) {
    console.error('데이터 가져오기 실패:', error.message);
    throw error;
  }
};

// 배열 메서드 체이닝
const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
const result = numbers
  .filter(n => n % 2 === 0)
  .map(n => n ** 2)
  .reduce((acc, cur) => acc + cur, 0);

console.log(result); // 220

Python

from dataclasses import dataclass
from typing import List, Optional
import asyncio

@dataclass
class User:
    name: str
    email: str
    age: int
    role: str = "member"

class UserService:
    def __init__(self):
        self._users: List[User] = []

    async def get_active_users(self) -> List[User]:
        """활성 사용자 목록을 반환합니다."""
        users = await self._fetch_from_db()
        return [u for u in users if u.role != "inactive"]

    def add_user(self, name: str, email: str, age: int) -> User:
        user = User(name=name, email=email, age=age)
        self._users.append(user)
        return user

# 딕셔너리 컴프리헨션
scores = {"alice": 85, "bob": 92, "charlie": 78, "diana": 95}
top_students = {k: v for k, v in scores.items() if v >= 90}
print(top_students)  # {'bob': 92, 'diana': 95}

TypeScript

interface ApiResponse<T> {
  data: T;
  status: number;
  message: string;
  timestamp: Date;
}

type UserRole = 'admin' | 'editor' | 'viewer';

interface User {
  id: number;
  name: string;
  email: string;
  role: UserRole;
  createdAt: Date;
}

async function fetchUsers(): Promise<ApiResponse<User[]>> {
  const response = await fetch('/api/users');
  if (!response.ok) {
    throw new Error(`HTTP error! status: ${response.status}`);
  }
  return response.json();
}

// 제네릭 유틸리티
function groupBy<T>(array: T[], key: keyof T): Record<string, T[]> {
  return array.reduce((groups, item) => {
    const value = String(item[key]);
    groups[value] = [...(groups[value] || []), item];
    return groups;
  }, {} as Record<string, T[]>);
}

HTML / CSS

<!DOCTYPE html>
<html lang="ko">
<head>
  <meta charset="UTF-8">
  <title>샘플 페이지</title>
  <style>
    .container {
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
      gap: 1.5rem;
      padding: 2rem;
    }
    .card {
      border-radius: 12px;
      box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
      padding: 1.5rem;
      transition: transform 0.2s ease;
    }
    .card:hover {
      transform: translateY(-4px);
    }
  </style>
</head>
<body>
  <div class="container">
    <div class="card">
      <h2>카드 제목</h2>
      <p>카드 내용입니다.</p>
    </div>
  </div>
</body>
</html>

Bash / Shell

#!/bin/bash

# 변수 및 조건문
PROJECT_NAME="my-project"
ENV="${1:-development}"

echo "🚀 배포 시작: $PROJECT_NAME ($ENV)"

if [ "$ENV" = "production" ]; then
    echo "⚠️  프로덕션 배포입니다!"
    read -p "계속하시겠습니까? (y/n): " confirm
    [ "$confirm" != "y" ] && exit 1
fi

# 함수 정의
deploy() {
    local env=$1
    echo "📦 빌드 중..."
    npm run build --mode="$env"
    echo "✅ 배포 완료!"
}

deploy "$ENV"

SQL

-- 사용자별 월간 주문 통계
SELECT
    u.name AS 사용자명,
    DATE_FORMAT(o.created_at, '%Y-%m') AS 주문월,
    COUNT(o.id) AS 주문건수,
    SUM(o.total_amount) AS 총주문금액,
    AVG(o.total_amount) AS 평균주문금액,
    RANK() OVER (
        PARTITION BY DATE_FORMAT(o.created_at, '%Y-%m')
        ORDER BY SUM(o.total_amount) DESC
    ) AS 순위
FROM users u
INNER JOIN orders o ON u.id = o.user_id
WHERE o.status = 'completed'
  AND o.created_at >= '2024-01-01'
GROUP BY u.name, DATE_FORMAT(o.created_at, '%Y-%m')
HAVING COUNT(o.id) >= 3
ORDER BY 주문월 DESC, 총주문금액 DESC;

JSON

{
  "project": "markdown-sample",
  "version": "2.0.0",
  "author": {
    "name": "홍길동",
    "email": "hong@example.com"
  },
  "dependencies": {
    "react": "^18.2.0",
    "next": "^14.0.0",
    "typescript": "^5.3.0"
  },
  "scripts": {
    "dev": "next dev",
    "build": "next build",
    "start": "next start"
  },
  "features": ["dark-mode", "i18n", "analytics"],
  "config": {
    "port": 3000,
    "debug": false,
    "maxRetries": 3
  }
}

YAML

# Docker Compose 설정
version: '3.8'

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "3000:3000"
    environment:
      - NODE_ENV=production
      - DATABASE_URL=postgresql://user:pass@db:5432/mydb
    depends_on:
      - db
      - redis
    restart: unless-stopped

  db:
    image: postgres:16-alpine
    volumes:
      - postgres_data:/var/lib/postgresql/data
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: user
      POSTGRES_PASSWORD: pass

  redis:
    image: redis:7-alpine
    ports:
      - "6379:6379"

volumes:
  postgres_data:

📐 Mermaid 다이어그램

플로우차트 (Flowchart)

flowchart TD
    A[🏠 시작] --> B{로그인 여부?}
    B -->|Yes| C[✅ 대시보드]
    B -->|No| D[🔑 로그인 페이지]
    D --> E{인증 성공?}
    E -->|Yes| C
    E -->|No| F[❌ 에러 메시지]
    F --> D
    C --> G[📊 데이터 조회]
    C --> H[⚙️ 설정]
    C --> I[📝 콘텐츠 관리]
    G --> J[📈 리포트 생성]
    I --> K[✏️ 글 작성]
    I --> L[🗑️ 글 삭제]

    style A fill:#4CAF50,color:#fff
    style C fill:#2196F3,color:#fff
    style F fill:#f44336,color:#fff

시퀀스 다이어그램 (Sequence Diagram)

sequenceDiagram
    actor User as 👤 사용자
    participant FE as 🖥️ 프론트엔드
    participant API as ⚙️ API 서버
    participant DB as 🗄️ 데이터베이스
    participant Cache as 📦 Redis

    User->>FE: 로그인 요청
    FE->>API: POST /api/auth/login
    API->>DB: 사용자 조회
    DB-->>API: 사용자 정보
    API->>API: 비밀번호 검증
    API->>Cache: 세션 저장
    Cache-->>API: OK
    API-->>FE: JWT 토큰 반환
    FE-->>User: 로그인 성공 🎉

    Note over User,Cache: 이후 API 요청 시

    User->>FE: 데이터 요청
    FE->>API: GET /api/data (+ JWT)
    API->>Cache: 캐시 확인
    alt 캐시 히트
        Cache-->>API: 캐시된 데이터
    else 캐시 미스
        API->>DB: 데이터 조회
        DB-->>API: 조회 결과
        API->>Cache: 캐시 저장
    end
    API-->>FE: 데이터 응답
    FE-->>User: 화면 렌더링

클래스 다이어그램 (Class Diagram)

classDiagram
    class User {
        +int id
        +String name
        +String email
        +UserRole role
        +login()
        +logout()
        +updateProfile()
    }

    class Post {
        +int id
        +String title
        +String content
        +Date createdAt
        +publish()
        +archive()
    }

    class Comment {
        +int id
        +String body
        +Date createdAt
        +edit()
        +delete()
    }

    class Category {
        +int id
        +String name
        +String slug
    }

    User "1" --> "*" Post : 작성
    User "1" --> "*" Comment : 작성
    Post "1" --> "*" Comment : 포함
    Post "*" --> "*" Category : 분류

ER 다이어그램 (Entity Relationship)

erDiagram
    USERS ||--o{ ORDERS : "주문하다"
    USERS ||--o{ REVIEWS : "작성하다"
    ORDERS ||--|{ ORDER_ITEMS : "포함하다"
    PRODUCTS ||--o{ ORDER_ITEMS : "주문되다"
    PRODUCTS ||--o{ REVIEWS : "리뷰받다"
    CATEGORIES ||--o{ PRODUCTS : "분류하다"

    USERS {
        int id PK
        string name
        string email UK
        string password
        date created_at
    }

    PRODUCTS {
        int id PK
        string name
        int price
        int stock
        int category_id FK
    }

    ORDERS {
        int id PK
        int user_id FK
        string status
        int total_amount
        date ordered_at
    }

    ORDER_ITEMS {
        int id PK
        int order_id FK
        int product_id FK
        int quantity
        int unit_price
    }

상태 다이어그램 (State Diagram)

stateDiagram-v2
    [*] --> 작성중

    작성중 --> 검토중: 제출
    검토중 --> 승인됨: 승인
    검토중 --> 반려됨: 반려
    반려됨 --> 작성중: 수정
    승인됨 --> 게시됨: 게시
    게시됨 --> 보관됨: 보관
    보관됨 --> 게시됨: 복원
    게시됨 --> [*]: 삭제

    state 검토중 {
        [*] --> 1차검토
        1차검토 --> 2차검토: 통과
        2차검토 --> [*]: 완료
    }

간트 차트 (Gantt Chart)

gantt
    title 프로젝트 개발 일정
    dateFormat  YYYY-MM-DD
    axisFormat  %m/%d

    section 기획
    요구사항 분석      :done,    req, 2024-01-01, 7d
    화면 설계          :done,    design, after req, 5d
    기술 스택 결정     :done,    tech, after req, 3d

    section 개발
    DB 설계            :active,  db, after design, 5d
    API 개발           :active,  api, after db, 14d
    프론트엔드 개발     :         fe, after db, 18d
    통합 테스트        :         test, after api, 7d

    section 배포
    스테이징 배포      :         staging, after test, 3d
    프로덕션 배포      :crit,    prod, after staging, 2d
    모니터링           :         monitor, after prod, 7d

파이 차트 (Pie Chart)

pie title 기술 스택 사용 비율
    "React" : 35
    "Vue.js" : 25
    "Angular" : 15
    "Svelte" : 10
    "Next.js" : 10
    "기타" : 5

Git 그래프 (Git Graph)

gitGraph
    commit id: "init"
    commit id: "setup"
    branch develop
    checkout develop
    commit id: "feat: 로그인"
    commit id: "feat: 회원가입"
    branch feature/dashboard
    checkout feature/dashboard
    commit id: "feat: 대시보드 UI"
    commit id: "feat: 차트 추가"
    checkout develop
    merge feature/dashboard id: "merge: 대시보드"
    branch feature/settings
    checkout feature/settings
    commit id: "feat: 설정 페이지"
    checkout develop
    merge feature/settings id: "merge: 설정"
    checkout main
    merge develop id: "release: v1.0.0" tag: "v1.0.0"
    commit id: "hotfix: 버그수정"

마인드맵 (Mindmap)

mindmap
  root((웹 개발))
    프론트엔드
      HTML/CSS
      JavaScript
      React
      Vue.js
      TypeScript
    백엔드
      Node.js
      Python
      Java
      Go
      데이터베이스
        MySQL
        PostgreSQL
        MongoDB
    DevOps
      Docker
      Kubernetes
      CI/CD
      AWS
    도구
      Git
      VS Code
      Figma

🧮 수학 수식 (Math - KaTeX/LaTeX)

인라인 수식: $E = mc^2$

블록 수식:

$$
f(x) = \int_{-\infty}^{\infty} \hat{f}(\xi) , e^{2\pi i \xi x} , d\xi
$$

$$
\sum_{n=1}^{\infty} \frac{1}{n^2} = \frac{\pi^2}{6}
$$


📌 기타 문법

각주 (Footnotes)

이것은 각주가 있는 문장입니다[^1].
또 다른 각주입니다[^note].

[^1]: 첫 번째 각주 내용입니다.
[^note]: 이름이 있는 각주도 가능합니다.

정의 목록 (Definition List)

마크다운
: 경량 마크업 언어로, 텍스트를 HTML로 변환합니다.

Mermaid
: 텍스트 기반의 다이어그램 생성 도구입니다.

축약어 (Abbreviation)

HTML은 웹의 기본 마크업 언어입니다.

*[HTML]: HyperText Markup Language

이모지

🎉 🚀 💡 ⚡ ✅ ❌ 🔥 💻 📱 🎨 🔧 📊 🗂️ 🏆 👍

수평선 스타일




키보드 키

Ctrl

+

Shift

+

P

로 명령 팔레트를 엽니다.

접기/펼치기 (Collapsible)

📂 클릭하면 펼쳐집니다

숨겨진 내용이 여기에 표시됩니다.

  • 항목 1
  • 항목 2
  • 항목 3
console.log("숨겨진 코드!");

경고/알림 블록 (GitHub Style Alerts)

[!NOTE]
참고할 유용한 정보입니다.

[!TIP]
더 나은 결과를 위한 팁입니다.

[!IMPORTANT]
꼭 알아야 할 중요한 정보입니다.

[!WARNING]
주의가 필요한 내용입니다.

[!CAUTION]
위험할 수 있는 행동에 대한 경고입니다.


✨ 이 문서는 마크다운의 거의 모든 문법을 포함하고 있습니다.
렌더러에 따라 일부 문법이 지원되지 않을 수 있습니다.

'티스토리' 카테고리의 다른 글

티스토리 스킨에 Mermaid 다이어그램 적용하기  (0) 2026.04.17
mermaid 코드  (0) 2026.04.17
티스토리 hello 스킨 사용  (0) 2026.04.17
'티스토리' 카테고리의 다른 글
  • 티스토리 스킨에 Mermaid 다이어그램 적용하기
  • mermaid 코드
  • 티스토리 hello 스킨 사용
N-analyst
N-analyst
  • N-analyst
    개발자CuCu
    N-analyst
  • 전체
    오늘
    어제
  • 공지사항

    • 티스토리에서 원하는 글 찾는 방법
    • 분류 전체보기 (140)
      • 티스토리 (4)
      • 알고리즘 (5)
        • 알고리즘 정리 (1)
        • 백준 (4)
      • 마크다운(Typora) (13)
        • 사용법 (13)
      • 에러 (1)
        • 파이썬 (1)
      • 데이터 분석 (5)
        • python_analysis (3)
        • Machine Learning (2)
      • AI (109)
        • 파이토치로 시작하는 딥러닝 기초 (2)
        • 부스트 캠프 AI tech (41)
        • 이론 (66)
      • 파이썬(python) (1)
        • 기타 (1)
      • 웹 프로그래밍 (1)
        • 설정 팁 (1)
  • 블로그 메뉴

    • 홈
    • 태그
  • 인기 글

  • 최근 글

  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.6
N-analyst
Markdown 서식확인 샘플
상단으로

티스토리툴바