QA
“딸깍! QA 대응 완료” : 자동화로 QA 대응 프로세스 50% 단축하기
Ted 서재원 / Android Team여기어때
2025년 8월 7일
원문에서 보기 ↗안녕하세요, 여기어때컴퍼니(이하 여기어때) Android개발팀 테드입니다.
저희 팀에서는 QA 대응 프로세스에 자동화를 도입하였습니다. 그 결과 MR 머지 이후를 모든 과정을 자동화하여 8단계 프로세스를 4단계로 단축하는 성과를 얻었습니다.
이번 글에서는 자동화를 통해 어떻게 QA 대응 프로세스를 50% 단축했는지, 그 과정을 단계별로 소개 해드리겠습니다. 아래에서 자세히 살펴보시죠!
먼저, 자동화를 도입하게 된 배경부터 설명하겠습니다.
여러분은 개발자의 업무 생산성을 높이는 방법이 무엇이라고 생각하시나요?
다양한 답변이 있을 수 있겠지만, 저는 어느 날 동료의 지나가는 말에서 실마리를 찾았습니다.
“ 개발하다가 자꾸 집중이 깨져, 개발만 할 수 있었으면 좋겠어.”
실제로 업무를 하다 보면, 개발 외에도 업무용 메일이나 Slack 채널 알림 같이 개발자의 집중을 방해하는 요소가 많습니다. 이로 인해 개발자는 작업 흐름이 자주 끊기고, 자연히 생산성도 떨어지게 됩니다.

저는 개발자가 한 가지 작업에 몰입하고 있던 중 다른 작업이나 알림으로 인해 집중이 방해받는 순간을 ***‘컨텍스트 스위칭 포인트’***라고 정의하였습니다.
컨텍스트 스위칭 포인트?
-하나의 작업에 몰입하고 있던 중, 다른 작업이나 알림으로 인해 집중이 끊기는 순간. (예시: 컴포넌트 작업을 하다가 슬랙 알람을 확인 하는 순간)
이러한 ‘컨텍스트 스위칭 포인트 ’가 줄어들면 개발자는 자연스럽게 업무 흐름을 유지할 수 있고, 이는 업무 생산성을 향상시키는 결과로 이어집니다.
그렇다면 어떻게 해야 ‘컨텍스트 스위칭 포인트’를 줄일 수 있을까요?
바로 사람이 직접 할 필요가 없는 반복적이고 기계적인 업무를 자동화하는 것입니다.
저는 이런 업무를 자동화할 수 있는 프로세스를 찾기 시작했고, 그 과정에서 저희 팀의 QA 대응 프로세스에 주목했습니다.
QA 대응 프로세스란?
여기어때에서는 새로운 앱 버전을 배포하기 전에 QA 검증 기간을 거칩니다. 이 기간 동안 QA팀은 새롭게 개발된 기능이나 개선 사항들이 정상적으로 작동하는지 꼼꼼히 검증합니다.
만약 개발한 기능이 의도대로 동작하지 않으면, QA팀은 해당 내용을 정리하여 Jira 이슈 티켓을 생성하고 담당 개발자에게 전달합니다. 개발자는 이 티켓을 통해 이슈를 확인하고 QA 대응 프로세스를 시작하게 됩니다.

Android개발팀 QA 대응 프로세스
앞서 보여드린 시퀀스 다이어그램은 여기어때 Android 개발팀에서 사용하는 QA 대응 프로세스를 시각적으로 나타낸 것입니다. 다이어그램을 보면 QA 대응이 총 8단계로 구성되어 있음을 알 수 있습니다.
또한 각 단계는 개발자 입장에서 볼 때 집중이 흐트러지는 순간, 즉 ‘컨텍스트 스위칭 포인트’가 발생하는 지점이기도 합니다.
개발자의 8단계 QA 대응 프로세스
개발자가 QA 대응 프로세스의 각 단계에서 수행하는 작업을 구체적으로 살펴보면 다음과 같습니다.
- Jira에 접속하여 할당된 QA 이슈 티켓을 확인합니다.
- 확인된 이슈의 원인을 파악하고 기능 수정을 진행합니다.
- 수정 사항을 Merge Request로 올리고 팀원들에게 코드 리뷰를 요청합니다.
- 팀원들의 리뷰 피드백을 반영하고, 최종 approve를 받은 후 merge를 진행합니다.
- 수정 사항이 적용된 버전을 QA 담당자가 검증할 수 있도록 Jenkins에서 빌드를 실행합니다.
- 빌드가 완료될 때까지 일정 시간이 소요되므로 빌드 완료 알림을 기다립니다.
- 빌드 완료 알림을 확인한 후 Jira 티켓에 접속하여, 이슈 수정 완료 사실과 확인 가능한 버전 및 빌드 번호를 댓글로 남깁니다.
- Jira 티켓 상태를 ‘개발 완료’로 변경하여 QA 담당자에게 이슈 대응이 완료되었음을 알립니다.
이제 8단계 QA 대응 프로세스 중 자동화가 가능한 부분을 개선 해보겠습니다.
자동화를 적용한 QA 대응 프로세스

