QA 자동화 데이터 관리와 분석의 힘

안녕하세요, 29CM QE팀의 자동화 전문가 강보민입니다. 본 포스트에서는 QA 자동화 결과를 데이터로 관리하는 방법과 그 과정에서 얻은 분석의 힘을 중심으로, Grafana Dashboard와 주간 분석을 통해 어떻게 자동화의 신뢰성을 높였는지에 대한 이야기를 나누고자 합니다. 이 글을 통해 데이터 기반의 QA 자동화 관리의 중요성과 실제 적용 사례를 살펴보겠습니다. QA 자동화 데이터 관리의 필요성 QA 자동화는 현대 소프트웨어 개발에서 필수적인 요소로 자리잡았습니다. 자동화 테스트를 통해 반복적인 작업을 줄이고, 코드 변경에 대한 신뢰성을 확보할 수 있습니다. 그러나 이 과정에서 단순히 자동화 도구를 사용하는 것을 넘어, 데이터를 체계적으로 관리하는 것이 무엇보다 중요합니다. 정확한 데이터 관리가 뒷받침되지 않으면, 자동화 테스트의 신뢰성과 품질은 언제든지 흔들릴 수 있습니다. 29CM QE팀은 2024년부터 자동화 수행 결과를 데이터베이스(DB)에 저장하기 시작했으며, 이를 통해 Grafana Dashboard에서 다양한 데이터를 시각화하고 있습니다. 데이터에는 일별 Fail률, 평균 수행 시간, Fail 발생 시나리오 카운트 등이 포함되어 있으며, 이를 통해 실시간으로 자동화 테스트의 성과를 평가하고 분석할 수 있습니다. 더 나아가, QA 자동화 데이터 관리의 일환으로 주간 분석을 통해 성과를 지속적으로 점검하고 있습니다. 이러한 방식은 팀의 신뢰성을 높이는 데 큰 도움이 되었으며, 팀원들이 각자의 역할에 책임감을 느끼게 만들었습니다. 데이터 분석을 통한 실패 사례 개선 데이터 분석도 QA 자동화의 핵심입니다. 29CM QE팀은 Grafana Dashboard를 이용해 실패 시나리오를 분석하고, 반복되는 문제를 해결하는 데 집중하고 있습니다. 예를 들어, 특정 시나리오에서 Fail률이 급증할 경우 그 원인을 분석하고, 개선을 위한 우선순위를 정할 수 있습니다. 세부적으로, 반복적으로 발생하는 Fail 사례를 식별하기 위해 월별...

무신사 POS 시스템 내재화 성공 사례

무신사는 최근 오프라인 매장을 위한 POS 시스템을 전면 내재화하는 성공적인 여정을 거쳤습니다. 이 과정에서 기존 외부 솔루션의 의존성을 제거하고, 자체적으로 개발한 MPOS(Musinsa POS) 시스템을 도입하였습니다. 본 포스팅에서는 무신사 POS 내재화 과정을 통해 얻게 된 교훈과 앞으로의 개선 방향에 대해 자세히 살펴보겠습니다. 1. POS 시스템 내재화의 필요성 무신사는 이전에 외부 3rd party POS 솔루션에 의존하였습니다. 초기에는 해당 솔루션이 매장 운영에 큰 도움이 되었지만, 시간이 지남에 따라 온라인과의 통합 및 비즈니스 요구에 빠르게 대응하기 어려운 상황에 직면했습니다. 이로 인해 운영의 유연성이 떨어지고, 외부 업체와의 협의 과정에서 개발 지연이 발생하는 문제가 생겼습니다. 이에 따라 무신사는 POS 시스템을 전면 내재화하기로 결정했습니다. 내부적으로 모든 기능을 직접 개발함으로써 비즈니스의 빠른 성장을 지원하고, 외부 의존성을 완전히 제거하기 위한 발판을 마련하게 되었습니다. 이러한 결정은 단순히 기술적인 자부심을 뛰어넘어, 운영 비용 절감 및 개발 효율성을 높이는 데 큰 기여를 하게 됩니다. MPOS 내재화는 무신사가 지닌 기술력과 문제 해결 능력을 극대화하는 방향으로 나아가게 해주었습니다. 내부 시스템으로의 전환이 이루어진 후, 무신사는 매우 긍정적인 변화를 경험했습니다. 모든 시스템이 통합적으로 관리됨으로써 개발자들은 직접적인 문제 해결을 통해 더욱 신속하고 효율적으로 운영할 수 있게 되었고, 그 결과 대처 속도와 커뮤니케이션의 질이 눈에 띄게 향상되었습니다. 이제는 외부 업체와의 협상이 필요 없는 환경에서 독립적인 운영 리듬을 구축하게 되었습니다. 2. Electron 선택과 그 이유 MPOS 시스템의 성공적인 내재화에 있어 핵심적인 역할을 한 것은 바로 Electron이라는 기술 스택입니다. 무신사 팀은 POS 시스템의 다양한 요구사항을 충족하고, 개발 속도를 높일 수 있는 기술을 찾고 있었습니다. 그 결...

