Categorygithub.com/in-jun/ai-commit
repositorypackage
0.0.0-20241106061158-b017c758d1fe
Repository: https://github.com/in-jun/ai-commit.git
Documentation: pkg.go.dev

# README

ai-commit

Version Go Report Card

๐Ÿค– AI ๊ธฐ๋ฐ˜ git ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ ๋„๊ตฌ


๐Ÿ“‹ ๋ชฉ์ฐจ


โœจ Features

ai-commit์€ Gemini AI๋ฅผ ํ™œ์šฉํ•˜์—ฌ git ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” CLI ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

ํ•ต์‹ฌ ๊ธฐ๋Šฅ

  • ๐ŸŽฏ ์Šค๋งˆํŠธ ๋ถ„์„

    • ์Šคํ…Œ์ด์ง•๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ ์ž๋™ ๋ถ„์„
    • ํ”„๋กœ์ ํŠธ ์ปจํ…์ŠคํŠธ ์ดํ•ด
    • ์ด์ „ ์ปค๋ฐ‹ ์Šคํƒ€์ผ ํ•™์Šต
  • ๐Ÿค– AI ๊ธฐ๋ฐ˜ ์ƒ์„ฑ

    • Conventional Commits ํ˜•์‹ ์ค€์ˆ˜
    • ๋ฉ€ํ‹ฐ ๋ผ์ธ ์„ค๋ช… ์ž๋™ ์ƒ์„ฑ
    • ๋ณ€๊ฒฝ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ƒ์„ธํ•œ ์„ค๋ช…
  • โœ๏ธ ๋ฉ”์‹œ์ง€ ํŽธ์ง‘

    • ์ƒ์„ฑ๋œ ๋ฉ”์‹œ์ง€ ๊ฒ€ํ†  ๋ฐ ์ˆ˜์ •
    • ์„ ํ˜ธํ•˜๋Š” ํ…์ŠคํŠธ ์—๋””ํ„ฐ ์‚ฌ์šฉ
    • ์ปค๋ฐ‹ ์ „ ์™„๋ฒฝํ•œ ๋ฉ”์‹œ์ง€ ์กฐ์ •
  • ๐Ÿ“ ์ปค์Šคํ„ฐ๋งˆ์ด์ง•

    • ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜ ์ปค๋ฐ‹ ํƒ€์ž…
    • ๋‹ค๊ตญ์–ด ์ง€์›
    • ์„ค์ • ๊ฐ€๋Šฅํ•œ ์˜ต์…˜๋“ค
  • โšก๏ธ ๊ฐœ๋ฐœ์ž ๊ฒฝํ—˜

    • ๊ฐ„๋‹จํ•œ CLI ์ธํ„ฐํŽ˜์ด์Šค
    • ๋น ๋ฅธ ์„ค์น˜์™€ ์„ค์ •
    • ์ง๊ด€์ ์ธ ์‚ฌ์šฉ๋ฒ•

๐Ÿš€ Getting Started

Prerequisites

์‹œ์ž‘ํ•˜๊ธฐ ์ „์— ๋‹ค์Œ ์š”๊ตฌ์‚ฌํ•ญ์„ ํ™•์ธํ•˜์„ธ์š”:

์š”๊ตฌ์‚ฌํ•ญ์ตœ์†Œ ๋ฒ„์ „์„ค์น˜ ๋ฐฉ๋ฒ•
Go1.21+๊ณต์‹ ์‚ฌ์ดํŠธ
Git2.0+๊ณต์‹ ์‚ฌ์ดํŠธ
Gemini API ํ‚ค-๋ฐœ๊ธ‰ ๋ฐฉ๋ฒ•

Installation

Windows

  1. Go ์„ค์น˜
# 1. Go ์„ค์น˜ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
# https://go.dev/dl/ ์—์„œ Windows MSI ์„ค์น˜ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ

# 2. ์„ค์น˜ ํŒŒ์ผ ์‹คํ–‰ ํ›„ ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ ์„ค์น˜

# 3. PowerShell ๋˜๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ƒˆ๋กœ ์—ด์–ด ์„ค์น˜ ํ™•์ธ
go version
  1. Git ์„ค์น˜
# 1. Git ์„ค์น˜ ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ
# https://git-scm.com/download/windows ์—์„œ ๋‹ค์šด๋กœ๋“œ

# 2. ์„ค์น˜ ํŒŒ์ผ ์‹คํ–‰ ํ›„ ๊ธฐ๋ณธ ์˜ต์…˜์œผ๋กœ ์„ค์น˜

