์ถ์ฒ
ChatGPT
์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ ๊ณผ์ ์์ ๋น๋(Build)๋ผ๋ ์ฉ์ด๋ ๋จ์ํ ์์ค ์ฝ๋์ ์ปดํ์ผ๊ณผ ํจํค์ง์ ๋์ด์ ๋ฐฐํฌ(Deplyment)๊น์ง ํฌํจํ๋ ๋ณด๋ค ๋์ ๊ฐ๋ ์ผ๋ก ์ฌ์ฉ๋๋ค. ๋น๋ ๊ณผ์ ์์ ๋ฐฐํฌ๊น์ง ํฌํจ๋๋ ์ด์ ๋ ๊ฐ๋ฐ ํ๊ฒฝ์์ ์ต์ข ์ฌ์ฉ์์๊ฒ ์ฑ์ ์ ๋ฌํ๋ ๋ชจ๋ ๊ณผ์ ์ ํฌ๊ดํ๊ธฐ ๋๋ฌธ์ด๋ค. ์ด๋ ํนํ CI/CD(Continuous Integration/Continuous Deployment) ํ์ดํ๋ผ์ธ์ ํตํด ์๋ํ๋ ๋น๋ ๋ฐ ๋ฐฐํฌ ์์ ์ด ์ค์ํด์ง ํ๋์ ๊ฐ๋ฐ ํ๋ฆ์ ๋ฐ์ํ๋ค.
๋น๋ ๊ณผ์ ์์์ ๋ฐฐํฌ ๋จ๊ณ
๋ฐฐํฌ(Deplayment) ๊ฐ์
๋ฐฐํฌ๋ ๋น๋๋ APK ํ์ผ์ ์ค์ ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋ ํ๊ฒฝ์ ๋ฐฐํฌํ๋ ๋จ๊ณ๋ก, ๋ค์๊ณผ ๊ฐ์ ํ๊ฒฝ์ ์ฑ์ ๋ฐฐํฌํ ์ ์๋ค.
- ๋ก์ปฌ ํ ์คํธ: ๊ฐ๋ฐ ์ค์ธ ๊ธฐ๊ธฐ๋ ์๋ฎฌ๋ ์ดํฐ์์ ์ง์ ํ ์คํธ.
- ํ ์คํธ ํ๊ฒฝ: QA ํ์ด ์ฑ์ ํ ์คํธํ ์ ์๋๋ก ๋ณ๋์ ํ ์คํธ ์๋ฒ๋ ๋๋ฐ์ด์ค์ ๋ฐฐํฌ.
- ์ฌ์ฉ์ ํ๊ฒฝ: Google Play Store ๋ฑ์ ํตํด ์ค์ ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌ.
๋ฐฐํฌ ๋จ๊ณ์ ์ฃผ์ ์์
1. ๋ก์ปฌ ํ ์คํธ(Local Testing)
- ๊ฐ๋ฐ์ ๊ธฐ๊ธฐ ์ค์น: APK๋ฅผ ๋ก์ปฌ ๋๋ฐ์ด์ค๋ ์๋ฎฌ๋ ์ดํฐ์ ์ค์นํ์ฌ ์ง์ ํ ์คํธํ๋ค.
- Android Studio: 'Run' ๋๋ 'Debug' ์ต์ ์ ์ฌ์ฉํ์ฌ ๋น ๋ฅด๊ฒ ์ฑ์ ํ ์คํธํ๋ค.
- ADB(Android Debug Bridge): CLI(Command Line Interface)๋ฅผ ํตํด APK๋ฅผ ์ค์น ๋ฐ ๊ด๋ฆฌํ๋ค.
adb install path/to/app.apk
2. ํ ์คํธ ํ๊ฒฝ ๋ฐฐํฌ(Test Environment Deplyment)
- QA Testing: ํ์ง ๋ณด์ฆ(QA) ํ์ด ๋ค์ํ ๊ธฐ๊ธฐ ๋ฐ ์๋๋ฆฌ์ค์์ ์ฑ์ ํ ์คํธํ๋ค.
- Staging Server: ์ค์ ์ด์ ํ๊ฒฝ๊ณผ ์ ์ฌํ ์๋ฒ์ ์ฑ์ ๋ฐฐํฌํ์ฌ ์๋น ํ ์คํธ๋ฅผ ์งํํ๋ค.
- Firebase Test Lab: ๋ค์ํ ๊ธฐ๊ธฐ ๋ฐ Android ๋ฒ์ ์์ ์๋ํ๋ ํ ์คํธ๋ฅผ ์คํํ ์ ์๋ ํด๋ผ์ฐ๋ ๊ธฐ๋ฐ ํ ์คํธ ์๋น์ค.
- Crashlytics: ํ ์คํธ ์ค ๋ฐ์ํ ์ ์๋ ํฌ๋์ ์ ๋ณด๋ฅผ ์์งํ์ฌ ๋ถ์ ๋ฐ ํด๊ฒฐ.
3. ๋ฆด๋ฆฌ์ฆ ๋ฐ ์ฌ์ฉ์ ํ๊ฒฝ (Release and User Environment Deplyment)
- Google Play Store ๋ฐฐํฌ: Google Play Console์ ํตํด APK๋ฅผ ์ ๋ก๋ํ๊ณ , ์ฑ์ ์ค์ ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌํ๋ค.
- Beta Testing: ํ๋ ์ด ์คํ ์ด์ ๋ด๋ถ ํ ์คํธ, ํด๋ก์ฆ๋ ๋ฒ ํ, ์คํ ๋ฒ ํ ๊ธฐ๋ฅ์ ์ฌ์ฉํ์ฌ ์ ํ๋ ์ฌ์ฉ์ ๊ทธ๋ฃน์๊ฒ ์ฑ์ ํ ์คํธํ๋ค.
- App Bundles: APK ๋์ AAB(Android App Bundle) ํฌ๋งท์ ์ฌ์ฉํ์ฌ ์ฑ์ ๋์ฑ ์ต์ ํ๋ ํํ๋ก ๋ฐฐํฌ๋ค.
Release Steps:
1. Build APK/AAB
2. Upload to Google Play Console
3. Complete app metadata and configurations
4. Publish for public download
- Deployment Targets:
- Internal Test Track: ๋ด๋ถ ํ์ด๋ ์์์ ํ ์คํธ ์ฌ์ฉ์์๊ฒ ์ฑ์ ๋ฐฐํฌ.
- Closed Testing Track: ์ด๋๋ ํ ์คํฐ์๊ฒ ์ฑ์ ๋ฐฐํฌํ์ฌ ํผ๋๋ฐฑ์ ๋ฐ์.
- Open Testing Track: ๊ด๋ฒ์ํ ์ฌ์ฉ์์๊ฒ ์ฑ์ ํ ์คํธํ๊ณ ํผ๋๋ฐฑ ์์ง.
- Production Track: ์ผ๋ฐ ์ฌ์ฉ์์๊ฒ ์ฑ์ ์ ์์ผ๋ก ๋ฐฐํฌ.
CI/CD ํ์ดํ๋ผ์ธ๊ณผ ์๋ํ๋ ๋ฐฐํฌ
CI/CD๋ ํ๋ ์ํํธ์จ์ด ๊ฐ๋ฐ์์ ํ์์ ์ธ ์์๋ก, ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์ปค๋ฐํ ๋๋ง๋ค ์๋์ผ๋ก ๋น๋, ํ ์คํธ, ๋ฐฐํฌ๊ฐ ์ด๋ฃจ์ด์ง๋๋ก ์ค์ ํ๋ค. ์ด๋ ๋น ๋ฅธ ํผ๋๋ฐฑ ๋ฃจํ์ ์ง์์ ์ธ ํตํฉ ๋ฐ ๋ฐฐํฌ๋ฅผ ํตํด ์ํํธ์จ์ด ํ์ง์ ์ ์งํ๋ ๋ฐ ๊ธฐ์ฌํ๋ค.
1. Continuose Integration (CI)
- ์๋ํ๋ ๋น๋ ๋ฐ ํ ์คํธ: ์ฝ๋๊ฐ ์ปค๋ฐ๋ ๋๋ง๋ค ์๋์ผ๋ก ๋น๋ ๋ฐ ํ ์คํธ๊ฐ ์คํ๋๋ค.
- ๋น๋ ์๋ฒ: Jenkins, Travis CI, CircleCI ๋ฑ๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์์ ์ธ ํตํฉ์ ์ํํ๋ค.
2. Continuous Deployment (CD)
- ์๋ํ๋ ๋ฐฐํฌ: ๋น๋๊ฐ ์ฑ๊ณตํ๋ฉด ์๋์ผ๋ก ๋ค์ํ ํ๊ฒฝ(ํ ์คํธ, ์คํ ์ด์ง, ํ๋ก๋์ )์ ๋ฐฐํฌํ๋ค.
- ๋ฐฐํฌ ์ ๋ต: Canary Release, Blue-Green Deployment ๋ฑ์ ์ ๋ต์ ํตํด ์ํ์ ์ต์ํํ๋ค.
์๋ํ ๋๊ตฌ ๋ฐ ์๋น์ค
1. Jenkins
- ์คํ ์์ค ์๋ํ ์๋ฒ๋ก, ๋ค์ํ ํ๋ฌ๊ทธ์ธ์ ํตํด ๋น๋, ํ ์คํธ, ๋ฐฐํฌ ๊ณผ์ ์ ์๋ํํ ์ ์๋ค.
- Pipeline as Code: Jenkinsfile์ ์ฌ์ฉํ์ฌ ํ์ดํ๋ผ์ธ์ ์ฝ๋๋ก ์ ์ํ ์ ์๋ค.
2. GitHub Actions
- GitHub์ ๋ด์ฅ๋ CI/CD ๋๊ตฌ๋ก, ๋ฆฌํฌ์งํ ๋ฆฌ์์ ์ง์ ์ํฌํ๋ก์ฐ๋ฅผ ์ ์ํ์ฌ ์๋ํํ ์ ์๋ค.
- YAML ๊ตฌ์ฑ ํ์ผ์ ํตํด ๋น๋, ํ ์คํธ, ๋ฐฐํฌ ์์ ์ ์ค์ ํ๋ค.
3. Bitrise
- ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์ ํนํ๋ CI/CD ์๋น์ค๋ก, ๋ค์ํ ํ๋ ์์ํฌ์ ๋๊ตฌ๋ฅผ ์ง์ํ์ฌ ์ฑ ๋น๋ ๋ฐ ๋ฐฐํฌ๋ฅผ ์๋ํํ๋ค.
- ์ฝ๊ฒ ์ค์ ๊ฐ๋ฅํ ์ํฌํ๋ก์ฐ์ ๋ค์ํ ์๋น์ค ํตํฉ์ ์ง์ํ๋ค.
4. Firebase App Distribution
- ํ ์คํธ ์ฑ ๋ฐฐํฌ ์๋น์ค๋ก, Firebase ํ๋ซํผ ๋ด์์ ์ฑ์ ์์ฝ๊ฒ ํ ์คํธ ์ฌ์ฉ์์๊ฒ ๋ฐฐํฌํ ์ ์๋ค.
- A/B ํ ์คํธ์ ๊ฐ์ ์คํ ๊ธฐ๋ฅ์ ํตํด ์ฑ์ ๊ธฐ๋ฅ์ ์ต์ ํํ ์ ์๋ค.
๋ฐฐํฌ ์๋ํ์ ์ฅ์
- ๋น ๋ฅธ ํผ๋๋ฐฑ ๋ฃจํ: ์๋ํ๋ ํ ์คํธ ๋ฐ ๋ฐฐํฌ๋ฅผ ํตํด ์ฝ๋ ๋ณ๊ฒฝ์ ๋ํ ํผ๋๋ฐฑ์ ๋น ๋ฅด๊ฒ ๋ฐ์ ์ ์๋ค.
- ์ ์ํ ๋ฆด๋ฆฌ์ค: ์๋ํ๋ ํ๋ก์ธ์ค๋ฅผ ํตํด ๋ฆด๋ฆฌ์ค ์ฃผ๊ธฐ๋ฅผ ๋จ์ถํ๊ณ ์๋ก์ด ๊ธฐ๋ฅ์ ๋น ๋ฅด๊ฒ ๋ฐฐํฌํ ์ ์๋ค.
- ํ์ง ๋ณด์ฆ: ์ง์์ ์ธ ํ ์คํธ์ ๋ชจ๋ํฐ๋ง์ ํตํด ์ฑ์ ํ์ง์ ๋ณด์ฅํ๊ณ ๋ฒ๊ทธ๋ฅผ ์ ์ํ ์๋ณํ ์ ์๋ค.
- ๋ฆฌ์์ค ํจ์จ์ฑ: ์๋ํ๋ ๊ฐ๋ฐ์์ ์์์ ์ ์ค์ด๊ณ ๋ฆฌ์์ค๋ฅผ ๋ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค.
๊ฒฐ๋ก
์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ์ ๋น๋ ๊ณผ์ ์ ๋จ์ํ ์ฝ๋๋ฅผ ์ปดํ์ผํ๊ณ ํจํค์งํ๋ ๊ฒ์ ๋์ด, ์ค์ ๋ก ์ฌ์ฉ์๊ฐ ์ฑ์ ์ฌ์ฉํ ์ ์๋๋ก ๋ฐฐํฌํ๋ ๋ชจ๋ ๋จ๊ณ๋ฅผ ํฌํจํ๋ค. ์ด๋ฌํ ํฌ๊ด์ ์ธ ์ ๊ทผ์ ์ฑ์ ํ์ง์ ๋์ด๊ณ , ๋ฐฐํฌ ํ์ ์ด์ ํจ์จ์ฑ์ ํฅ์์ํค๋ ๋ฐ ๊ธฐ์ฌํ๋ค. CI/CD ํ์ดํ๋ผ์ธ์ ๋์ ์ ์ด๋ฌํ ๊ณผ์ ์ ์๋ํํ๊ณ ์ต์ ํํ์ฌ, ๊ฐ๋ฐ์์ ์ฌ์ฉ์๊ฐ ๋ชจ๋ ๋ง์กฑํ ์ ์๋ ๊ฒฐ๊ณผ๋ฅผ ์ ๊ณตํ๋ค.
์ด์ ๊ฐ์ด, ๋ฐฐํฌ๋ ์๋๋ก์ด๋ ์ฑ ๊ฐ๋ฐ์์ ๋งค์ฐ ์ค์ํ ๊ณผ์ ์ด๋ฉฐ, ์ง์์ ์ธ ๊ฐ์ ๊ณผ ์๋ํ๋ฅผ ํตํด ๊ฐ๋ฐ ํ๋ก์ธ์ค๋ฅผ ๋์ฑ ํจ์จ์ ์ผ๋ก ๋ง๋ค ์ ์๋ค.
'๋น ๊ตฌ๋ฉ ์ฑ์ฐ๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ฉ์ด] CPU ์ํคํ ์ฒ (2) | 2024.08.02 |
---|---|
[OS] 32๋นํธ์ 64๋นํธ OS์ ์ฐจ์ด์ (0) | 2024.08.02 |
[Android] ์ฑ ๊ฐ๋ฐ์์์ ๋น๋(Build) (0) | 2024.08.02 |
[Android] Android ์ ํ๋ฆฌ์ผ์ด์ ์ปดํ์ผ ๋ฐ ํจํค์ง ๊ณผ์ (0) | 2024.08.02 |
[Android] DEX (0) | 2024.08.02 |