2.2.1 릴리스 실행 기록
문서 역할
- 역할:
시나리오
- 문서 종류:
flow
- 충돌 시 우선 문서:
policy/release-process.md, 태그 기준은 policy/release-tag-policy.md
- 기준 성격:
as-is
목적
v2.2.1 API hotfix 릴리스의 병합 커밋, 운영 반영 결과, 서비스 태그와 검증 근거를 한 문서에 고정한다.
범위
- 대상:
docs, coupler-api
- 포함 범위: 삭제 댓글 tombstone 표시 정체성 복구, API 로컬/GitHub 품질 게이트, API 운영 배포/검증, 서비스 태그, docs Release 기록
- 제외 범위:
coupler-admin-web 운영 배포, coupler-mobile-app Store/NextPush 배포, 운영 RDS 변경
상위 규범 문서
릴리스 상태
- 목표 버전:
v2.2.1
- 전체 상태:
released
- 완료 범위:
coupler-api PR #91 merge, 운영 배포/검증, coupler-api v2.2.1 태그, docs 릴리스 기록 최종화
docs 태그: v2.2.1 -> docs release workflow 실행 시점의 docs tag commit
coupler-api PR: #91
coupler-api 병합 커밋: 1075ec4523908b03e9f6f04412654c2edb627983
coupler-api 후보 커밋: 11a18f624b3029d5be7752920e936879b0b050c7
coupler-api 기준 main: 4b96c904fe550f9295f0f4b3fb164814d6e468d3
coupler-api 태그: v2.2.1 -> 1075ec4523908b03e9f6f04412654c2edb627983
coupler-api 태그 객체: 782ddb5d28bafa6ca7e2bb369d257a6edb030c52
coupler-admin-web 태그: N/A (배포 변경 없음)
coupler-mobile-app 태그: N/A (배포 변경 없음)
coupler-mobile-app 제출 마커 태그: N/A
- 제출 마커 증빙 이관/삭제:
N/A
릴리스 결과
coupler-api 운영 EC2를 1075ec4523908b03e9f6f04412654c2edb627983 기준으로 배포하고 내부/외부 응답과 DB-backed 공개 API를 확인했다.
- 운영 검증 완료 후
coupler-api v2.2.1 annotated tag를 생성하고 원격에 push했다.
coupler-api 삭제 댓글 tombstone DTO에서 표시용 alias, nickname, gender, level, mini_profile, admin_profile, status를 유지하도록 복구했다.
- 삭제 댓글의
content, create_date, like, blame, 상세 프로필/이메일 값은 tombstone 계약대로 계속 scrub한다.
coupler-admin-web, coupler-mobile-app, 운영 RDS는 이번 릴리스 범위에 포함하지 않는다.
메인 흐름
coupler-api origin/main 기준 clean worktree에서 fix/김민식/삭제댓글_표시정체성_복구 브랜치를 생성했다.
- PR #84/#85 히스토리를 확인해 삭제 댓글 표시 정체성 복구 커밋이 main 계열에 포함되지 않은 원인을 확정했다.
coupler-api 후보 커밋 11a18f624b3029d5be7752920e936879b0b050c7을 작성했다.
- 로컬 품질 게이트와 self-review를
No Findings로 완료했다.
coupler-api PR #91을 생성하고 본문, diff 범위, GitHub Actions를 확인한 뒤 rebase merge했다.
- 운영
coupler-api를 main 병합 커밋 1075ec4523908b03e9f6f04412654c2edb627983 기준으로 fast-forward 배포했다.
pnpm install --frozen-lockfile, pm2 restart coupler-api --update-env, pm2 save를 수행하고 PM2 상태, 내부/외부 응답, DB-backed 공개 API, 로그를 확인했다.
- 운영 검증 완료 후
coupler-api v2.2.1 annotated tag를 생성하고 원격에 push했다.
- 이 문서를 최종 검증 결과로 갱신해 docs
v2.2.1 태그와 GitHub Release의 기준 문서로 확정했다.
검증 근거
coupler-api
- 작업 브랜치:
fix/김민식/삭제댓글_표시정체성_복구
- PR: #91
- 후보 커밋:
11a18f624b3029d5be7752920e936879b0b050c7
- 병합 커밋:
1075ec4523908b03e9f6f04412654c2edb627983
- 기준 main:
4b96c904fe550f9295f0f4b3fb164814d6e468d3
- 변경 파일:
dto/app/loungeDto.ts
__tests__/app-list-count-context-contract.test.ts
swagger/app/v1/lounge.yaml
swagger/swagger.yaml
- focused test:
pnpm test -- __tests__/app-list-count-context-contract.test.ts --runInBand 통과
- lint:
pnpm lint 통과
- typecheck:
pnpm typecheck 통과
- format:
pnpm format 통과
- full test:
pnpm test:ci 통과 (70 suites / 438 tests)
- GitHub Actions: PR #91
prettier, eslint, test, typecheck 통과
- 병합 방식: rebase merge
- 운영 배포 시각:
2026-06-28 19:29 KST
- 운영 커밋:
1075ec4523908b03e9f6f04412654c2edb627983
- 태그 객체:
782ddb5d28bafa6ca7e2bb369d257a6edb030c52
- 태그 커밋:
1075ec4523908b03e9f6f04412654c2edb627983
- PM2 상태:
coupler-api online
- 내부 응답:
http://127.0.0.1:3002/ -> ritzy API Running ...
- 외부 응답:
https://api.ritzy.fourhundred.co.kr/ -> ritzy API Running ...
- DB-backed 공개 API:
GET /app/manager/list 내부/외부 200, result_code=0
- 운영 로그: 재시작 후
server started on port 3002 확인. 기존 FCM invalid token 및 Google invalid token 로그가 있었으나 이번 배포 커밋의 startup 실패나 crash는 확인되지 않았다.
- 운영 git 상태: 기존 untracked
.bak 파일 2개는 배포 범위가 아니므로 변경하지 않았다.
coupler-admin-web
coupler-mobile-app
- 배포 변경 없음. Store/NextPush/태그 생성 대상
N/A.
DB migration
- DB schema/data migration 없음.
DB migration 범위 N/A.
롤백 기준
coupler-api: 직전 운영 태그 v2.2.0 또는 4b96c904fe550f9295f0f4b3fb164814d6e468d3 기준으로 rollback한다.
- 운영 배포 후 문제가 확인되면 직전 운영 태그 또는 운영 배포 전 PM2 상태 기준으로 rollback한다.
coupler-admin-web, coupler-mobile-app, 운영 RDS는 이번 릴리스에서 변경하지 않으므로 rollback 대상 N/A다.
후속 작업
관련 문서