2.2.0 릴리스 실행 기록
문서 역할
역할: 시나리오
문서 종류: flow
충돌 시 우선 문서: policy/release-process.md, 태그 기준은 policy/release-tag-policy.md
기준 성격: as-is
목적
v2.2.0 릴리스의 Mobile Store 승인/출시 기준점, Mobile NextPush 배포, API 운영 반영 결과, 서비스 태그와 제출 마커 증빙을 한 문서에 고정한다.
범위
대상: docs, coupler-api, coupler-mobile-app
포함 범위: API 운영 배포, Mobile Store 승인/출시 기준점 기록, Mobile NextPush 배포, 서비스 태그 확정, 제출 마커 증빙 이관, docs Release 기록
제외 범위: coupler-admin-web 운영 배포, 운영 RDS 변경
상위 규범 문서
릴리스 상태
목표 버전: v2.2.0
전체 상태: released
완료 범위: coupler-api 운영 배포/태그, coupler-mobile-app Store 승인 기준 태그, coupler-mobile-app 제출 마커 태그 증빙 이관/삭제, Mobile NextPush Android/iOS Production 배포, docs 태그/GitHub Release 생성
coupler-api 태그: v2.2.0 -> 4b96c904fe550f9295f0f4b3fb164814d6e468d3
coupler-admin-web 태그: N/A (배포 변경 없음)
coupler-mobile-app 태그: v2.2.0 -> e4dd5b7c5d56b26065c6de31eca7b9c5f6225248
coupler-mobile-app 제출 마커 태그: submitted/android-2.2.0-97 -> 13ce1f99c59194031a8545d35028d08125bf26bc, submitted/ios-2.2.0-97 -> e4dd5b7c5d56b26065c6de31eca7b9c5f6225248
제출 마커 증빙 이관/삭제: 이 문서에 증빙을 이관했고, 로컬/원격 submitted/*2.2.0* 태그 삭제를 완료했다.
docs 태그: v2.2.0 -> docs release workflow 및 docs-only corrective reissue 실행 시점의 docs tag commit
릴리스 결과
coupler-api 운영 EC2를 4b96c904fe550f9295f0f4b3fb164814d6e468d3 기준으로 배포하고 내부/외부 응답과 DB 연결을 확인했다.
coupler-mobile-app Android/iOS Store 빌드는 2.2.0 (97) 승인 기준으로 v2.2.0 태그를 생성했다.
coupler-mobile-app Android/iOS NextPush Production 배포를 2.2.0 binary 대상으로 완료했다.
Android/iOS 제출 기준 커밋이 달라 제출 마커는 platform별로 분리했고, 릴리스 기록으로 tag commit과 artifact/hash 증빙을 이관한 뒤 로컬/원격 태그를 삭제했다.
docs GitHub Release와 docs-site-v2.2.0.tar.gz artifact를 생성했고, NextPush 배포 결과를 docs-only corrective reissue로 반영했다.
coupler-admin-web, 운영 RDS는 이번 릴리스 범위에 포함하지 않았다.
메인 흐름
Mobile Store Android/iOS 2.2.0 (97) 승인 상태를 확인했다.
운영 coupler-api를 origin/main의 4b96c904fe550f9295f0f4b3fb164814d6e468d3까지 fast-forward 반영했다.
운영 coupler-api에서 pnpm install --frozen-lockfile, sudo pm2 restart coupler-api --update-env, sudo pm2 save를 수행했다.
API 내부/외부 응답, DB SELECT 1, PM2 상태, 로그를 확인한 뒤 coupler-api v2.2.0 태그를 push했다.
coupler-mobile-app v2.2.0 태그를 승인된 Store 기준 커밋 e4dd5b7c5d56b26065c6de31eca7b9c5f6225248에 생성했다.
제출 마커 태그의 artifact/hash 증빙을 이 문서에 이관하고, coupler-mobile-app 로컬/원격 제출 마커 태그를 삭제했다.
coupler-mobile-app Android/iOS NextPush Production 배포를 2.2.0 binary 대상으로 수행했다.
docs v2.2.0 태그를 push해 GitHub Release와 site artifact를 생성했다.
NextPush 배포 결과를 반영하기 위해 docs-only corrective reissue로 docs Release 본문과 site artifact를 정정했다.
검증 근거
coupler-api
운영 커밋: 4b96c904fe550f9295f0f4b3fb164814d6e468d3
태그 객체: 518ff0a86640e5f5f5944f8e403688bc18aa0688
PM2 상태: coupler-api online
내부 응답: http://127.0.0.1:3002/ -> ritzy API Running ...
외부 응답: https://api.ritzy.fourhundred.co.kr/ -> ritzy API Running ...
DB 연결: SELECT 1 AS ok -> [{"ok":1}]
운영 config 백업: /tmp/coupler-api-default-before-2.2.0-20260628170421.json, /tmp/coupler-api-default-before-2.2.0-20260628170421.diff
coupler-mobile-app
릴리즈 태그 객체: ad16056a235d0518b8785731f8aea5b8015fe59d
릴리즈 태그 커밋: e4dd5b7c5d56b26065c6de31eca7b9c5f6225248
Store 출시/smoke 확인자: 김민식
Store 출시/smoke 확인 시각: 2026-06-28 KST
Android Store 출시/smoke: Play Console 기준 2.2.0 (97) 승인/출시 확인, 앱 실행/로그인/홈 진입 smoke 통과
iOS Store 출시/smoke: App Store Connect 기준 2.2.0 (97) 승인/출시 확인, 앱 실행/로그인/홈 진입 smoke 통과
Android 제출 마커 태그 객체: b4fade86abeb414388e9336dcd357b1e188ca868
Android 제출 마커 커밋: 13ce1f99c59194031a8545d35028d08125bf26bc
Android AAB: android/app/build/outputs/bundle/release/2.2.0(97).aab
Android AAB sha256: e00eaedf6bd9de48c9f3765327fc71bac45083828474f440e8212f2986b2818d
Android bundle sha256: b7ea521934f1d5945ca3d5a64f6fb772a3e5c7ffe30d5a2b581dc369c400d03b
Android CodePushHash: 3b63ce5aa5302af58b88d9e9a3011add75b69b18cf953a5e714a6936254644dc
iOS 제출 마커 태그 객체: a4f895a380416b2c351a8aeafbf83495f61c2b08
iOS 제출 마커 커밋: e4dd5b7c5d56b26065c6de31eca7b9c5f6225248
iOS archive: Xcode archive 날짜 폴더 2026-06-26, 산출물 ritzy 6-26-26, 6.18 PM.xcarchive
iOS App Store upload: 2026-06-26 18:21:09 KST
iOS main.jsbundle sha256: 190b1fee827b3e60b93cbe8b7fa33b24c1533df890e0460e0f8942fdcc4e17f6
iOS build tooling: DTSDKName=iphoneos26.5, DTXcode=2650
제출 마커 삭제: 로컬 git tag --list 'submitted/*2.2.0*' 결과 없음, 원격 ls-remote 결과 없음
coupler-admin-web
DB migration
DB schema/data migration 없음. DB migration 범위 N/A.
Mobile NextPush
배포 실행 확인 시점 coupler-mobile-app 로컬 HEAD: b554f3d643fb7a6e1e8bccea418d4afdfba73c22
배포 실행 확인 시점 coupler-mobile-app 로컬 상태: main...origin/main [ahead 1], uncommitted 변경 존재
Android app: bluedotstudio.official-gmail.com/coupler
Android deployment: Production
Android label: v18
Android target binary version: 2.2.0
Android package hash: 29959bab906fad67e5761301655400a4bc8132dc860b1992018754859ea57f44
Android upload time: 2026-06-28T09:06:59.785Z
Android rollout/mandatory/disabled: 100/false/false
iOS app: bluedotstudio.official-gmail.com/coupler-ios
iOS deployment: Production
iOS label: v15
iOS target binary version: 2.2.0
iOS package hash: 4de79f37dcdba6702ed379d6fcca4fba55e4f58eef1b79f1cab5eb7698728c34
iOS upload time: 2026-06-28T09:07:34.655Z
iOS rollout/mandatory/disabled: 100/false/false
NextPush 서비스 이력은 git commit SHA를 저장하지 않으므로, rollback 기준은 위 app/deployment label과 package hash를 우선한다.
롤백 기준
coupler-api: 직전 운영 태그 또는 운영 배포 전 PM2 상태 기준으로 롤백한다.
coupler-mobile-app: Store에 승인/출시된 2.2.0 (97) binary를 기준으로 스토어 콘솔 rollout/버전 상태에서 처리한다.
Mobile NextPush: Android Production은 v18, iOS Production은 v15를 기준으로 rollback한다. 직전 label로 되돌릴 때는 Android v17, iOS v14를 기준으로 확인한다.
coupler-admin-web: 이번 릴리스에서 배포하지 않았으므로 rollback 대상은 N/A다.
운영 RDS: 이번 릴리스에 DB 변경이 없으므로 DB rollback 대상은 N/A다.
제출 마커 태그: 삭제 후 제출 기준 확인이 필요하면 이 문서의 tag commit SHA와 artifact/hash 증빙을 기준으로 복원한다.
후속 작업
없음. docs-only corrective reissue 완료 후 GitHub Release 본문과 docs-site-v2.2.0.tar.gz artifact 교체 여부를 확인했다.
관련 문서