Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Droid Knights 2024 Github Actions 효율적인 배포 환경 만들기
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
김태성
June 11, 2024
Programming
320
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Droid Knights 2024 Github Actions 효율적인 배포 환경 만들기
Github Action을 간단하게만 사용하고 계시나요?
실제 업무에 바로 활용할 수 있는 팁과 사례들을 통해 업무 효율성을 함께 높여봐요.
김태성
June 11, 2024
Other Decks in Programming
See All in Programming
速く作れる。その次は、速く確かめられる開発へ 〜AIネイティブ開発を支える、Shift Down〜 / Can build fast. Next, moving to development where we can verify fast.
rkaga
7
4.9k
AI活用は、個人から組織へ|マルチプレイヤーエージェントハーネス「QM」の社内活用事例 / AI use is moving from individuals to orgs
rkaga
1
260
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
940
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
290
Turning Architecture into Unit Tests in the AI Era (NSSpain XIV)
steliosf
PRO
1
100
アクセシビリティから考える情報設計
high_g_engineer
0
410
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
760
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
540
Intent as Code
shoppingjaws
6
1.1k
iOS 27でニュースアプリはどう変わる!? 〜日経電子版の新機能対応と、開発事例から〜
lynnswap
6
13k
[Rails World 2026] Durable orchestration on Rails: from continuation to workflow
palkan
1
320
WebMCP Challenge に星空観察アプリで参加した話
okajun35
0
200
Featured
See All Featured
For a Future-Friendly Web
brad_frost
183
10k
Heart Work Chapter 1 - Part 1
lfama
PRO
10
36k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
What does AI have to do with Human Rights?
axbom
PRO
1
2.4k
The Spectacular Lies of Maps
axbom
PRO
1
1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
30 Presentation Tips
portentint
PRO
1
410
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
390
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
1
330
Java REST API Framework Comparison - PWX 2021
mraible
34
9.7k
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
How to Talk to Developers About Accessibility
jct
2
560
Transcript
Github Actions 효율적인 배포 환경 만들기 김태성
자동화에 대한 이야기
자동화에 대한 이야기 구현부터 배포까지
구현
구현
구현
테스트
배포
배포
배포
문제점
테스트 누락
코드 스타일
수동 배포
불편해요
None
개발 생명 주기
개발 생명 주기 SDLC Software Development Lifecycle
개발 생명 주기
SDLC 분석 설계 테스트 구현 배포
SDLC 분석 설계 테스트 구현 배포
SDLC 분석 설계 테스트 구현 배포
SDLC 분석 설계 테스트 구현 배포
SDLC 분석 설계 테스트 구현 배포 ❏ 정적 분석 검사
❏ 유닛 테스트 ❏ 빌드 테스트
SDLC 분석 설계 테스트 구현 배포 ❏ 데일리 앱 배포
❏ 기능 테스트 앱 배포 ❏ Appium 자동화 테스트 ❏ 유닛 테스트 ❏ 빌드 테스트
SDLC 분석 설계 테스트 구현 배포 ❏ 마일스톤 관리 ❏
릴리즈 브랜치 생성 ❏ 앱 배포 ❏ 릴리즈 노트 작성
자동화 프로세스
자동화 프로세스 분석 설계 테스트 구현 배포 ❏ Kotlin Lint
❏ 유닛 테스트 ❏ 빌드 검사
구현 - ktlint
구현 - ktlint ❏ 문제상황 ❏ 개발자마다 코드 스타일이 상이
❏ 불필요한 리뷰 과정 ❏ 깃 컨플릭 발생 ❏ 가독성이 떨어짐
구현 - ktlint
구현 - ktlint
구현 - ktlint
구현 - ktlint
구현 - ktlint
구현 - ktlint ❏ 코드 리뷰 과정에서 불필요한 코드 스타일
리뷰과정 제거 ❏ 코드 스타일이 달라 발생되는 Git Conflict 해결
구현 - 유닛테스트
구현 - 유닛 테스트 ❏ 문제상황 ❏ 시간 소모 ❏
인적 오류 가능성 ❏ 반복 작업의 번거로움 ❏ 비용 효율성
구현 - 유닛 테스트
구현 - 유닛 테스트
구현 - 유닛 테스트
구현 - 유닛 테스트
구현 - 유닛 테스트 ❏ 반복 작업의 제거 ❏ 비용
효율성 증대 ❏ 지속적으로 코드 안정성 검증
구현 - 빌드 검사
구현 - 빌드 검사 ❏ 문제상황 ❏ 시간 소모 ❏
반복 작업의 번거로움 ❏ 비용 효율성 ❏ 빌드 실패 누락
구현 - 빌드 검사
구현 - 빌드 검사
구현 - 빌드 검사
구현 - 빌드 검사
구현 - 빌드 검사 ❏ 반복 작업의 제거 ❏ 비용
효율성 증대 ❏ 지속적으로 코드 안정성 검증
자동화 프로세스 분석 설계 테스트 구현 배포 ❏ Git tag
빌드 ❏ PR comment 빌드 ❏ Firebase App Distribution
테스트 - Git tag
테스트 - Git tag ❏ 상황 ❏ 특정 branch를 기준으로
테스트 버전 빌드가 필요
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag
테스트 - Git tag ❏ QA 테스트용 앱 빌드 파일을
Slack등을 통해 간단하게 전달 ❏ 빌드파일 생성과 동시에 다른 작업 병행 가능
테스트 - PR comment
테스트 - PR comment ❏ 상황 ❏ PR 리뷰 과정에서
해당 PR에 대한 빌드 생성이 필요한 경우
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR comment
테스트 - PR Comment ❏ 테스트용 앱 빌드 파일을 다양한
경로(Slack, Git등)로 간단하게 전달 ❏ 빌드파일 생성과 동시에 다른 작업 병행 가능
테스트 - Firebase App Distribution
테스트 - Firebase App Distribution ❏ 상황 ❏ QA Engineer는
매일 최신의 코드로 자동화 테스트를 하고 싶어요 ❏ 테스터 관리가 간단하면 좋겠어요
테스트 - Firebase App Distribution
테스트 - Firebase App Distribution
테스트 - Firebase App Distribution
테스트 - Firebase App Distribution
테스트 - Firebase App Distribution
테스트 - Firebase App Distribution
테스트 - Firebase App Distribution
테스트 - Firebase App Distribution ❏ Firebase App Distribution을 이용해서
테스터 관리가 편리 ❏ 출시 버전 히스토리를 통해 여러 버전 테스트 가능
자동화 프로세스 분석 설계 테스트 구현 배포 ❏ 마일스톤 생성
❏ 릴리즈 브랜치 생성 ❏ 앱 배포 ❏ 릴리즈 노트 작성
배포 - 마일스톤 생성
배포 - 마일스톤 생성 ❏ 문제상황 ❏ 이번 배포에 포함되는
PR이 무엇인지 알기 어려움 ❏ 진척상황이나 일정 가시화가 되지 않음
배포 - 마일스톤 생성
배포 - 마일스톤 생성
배포 - 마일스톤 생성
배포 - 마일스톤 생성
배포 - 마일스톤 생성
배포 - 마일스톤 생성
배포 - 마일스톤 생성 ❏ 배포주기에 맞춰 마일스톤을 자동 생성
❏ 마일스톤을 통해 프로젝트 및 이슈 관리가 용이
배포 - 릴리즈 브랜치 생성
배포 - 릴리즈 브랜치 생성 ❏ 상황 ❏ 수동으로 만들
경우 실수로 앱 버전 업데이트를 하지 않음 ❏ 수동 생성시 권한이 있는 사람의 부재로 만들지 못할 경우가 발생 ❏ 배포 트레인 형태로 배포 관리를 하지 못함
배포 - 릴리즈 브랜치 생성
배포 - 릴리즈 브랜치 생성
배포 - 릴리즈 브랜치 생성
배포 - 릴리즈 브랜치 생성
배포 - 릴리즈 브랜치 생성
배포 - 릴리즈 브랜치 생성
배포 - 릴리즈 브랜치 생성
배포 - 릴리즈 브랜치 생성
배포 - 릴리즈 브랜치 생성 ❏ 배포 트레인 연착이 되지
않음 ❏ 사람에 의존하지 않은 상태로 항상 릴리즈 브랜치가 생성
배포 - Lint 검사
배포 - Lint 검사 ❏ 문제상황 ❏ 글로벌 서비스에서 미번역
문구가 노출되어.. 핫픽스 배포 ❏ 접근성 동작 이슈로 CS 발생 ❏ 하드코딩된 문구로 사용자에게 노출되지 않아야하는 문구 노출
배포 - Lint 검사
배포 - Lint 검사
배포 - Lint 검사
배포 - Lint 검사
배포 - Lint 검사
배포 - Lint 검사 ❏ 글로벌 서비스에서의 미번역 문구 노출
이슈 발생 제거 ❏ 하드코딩 문구 제거로 개발자로 인한 실수를 방지 ❏ 그 외 다양한 린트 검사를 통해 문제 방지
배포 - 앱 배포
배포 - 앱 배포 ❏ 로컬 빌드로 인한 비효율적인 시간
관리 ❏ 개발 환경과 절차가 달라짐으로 인한 빌드 버전에 대한 일관성 유지가 어려움 ❏ 수동 배포로 인한 인적 오류
배포 - 앱 배포
배포 - 앱 배포
배포 - 앱 배포
배포 - 앱 배포
배포 - 앱 배포
배포 - 앱 배포
배포 - 앱 배포 ❏ 시간 절약 ❏ 일관성 보장
❏ 빠른 피드백 제공 ❏ 인적 오류 제거
배포 - 릴리즈 노트 생성
배포 - 릴리즈 노트 생성 ❏ 변경사항에 대한 추적이 어려움
❏ 규격화된 릴리즈 노트 생성이 어려움 ❏ 시간 소모
배포 - 릴리즈 노트 생성
배포 - 릴리즈 노트 생성
배포 - 릴리즈 노트 생성
배포 - 릴리즈 노트 생성
다루지 못한 것들 ❏ Build Profiling ❏ Appium Test Automation
❏ Crashlytics Reminder ❏ Jira Automation Trigger ❏ Clean-up tag, branch ❏ Resource synchronize
발표 자료
감사합니다