AI 인프라 구축과 지속 가능성 탐구

우리는 달에 가기로 했습니다. 무신사가 AI 인프라를 구축하고, 하이브리드 환경에서의 혁신을 통해 지속 가능성을 탐구한 여정을 담은 글입니다. AI 기술이 단순한 트렌드가 아닌 생존의 조건이 되는 시대에, 어떤 기술을 선택해야 할지, 그리고 그 과정에서 어떤 질문을 던져야 할지를 고민합니다. AI 인프라 구축의 필요성 이해하기 AI 인프라 구축은 단순히 기술을 도입하는 과정이 아닙니다. 이는 지속 가능한 운영 모델을 만드는 것이며, 비용 효율성을 극대화하는데 필수적입니다. 무신사는 AI 인프라를 구축하면서 “우리는 지금 올바른 결정을 하고 있는가?”라는 질문을 지속적으로 던졌습니다. 이렇게 질문을 통해 각 기술의 선택이 필요해진 이유를 고민하면서, 진정한 의미의 AI 인프라를 구현하고자 했습니다. AI 인프라 구축 과정에서 가장 중요한 것은 기술의 선택보다 그 선택이 이루어진 배경입니다. 예를 들어, 특정 GPU를 선정하는 과정에서 예산, 전력 소모, 배치 용이성 등을 고려해야 했습니다. 초기 설치는 RTX 4090에서 시작해 H100, H200, 그리고 블랙웰 기반 장비로 발전했습니다. 이 모든 과정에서 지속 가능한 AI 인프라를 구축하기 위한 전략과 실행이 필요했습니다. 또한, AI 인프라의 최적화를 위해 클라우드와 온프레미스 환경의 하이브리드 구조를 설계했습니다. 이는 비용 절감과 성능 향상을 동시에 이루기 위한 전략이었습니다. 예를 들어, AWS의 EKS HybridNode 기능 도입은 이러한 하이브리드 환경을 구축하는 데 큰 도움이 되었습니다. 지속 가능성을 고려한 운영 방안 AI 인프라에서 지속 가능성은 비용 관리를 넘어 모든 운영의 핵심이 됩니다. AI는 구축 후에도 지속적인 비용이 발생하는 시스템이기 때문입니다. 무신사는 AI 운영비를 효과적으로 관리하기 위해 온프레미스를 도입하였고, GPU 운영을 통해 안정적인 비용 절감을 이루었습니다. 이와 같은 접근법은 갈수록 증가하는 트래픽과 추세에 대응하기 위해 필수적이었습니다. ...

하나의 ID로 통합된 회원 시스템 구축 이야기

팀 무신사는 통합 회원 시스템을 성공적으로 런칭하며 고객 경험의 혁신을 이루어냈습니다. 고객은 이제 무신사, 29CM, 솔드아웃 플랫폼에서 하나의 ID로 간편하게 로그인하고 필요한 서비스를 이용할 수 있게 되었습니다. 이를 통해 팀 무신사는 회원 데이터의 통합 관리와 사용자 맞춤화를 실현하며, 고객에게 더욱 향상된 쇼핑 경험을 제공합니다. 무중단 전환: 고객 경험의 최우선 기준 새로운 통합 회원 시스템의 가장 큰 도전 과제 중 하나는 무중단 전환이었습니다. 수천만 명이 사용할 이커머스 시스템의 ‘심장’인 회원 시스템을 교체하면서도, 고객은 이 과정을 전혀 느끼지 못해야 했습니다. 이는 ‘엔진이 켜진 비행기의 엔진을 교체하는’ 것과 같은 복잡하고 리스크가 큰 과제였습니다. 고객이 언제 어디서든 로그인할 수 있는 환경을 보장하기 위해, 무신사는 24시간 운영되는 회원 시스템을 구축했습니다. 이 과정에서 멤버 시스템은 단순히 비즈니스 로직을 처리하지 않습니다. 실제로 주문, 혜택, 반품과 같은 이커머스의 핵심 구성 요소들과 깊이 연결되어 있습니다. 시스템 간의 데이터 불일치나 지연은 즉각적으로 큰 장애로 이어질 수 있으므로, 모든 요소가 쉽게 통합될 수 있도록 하는 아키텍처 설계가 필요했습니다. 이러한 복잡성을 극복하기 위해 팀 무신사는 ‘Core Member System’이라는 통합 시스템을 도입하여, 높은 확장성과 고가용성을 동시에 확보하게 되었습니다. 결국 통합 회원 시스템의 도입으로 고객은 편리하게 하나의 ID로 다양한 서비스에 접근할 수 있게 되었으며, 팀 무신사는 안정적인 회원 관리 환경을 구축했습니다. 이 모든 과정은 무신사가 고객 경험을 최우선으로 고려하고 있다는 증거입니다. 효율적인 데이터 관리: 통합의 핵심 통합 회원 시스템의 또 다른 중요한 성과는 효율적인 데이터 관리입니다. 기존에는 고객 데이터가 무신사와 29CM, 솔드아웃으로 각각 나뉘어져 있었습니다. 이는 사용자 맞춤형 서비스를 제공하는 데 있어 큰 제...

