# 상품 출시 체크리스트

## 쓰는 법

출시(릴리스) 전에 아래 항목을 하나씩 확인합니다. **확인하지 못한 항목은 비워 두지 말고 "미확인 — 이유"로 적습니다.** 확인하지 않은 것을 확인했다고 표시하지 않습니다.

## 1. 버전·이슈

- [ ] 변경 내용에 맞게 버전을 올렸다 (A 호환 깨짐 / B 새 기능 / C 수정·작은 개선)
- [ ] 태그를 프로젝트의 기존 접두 규칙대로 만들었다 (예: `sv-v*`, `cl-v*`)
- [ ] 이번 릴리스에 포함된 이슈가 모두 결과 코멘트와 함께 닫혔다
- [ ] 큰 기능은 별도 브랜치·별도 릴리스로 분리했다

참조: '버전·태그·릴리스 규약', '이슈 기반 개발 흐름'

## 2. 기능 검증

- [ ] 각 이슈의 **성공 기준**을 실제로 확인했다 (테스트·재현 시나리오)
- [ ] 서버와 화면이 같은 상태를 같은 뜻으로 다룬다 (한쪽만 고치지 않았다)
- [ ] 빌드만 통과한 것이 아니라 **실제로 실행**해 확인했다 (흰 화면·안 뜨는 창은 실행해야 드러난다)
- [ ] 통신 전문을 바꿨다면 공유 계약(스키마)을 먼저 갱신했고, 실제 로그로 검증기를 돌렸다

## 3. 화면 (UI 가 있는 제품)

- [ ] 모바일 반응형 — 320/360/412 폭, 세로·가로, 글자 확대에서 넘침·잘림 0건
- [ ] 모든 데이터 표의 컬럼 정렬이 동작한다 (숫자·날짜는 원래 값 기준)
- [ ] 프로그램 제목에 제품명·버전·빌드 시각이 보이고, 설치본과 일치한다
- [ ] 로그인 화면에 기본 계정 정보가 어떤 형태로도 보이지 않는다
- [ ] 확인하지 못한 화면·크기가 있으면 목록으로 적었다

참조: 'UI 공통 기준 — 반응형·표 정렬·제목 버전 표기'

## 4. 인코딩·데이터

- [ ] 새로 추가한 문서·설정·로그가 UTF-8(BOM 없음)이다
- [ ] 한글 입력·저장·조회를 되읽어서 깨지지 않음을 확인했다
- [ ] 새 DB 작업에 저장 프로시저를 쓰지 않았다 (파라미터 SQL·ORM·트랜잭션)
- [ ] DB 구조 변경이 있으면 기존 자료를 보존하는 이관 절차를 확인했다

## 5. 보안

- [ ] 소스·커밋·이슈·릴리스 노트·로그에 비밀값이 없다
- [ ] 서명·업데이트 키를 기존 것 그대로 썼다 (바꾸면 기존 설치본이 업데이트를 못 받는다)
- [ ] 자동 보안 검사 결과의 실패·미확인 항목을 정상으로 처리하지 않았다

## 6. 업데이트·설치

- [ ] 이전 버전에서 업데이트했을 때 **사용자 자료·설정이 보존**된다
- [ ] 여러 버전을 건너뛴 업데이트도 확인했다 (해당하는 경우)
- [ ] 설치 위치·실행 파일 이름·바로가기 이름이 이전 버전과 같다
- [ ] 문제 시 되돌릴 수 있는 직전 버전 1개를 보관했다

## 7. 기록·안내

- [ ] 릴리스 노트에 새 기능·수정·**업데이트 시 주의점**을 적었다
- [ ] CHANGELOG·이력 파일을 갱신했다
- [ ] 의미 있는 설계 결정·타이밍 값·장치 간 흐름 변경은 설계 기록에 남겼다

## 출시 판정

| 상태 | 뜻 |
|---|---|
| 출시 가능 | 실패 0건. 미확인 항목은 범위·이유·다음 확인 방법이 적혀 있음 |
| 보류 | 실패 항목이 하나라도 남아 있음 — 원인 수정 후 같은 조건으로 재확인 |