# 3. PowerShell ๋˜๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ์ƒˆ๋กœ ์—ด์–ด ์„ค์น˜ ํ™•์ธ
git --version
  1. PATH ์„ค์ •
# PowerShell ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰
$env:Path += ";$env:USERPROFILE\go\bin"
[Environment]::SetEnvironmentVariable(
    "Path",
    [Environment]::GetEnvironmentVariable("Path", [EnvironmentVariableTarget]::User) + ";$env:USERPROFILE\go\bin",
    [EnvironmentVariableTarget]::User
)
  1. ai-commit ์„ค์น˜
go install github.com/in-jun/ai-commit@latest

Linux/Ubuntu

# 1. Go ์„ค์น˜
sudo apt install golang-go

# 2. PATH ์„ค์ •
echo 'export PATH=$PATH:~/go/bin' >> ~/.bashrc
source ~/.bashrc

# 3. ai-commit ์„ค์น˜
go install github.com/in-jun/ai-commit@latest

macOS

# 1. Go ์„ค์น˜
brew install go

# 2. PATH ์„ค์ •
echo 'export PATH=$PATH:~/go/bin' >> ~/.zshrc
source ~/.zshrc

# 3. ai-commit ์„ค์น˜
go install github.com/in-jun/ai-commit@latest

API Key Setup

  1. Google AI Studio ์ ‘์†
  2. Google ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธ
  3. 'API ํ‚ค ๊ด€๋ฆฌ' โ†’ '์ƒˆ API ํ‚ค ๋งŒ๋“ค๊ธฐ' ํด๋ฆญ
  4. ์ƒ์„ฑ๋œ API ํ‚ค ๋ณต์‚ฌ

๐Ÿ“– Usage

Quick Start

graph LR
    A[๋ณ€๊ฒฝ์‚ฌํ•ญ ์Šคํ…Œ์ด์ง•] --> B[ai-commit ์‹คํ–‰]
    B --> C{๋ฉ”์‹œ์ง€ ๊ฒ€ํ† }
    C -->|์Šน์ธ| D[์ปค๋ฐ‹ ์™„๋ฃŒ]
    C -->|์ˆ˜์ •| E[๋ฉ”์‹œ์ง€ ํŽธ์ง‘]
    C -->|๊ฑฐ์ ˆ| F[์ทจ์†Œ]
    E --> D
  1. API ํ‚ค ์„ค์ •
# ๋ฐฉ๋ฒ• 1: ํ™˜๊ฒฝ ๋ณ€์ˆ˜
# Windows (PowerShell)
$env:API_KEY="your-gemini-api-key"
ai-commit

# Linux/macOS
API_KEY="your-gemini-api-key" ai-commit

# ๋ฐฉ๋ฒ• 2: ์„ค์ • ํŒŒ์ผ
ai-commit init  # ํ”„๋กฌํ”„ํŠธ์—์„œ API ํ‚ค ์ž…๋ ฅ
  1. ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ
git add .
ai-commit

Examples

๊ธฐ๋Šฅ ์ถ”๊ฐ€ ์˜ˆ์‹œ

$ git add feature.go
$ ai-commit

=== Generated Commit Message ===
feat: ์‚ฌ์šฉ์ž ์ธ์ฆ ๋ฏธ๋“ค์›จ์–ด ๊ตฌํ˜„

JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ ์ถ”๊ฐ€
- ํ† ํฐ ๊ฒ€์ฆ ๋กœ์ง ๊ตฌํ˜„
- ๋ณดํ˜ธ๋œ ๋ผ์šฐํŠธ์— ๋ฏธ๋“ค์›จ์–ด ์ ์šฉ
- 401, 403 ์—๋Ÿฌ ํ•ธ๋“ค๋ง ์ถ”๊ฐ€

What would you like to do?
[Y]es: Commit with this message
[E]dit: Edit the message
[N]o: Cancel commit
Choice [Y/e/n]:

๋ฒ„๊ทธ ์ˆ˜์ • ์˜ˆ์‹œ

$ git add bug-fix.go
$ ai-commit

=== Generated Commit Message ===
fix: ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฌธ์ œ ํ•ด๊ฒฐ

๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์ž์˜ ์ž„์‹œ ํŒŒ์ผ ์ •๋ฆฌ ๋กœ์ง ๊ฐœ์„ 
- ์ž‘์—… ์‹คํŒจ ์‹œ์—๋„ ์ •๋ฆฌ ๋ณด์žฅ
- ๋ฆฌ์†Œ์Šค ํ•ด์ œ ์ˆœ์„œ ์ตœ์ ํ™”
- ๋ชจ๋‹ˆํ„ฐ๋ง ์ง€ํ‘œ ์ถ”๊ฐ€

