업계: 물류

사용한 JetBrains 제품: Qodana, IntelliJ IDEA

조직 규모: 직원 수 16,000명

팀 규모: 개발자 800명, GitLab 프로젝트 1,600개

기술 스택: Java, PHP, Swift, Typescript, Jenkins

개발자 경험의 변화: Evri가 Qodana로 높은 코드 품질 표준을 적용한 방법

Evri는 영국에서 가장 큰 물류 전문 회사로서 매년 7억 2천만 건의 화물을 배송합니다. Evri의 사명은 합리적인 비용으로도 가장 편리하게 화물을 발송, 수신 및 반송하는 방법을 제공하는 것입니다. Evri는 유럽 상위권의 소매 회사, 마켓플레이스 및 인기 웹사이트와도 협력하고 있습니다. Evri는 1974년 요크셔에서 시작되었으며, 수십 년에 걸쳐 성장하면서 이제는 8,000명 이상의 임직원, 26,000명 이상의 배송 직원, 14,000곳 이상의 지점과 더불어, 계속 늘어나는 최신 허브와 창고 네트워크를 보유하고 있습니다.

과제: 제품 출시 속도는 높이면서 코드 분석 워크플로를 일관되게 유지

대형 물류 회사인 Evri는 영국 전역에서 대량의 화물을 처리하여 최종 고객에게 배송합니다. Evri의 소프트웨어에는 택배 예약을 위한 전자상거래 웹사이트, 소매 고객 및 전 세계 고객이 화물 데이터를 관리할 수 있도록 지원하는 API, 그리고 물리적 인프라 운영을 위한 사내 도구가 포함됩니다.

Evri는 여러 소프트웨어를 최대한 원활하게 효율적으로 배포하고 유지 관리하기 위해, 개발 워크플로를 개선하고 개발자의 성과와 만족도를 높이는 일을 전담하는 개발자 경험(DevEx) 팀을 꾸렸습니다.

DevEx 팀은 일관된 표준을 유지하고, 협업을 촉진하고, 제품 출시를 가속화하고, 문제를 초기에 해결하기 위해 코드 품질 검사를 자동화하기를 원했습니다.

도구 선택: SonarQube에서 Qodana로 마이그레이션

이전에 Evri는 품질 분석을 위해 SonarQube를 사용했으나 대안을 찾기 시작했습니다. 이유는 이 도구의 경제성에 의문이 들었고 설정과 관련된 기존 문제가 너무 많아 우려되었기 때문입니다. Evri의 선임 기술 아키텍트인 Luke Morton은 다음과 같이 말합니다. "... 예전에는 직원들이 자신만의 분석 규칙을 만들어서 코드를 품질 게이트에 통과시킬 수 있었습니다. 코딩 표준의 품질을 관리할 수 있는 방법이 부족했습니다."

Evri는 여러 가지 이유를 고려하여 Qodana로 마이그레이션하기로 결정하였습니다.

  • 강화된 관리. Jenkins를 통해 런타임에 전역적으로 구성된 YAML 파일을 사용하여 품질 규칙을 중앙에서 관리. 이 방식에서는 개발자가 변경하고자 할 때 DevEx 팀에 YAML 파일의 병합 요청을 제출해야 합니다.
  • 향상된 프로젝트 개요 보기. Qodana의 방사형 다이어그램으로 프로젝트 상태를 한 곳에서 명확하게 확인.
  • 즉각적인 피드백. Jenkins에서 병합 요청에 대한 통합 피드백을 제공하여 코드 품질 개선.

"병합 요청에 관한 주석을 통해 개발자가 피드백을 바로 받을 수 있어 실행 우선 순위를 정할 때 요긴합니다."

— Luke Morton, Evri 선임 기술 아키텍트

  • IntelliJ IDEA 통합. IntelliJ IDEA에서 보고서와 파일에 직접 액세스하고 IDE에서 바로 Qodana가 발견한 문제를 조회.
  • 새로운 시작. 표준을 재정의하고 더욱 현대적인 솔루션을 구현할 기회.

