tylersong 1.0.4 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,116 @@
1
+ # NPM 직접 배포 가이드
2
+
3
+ ## 🎯 개요
4
+
5
+ 이 문서는 GitHub Actions 태그 자동화 없이 NPM에 직접 배포하는 방법을 설명합니다.
6
+
7
+ ## 📋 사전 준비사항
8
+
9
+ - NPM 계정 및 로그인
10
+ - TypeScript 프로젝트 빌드 환경
11
+ - 적절한 권한(패키지 소유자 또는 메인테이너)
12
+
13
+ ## 🚀 배포 단계
14
+
15
+ ### 1. 버전 업데이트
16
+
17
+ ```bash
18
+ # 패치 버전 자동 증가 (1.0.4 → 1.0.5)
19
+ npm version patch
20
+
21
+ # 또는 마이너 버전 증가 (1.0.4 → 1.1.0)
22
+ npm version minor
23
+
24
+ # 또는 메이저 버전 증가 (1.0.4 → 2.0.0)
25
+ npm version major
26
+ ```
27
+
28
+ ### 2. TypeScript 소스 코드 수정
29
+
30
+ 버전이 하드코딩된 경우 소스코드도 업데이트:
31
+
32
+ ```typescript
33
+ // src/index.ts
34
+ program.version("1.0.5").description("송민성의 개발자 프로필 CLI");
35
+ ```
36
+
37
+ ### 3. 프로젝트 빌드
38
+
39
+ ```bash
40
+ # TypeScript 컴파일
41
+ npm run build
42
+ ```
43
+
44
+ ### 4. NPM 로그인 확인
45
+
46
+ ```bash
47
+ # 현재 로그인 상태 확인
48
+ npm whoami
49
+
50
+ # 로그인되지 않은 경우 로그인
51
+ npm login
52
+ ```
53
+
54
+ ### 5. NPM 배포
55
+
56
+ ```bash
57
+ # 패키지 배포
58
+ npm publish
59
+ ```
60
+
61
+ ## ✅ 배포 성공 확인
62
+
63
+ ### 배포된 패키지 정보 확인
64
+
65
+ ```bash
66
+ # 최신 버전 정보 확인
67
+ npm view tylersong
68
+
69
+ # 모든 버전 목록 확인
70
+ npm view tylersong versions --json
71
+ ```
72
+
73
+ ### 패키지 설치 및 테스트
74
+
75
+ ```bash
76
+ # 전역 설치
77
+ npm install -g tylersong@latest
78
+
79
+ # 실행 테스트
80
+ tylersong
81
+ ```
82
+
83
+ ## 📦 배포 결과 (2024.08.04)
84
+
85
+ ### 성공적으로 배포된 버전: `1.0.5`
86
+
87
+ - **배포 시간**: 방금 전 (just now)
88
+ - **패키지 크기**: 21.0 kB
89
+ - **압축 해제 크기**: 58.1 kB
90
+ - **포함된 파일**: 19개
91
+ - **메인테이너**: miiinsseong <wsc7202@gmail.com>
92
+
93
+ ### 전체 버전 히스토리
94
+
95
+ ```json
96
+ ["1.0.0", "1.0.1", "1.0.3", "1.0.4", "1.0.5"]
97
+ ```
98
+
99
+ ## 🔧 주요 변경사항 (v1.0.5)
100
+
101
+ - ✨ JavaScript에서 TypeScript로 완전 변환
102
+ - 📦 타입 정의 파일 포함 (`dist/index.d.ts`)
103
+ - 🛠️ 자동 빌드 스크립트 (`prepublishOnly`)
104
+ - 📚 상세한 문서화 완료
105
+
106
+ ## 💡 팁
107
+
108
+ 1. **자동 빌드**: `prepublishOnly` 스크립트가 설정되어 있어 배포 시 자동으로 빌드됩니다.
109
+ 2. **타입 안전성**: TypeScript로 변환되어 더 안정적인 코드가 되었습니다.
110
+ 3. **버전 관리**: 소스코드의 하드코딩된 버전도 함께 업데이트해야 합니다.
111
+
112
+ ## 🚨 주의사항
113
+
114
+ - 같은 버전을 두 번 배포할 수 없습니다.
115
+ - 배포 전 반드시 빌드와 테스트를 수행하세요.
116
+ - NPM 로그인 상태를 확인하세요.
@@ -0,0 +1,158 @@
1
+ # Discord 알림 설정 가이드
2
+
3
+ GitHub Actions에서 Discord로 빌드 및 배포 알림을 받을 수 있도록 설정하는 방법입니다.
4
+
5
+ ## 🎯 Discord Webhook 생성
6
+
7
+ ### 1. Discord 서버에서 Webhook 생성
8
+
9
+ 1. Discord 서버에서 알림을 받을 채널로 이동
10
+ 2. 채널 설정 (⚙️) → **연동** → **웹후크**
11
+ 3. **새 웹후크** 버튼 클릭
12
+ 4. 웹후크 이름 설정 (예: "GitHub Actions")
13
+ 5. 아바타 이미지 설정 (선택사항)
14
+ 6. **웹후크 URL 복사** 버튼으로 URL 복사
15
+
16
+ ### 2. GitHub Secrets에 Webhook URL 저장
17
+
18
+ 1. GitHub 저장소 → **Settings** → **Secrets and variables** → **Actions**
19
+ 2. **New repository secret** 클릭
20
+ 3. **Name**: `DISCORD_WEBHOOK_URL`
21
+ 4. **Secret**: 복사한 Discord 웹후크 URL 붙여넣기
22
+ 5. **Add secret** 클릭
23
+
24
+ ## 📢 알림 유형
25
+
26
+ ### 🔍 CI 알림 (ci.yml)
27
+
28
+ **전송 시점**: 모든 CI 작업 완료 후
29
+ **포함 정보**:
30
+
31
+ - ✅/❌ 전체 CI 결과
32
+ - 🌿 브랜치 정보
33
+ - 📝 커밋 해시 및 링크
34
+ - 🧪 테스트 결과
35
+ - 🏗️ 빌드 결과
36
+ - 🔍 린팅 결과
37
+ - 👤 작업자 정보
38
+
39
+ **예시 메시지**:
40
+
41
+ ```
42
+ ✅ CI 성공 🎉
43
+ 모든 테스트, 빌드, 린팅이 성공적으로 완료되었습니다.
44
+
45
+ 브랜치: main 커밋: a1b2c3d
46
+ 테스트: ✅ 성공 빌드: ✅ 성공
47
+ 린팅: ✅ 성공 작업자: tylersong
48
+ ```
49
+
50
+ ### 🚀 배포 알림 (publish.yml)
51
+
52
+ **전송 시점**: NPM 배포 완료 후
53
+ **포함 정보**:
54
+
55
+ - ✅/❌ 배포 결과
56
+ - 📦 새 버전 정보
57
+ - 🏷️ 배포 타입 (자동/태그)
58
+ - 🌿 브랜치/태그 정보
59
+ - 🔗 NPM 패키지 링크
60
+ - 💻 설치 명령어
61
+ - 👤 배포자 정보
62
+
63
+ **예시 메시지**:
64
+
65
+ ```
66
+ 🚀 패키지 배포 성공 🚀
67
+ tylersong v1.0.5이 NPM에 성공적으로 배포되었습니다!
68
+
69
+ 버전: v1.0.5 배포 타입: Auto Deploy
70
+ 브랜치/태그: main
71
+
72
+ NPM: tylersong 패키지
73
+ 설치 명령어: npx tylersong
74
+ 배포자: tylersong
75
+ ```
76
+
77
+ ## 🎨 Discord 메시지 스타일
78
+
79
+ ### 색상 코드
80
+
81
+ - 🟢 **성공**: 초록색 (`00FF00`)
82
+ - 🔴 **실패**: 빨간색 (`FF0000`)
83
+ - 🟠 **취소**: 주황색 (`FFA500`)
84
+ - 🔵 **기본**: Discord 파란색 (`5865F2`)
85
+
86
+ ### 이모지 사용
87
+
88
+ - ✅ 성공 작업
89
+ - ❌ 실패 작업
90
+ - ⚠️ 경고/취소
91
+ - 🎉 CI 성공
92
+ - 🚀 배포 성공
93
+ - 💥 오류 발생
94
+
95
+ ## 🔧 고급 설정
96
+
97
+ ### 알림 비활성화
98
+
99
+ Discord 알림을 일시적으로 비활성화하려면:
100
+
101
+ 1. GitHub Secrets에서 `DISCORD_WEBHOOK_URL` 삭제 또는
102
+ 2. Secret 값을 빈 문자열로 설정
103
+
104
+ ### 커스텀 알림
105
+
106
+ 특정 상황에서만 알림을 받고 싶다면 워크플로우 파일을 수정:
107
+
108
+ ```yaml
109
+ - name: Send Discord notification
110
+ if: env.DISCORD_WEBHOOK_URL != '' && github.ref == 'refs/heads/main'
111
+ # main 브랜치에서만 알림
112
+ ```
113
+
114
+ ### 멘션 추가
115
+
116
+ 특정 사용자나 역할을 멘션하려면 description에 추가:
117
+
118
+ ```yaml
119
+ echo "description=<@사용자ID> 배포가 완료되었습니다!" >> $GITHUB_OUTPUT
120
+ ```
121
+
122
+ ## 🛠️ 트러블슈팅
123
+
124
+ ### 알림이 오지 않는 경우
125
+
126
+ 1. **Discord 웹후크 URL 확인**
127
+
128
+ - GitHub Secrets에 올바른 URL이 저장되었는지 확인
129
+ - 웹후크가 삭제되지 않았는지 Discord에서 확인
130
+
131
+ 2. **권한 확인**
132
+
133
+ - 봇/웹후크가 해당 채널에 메시지를 보낼 권한이 있는지 확인
134
+
135
+ 3. **워크플로우 로그 확인**
136
+ - GitHub Actions 로그에서 Discord 알림 단계 확인
137
+ - curl 명령어 실행 결과 확인
138
+
139
+ ### 메시지 포맷 오류
140
+
141
+ JSON 구문 오류가 발생하면:
142
+
143
+ - 필드 값에 특수문자나 따옴표가 있는지 확인
144
+ - 멀티라인 텍스트는 적절히 이스케이프 처리
145
+
146
+ ### 웹후크 제한사항
147
+
148
+ Discord 웹후크 제한사항:
149
+
150
+ - 요청당 최대 10개의 embeds
151
+ - Embed당 최대 25개의 fields
152
+ - 분당 30개 메시지 제한
153
+
154
+ ## 📚 참고 자료
155
+
156
+ - [Discord Webhook 가이드](https://support.discord.com/hc/ko/articles/228383668)
157
+ - [Discord API - Webhook](https://discord.com/developers/docs/resources/webhook)
158
+ - [GitHub Actions - Secrets](https://docs.github.com/ko/actions/security-guides/encrypted-secrets)
@@ -0,0 +1,142 @@
1
+ # GitHub Actions 수정 사항
2
+
3
+ ## 🔧 주요 수정 내용
4
+
5
+ ### 1. YAML 구조 문제 수정
6
+
7
+ #### CI 워크플로우 (ci.yml)
8
+ - **문제**: `lint` job이 `build` job 내부에 잘못 배치됨
9
+ - **수정**: 올바른 들여쓰기로 독립적인 job으로 분리
10
+
11
+ #### 배포 워크플로우 (publish.yml)
12
+ - **문제**: `notify` job이 잘못된 들여쓰기
13
+ - **수정**: 올바른 job 레벨로 수정
14
+
15
+ ### 2. Job Dependency 문제 수정
16
+
17
+ #### 문제점
18
+ - `version-check` job이 항상 `check-ci`를 필요로 함
19
+ - `check-ci`는 `workflow_run` 이벤트에서만 실행되어 다른 이벤트에서 오류 발생
20
+
21
+ #### 수정 방안
22
+ ```yaml
23
+ check-ci:
24
+ if: always() # 모든 이벤트에서 실행
25
+ steps:
26
+ - name: Check CI workflow status
27
+ run: |
28
+ if [ "${{ github.event_name }}" == "workflow_run" ]; then
29
+ # workflow_run 이벤트에서만 CI 상태 체크
30
+ else
31
+ # 다른 이벤트에서는 성공으로 가정
32
+ echo "success=true" >> $GITHUB_OUTPUT
33
+ fi
34
+ ```
35
+
36
+ ### 3. Discord 알림 조건 수정
37
+
38
+ #### 문제점
39
+ - `if: env.DISCORD_WEBHOOK_URL != ''` 조건이 작동하지 않음
40
+ - Environment variables는 secrets에 접근할 수 없음
41
+
42
+ #### 수정 방안
43
+ ```yaml
44
+ - name: Send Discord notification
45
+ if: secrets.DISCORD_WEBHOOK_URL != ''
46
+ # secrets 직접 체크로 변경
47
+ ```
48
+
49
+ ### 4. Deprecated Action 대체
50
+
51
+ #### 문제점
52
+ - `actions/create-release@v1`은 deprecated됨
53
+
54
+ #### 수정 방안
55
+ ```yaml
56
+ - name: Create GitHub Release
57
+ uses: actions/github-script@v7
58
+ with:
59
+ script: |
60
+ await github.rest.repos.createRelease({
61
+ // 최신 API 사용
62
+ });
63
+ ```
64
+
65
+ ### 5. Artifact 접근 문제 해결
66
+
67
+ #### 문제점
68
+ - `workflow_run` 이벤트에서 다른 워크플로우의 artifact 접근 어려움
69
+
70
+ #### 수정 방안
71
+ - 배포 시 직접 빌드하도록 변경
72
+ - CI의 artifact 의존성 제거
73
+
74
+ ### 6. Discord JSON 안전성 개선
75
+
76
+ #### 문제점
77
+ - 특수문자로 인한 JSON 파싱 오류 가능성
78
+
79
+ #### 수정 방안
80
+ ```bash
81
+ # jq를 사용한 안전한 JSON 생성
82
+ PAYLOAD=$(jq -n \
83
+ --arg title "$TITLE" \
84
+ --arg description "$DESCRIPTION" \
85
+ '{embeds: [{title: $title, description: $description}]}')
86
+ ```
87
+
88
+ ## 🚀 개선된 기능
89
+
90
+ ### 1. 안정성 향상
91
+ - YAML 구문 오류 제거
92
+ - Job dependency 안정화
93
+ - JSON 파싱 오류 방지
94
+
95
+ ### 2. 호환성 개선
96
+ - 최신 GitHub Actions 사용
97
+ - Deprecated action 제거
98
+ - 모든 이벤트 타입 지원
99
+
100
+ ### 3. 오류 처리 강화
101
+ - curl 명령어에 오류 처리 추가
102
+ - 빌드 artifact 검증 강화
103
+ - 조건부 실행 로직 개선
104
+
105
+ ## 📋 검증 체크리스트
106
+
107
+ - [x] YAML 구문 오류 수정
108
+ - [x] Job dependency 문제 해결
109
+ - [x] Discord 알림 조건 수정
110
+ - [x] Deprecated action 대체
111
+ - [x] JSON 안전성 개선
112
+ - [x] 오류 처리 강화
113
+
114
+ ## 🔍 테스트 방법
115
+
116
+ ### 1. CI 테스트
117
+ ```bash
118
+ # Pull Request 생성으로 CI 테스트
119
+ git checkout -b test-ci
120
+ git push origin test-ci
121
+ # PR 생성 후 Actions 탭에서 확인
122
+ ```
123
+
124
+ ### 2. 배포 테스트
125
+ ```bash
126
+ # 버전 업데이트 후 main push
127
+ npm version patch
128
+ git push origin main
129
+ # 자동 배포 확인
130
+ ```
131
+
132
+ ### 3. Discord 알림 테스트
133
+ - Discord 웹훅 URL 설정 후
134
+ - CI/배포 실행하여 알림 수신 확인
135
+
136
+ ## 🛡️ 보안 고려사항
137
+
138
+ 1. **Secret 관리**: Discord 웹훅 URL은 반드시 GitHub Secrets에 저장
139
+ 2. **권한 최소화**: 필요한 최소 권한만 부여
140
+ 3. **환경 분리**: Production 환경에서 안전한 배포
141
+
142
+ 이제 GitHub Actions가 안정적으로 작동하며, 모든 이벤트 타입에서 정상적으로 실행됩니다.
package/docs/usage.md ADDED
@@ -0,0 +1,112 @@
1
+ # tylersong CLI 사용법
2
+
3
+ ## 설치
4
+
5
+ NPX를 통해 바로 실행할 수 있습니다:
6
+
7
+ ```bash
8
+ npx tylersong
9
+ ```
10
+
11
+ ## 옵션
12
+
13
+ ### 기본 사용법
14
+
15
+ ```bash
16
+ npx tylersong
17
+ ```
18
+
19
+ 인터랙티브 모드로 개발자 프로필 정보를 확인할 수 있습니다.
20
+
21
+ ### 명령어 옵션
22
+
23
+ - `-V, --version`: 버전 정보 출력
24
+ - `-g, --github`: GitHub 프로필을 브라우저에서 바로 열기
25
+ - `-h, --help`: 도움말 출력
26
+
27
+ ### 예시
28
+
29
+ ```bash
30
+ # 버전 확인
31
+ npx tylersong --version
32
+
33
+ # GitHub 프로필 열기
34
+ npx tylersong --github
35
+
36
+ # 도움말 보기
37
+ npx tylersong --help
38
+ ```
39
+
40
+ ## 개발
41
+
42
+ ### TypeScript로 개발
43
+
44
+ #### NPM 사용
45
+
46
+ ```bash
47
+ # 의존성 설치
48
+ npm install
49
+
50
+ # 개발 모드 실행
51
+ npm run dev
52
+
53
+ # 빌드
54
+ npm run build
55
+
56
+ # 빌드된 파일 실행
57
+ npm start
58
+ ```
59
+
60
+ #### Bun 사용 (더 빠른 성능!)
61
+
62
+ ```bash
63
+ # 의존성 설치
64
+ bun install
65
+
66
+ # 개발 모드 실행 (TypeScript 직접 실행)
67
+ bun run dev:bun
68
+
69
+ # 빌드 (bun 번들러 사용)
70
+ bun run build:bun
71
+
72
+ # 빌드된 파일 실행
73
+ bun run start:bun
74
+
75
+ # 또는 TypeScript 소스를 직접 실행
76
+ bun run src/index.ts
77
+ ```
78
+
79
+ ### 프로젝트 구조
80
+
81
+ ```
82
+ tylersong/
83
+ ├── src/
84
+ │ └── index.ts # 메인 TypeScript 소스 파일
85
+ ├── dist/ # 빌드된 JavaScript 파일들
86
+ ├── docs/ # 문서 파일들
87
+ ├── package.json # 패키지 설정
88
+ └── tsconfig.json # TypeScript 설정
89
+ ```
90
+
91
+ ## 기능
92
+
93
+ - 🚀 개발자 프로필 정보 표시
94
+ - 💻 GitHub 프로필 바로 열기
95
+ - ✨ 터미널에서 색상과 아이콘으로 꾸며진 출력
96
+ - 📧 이메일 연락처 정보 제공
97
+
98
+ ## 배포
99
+
100
+ 자세한 배포 가이드는 [docs/deployment.md](./deployment.md)를 참고해주세요.
101
+
102
+ ### 빠른 배포
103
+
104
+ ```bash
105
+ # 패치 버전 업데이트 후 자동 배포
106
+ npm version patch
107
+ git push origin main
108
+
109
+ # 또는 태그와 함께 즉시 배포
110
+ npm version patch
111
+ git push origin main --tags
112
+ ```
@@ -0,0 +1,176 @@
1
+ # GitHub Actions 워크플로우 가이드
2
+
3
+ 이 프로젝트는 모듈화된 GitHub Actions 워크플로우를 사용합니다.
4
+
5
+ ## 📁 워크플로우 구조
6
+
7
+ ```
8
+ .github/
9
+ ├── actions/
10
+ │ └── setup-runtime/ # 재사용 가능한 컴포지트 액션
11
+ │ └── action.yml
12
+ └── workflows/
13
+ ├── ci.yml # 지속적 통합 (테스트, 빌드, 린팅)
14
+ └── publish.yml # NPM 배포
15
+ ```
16
+
17
+ ## 🔄 워크플로우 설명
18
+
19
+ ### 1. Continuous Integration (ci.yml)
20
+
21
+ **트리거:**
22
+
23
+ - `main`, `develop` 브랜치로의 push
24
+ - `main`, `develop` 브랜치로의 pull request
25
+
26
+ **작업:**
27
+
28
+ - **test**: Node.js와 Bun 환경에서 테스트 실행
29
+ - **build**: TypeScript 빌드 및 아티팩트 업로드
30
+ - **lint**: 코드 품질 검사, 타입 체크, 보안 감사
31
+
32
+ ### 2. Publish to NPM (publish.yml)
33
+
34
+ **트리거:**
35
+
36
+ - `main` 브랜치로의 push
37
+ - `v*` 형태의 태그 push
38
+ - CI 워크플로우 완료 후 (workflow_run)
39
+
40
+ **작업:**
41
+
42
+ - **check-ci**: CI 워크플로우 성공 여부 확인
43
+ - **version-check**: 버전 변경 사항 확인
44
+ - **publish**: NPM에 패키지 배포
45
+ - **notify**: 배포 결과 알림
46
+
47
+ ## 🔧 재사용 가능한 액션
48
+
49
+ ### setup-runtime
50
+
51
+ Node.js 또는 Bun 런타임 환경을 설정하고 의존성을 설치합니다.
52
+
53
+ **입력:**
54
+
55
+ - `runtime`: 'node' 또는 'bun'
56
+ - `node-version`: Node.js 버전 (기본: '20.x')
57
+ - `bun-version`: Bun 버전 (기본: 'latest')
58
+
59
+ **사용 예:**
60
+
61
+ ```yaml
62
+ - name: Setup runtime environment
63
+ uses: ./.github/actions/setup-runtime
64
+ with:
65
+ runtime: node
66
+ ```
67
+
68
+ ### discord-notify
69
+
70
+ Discord 웹후크를 통해 알림을 전송합니다.
71
+
72
+ **입력:**
73
+
74
+ - `webhook-url`: Discord 웹후크 URL (필수)
75
+ - `status`: 워크플로우 상태 (success/failure/cancelled)
76
+ - `title`: 알림 제목 (필수)
77
+ - `description`: 알림 설명
78
+ - `color`: Embed 색상 (hex, # 제외)
79
+ - `fields`: 추가 필드 (JSON 배열)
80
+
81
+ **사용 예:**
82
+
83
+ ```yaml
84
+ - name: Send Discord notification
85
+ uses: ./.github/actions/discord-notify
86
+ with:
87
+ webhook-url: ${{ secrets.DISCORD_WEBHOOK_URL }}
88
+ status: success
89
+ title: "배포 완료!"
90
+ description: "새 버전이 배포되었습니다."
91
+ ```
92
+
93
+ ## 🚀 배포 시나리오
94
+
95
+ ### 자동 배포 (main 브랜치)
96
+
97
+ 1. 코드를 `main` 브랜치에 push
98
+ 2. CI 워크플로우 실행 (테스트, 빌드, 린팅)
99
+ 3. CI 성공 시 배포 워크플로우 실행
100
+ 4. package.json 버전이 NPM과 다르면 자동 배포
101
+
102
+ ### 즉시 배포 (태그)
103
+
104
+ 1. 버전 태그 push (`v1.0.5` 등)
105
+ 2. CI와 배포 워크플로우 동시 실행
106
+ 3. CI 성공 시 무조건 NPM에 배포
107
+ 4. GitHub Release 자동 생성
108
+
109
+ ### Pull Request
110
+
111
+ 1. PR 생성 시 CI 워크플로우만 실행
112
+ 2. 테스트, 빌드, 린팅 검사
113
+ 3. 배포는 실행되지 않음 (dry-run만)
114
+
115
+ ## 📋 워크플로우 흐름도
116
+
117
+ ```mermaid
118
+ graph TD
119
+ A[코드 Push/PR] --> B[CI 워크플로우]
120
+ B --> C{테스트 통과?}
121
+ C -->|실패| D[❌ 빌드 실패]
122
+ C -->|성공| E[빌드 & 아티팩트 업로드]
123
+ E --> F{main 브랜치?}
124
+ F -->|No| G[✅ CI 완료]
125
+ F -->|Yes| H[배포 워크플로우]
126
+ H --> I{버전 변경?}
127
+ I -->|No| J[⏭️ 배포 스킵]
128
+ I -->|Yes| K[NPM 배포]
129
+ K --> L[✅ 배포 완료]
130
+ ```
131
+
132
+ ## ⚙️ 환경 설정
133
+
134
+ ### GitHub Secrets
135
+
136
+ Repository Settings → Secrets and variables → Actions에서 설정:
137
+
138
+ - `NPM_TOKEN`: NPM 액세스 토큰
139
+ - `DISCORD_WEBHOOK_URL`: Discord 웹후크 URL (선택사항)
140
+ - `GITHUB_TOKEN`: 자동으로 제공됨 (Release 생성용)
141
+
142
+ > 💬 **Discord 알림**: 자세한 설정은 [Discord 설정 가이드](./discord-setup.md)를 참고하세요.
143
+
144
+ ### GitHub Environment
145
+
146
+ `production` 환경 설정을 통해 배포 시 추가 보안 검토 가능
147
+
148
+ ## 🔍 모니터링
149
+
150
+ ### CI 상태 확인
151
+
152
+ - Actions 탭에서 각 워크플로우 실행 상태 확인
153
+ - 실패 시 로그를 통해 문제 진단
154
+
155
+ ### 배포 상태 확인
156
+
157
+ - NPM: https://www.npmjs.com/package/tylersong
158
+ - GitHub Releases: 태그 배포 시 자동 생성
159
+ - 알림 작업에서 성공/실패 상태 확인
160
+
161
+ ## 🛠️ 트러블슈팅
162
+
163
+ ### CI 실패 시
164
+
165
+ 1. 테스트 실패: 코드 수정 후 재푸시
166
+ 2. 빌드 실패: TypeScript 오류 확인
167
+ 3. 린팅 실패: 코드 품질 이슈 해결
168
+
169
+ ### 배포 실패 시
170
+
171
+ 1. NPM_TOKEN 확인
172
+ 2. package.json 버전 확인
173
+ 3. 빌드 아티팩트 존재 확인
174
+ 4. NPM 패키지명 중복 확인
175
+
176
+ 이 구조를 통해 각 워크플로우의 책임이 명확히 분리되어 유지보수가 쉬워집니다.