What would you like to do?
[Y]es: Commit with this message
[E]dit: Edit the message
[N]o: Cancel commit
Choice [Y/e/n]:

๋ฉ”์‹œ์ง€ ํŽธ์ง‘ ์˜ˆ์‹œ

$ git add feature.go
$ ai-commit

=== Generated Commit Message ===
feat: ์‚ฌ์šฉ์ž ์ธ์ฆ ๊ตฌํ˜„

JWT ์ธ์ฆ ์‹œ์Šคํ…œ ์ถ”๊ฐ€
- ํ† ํฐ ๊ฒ€์ฆ
- ๋ฏธ๋“ค์›จ์–ด ์ ์šฉ
- ์—๋Ÿฌ ์ฒ˜๋ฆฌ

What would you like to do?
[Y]es: Commit with this message
[E]dit: Edit the message
[N]o: Cancel commit
Choice [Y/e/n]: e

# ์„ ํƒํ•œ ์—๋””ํ„ฐ์—์„œ ๋ฉ”์‹œ์ง€ ํŽธ์ง‘ ํ›„ ์ €์žฅ

Configuration

์„ค์ • ํŒŒ์ผ ์œ„์น˜:

  • Windows: %USERPROFILE%\.ai-commit\config.yaml
  • Linux/macOS: ~/.ai-commit/config.yaml
# API ์„ค์ •
api_key: "your-api-key"

# ์„ฑ๋Šฅ ์„ค์ •
max_diff_size: 10000 # ์ตœ๋Œ€ diff ํฌ๊ธฐ (๋ฐ”์ดํŠธ)
history_depth: 5 # ๋ถ„์„ํ•  ์ด์ „ ์ปค๋ฐ‹ ์ˆ˜

# UI ์„ค์ •
color_enabled: true # ์ปฌ๋Ÿฌ ์ถœ๋ ฅ ํ™œ์„ฑํ™”

# ์ปค๋ฐ‹ ํ…œํ”Œ๋ฆฟ
templates:
    - prefix: "feat" # ์ƒˆ ๊ธฐ๋Šฅ
      description: "์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€"
    - prefix: "fix" # ๋ฒ„๊ทธ ์ˆ˜์ •
      description: "๋ฒ„๊ทธ ์ˆ˜์ •"
    # ... ์ถ”๊ฐ€ ํ…œํ”Œ๋ฆฟ

Commands

๋ช…๋ น์–ด์„ค๋ช…์‚ฌ์šฉ ์˜ˆ์‹œ
ai-commit์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ƒ์„ฑai-commit
ai-commit init์„ค์ • ์ดˆ๊ธฐํ™”/๊ฐฑ์‹ ai-commit init
ai-commit -h๋„์›€๋ง ํ‘œ์‹œai-commit -h
ai-commit -v๋ฒ„์ „ ์ •๋ณด ํ‘œ์‹œai-commit -v
์˜ต์…˜์„ค๋ช…์‚ฌ์šฉ ์‹œ์ 
Y ๋˜๋Š” Enter์ƒ์„ฑ๋œ ๋ฉ”์‹œ์ง€๋กœ ์ปค๋ฐ‹๋ฉ”์‹œ์ง€๊ฐ€ ์ ์ ˆํ•  ๋•Œ
E๋ฉ”์‹œ์ง€ ํŽธ์ง‘ ๋ชจ๋“œ ์ง„์ž…๋ฉ”์‹œ์ง€ ์ˆ˜์ •์ด ํ•„์š”ํ•  ๋•Œ
N์ปค๋ฐ‹ ์ทจ์†Œ๋ฉ”์‹œ์ง€๊ฐ€ ๋ถ€์ ์ ˆํ•  ๋•Œ

๐Ÿ”ง Advanced

Best Practices

