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

궁극적으로 시니어 개발자로서의 성장을 위한 ‘벽’은 매크로 코딩을 통해 극복할 수 있습니다. 이 글에서는 마이크로 코딩을 넘어서 매크로 코딩으로의 관점을 확장하는 것이 왜 중요한지를 살펴보며, 어떻게 시니어 엔지니어로서의 성장에 도움이 되는지 이야기하고자 합니다. 이를 통해 독자들이 매크로 코딩의 중요성을 이해하고 적용하도록 유도하는 것이 목표입니다. 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과의 연결이 끊어지는 상황이 종종 발생하였습니다. 이를 ...

무신사머니 결제 시스템 연동의 안정성 및 혁신

```html 29CM Purchase & Post Purchase 팀이 무신사머니 결제 시스템 연동을 통해 고객의 결제 경험을 혁신적으로 개선할 예정입니다. 무신사머니는 선불결제 방식으로, 이를 통해 결제 전환율을 높이고 고객 유치를 극대화할 수 있습니다. 본 글에서는 무신사머니 결제 시스템의 안정성과 혁신에 대해 자세히 살펴보겠습니다. 안정성을 기반으로 한 무신사머니 결제 시스템 무신사머니 결제 시스템의 구조는 여러 요소를 고려하여 설계되었습니다. 고객이 주문서를 작성할 때 필요한 정보는 여러 데이터 소스에서 수집되며, 이를 통해 무신사머니의 가입 여부, 잔액, 첫 결제 여부 등의 정보를 제공합니다. 이러한 정보를 통해 고객은 무신사머니를 hassle-free하게 사용할 수 있게 되며, 우리는 장애 발생 시에도 안정적인 결제 경험을 보장하기 위해 점진적 기능 저하(Graceful Degradation) 를 채택했습니다. 이 체계적인 접근을 통해 결제 과정에서 필수 정보가 누락되더라도 주문 처리가 가능하도록 기능을 최적화했습니다. 또한 비즈니스 연속성을 높이기 위해 필수 정보와 선택 정보를 구분하여, 필수 정보가 누락될 경우 무신사머니 결제수단 자체를 비활성화하고, 선택 정보는 최대한 지원하는 형태로 시스템을 운영합니다. 결과적으로 필요한 데이터가 완비되지 않더라도 고객의 결제가 안정적으로 진행되고, 사용자 경험이 향상되는 효과를 얻었습니다. 이런 안정성 확보는 문제 해결을 용이하게 만들어 줍니다. 예를 들어, 필요한 정보가 조회되지 않을 경우에도 적절한 폴백 전략을 통해 사용자가 헷갈리는 일이 없도록 다양한 UI 정책을 마련했습니다. 이러한 안정성이 결제 시스템의 성공에 있어 핵심 요소로 작용하고 있으며, 고객의 신뢰를 얻는 데 큰 주효하고 있습니다. 혁신적 개선으로 고객 경험 향상 무신사머니 결제 시스템의 도입은 단순히 결제 수단을 늘리는 데 그치지 않습니다. 우리는 고객을 유치하고 리텐션을 높이기 위한 전략적 기능을 통합하...

AI와 사람의 협업을 위한 VLMOps 어드민 구축기

AI 기술이 급속도로 발전하면서 다양한 산업 분야에 자동화가 도입되고 있습니다. 특히 무신사에서는 AI를 활용해 상품 데이터를 효율적으로 분류하고 속성을 추출하여 서비스 품질을 높이고자 노력하고 있습니다. 이 글에서는 Human-in-the-loop 방식으로 기능을 향상시키기 위해 구축한 VLMOps 어드민에 대해 자세히 소개합니다. AI와 사람의 협업으로 강화된 모델 관리 무신사의 VLMOps 어드민은 AI와 사람의 협업을 한층 더 강화하기 위한 필수 시스템으로 자리매김하고 있습니다. 이 어드민은 모델 및 프롬프트 관리 과정을 웹 UI 형태로 제공하여, 데이터 오퍼레이션팀이 엔지니어와의 특별한 커뮤니케이션 없이도 최적의 실험을 진행할 수 있도록 합니다. 이렇게 축적된 의료 데이터를 통해 AI 추론의 결과를 개선하는 과정이 자동화되어 업무 효율성과 데이터 품질이 현저히 향상되었습니다. 특히, VLMOps 어드민은 OpenAI와 Google 등 외부 API와도 원활하게 연동되어 다양한 실험이 가능하다는 장점이 있습니다. 이를 통해 데이터 오퍼레이션팀은 엔지니어의 도움 없이도 원하는 프롬프트와 모델을 자유롭게 선택하여 실험할 수 있습니다. 결과적으로, 반복적인 요청과 대기 시간 없이 빠르게 모델 실험을 수행하고, 데이터 품질을 지속적으로 개선할 수 있는 환경이 조성되었습니다. 이러한 변화는 무신사가 AI 기반의 데이터 자동화와 품질 관리에 대한 새로운 접근 방식을 도입하도록 만들어 주었으며, 결과적으로 더 나은 고객 경험을 제공하기 위한 중요한 발판이 되고 있습니다. 신속하게 이루어지는 모델 추론과 검증 VLMOps 어드민은 모델 추론 과정에서도 AI와 사람의 협업을 극대화할 수 있는 기능을 표현합니다. 자동 생성되는 초안 라벨을 통해 데이터 오퍼레이션팀은 더욱 신속하게 결과를 분석하고 검증할 수 있습니다. 이렇게 생성된 추론 결과는 여러 번의 클릭만으로 즉시 처리되며, 다양한 조합의 모델과 프롬프트를 비교할 수 있는 체계가 마련되어 있습니다. 이러한 ...

테스트 자동화 환경 개선과 Master Jenkins 구축

```html 29CM QA팀은 테스트 자동화 환경을 효과적으로 개선하기 위해 여러 가지 구조적 변화를 시도했습니다. 그 결과, Master Jenkins를 통해 모든 자동화 작업을 중앙에서 관리할 수 있는 환경을 구축하게 되었습니다. 이번 포스트에서는 이러한 개선 과정과 성공적인 통합을 이룬 비결에 대해 자세히 살펴보겠습니다. 테스트 자동화 환경 개선을 위한 구조적 변화 29CM QA팀은 초기 테스트 자동화 환경을 설정할 때 Mac Mini 한 대를 사용하여 iOS 및 Android 기기에서 자동화를 시작했습니다. 그러나 자동화 시나리오의 증가와 함께 전체 테스트 시간이 길어지는 문제를 겪으면서, 팀 내에서 정해진 20분 이내의 테스트 완료 기준을 맞추기 위한 환경 개선이 절실해졌습니다. 이러한 배경 속에서 QA팀은 여러 가지 대응책을 마련하게 되었는데, 그 중 첫 번째로 기기를 두 대씩 병렬로 연결하여 수행시간을 최적화하는 구조로 변경했습니다. 또한, 개인정보 유출 문제를 해결하기 위해 테스트용 API 서버를 구축하고, 이를 통해 API 요청으로 계정을 안전하게 관리할 수 있는 환경을 마련했습니다. 원격 근무가 잦아진 상황에서는 STF(Smartphone Test Farm)를 활용해 테스트 기기를 원격에서 조작할 수 있도록 하였으며, 마지막으로 Postgresql과 Grafana를 통한 데이터베이스화 및 대시보드를 구축하여 테스트 결과를 시각화하고 추적할 수 있게 되었습니다. 이러한 다각적인 환경 개선 노력으로 QA팀은 보다 빠르고 안전한 테스트 자동화가 가능하게 되었습니다. Master Jenkins 구축을 통한 운영 효율성 향상 자동화 환경 개선에도 불구하고, QA팀은 여전히 Mac Mini와 Mac Studio에서 발생하는 퍼포먼스 저하 문제를 겪고 있었습니다. 이에 따라 새로운 자동화 머신을 도입하기로 결정했으며, Mac Studio를 활용하여 기존 Mac Mini와의 겹치는 환경을 최소화하는 작업을 진행했습니다. 이 과정에...