위 다이어그램은 자동화를 적용한 이후의 QA 대응 프로세스를 나타낸 시퀀스 다이어그램입니다. 기존에는 개발자가 총 8단계에 걸쳐 직접 처리해야 했던 작업이, 자동화 도입 이후에는 절반인 4단계로 단축되었습니다.
개발자는 이슈 확인 및 개발, 코드 리뷰 요청과 리뷰 반영 후 MR을 머지하는 단계(1~4단계)까지만 수행하면 됩니다. 이후에는 다음과 같은 과정이 자동으로 진행됩니다.
개발자가 MR을 머지하면
1. GitLab CI가 Jenkins 빌드를 자동으로 실행합니다.
- Jenkins가 빌드를 완료하면, 커밋 정보에서 Jira 티켓 이름을 자동으로 추출하여 Jira Automation에게 전달합니다.
참고.
여기어때 Android개발팀은 커밋 규칙으로 “[QA-123] ~~ 문제 해결”처럼
커밋 타이틀에 Jira티켓 이름을 포함하는 컨벤션을 가지고 있습니다
- Jira Automation은 전달받은 정보를 기반으로 해당 Jira 티켓을 찾아가 댓글을 자동으로 작성하고, 상태를 ‘개발 완료’로 변경합니다.
이러한 자동화 덕분에 개발자는 작업을 실행한 후 더 이상 신경 쓰지 않아도 되는(fire & forget) 환경이 만들어졌습니다.
자동화 환경 구축하기
앞서 설명한 자동화 환경을 구축하려면 크게 세 가지 구성 요소가 필요합니다.

- GitLab과 Jenkins 연동
- Jenkins와 Jira Automation 연동
- Jira Automation과 Jira 연동
각 구성 요소의 설정 방법을 순서대로 소개하겠습니다.
1. GitLab → Jenkins 연동
Jenkins는 외부에서 빌드를 실행할 수 있도록 REST API를 제공하고 있습니다. 이를 실행하기 위해 GitLab에서는 .gitlab-ci.yml 파일을 정의하여 특정 조건(MR 머지 등)에 따라 Jenkins API에 요청을 보내고, 자동으로 빌드를 트리거할 수 있습니다.
간략한 예시는 다음과 같습니다.
.gitlab-ci.yml
stages:
- jenkins
# Job 이름
trigger_jenkins_build:
stage: jenkins
image:
name: alpine/curl:8.12.1
# 특정 브랜치(versions/*)가 머지되었을 때
rules:
- if: >-
$CI_COMMIT_REF_NAME =~ /^(versions)\// &&
($CI_PIPELINE_SOURCE == "push" || $CI_PIPELINE_SOURCE == "web")
when: always
- when: never
script:
- |
# 조건에 맞으면 Jenkins API를 호출하여 빌드 실행
curl -X POST Jenkins API
이 과정을 통해 개발자가 별도의 Jenkins 접속 없이도 MR 머지 직후 자동으로 Jenkins 빌드를 수행할 수 있습니다.
2. Jenkins → Jira Automation 연동

빌드가 완료되면, Jira 티켓과 연동하여 티켓 상태를 자동으로 업데이트해야 합니다. 이를 위해 Jenkins가 가진 빌드 정보 조회 API를 활용할 수 있습니다.
어떻게 커밋 변경 내역을 알 수 있을까요?
- Jenkins가 제공하는 API를 통해 빌드 정보를 조회할 수 있습니다.
- 이 빌드 정보에서 커밋 메시지와 같은 세부 정보를 추출할 수 있습니다.
다음으로, Jenkins는 추출한 정보를 Jira Automation으로 전달하는 웹훅(Webhook)을 호출합니다.
웹훅(Webhook)이란?
시스템에서 특정 이벤트가 발생하면, 미리 설정된 URL로 실시간으로 정보를 전송하는 방식입니다.
Jira Automation으로 전달할 주요 정보는 다음과 같습니다.
- buildNumber: 빌드 번호 (댓글 작성 시 필요)
- version: 앱의 버전 정보 (댓글 작성 시 필요)
- issues: Jira 티켓 번호 목록 (이슈 추적에 필요)
실제 전달 예시
{
"buildNumber": "100",
"version": "6.9.2",
"issues": ["QA-100", "QA-101"]
}
이렇게 구성하면 Jenkins가 빌드 완료 즉시 Jira Automation에 필요한 데이터를 전송할 수 있습니다.
3. Jira Automation → Jira 구축
마지막 단계로 Jira Automation을 통해 Jira에 상태 변경 및 댓글 달기를 자동화합니다.
Jira Automation이란?
Jira 내에서 반복적인 작업을 자동화할 수 있도록 제공되는 기능입니다. 특정 조건과 트리거가 만족되면 자동으로 미리 정의된 액션을 수행합니다.

Jira Automation 자동화 과정
Jira Automation 설정은 다음과 같은 흐름으로 진행됩니다.
- Json 웹훅 수신
- 이슈 티켓 추출 및 이동
- Jira 댓글 자동 작성, 상태 자동 변경
- Jira 티켓에 개발자가 수동으로 작성하던 확인용 댓글을 자동으로 작성합니다.
- 전달받은 이슈 번호에 해당하는 티켓의 상태를 자동으로 “개발 완료”로 변경합니다.
이로써 전체 자동화 프로세스가 완성되었습니다.
자동화 여정을 마치며
이 글이 자동화를 고민하는 회사나 팀, 그리고 비슷한 길을 걷고 있는 누군가에게 작은 도움이 되기를 바랍니다.
마지막으로 인턴의 제안을 흔쾌히 받아주시고 맡겨주신 여기어때 Android개발팀 과, 기술적으로 정말 많은 도움을 주신 여기어때 DevOps팀에게도 진심으로 감사드립니다.
작성자가 궁금하다면 : https://www.linkedin.com/in/librarywon