์‹ค์ฒœ ์‚ฌํ•ญ์„ค๋ช…์˜ˆ์‹œ
์ž‘์€ ๋‹จ์œ„๋กœ ์ปค๋ฐ‹โ€ข ํ•˜๋‚˜์˜ ๋…ผ๋ฆฌ์  ๋ณ€๊ฒฝ์‚ฌํ•ญ๋งŒ ํฌํ•จ
โ€ข ๊ด€๋ จ ์—†๋Š” ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋ถ„๋ฆฌ
bash# ์ข‹์€ ์˜ˆgit add auth/ai-commit# ๋‚˜์œ ์˜ˆgit add . # ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ ๋ณ€๊ฒฝ
๋ฉ”์‹œ์ง€ ๊ฒ€ํ† โ€ข ์ž๋™ ์ƒ์„ฑ๋œ ๋ฉ”์‹œ์ง€ ๊ฒ€์ฆ
โ€ข ํ•„์š”์‹œ ๋ฉ”์‹œ์ง€ ํŽธ์ง‘์œผ๋กœ ์ •ํ™•๋„ ํ–ฅ์ƒ
bash# ๋ฉ”์‹œ์ง€ ๊ฒ€ํ†  ํ›„ ์ˆ˜์ •What would you like to do?Choice [Y/e/n]: e

Templates

ํ˜„์žฌ ๊ธฐ๋ณธ ์ปค๋ฐ‹ ํƒ€์ž…:

TypeDescription์‚ฌ์šฉ ์‹œ์ 
feat์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€๊ธฐ๋Šฅ ๊ฐœ๋ฐœ ์™„๋ฃŒ์‹œ
fix๋ฒ„๊ทธ ์ˆ˜์ •๋ฒ„๊ทธ ํ•ด๊ฒฐ์‹œ
docs๋ฌธ์„œ ์ˆ˜์ •๋ฌธ์„œ ์ž‘์—…์‹œ
style์ฝ”๋“œ ์Šคํƒ€์ผ ๋ณ€๊ฒฝํฌ๋งทํŒ…, ์„ธ๋ฏธ์ฝœ๋ก  ๋“ฑ
refactor์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง๊ตฌ์กฐ ๊ฐœ์„ ์‹œ
testํ…Œ์ŠคํŠธ ์ถ”๊ฐ€/์ˆ˜์ •ํ…Œ์ŠคํŠธ ์ž‘์—…์‹œ
chore๊ธฐํƒ€ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ๋“ฑ

Customization

์ปค์Šคํ…€ ํ…œํ”Œ๋ฆฟ ์˜ˆ์‹œ:

templates:
    - prefix: "feature"
      description: "์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ฐœ๋ฐœ"
    - prefix: "bugfix"
      description: "๋ฒ„๊ทธ ์ˆ˜์ •"
    - prefix: "hotfix"
      description: "๊ธด๊ธ‰ ์ˆ˜์ •"

๐Ÿ” Troubleshooting

๊ณตํ†ต ๋ฌธ์ œ

command not found: ai-commit

  1. Go ์„ค์น˜ ํ™•์ธ
go version
  1. PATH ์„ค์ • ํ™•์ธ
# Windows (PowerShell)
echo $env:Path

# Linux/macOS
echo $PATH | grep go
  1. Go bin ๋””๋ ‰ํ† ๋ฆฌ ํ™•์ธ
# Windows
dir %USERPROFILE%\go\bin

# Linux/macOS
ls ~/go/bin

Windows ํŠน์ • ๋ฌธ์ œ

  1. go install ์‹คํŒจ ์‹œ
# Go ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ™•์ธ
go env GOPATH
go env GOBIN

# Go ๋ชจ๋“ˆ ์บ์‹œ ์ •๋ฆฌ
go clean -modcache
  1. PATH ์„ค์ • ๋ฌธ์ œ
# ํ˜„์žฌ PATH ํ™•์ธ
echo $env:Path

# ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ ๋ณ€์ˆ˜์—์„œ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€
# ์ œ์–ดํŒ > ์‹œ์Šคํ…œ > ๊ณ ๊ธ‰ ์‹œ์Šคํ…œ ์„ค์ • > ํ™˜๊ฒฝ ๋ณ€์ˆ˜
# ์‚ฌ์šฉ์ž ๋ณ€์ˆ˜์˜ Path์— %USERPROFILE%\go\bin ์ถ”๊ฐ€
  1. Git Bash ์‚ฌ์šฉ ์‹œ
# ~/.bashrc ํŒŒ์ผ ์ƒ์„ฑ ๋˜๋Š” ํŽธ์ง‘
echo 'export PATH=$PATH:~/go/bin' >> ~/.bashrc
source ~/.bashrc
  1. ๊ถŒํ•œ ๋ฌธ์ œ
# PowerShell์„ ๊ด€๋ฆฌ์ž ๊ถŒํ•œ์œผ๋กœ ์‹คํ–‰
# ์‹คํ–‰ ์ •์ฑ… ํ™•์ธ
Get-ExecutionPolicy