AI와의 협업으로 완성된 맞춤형 TMS 개발

29CM QE팀이 상용화된 Testcase Management System(TMS)의 비효율성과 높은 비용으로 인해 AI와 협업을 통한 맞춤형 TMS인 29TMS를 개발하게 된 과정을 소개합니다. 이 프로젝트는 3개월 동안 진행되었으며, 완성된 시스템을 통해 다양한 기능을 구현하여 실제 업무에서 활용하고 있습니다. 본 글에서는 이 과정에서의 어려움과 성공적인 구현을 공유하며, AI와의 협업의 중요성을 강조하고자 합니다. AI와의 협업으로 탄생한 TMS의 시작 버그 수정과 지원의 느림은 상용 TMS의 한계로, 우리가 겪어온 가장 큰 문제 중 하나였습니다. 이러한 문제를 해결하기 위해, AI와의 협업을 결심하게 되었습니다. 많은 사람들이 AI 기술에 열광하는 이유를 직접 체험해보고 싶었고, 이를 통해 우리가 필요로 하는 TMS를 직접 만들 수 있을 것이라는 희망이 생겼습니다. 처음에는 React 기술을 선택했으나, 이 분야에서의 경험이 부족한 제가 과연 잘 해낼 수 있을까 하는 걱정이 많이 들었습니다. 하지만 AI의 도움으로 프로그래밍을 시작하게 되었고, 처음에는 쉽고 빠른 결과에 감탄하게 되었습니다. 그러나 진행할수록 AI의 한계를 느끼며, 저 자신이 AI와 소통하는 방법에 대해 많은 것을 배울 수 있었습니다. 이 과정을 통해 AI의 공백을 메우고, 설계와 구현의 디테일을 확실히 이해해야 한다는 점도 깨닫게 되었습니다. 이 단계에서, AI는 다양한 기능 구현에 중요한 역할을 했지만, 항상 올바른 결과를 제공하는 것은 아니었습니다. 대신, 프롬프트를 세밀하게 작성하고, 제 의도를 명확히 전달하는 기술이 필수적임을 깨달았습니다. 그 덕분에 AI와의 협력이 더욱 원활해졌고, 원하는 기능들을 구현한 29TMS가 성공적으로 탄생하게 되었습니다. 문제를 해결하는 29TMS의 유용성 29TMS의 개발 과정이 끝난 후, 우리는 다양한 기능을 추가하여 실무에서 효과적으로 사용하기 시작했습니다. 기존의 상용 TMS보다 훨씬 더 빠르고 효율적으로 API의 응답을...

매크로 코딩으로 시니어 성장의 벽 넘기

