피드로 돌아가기
TeamCity로 윈도우 클라이언트 배포 파이프라인 만들기
올리브영 테크블로그올리브영 테크블로그
DevOps

TeamCity로 윈도우 클라이언트 배포 파이프라인 만들기

올리브영이 TeamCity 기반 CI/CD 파이프라인 도입으로 셀프계산대 배포 프로세스의 수기 작업 제거 및 배포 시간 66.8% 단축

2024년 12월 6일9intermediate

Context

올리브영 셀프계산대는 개발자 PC에서의 수기 빌드, 파일 선별, S3 업로드, JSON 버전 파일 수동 수정 등 7단계 중 4단계를 개발자가 직접 처리해야 했다. 외부 운영 솔루션 Bigfix에 대한 깊은 의존성, 개발자 PC 환경에 따른 빌드 결과 차이, 그리고 업데이트 요청의 주체가 클라이언트인 구조로 인해 배포 자동화가 어려웠다.

Technical Solution

  • TeamCity Server-Agent 아키텍처 도입: 기존 Java용 빌드 에이전트에 C# 전용 EC2 리소스를 신규 할당하여 독립적인 빌드 환경 구성
  • 배포 프로세스의 CI/CD 경계선 재정의: 클라이언트가 버전 파일을 읽고 S3에서 다운로드하는 구조에 맞춰 CD의 종료 지점을 JSON 버전 파일 수정으로 설정
  • 빌드 스텝 세분화: 전체 프로세스를 1~5줄 스크립트 단위로 분해하여 각 스텝 검증을 용이하게 구성
  • 빌드 도구 사전 설치: NuGet(패키지 관리자), MSBuild(빌더), jq(JSON Parser) 등을 에이전트 리소스에 설치
  • AWS CLI 기반 자동 배포: S3로의 파일 전송 및 JSON 버전 파일 변경을 TeamCity 스텝으로 자동화

Impact

  • 배포 소요 시간: 기존 대비 66.8% 단축

Key Takeaway

클라이언트-서버 아키텍처에서 업데이트 주체가 클라이언트인 경우, CI/CD의 경계선을 시스템 구조에 맞춰 재정의하고 큰 프로세스를 작은 스크립트 단위로 분해하면 수기 작업 제거와 환경 일관성을 동시에 달성할 수 있다.


윈도우 클라이언트 배포를 관리하는 팀에서 TeamCity를 도입할 때, 기존 의존 솔루션과의 경계를 명확히 하고 언어별 독립 에이전트를 구성한 후 빌드 프로세스를 1~5줄 단위의 작은 스크립트로 분리하면 개발자의 환경 차이로 인한 휴먼 에러를 제거하면서도 배포 시간을 대폭 단축할 수 있다.

원문 읽기