# ํ•„์š”์‹œ ์‹คํ–‰ ์ •์ฑ… ๋ณ€๊ฒฝ
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

Linux/macOS ํŠน์ • ๋ฌธ์ œ

  1. PATH ์žฌ์„ค์ •
# Linux
echo 'export PATH=$PATH:~/go/bin' >> ~/.bashrc
source ~/.bashrc

# macOS
echo 'export PATH=$PATH:~/go/bin' >> ~/.zshrc
source ~/.zshrc
  1. ๊ถŒํ•œ ๋ฌธ์ œ
# ์‹คํ–‰ ๊ถŒํ•œ ํ™•์ธ
ls -l ~/go/bin/ai-commit

# ๊ถŒํ•œ ๋ถ€์—ฌ
chmod +x ~/go/bin/ai-commit

API ํ‚ค ๋ฌธ์ œ

  1. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ํ™•์ธ
# Windows (PowerShell)
echo $env:API_KEY

# Linux/macOS
echo $API_KEY
  1. ์„ค์ • ํŒŒ์ผ ํ™•์ธ
# Windows
type %USERPROFILE%\.ai-commit\config.yaml

# Linux/macOS
cat ~/.ai-commit/config.yaml
  1. ์„ค์ • ์ดˆ๊ธฐํ™”
ai-commit init

๐Ÿ’ก FAQs

Q: API ํ‚ค๋Š” ์–ด๋””์„œ ์–ป๋‚˜์š”?

  • Google AI Studio์—์„œ ๋ฐœ๊ธ‰
  • ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  • ์ผ์ผ ์š”์ฒญ ์ œํ•œ ์žˆ์Œ

Q: ์˜คํ”„๋ผ์ธ์—์„œ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ๊ฐ€์š”?

  • ํ˜„์žฌ ๋ฒ„์ „์€ Gemini API ์—ฐ๊ฒฐ ํ•„์š”
  • ์˜คํ”„๋ผ์ธ ๋ชจ๋“œ๋Š” ํ–ฅํ›„ ์ง€์› ์˜ˆ์ •

Q: ๋‹ค๋ฅธ ์–ธ์–ด๋Š” ์ง€์›ํ•˜๋‚˜์š”?

  • ํ”„๋กœ์ ํŠธ์˜ ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ ๊ธฐ๋ฐ˜์œผ๋กœ ์–ธ์–ด ์ž๋™ ์„ ํƒ
  • ์˜์–ด/ํ•œ๊ตญ์–ด ๊ธฐ๋ณธ ์ง€์›

Q: ์–ด๋–ค ์—๋””ํ„ฐ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ํŽธ์ง‘ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

Windows:

  • ๊ธฐ๋ณธ ๋ฉ”๋ชจ์žฅ
  • Visual Studio Code
  • Notepad++
  • Git ์„ค์น˜ ์‹œ ์„ค์ •๋œ ๊ธฐ๋ณธ ์—๋””ํ„ฐ

Linux/macOS:

  • vim
  • nano
  • Visual Studio Code
  • ์‹œ์Šคํ…œ์˜ ๊ธฐ๋ณธ ์—๋””ํ„ฐ(VISUAL/EDITOR ํ™˜๊ฒฝ๋ณ€์ˆ˜)

์„ค์ • ๋ฐฉ๋ฒ•:

# Windows (PowerShell)
$env:EDITOR="code --wait"

# Linux/macOS
export EDITOR="vim"

Q: ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํ˜•์‹์„ ์ปค์Šคํ„ฐ๋งˆ์ด์ฆˆํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

  • ์„ค์ • ํŒŒ์ผ์—์„œ ํ…œํ”Œ๋ฆฟ ์ˆ˜์ • ๊ฐ€๋Šฅ
  • ๊ธฐ์—…/ํŒ€ ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜์— ๋งž์ถฐ ์กฐ์ • ๊ฐ€๋Šฅ
  • ์ปค์Šคํ…€ prefix์™€ description ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

Q: ๋Œ€๊ทœ๋ชจ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋„ ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅํ•œ๊ฐ€์š”?

  • ๊ธฐ๋ณธ์ ์œผ๋กœ 10,000๋ฐ”์ดํŠธ๊นŒ์ง€์˜ diff ์ฒ˜๋ฆฌ
  • ์„ค์ •์—์„œ max_diff_size ์กฐ์ • ๊ฐ€๋Šฅ
  • ๋Œ€๊ทœ๋ชจ ๋ณ€๊ฒฝ์€ ์ž‘์€ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ„์–ด ์ปค๋ฐ‹ ๊ถŒ์žฅ