포스트

[GitHub 100일 챌린지] Day 17 - 언어별 .gitignore 작성하기

[GitHub 100일 챌린지] Day 17 - 언어별 .gitignore 작성하기

100일 챌린지 Day 17 - 프로그래밍 언어별로 최적화된 .gitignore를 만듭니다

배울 내용

  1. JavaScript/TypeScript .gitignore
  2. Python .gitignore
  3. Java/Kotlin .gitignore

Topic1. JavaScript/TypeScript

웹 개발에서 가장 많이 사용하는 .gitignore 패턴입니다.

Node.js 기본

# Dependencies
node_modules/
jspm_packages/

# Production build
/dist
/build
/.next
/out

# Testing
/coverage
/.nyc_output

# Environment
.env
.env.local
.env.development.local
.env.test.local
.env.production.local

# Logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Editor
.vscode/
.idea/

# OS
.DS_Store
Thumbs.db

# Misc
.npm
.eslintcache
.node_repl_history

React 프로젝트

# React 빌드
build/
.cache/

# Create React App
.env.local
.env.development.local
.env.test.local
.env.production.local

# TypeScript
*.tsbuildinfo

# Debug
npm-debug.log*
yarn-debug.log*

Next.js

# Next.js
/.next/
/out/
.next/

# Vercel
.vercel

# TypeScript
*.tsbuildinfo
next-env.d.ts

해보기: React 프로젝트 .gitignore 만들기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Repository에 .gitignore 추가:

# Dependencies
node_modules/

# Production
build/
dist/

# Environment
.env.local

# Logs
*.log

# OS
.DS_Store

결과: React 프로젝트에 맞는 .gitignore가 완성됩니다


Topic2. Python

Python 프로젝트의 필수 .gitignore 패턴입니다.

기본 패턴

# Byte-compiled
__pycache__/
*.py[cod]
*$py.class

# C extensions
*.so

# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg

# PyInstaller
*.manifest
*.spec

# Installer logs
pip-log.txt
pip-delete-this-directory.txt

# Unit test / coverage
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.pytest_cache/

# Virtual environments
venv/
ENV/
env/
.venv

# Jupyter Notebook
.ipynb_checkpoints

# Environment
.env
.venv
env/
venv/

# IDE
.vscode/
.idea/
*.swp
*.swo

# OS
.DS_Store

Django 프로젝트

# Django
*.log
local_settings.py
db.sqlite3
db.sqlite3-journal
/media
/static

# Django migrations
**/migrations/*.py
!**/migrations/__init__.py

# Secret key
.env
secrets.json

Flask 프로젝트

# Flask
instance/
.webassets-cache

# Flask environment
.flaskenv

# Database
*.db
*.sqlite

해보기: Python 프로젝트 .gitignore

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# Python cache
__pycache__/
*.pyc

# Virtual environment
venv/
.venv/

# Environment
.env

# IDE
.vscode/

# Database
*.db
*.sqlite3

결과: Python 프로젝트가 깔끔하게 관리됩니다


Topic3. Java/Kotlin

JVM 언어 프로젝트의 .gitignore 패턴입니다.

Java 기본

# Compiled class files
*.class

# Log files
*.log

# Package Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar

# Maven
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties

# Gradle
.gradle/
build/
!gradle-wrapper.jar

# IntelliJ IDEA
.idea/
*.iws
*.iml
*.ipr
out/

# Eclipse
.classpath
.project
.settings/
bin/

# NetBeans
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

# VS Code
.vscode/

# OS
.DS_Store
Thumbs.db

Spring Boot

# Spring Boot
HELP.md
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/

# Application properties
application-local.yml
application-local.properties

# Log files
logs/
*.log

Android

# Android
*.apk
*.ap_
*.aab

# Build
/build
/local.properties

# Gradle
.gradle/
build/

# Android Studio
.idea/
*.iml
.externalNativeBuild
.cxx
local.properties

# Keystore files
*.jks
*.keystore

# Google Services
google-services.json

해보기: Java/Spring Boot .gitignore

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# Compiled
*.class

# Build
target/
build/

# IDE
.idea/
*.iml

# Logs
*.log

# Application
application-local.*

결과: Java 프로젝트에 맞는 .gitignore가 생성됩니다


정리

완료 체크:

  • JavaScript/TypeScript .gitignore를 작성할 수 있다
  • Python .gitignore를 작성할 수 있다
  • Java .gitignore를 작성할 수 있다

언어별 핵심:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
JavaScript/Node.js:
- node_modules/
- dist/, build/
- .env

Python:
- __pycache__/
- venv/
- *.pyc

Java:
- *.class
- target/, build/
- .idea/

빠른 생성 방법:

1
2
3
1. gitignore.io 사용
2. GitHub 템플릿 사용
3. IDE 자동 생성

다음: Day 18 - 오픈소스 라이선스 선택

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.