AI와 테스트 코드 자동화의 혁신적 협업

안녕하세요. 본 포스트에서는 AI와 함께 테스트 코드 작성하는 과정과 그로 인해 이루어진 리팩토링과 PR 자동화 등의 내용을 다룹니다. 무신사의 프론트엔드 개발팀이 AI 코딩 에이전트를 통해 테스트 코드 작성 시간을 단축하고, 개발 안정성을 향상시킨 경험을 공유하고자 합니다. 특히, AI가 실제로 테스트 코드 작성에 얼마나 실질적인 도움을 줄 수 있는지를 살펴보겠습니다. AI와 테스트 코드 작성의 혁신적인 협업 AI의 도입이 개발 과정에서 큰 변화의 바람을 불러일으키고 있습니다. 특히 테스트 코드 작성의 자동화는 개발자들이 겪는 불안감, 즉 무슨 코드가 잘못되어 버그가 발생할까 하는 두려움을 상당히 감소시키고 있습니다. AI는 반복적이고 패턴이 명확한 작업을 신속하게 수행할 수 있는 장점을 가지고 있기 때문에, 복잡한 비즈니스 로직을 처리하면서도 더 높은 품질의 코드를 생성할 수 있습니다. 이러한 AI의 기능을 적극 활용함으로써 우리는 테스트 코드 작성 시간을 대폭 단축시킬 수 있었습니다. 리팩토링과 PR 자동화의 과정에서도 AI는 중요한 역할을 합니다. 기존의 복잡한 코드 구조에서도 AI는 코드의 가독성과 유지보수성을 개선하는 데 크게 기여할 수 있습니다. 이는 AI가 특정한 패턴과 코드 스타일을 학습하고 적용함으로써 일어나는 현상으로, 시간이 지날수록 개발자들이 직접 수행해야 했던 많은 반복적인 작업들을 대신해 줄 수 있는 가능성을 지니고 있습니다. AI의 도움은 또한 코드 리뷰 과정에서도 유용하게 쓰입니다. AI가 작성한 코드에 대한 커밋 메시지를 자동화하거나, 팀 컨벤션에 맞춘 PR 생성도 손쉽게 수행할 수 있습니다. 이로 인해 팀원들은 AI가 작성한 코드의 내용을 더욱 명확히 검토하고, 신속하게 피드백을 제공할 수 있습니다. 따라서 AI는 단순한 도구를 넘어 개발 팀워크의 촉진제 역할을 하고 있습니다. 테스트 자동화와 협업을 통한 코드 품질 향상 테스트 자동화는 단순히 개발자 개인의 생산성을 높이는 데 그치지 않고, 개발 팀 ...

