업계: 의료

사용한 JetBrains 제품: Qodana

조직 규모: 50

국가: 미국

Zynex

Zynex Monitoring Solutions는 최고 품질의 모니터링 제품을 제작, 유통 및 판매하여 의사와 수술 후 관리 서비스 제공자를 위한 비침습적 솔루션을 제공합니다.

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

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

Zynex Monitoring Solutions가 Qodana를 사용하여 .NET 애플리케이션의 코드 품질을 관리하는 방법

본인과 Zynex Monitoring Solutions에 대해 자세히 말씀해 주시겠어요?

저는 약 25년 동안 주로 Microsoft 서버와 .NET을 사용하여 소프트웨어를 개발해 왔습니다. 저는 약 10년 동안 Azure에서 팀과 함께 소프트웨어를 개발해 왔으며 확장성과 글로벌 배포에 중점을 두고 온프레미스 배포에서 클라우드로 전환했습니다.

Zynex Monitoring Solutions에서는 비침습적으로 환자를 모니터링하는 의료 기기를 개발하고 있습니다. 저희 클라우드 팀은 당사 기기를 의료 제공자 및 의료 시스템과 통합할 상호 운용성 플랫폼을 구축하고 있습니다.

클라우드를 우선으로 하는 상호 운용성 플랫폼은 소프트웨어 및 의료 조직에 완전히 새로운 가능성을 열어줍니다. 프라이빗 데이터 센터의 기존 엔터프라이즈 소프트웨어 모델에 비해 더 많은 고객과 통합하고, 시스템을 빠르게 확장하며, 고객 요구에 따라 맞춤형 서비스를 신속하게 제공할 수 있습니다.

Zynex에서 애플리케이션을 구축하기 위해 어떤 기술을 사용하고 계신가요? 모든 애플리케이션에 동일한 아키텍처/기술을 사용하시나요?

Zynex Monitoring Solutions 클라우드 서비스의 경우, 대부분 C#으로 작성되고 Linux 컨테이너에서 실행되는 .NET을 사용합니다. 저희는 최신 프로덕션 버전의 .NET을 사용하며 대부분의 서비스에 .NET 7을 이용합니다. .NET 8도 사용하기 시작했습니다.

개발은 ReSharper와 함께 Visual Studio를 사용하여 수행하며 일부 개발자는 Rider IDE를 사용합니다. 주로 GitHub Actions를 클라우드 인프라에 배포하여 지속적 통합(CI)과 배포를 실행합니다.

프로덕션 워크로드에는 애플리케이션과 서비스를 호스팅하는 Kubernetes에서 실행되는 최신 클라우드 스택을 사용하고, 데이터 저장을 위한 NoSQL과 클라우드 네이티브 메시징이 혼합 사용됩니다. 저희는 데이터 과학, 인공 지능(AI) 등 당사의 요구 사항을 해결할 새로운 클라우드 기술을 지속적으로 찾고 있습니다.

Qodana에 대해 어떻게 알게 되셨나요? 사용하게 된 동기는 무엇이었나요?

실은 개발자 팀 모두가 JetBrains ReSharper를 매우 마음에 들어 합니다. 코딩 중 제안과 리팩터링을 지원할 뿐만 아니라. 코드 분석 기능을 제공하여 잠재적인 코드 품질 문제를 쉽게 찾아낼 수 있게 도와주기 때문입니다. 그래서 코드 분석 도구를 살펴보면서 JetBrains가 코드 분석 도구를 만들고 있다는 사실을 알았을 때, 분명 코드 분석을 단순화하고 코드 품질을 향상하면서 개발자들에게 즐거움을 줄 수 있는 도구일 것이라고 생각했습니다.

JetBrains 도구를 사용하면 번거로움을 더하지 않으면서 더 좋은 작업 결과를 얻을 수 있다는 것을 알고 있었고, 역시나 Qodana의 경우도 다르지 않았습니다. 현재 모든 .NET 애플리케이션에 Qodana를 사용하고 있습니다.

애플리케이션에서 Qodana 실행을 시작하기가 얼마나 쉬웠나요(또는 어려웠나요)?

정말 쉬웠어요. Qodana Cloud 웹 앱을 사용하면 GitHub 워크플로에 간단히 추가되거든요. 저장소를 생성하면서 Qodana를 채택할 수 있었고, 모든 문제를 해결하고 무관용 정책을 수립하여 코드를 매우 깔끔하게 유지하는 환경으로 신속하게 전환했습니다.

저희는 일반적으로 Qodana에서 GitHub Actions 워크플로의 코드 베이스를 확인한 다음, ReSharper 또는 JetBrains Rider에서 Qodana가 발견한 문제를 해결합니다. 현재는 IDE에서 바로 Qodana 보고서를 살펴볼 수 있는 Qodana IDE 통합 기능을 사용하고 있지 않습니다. 그 이유는 Qodana 검사가 ReSharper 및 JetBrains Rider에서 사용할 수 있는 검사와 일치하고, 여기서 코드 문제를 신속하게 찾아 수정할 수 있기 때문입니다.

다른 코드 품질 도구를 사용하고 있나요?

Sonarqube와 Qodana를 혼합하여 사용합니다. Sonarqube는 알려진 취약점을 검색하고 코드 복잡성을 추적하는 데 정말 좋습니다. 전반적인 코드 검사는 주로 Qodana에 의존합니다. 빌드 워크플로에 추가하기가 정말 쉽고 팀 전체에서 높은 코드 품질을 보장합니다. Qodana에 더 많은 기능이 추가됨에 따라 코드 분석 도구 세트가 단순화되기를 바랍니다.

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

Qodana 도입을 시작하는 팀과 개발자에게 해줄 조언이 있나요?

Qodana는 처음부터 새로운 프로젝트에 사용하는 것이 가장 좋습니다. 가장 엄격한 코드 분석 규칙을 적용하고, GitHub에 통합하고, 실패 임곗값 '0'을 사용하여 위반 발생 시 빌드가 차단되고 개발자가 코드를 정리할 수 있는 기회를 제공하는 것이 좋습니다. 또한 JetBrains.Annotations를 사용하여 코드 어노테이션을 추가하는 것이 중요함을 강조하고 싶습니다. 이를 통해 공개 라이브러리를 작성할 때 다른 개발자와 ReSharper, JetBrains Rider 및 Qodana와 같은 도구에 코드 인텐션을 알려주어 더욱 적절한 코드 분석이 가능해집니다.

Qodana 무료로 사용해보기