Update .gitignore to include common build outputs, node dependencies, logs, and local environment files; remove CLAUDE.md as it is no longer needed.
This commit is contained in:
26
.gitignore
vendored
26
.gitignore
vendored
@@ -1,2 +1,24 @@
|
|||||||
.cursor/
|
# Nuxt dev/build outputs
|
||||||
.claude/
|
.output
|
||||||
|
.data
|
||||||
|
.nuxt
|
||||||
|
.nitro
|
||||||
|
.cache
|
||||||
|
dist
|
||||||
|
|
||||||
|
# Node dependencies
|
||||||
|
node_modules
|
||||||
|
|
||||||
|
# Logs
|
||||||
|
logs
|
||||||
|
*.log
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
.DS_Store
|
||||||
|
.fleet
|
||||||
|
.idea
|
||||||
|
|
||||||
|
# Local env files
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
|||||||
68
CLAUDE.md
68
CLAUDE.md
@@ -1,68 +0,0 @@
|
|||||||
# CLAUDE.md
|
|
||||||
|
|
||||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
||||||
|
|
||||||
## Project Overview
|
|
||||||
|
|
||||||
This is a minimal git learning repository used for practicing git commands and workflows. The parent directory (`D:/00.study/`) is a learning repository containing multiple framework projects (Vue, Nuxt, Next.js, React).
|
|
||||||
|
|
||||||
## Repository Structure
|
|
||||||
|
|
||||||
- **main branch**: Contains only CLAUDE.md
|
|
||||||
- **feature/study branch**: Contains CLAUDE.md and bug1.mg (버그수정)
|
|
||||||
- **Remote**: origin/main configured
|
|
||||||
|
|
||||||
## 커밋 메시지 규칙 (생성/입력 룰)
|
|
||||||
|
|
||||||
커밋 메시지를 **생성하거나 입력할 때** 아래 규칙을 따른다.
|
|
||||||
|
|
||||||
### 형식
|
|
||||||
|
|
||||||
- `feat: 내용` — 새 기능
|
|
||||||
- `fix: 내용` — 버그 수정
|
|
||||||
- `refactor: 내용` — 리팩터링(동작 변경 없음)
|
|
||||||
- `test: 내용` — 테스트 추가/수정
|
|
||||||
- `docs: 내용` — 문서만 변경
|
|
||||||
- `chore: 내용` — 빌드, 설정, 기타 잡일
|
|
||||||
|
|
||||||
### 작성 원칙
|
|
||||||
|
|
||||||
- `내용`은 **반드시 한글로** 작성한다.
|
|
||||||
- 제목은 **한 줄**로만 작성하고, 마침표·불필요한 기호는 넣지 않는다.
|
|
||||||
- **변경 의도**가 드러나게 간결하게 쓴다.
|
|
||||||
|
|
||||||
### 예시
|
|
||||||
|
|
||||||
- `feat: 회원 가입 폼 유효성 검사 추가`
|
|
||||||
- `fix: 로그인 시 세션 만료 처리 오류 수정`
|
|
||||||
- `refactor: 결제 모듈 상태 관리 로직 분리`
|
|
||||||
- `test: 로그인 서비스 단위 테스트 케이스 보강`
|
|
||||||
- `docs: CLAUDE.md 커밋 메시지 입력 룰 보강`
|
|
||||||
- `chore: 의존성 버전 업데이트`
|
|
||||||
|
|
||||||
## Common Git Commands
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# View all branches
|
|
||||||
git branch -a
|
|
||||||
|
|
||||||
# Switch branches
|
|
||||||
git checkout feature/study
|
|
||||||
git checkout main
|
|
||||||
|
|
||||||
# View commit history
|
|
||||||
git log --all --oneline --graph
|
|
||||||
|
|
||||||
# View file changes in commits
|
|
||||||
git log --all --name-status --oneline
|
|
||||||
|
|
||||||
# Show file content from specific commit
|
|
||||||
git show <commit-hash>:<filename>
|
|
||||||
|
|
||||||
# List files in current HEAD
|
|
||||||
git ls-tree -r HEAD --name-only
|
|
||||||
```
|
|
||||||
|
|
||||||
## Repository Context
|
|
||||||
|
|
||||||
This is a practice repository for learning git workflows. The minimal structure allows focus on git operations rather than application code.
|
|
||||||
75
README.md
Normal file
75
README.md
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
# Nuxt Minimal Starter
|
||||||
|
|
||||||
|
Look at the [Nuxt documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
|
||||||
|
|
||||||
|
## Setup
|
||||||
|
|
||||||
|
Make sure to install dependencies:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm install
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm install
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn install
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun install
|
||||||
|
```
|
||||||
|
|
||||||
|
## Development Server
|
||||||
|
|
||||||
|
Start the development server on `http://localhost:3000`:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run dev
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm dev
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn dev
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run dev
|
||||||
|
```
|
||||||
|
|
||||||
|
## Production
|
||||||
|
|
||||||
|
Build the application for production:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run build
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm build
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn build
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run build
|
||||||
|
```
|
||||||
|
|
||||||
|
Locally preview production build:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# npm
|
||||||
|
npm run preview
|
||||||
|
|
||||||
|
# pnpm
|
||||||
|
pnpm preview
|
||||||
|
|
||||||
|
# yarn
|
||||||
|
yarn preview
|
||||||
|
|
||||||
|
# bun
|
||||||
|
bun run preview
|
||||||
|
```
|
||||||
|
|
||||||
|
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
|
||||||
6
app/app.vue
Normal file
6
app/app.vue
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
<template>
|
||||||
|
<div>
|
||||||
|
<NuxtRouteAnnouncer />
|
||||||
|
<NuxtPage />
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
87
app/components/Counter.vue
Normal file
87
app/components/Counter.vue
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
// 카운터 컴포넌트 props 정의
|
||||||
|
interface Props {
|
||||||
|
initialCount?: number
|
||||||
|
min?: number
|
||||||
|
max?: number
|
||||||
|
label?: string
|
||||||
|
}
|
||||||
|
|
||||||
|
const props = withDefaults(defineProps<Props>(), {
|
||||||
|
initialCount: 0,
|
||||||
|
min: 0,
|
||||||
|
max: 100,
|
||||||
|
label: '카운트',
|
||||||
|
})
|
||||||
|
|
||||||
|
const count = ref<number>(props.initialCount)
|
||||||
|
|
||||||
|
// 증가 (최대값 초과 방지)
|
||||||
|
function increment() {
|
||||||
|
if (count.value < props.max) {
|
||||||
|
count.value++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 감소 (최소값 미만 방지)
|
||||||
|
function decrement() {
|
||||||
|
if (count.value > props.min) {
|
||||||
|
count.value--
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 초기화
|
||||||
|
function reset() {
|
||||||
|
count.value = props.initialCount
|
||||||
|
}
|
||||||
|
|
||||||
|
const isMin = computed(() => count.value <= props.min)
|
||||||
|
const isMax = computed(() => count.value >= props.max)
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<div class="flex flex-col items-center gap-4 rounded-2xl border border-gray-200 bg-white p-6 shadow-sm sm:p-8">
|
||||||
|
<!-- 레이블 -->
|
||||||
|
<p class="text-sm font-medium text-gray-500">{{ props.label }}</p>
|
||||||
|
|
||||||
|
<!-- 카운트 표시 -->
|
||||||
|
<span class="text-5xl font-bold tabular-nums text-gray-800 sm:text-6xl">
|
||||||
|
{{ count }}
|
||||||
|
</span>
|
||||||
|
|
||||||
|
<!-- 버튼 영역 -->
|
||||||
|
<div class="flex items-center gap-3">
|
||||||
|
<!-- 감소 버튼 -->
|
||||||
|
<button
|
||||||
|
:disabled="isMin"
|
||||||
|
class="flex h-10 w-10 items-center justify-center rounded-full border border-gray-300 text-xl font-bold text-gray-600 transition hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-40"
|
||||||
|
aria-label="감소"
|
||||||
|
@click="decrement"
|
||||||
|
>
|
||||||
|
−
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- 초기화 버튼 -->
|
||||||
|
<button
|
||||||
|
class="rounded-lg border border-gray-200 px-3 py-1.5 text-sm text-gray-500 transition hover:bg-gray-100"
|
||||||
|
aria-label="초기화"
|
||||||
|
@click="reset"
|
||||||
|
>
|
||||||
|
초기화
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<!-- 증가 버튼 -->
|
||||||
|
<button
|
||||||
|
:disabled="isMax"
|
||||||
|
class="flex h-10 w-10 items-center justify-center rounded-full border border-gray-300 text-xl font-bold text-gray-600 transition hover:bg-gray-100 disabled:cursor-not-allowed disabled:opacity-40"
|
||||||
|
aria-label="증가"
|
||||||
|
@click="increment"
|
||||||
|
>
|
||||||
|
+
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 범위 표시 -->
|
||||||
|
<p class="text-xs text-gray-400">범위: {{ props.min }} ~ {{ props.max }}</p>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
47
app/pages/counter.vue
Normal file
47
app/pages/counter.vue
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
// 페이지 메타 설정
|
||||||
|
useHead({
|
||||||
|
title: '카운터 데모',
|
||||||
|
})
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<main class="min-h-screen bg-gray-50 px-4 py-12">
|
||||||
|
<div class="mx-auto max-w-2xl">
|
||||||
|
<!-- 페이지 헤더 -->
|
||||||
|
<div class="mb-10 text-center">
|
||||||
|
<h1 class="text-3xl font-bold text-gray-900 sm:text-4xl">카운터 데모</h1>
|
||||||
|
<p class="mt-2 text-gray-500">다양한 설정의 카운터 컴포넌트 예시입니다.</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 카운터 카드 목록 -->
|
||||||
|
<div class="flex flex-col gap-6">
|
||||||
|
<!-- 기본 카운터 -->
|
||||||
|
<section class="rounded-2xl bg-white p-6 shadow-sm">
|
||||||
|
<h2 class="mb-4 text-sm font-semibold uppercase tracking-widest text-gray-400">기본</h2>
|
||||||
|
<Counter label="기본 카운터" />
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 수량 선택 -->
|
||||||
|
<section class="rounded-2xl bg-white p-6 shadow-sm">
|
||||||
|
<h2 class="mb-4 text-sm font-semibold uppercase tracking-widest text-gray-400">수량 선택</h2>
|
||||||
|
<Counter
|
||||||
|
label="장바구니 수량"
|
||||||
|
:initial-count="1"
|
||||||
|
:min="1"
|
||||||
|
:max="10"
|
||||||
|
/>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<!-- 점수판 -->
|
||||||
|
<section class="rounded-2xl bg-white p-6 shadow-sm">
|
||||||
|
<h2 class="mb-4 text-sm font-semibold uppercase tracking-widest text-gray-400">점수판</h2>
|
||||||
|
<div class="flex flex-col gap-4 sm:flex-row sm:justify-center">
|
||||||
|
<Counter label="팀 A" :min="0" :max="99" />
|
||||||
|
<Counter label="팀 B" :min="0" :max="99" />
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</template>
|
||||||
7
app/pages/index.vue
Normal file
7
app/pages/index.vue
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<template>
|
||||||
|
<div></div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script setup></script>
|
||||||
|
|
||||||
|
<style lang="scss" scoped></style>
|
||||||
5
nuxt.config.ts
Normal file
5
nuxt.config.ts
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
// https://nuxt.com/docs/api/configuration/nuxt-config
|
||||||
|
export default defineNuxtConfig({
|
||||||
|
compatibilityDate: "2025-07-15",
|
||||||
|
devtools: { enabled: true },
|
||||||
|
});
|
||||||
17
package.json
Normal file
17
package.json
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
{
|
||||||
|
"name": "claude-code-mastery",
|
||||||
|
"type": "module",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"build": "nuxt build",
|
||||||
|
"dev": "nuxt dev",
|
||||||
|
"generate": "nuxt generate",
|
||||||
|
"preview": "nuxt preview",
|
||||||
|
"postinstall": "nuxt prepare"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"nuxt": "^4.3.1",
|
||||||
|
"vue": "^3.5.28",
|
||||||
|
"vue-router": "^4.6.4"
|
||||||
|
}
|
||||||
|
}
|
||||||
6622
pnpm-lock.yaml
generated
Normal file
6622
pnpm-lock.yaml
generated
Normal file
File diff suppressed because it is too large
Load Diff
BIN
public/favicon.ico
Normal file
BIN
public/favicon.ico
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
2
public/robots.txt
Normal file
2
public/robots.txt
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
User-Agent: *
|
||||||
|
Disallow:
|
||||||
18
tsconfig.json
Normal file
18
tsconfig.json
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{
|
||||||
|
// https://nuxt.com/docs/guide/concepts/typescript
|
||||||
|
"files": [],
|
||||||
|
"references": [
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.app.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.server.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.shared.json"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "./.nuxt/tsconfig.node.json"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user