"새롭게 시작하는 게 옳은 선택이었습니다. 그 덕에 기대치를 아예 다시 세울 수 있었습니다."

— James Hattersley-Dykes, Evri 수석 엔지니어

결과: 6배 빠른 코드 분석 속도로 출시 속도와 빈도 향상

Evri에서 손꼽은 Qodana의 주요 장점은 파이프라인에 일단 설치한 후에는 계속 지켜볼 필요 없이 믿고 맡길 수 있다는 점이었습니다.

Evri의 파이프라인의 프로세스는 코드 컴파일링 및 유닛 및 통합 테스트 실행으로 시작됩니다. 이후 Qodana와 Snyk를 포함한 다양한 품질 게이트가 병렬로 실행됩니다. 각 도구는 병합 요청에 대한 피드백을 제공합니다. 품질 게이트 중 어느 하나라도 실패하면 빌드가 중단되어 해당 병합 요청이 메인 브랜치에 통합되는 것을 방지합니다. 그러나 코드는 여전히 추가 테스트를 위해 피처 환경으로 배포될 수 있습니다.

짧아진 출시 시간과 6배 빨라진 코드 분석

Evri는 Qodana를 이용해 출시 시간을 크게 단축할 수 있었습니다. 이 도구를 파이프라인에 통합하면서 출시 빈도와 속도가 더욱 높아졌습니다. 특히 Qodana는 MR 내에서 '신속한 피드백'을 제공하기 때문에 개발자가 문제를 빠르게 해결하면서 출시 프로세스의 속도를 높일 수 있습니다.

“Qodana는 MR에 관한 피드백을 신속하게 제공함으로써 Evri의 출시 시간을 크게 단축하고 문제 해결 속도도 높였습니다. 20분이나 걸리던 무겁고 느린 분석 작업이 Qodana에서는 3~5분밖에 소요되지 않았습니다.“

— Luke Morton, Evri 선임 기술 아키텍트

코드 품질은 높게, 유지 관리 부담은 낮게

Qodana는 최소한의 조작으로 작동하며 지속적인 관리도 덜 필요하기 때문에 사용이 간편합니다.

"DevEx 팀은 Qodana를 매일 사용하지는 않습니다. 그저 관리만 할 뿐이죠. 신경 쓸 필요가 없다는 것은 제대로 돌아간다는 의미입니다. 거의 몇 주 동안 Qodana에 신경 쓰지 않았어요. 즉, Qodana가 제 역할을 하고 있다는 뜻이죠."

— Louis Jones, Evri 개발자 경험 팀 수석 엔지니어

교육 기회

Qodana는 개발자를 위한 추가 학습 소스의 역할도 합니다.

"Qodana가 병합 요청에 주석을 달아 주면, 개발자가 그걸 클릭하여 문제와 해결 방법을 확인할 수 있으므로 마이크로 러닝의 기회를 얻을 수 있습니다."

— Luke Morton, Evri 선임 기술 아키텍트

유사한 고객 후기

Moovit

Amit Weinblum, Moovit의 인프라 팀 리더

프로덕션 시스템이 안정화되었고 개발자가 파이프라인에서 너무 후반에 문제를 수정하는 상황을 피할 수 있었습니다. Qodana 덕에 개발 팀이 회사 정책을 따르고 Qodana의 도움으로 더 이상 밤을 지세울 필요가 없는 패러다임의 변화를 목격하고 있습니다.

Zynex

Daniel Larson, Zynex Monitoring Solutions 소프트웨어 설계자.

모든 개발자가 경험 수준에 관계없이 최상의 코드를 작성하는 데 Qodana가 도움을 주고 있다고 생각합니다. Qodana는 초급 개발자가 고급 수준의 코드를 작성하도록 도움을 주며, 고급 개발자도 기대되는 코드 품질을 유지하도록 도와줍니다. Qodana가 제품 코드 품질의 표준을 유지하는 데 도움을 주는 것 외에도, 다양한 유형의 검사를 제공하는 만큼, 개발자의 코치 역할까지 수행해 주기를 기대합니다.

고객 후기 더보기