이커머스 결제 앱 빌드 파이프라인 보안·성능 일괄 정비
목차
v3.1 릴리스 정리: 보안·성능·배포 설정을 한 번에 손봄
이커머스 결제 플랫폼 모바일 빌드 v3.1 작업하면서 빌드 스크립트, 난독화 규칙, 버전 메타, gitignore 4종 세트를 같이 갈아엎었음. 한 번에 묶은 이유는 단순함 — 셋 중 하나만 건드리면 나머지가 무조건 어긋남.
.gitignore 부터 정리
처음에 잡힌 추적 누락 파일들 보고 좀 멘붕왔음. 로컬 키스토어, 빌드 산출물, IDE 캐시가 다 올라가 있었음. 정리 기준은 단순하게 잡았음.
- 로컬 환경에 종속된 파일: 무조건 제외
- 빌드 산출물: 제외 (재현 가능하니까)
- 서명 관련 비밀: 절대 제외 + 이미 추적 중이면
git rm --cached로 빼기 - 팀원 IDE 설정: 공통 부분만 남기고 개인 워크스페이스는 제외
추적 중인 비밀 파일을 단순히 .gitignore 에만 추가하면 의미 없음. 한 번 커밋된 건 히스토리에 남으니까 별도로 처리해야 함.
빌드 스크립트 — 릴리스/디버그 분리가 핵심
기존엔 디버그/릴리스가 한 덩어리로 묶여 있어서 디버그 빌드에도 난독화가 도는 어이없는 구성이었음. 분리하니까 디버그 빌드 시간이 체감 30% 이상 줄음.
| 구분 | 디버그 | 릴리스 |
|---|---|---|
| 난독화 | off | on |
| 리소스 축소 | off | on |
| 로그 strip | off | on |
| 서명 | 디버그 키 | 릴리스 키스토어(로컬 미포함) |
릴리스 서명 정보는 로컬 환경 변수로 주입받게 바꿈. 키스토어 경로/비번이 스크립트에 박혀있으면 여러 사람이 빌드할 때 무조건 사고남.
난독화 규칙에서 제일 자주 깨졌던 것
리플렉션 쓰는 직렬화 라이브러리들이 늘 발목 잡음. 모델 클래스가 통째로 사라지면 런타임에 NPE 폭탄. 규칙 잡을 때 체크한 항목:
- 직렬화 모델: 필드명 보존
- 콜백 인터페이스: 시그니처 보존
- 네이티브 호출 진입점: 메서드 보존
- 결제대행사 SDK: 공식 가이드의 keep 규칙 그대로 반영
특히 결제 SDK 쪽은 마음대로 줄이면 거래 응답 파싱이 깨져서 결제 자체가 안 됨. 한 번 데여본 뒤로는 SDK 문서 keep 규칙을 통째로 복붙하는 게 정신건강에 이로움.
버전 메타 json — 의외로 핵심
원격 강제 업데이트 트리거 용도. 필드 구성은 단순하게 유지함.
{
"minVersion": "3.1.0",
"latestVersion": "3.1.0",
"forceUpdate": false,
"noticeUrl": "..."
}
forceUpdate 를 진영별로 쪼개고 싶은 욕심이 생겼지만 참았음. 분기 늘리면 운영 중에 사고 확률만 늘어남. 한 줄 토글이 제일 안전함.
회고
세 가지를 같이 묶은 게 정답이었음. 보안·성능·배포는 전부 빌드 파이프라인 한 점에서 만나서 따로 PR로 쪼개면 중간 상태가 무조건 깨짐. 디버그/릴리스 분리, 난독화 keep 규칙 표준화, 버전 메타 단순화 — 이 세 줄로 요약 가능.
다음
댓글 0
첫 댓글 달아줘.