# 지원 중단과 마이그레이션 (deprecation-and-migration)

> 옛 시스템·API·기능을 걷어내고 사용자를 새 구현으로 안전하게 옮기며, DB 스키마는 확장/축소 방식으로 바꿉니다.

- 카테고리: [아키텍처 개선](https://www.myskills.tools/ko/categories/architecture-tuning/)
- 출처: 커뮤니티 · Addy Osmani
- 저장소: https://github.com/addyosmani/agent-skills/tree/main/skills/deprecation-and-migration (commit 9f91cc4)
- SKILL.md: https://github.com/addyosmani/agent-skills/blob/main/skills/deprecation-and-migration/SKILL.md
- 설치 명령: `npx skills add addyosmani/agent-skills --skill deprecation-and-migration`
- 라이선스: MIT
- 호환 도구: Claude Code, Codex, Cursor, Copilot, Gemini CLI
- 권한: read-repo ✓, write-files ✓, shell ✓, network ✗
- 상태: 스캔 통과
- 규칙 스캔으로 모든 위험을 찾을 수는 없습니다. 설치 전에 이 스킬의 SKILL.md를 읽고 권한을 확인하세요.

## 핵심 규칙

동작하는 대안 없이 지원을 중단하지 않으며, DB 컬럼은 제자리에서 바꾸지 않습니다.

## 실행 단계

1. **중단 여부 결정** — 고유한 가치, 사용자 수, 이전 비용, 유지 비용을 따져 보고 기본적으로 권고형 지원 중단을 택합니다.
2. **대체 구현 준비** — 대체 구현이 핵심 사용 사례를 지원하고 문서와 이전 가이드를 갖추며 운영 환경에서 검증된 뒤 중단을 공지합니다.
3. **점진적 이전** — 사용자를 하나씩 옮기며 스트랭글러, 어댑터, 기능 플래그를 활용하고, DB는 확장·백필·축소 단계로 진행합니다.
4. **옛 시스템 제거** — 지표와 로그로 사용량이 0임을 확인한 뒤 옛 코드, 테스트, 문서, 설정, 공지를 삭제합니다.

## 권한 설명 (SKILL.md 기준)

| 기능 | 필요 여부 | 설명 |
|---|---|---|
| 파일 쓰기 | 필요 | 대체 코드, 어댑터, 마이그레이션, 중단 공지를 작성하고 옛 코드와 관련 테스트·문서를 삭제합니다. |
| 명령 실행 | 필요 | 테스트와 통합 검사로 동작을 확인하고, 병합 전에 마이그레이션의 down 경로를 실행합니다. |
| 네트워크 송신 | 필요 없음 | 외부 네트워크나 서비스 접근을 요구하지 않습니다. |

## SKILL.md 프런트매터(YAML)

```yaml
---
name: deprecation-and-migration
description: Manages deprecation and migration. Use when removing old systems, APIs, or features. Use when migrating users from one implementation to another. Use when migrating a database schema in production, such as renaming or dropping a column without downtime (expand/contract). Use when deciding whether to maintain or sunset existing code.
---
```

홈: https://www.myskills.tools/ko/ · URL: https://www.myskills.tools/ko/skills/deprecation-and-migration/