궁극적으로 시니어 개발자로서의 성장을 위한 ‘벽’은 매크로 코딩을 통해 극복할 수 있습니다. 이 글에서는 마이크로 코딩을 넘어서 매크로 코딩으로의 관점을 확장하는 것이 왜 중요한지를 살펴보며, 어떻게 시니어 엔지니어로서의 성장에 도움이 되는지 이야기하고자 합니다. 이를 통해 독자들이 매크로 코딩의 중요성을 이해하고 적용하도록 유도하는 것이 목표입니다. 1. 매크로 관점으로 나아가기 시니어 개발자로 성장하기 위해선 매크로 관점을 가지고 문제를 바라보는 것이 매우 중요합니다. 많은 엔지니어들이 자신이 작성한 코드의 품질이나 로직에만 집중하며 성장을 고민합니다. 하지만 매크로 관점에서는 코드가 전체 시스템과 비즈니스에 미치는 영향을 이해하고 고려하는 것이 필수적입니다. 예를 들어, 우리가 개발하는 기능이 특정 비즈니스 KPI에 어떤 기여를 하는지를 생각해볼 필요가 있습니다. 이는 단순히 제대로 작동하는 기능을 만드는 것을 넘어서, 기능이 비즈니스 목표에 부합하는지, 혹은 더 나은 대안은 없는지를 스스로 질문하게 만듭니다. 매크로 관점은 개발자에게 비즈니스 문제를 기술적으로 해결할 수 있는 기회를 제공합니다. 단순히 코드의 세부 사항에만 집중하는 것이 아니라, 팀원이나 이해관계자와의 소통 능력을 향상시키고, 그들의 필요를 이해하여 해결책을 제시하는 능력을 키워주는 것입니다. 결국 이러한 매크로 관점은 시니어 엔지니어로서의 가치를 높이게 되고, 연봉 협상에서도 직접적인 영향을 미치게 됩니다. 매크로 관점의 사고를 통해 조직 내에서의 역할과 영향력을 확대하며, 더 높은 성과를 창출하는 데 기여할 수 있습니다. 이처럼 매크로 관점으로 나아가는 것은 한 단계 더 성장하는 데 필수적입니다. 2. 문제 해결의 흐름을 이해하라 또 다른 중요한 요소는 문제 해결의 흐름을 이해하는 것입니다. 전통적인 방식에 얽매여 ‘어떻게’ 문제를 해결할지를 생각하기보다는 ‘왜’ 이 문제를 해결해야 하는지를 먼저 검토하는 접근이 필요합니다. 매크로 코딩에서는 비즈니스 문제를 해...

QA 리포트 자동화로 업무 효율성 개선하기

```html 29CM QE팀의 정다정입니다. QA 리포트의 자동화를 통해 업무의 효율성을 개선하기 위해 Slack Bot 개발을 시작했습니다. 처음으로 다양한 문제를 극복하고 협업자들이 빠르고 쉽게 QA 진행 상황을 확인할 수 있는 시스템을 구축하게 되었습니다. QA 리포트 자동화를 위한 준비 리포트 자동화를 위한 첫 단계는 팀원들과 함께 리포트의 항목과 형식을 정하는 것이었습니다. 이를 통해 협업자들이 어떤 정보를 가장 빠르게 확인해야 하는지를 미리 고려했습니다. 예를 들어, 리포트에는 테스트 대상, 테스트 진행률, 이슈 개수, 특이사항 등을 포함해야 합니다. 이 과정에서 각 항목의 순서와 표현 방식을 논의하여 협업자들이 쉽게 이해할 수 있도록 구성하였습니다. 결정된 내용을 바탕으로 UI 템플릿을 설계하고, Bot이 어떤 값을 받아서 어떻게 가공해 보여줄지를 함께 구상했습니다. 이 단계에서는 대화형 UI와 직관적인 디자인을 중시하여 사용자 경험을 향상시키기 위한 노력을 기울였습니다. 각 항목이 정확하고 일관되게 나타날 수 있도록 필요한 정보를 신중하게 선택했습니다. 이를 통해, 테스터와 QA 담당자가 필요한 정보를 최소한의 시간으로 효율적으로 전달할 수 있도록 하는 것이 저희의 목표였습니다. 이처럼 철저한 준비 단계를 거치며, QA 리포트의 자동화를 위해 Slack Bot의 개발 방향성을 명확히 할 수 있었습니다. 이는 이후 구현 단계에서 겪게 될 다양한 문제를 미리 예측하고 준비하는 데 도움을 주었습니다. 팀원 간 원활한 소통과 협업을 바탕으로 QA 리포트 자동화의 기반을 다지게 되었습니다. Slack Bot 개발 과정에서의 문제 해결 Slack Bot을 개발하기로 한 이후에도 여러 가지 문제들이 발생했습니다. 특히, Jira API 호출에서 느린 속도와 타임아웃 문제가 있었습니다. 이전에는 동기 방식으로 API를 호출했기 때문에, 사용자의 요청에 대한 응답이 지연될 경우 Slack과의 연결이 끊어지는 상황이 종종 발생하였습니다. 이를 ...