주문서 결제 혜택 UX 개선 사례 공유

29CM에서 진행한 주문서 결제 혜택 UX 개선 프로젝트는 고객의 결제 경험을 대폭 향상시켰습니다. 다양한 결제수단에 따른 혜택을 고객들이 쉽게 이해하고, 실시간으로 할인 금액을 확인할 수 있도록 개선하였습니다. 이번 개선을 통해 구매 전환율과 고객 만족도를 모두 높일 수 있었던 경험을 공유합니다. 주문서 결제수단의 문제점 29CM의 기존 주문서 결제 과정에서는 다양한 결제수단별로 제공되는 혜택을 고객이 제대로 인지하기 어려운 문제가 있었습니다. 고객은 결제수단을 선택할 때마다 혜택을 일일이 체크해야 했고, 최종 결제금액에 할인 혜택이 어떻게 반영되는지 이해하기 힘든 상황이었습니다. 이로 인해 고객은 결제 과정에서 혼란스러워하고, 할인 혜택이 실제로 적용되는지에 대한 의구심을 느끼곤 했습니다. 예를 들어, 고객이 장바구니에 담긴 상품을 결제하려 할 때, 여러 결제수단이 나열되어 있지만, 각 결제수단 아래 혜택 리스트를 일일이 클릭해야만 혜택을 확인할 수 있습니다. 이러한 과정은 고객에게 불필요한 시간을 소모하게 하고, 결국 주문을 포기하게 만들 수 있습니다. 고객이 이탈하게 되는 이유는 명확한 안내 없이 복잡하게 흩어진 정보와 실시간 할인 금액을 명확하게 보여주지 못한 결과였습니다. 이런 문제를 해결하기 위한 우리의 개선 방향은 즉시 할인 기능을 도입하여 고객이 결제 수단을 선택할 때 즉각적으로 할인 혜택을 체감할 수 있도록 하는 것이었습니다. 이를 통해 우리는 고객이 더 쉽게 결제 수단을 선택하고, 불필요한 시간 낭비 없이 최적의 결제 혜택을 이용할 수 있도록 하고자 하였습니다. 즉시 할인 동작 방식 UX 개선의 핵심은 즉시 할인을 고객이 결제 단계에서 바로 적용할 수 있도록 한 것입니다. 즉시 할인은 특정 결제수단을 선택하여 결제하는 즉시 할인이 적용되는 방식입니다. 장바구니에서 결제 과정으로 넘어갈 때, 고객이 선택한 결제수단에 따라 정해진 즉시 할인 금액이 자동으로 반영되어 실제 결제금액에서 차감됩니다. 이러한 시스템은 카드사나 PG사에서 제...