AI와 함께하는 백엔드 개발자의 업무 변화

AI 시대에 백엔드 개발자의 일하는 방식이 변화하고 있습니다. 글에서는 Claude Code와 함께하여 새로운 팀과 코드 이해에서 AI Agent를 활용한 업무 방식 혁신을 살펴봅니다. 이 변화는 단순한 생산성 향상을 넘어, 보다 심오한 문제 해결에 집중할 수 있게 도와줍니다. AI와 함께하는 코드 이해의 혁신 AI 기반 도구들이 도입되면서 백엔드 개발자가 코드 이해에 대한 방식이 훨씬 더 체계적으로 변화하고 있습니다. 과거에는 코드 분석이 주로 개인의 경험과 주관에 의존하였으나, AI를 활용하게 되면서 분석의 기준이 정형화되었습니다. 개발자는 이제 AI와 협력하여 코드의 역할, 흐름, 외부 시스템과의 접점을 분석하고, 조건과 영향을 파악하는 데 집중할 수 있게 되었습니다. AI 분석 결과는 프로젝트의 이해도를 높이는 데 큰 도움을 줍니다. 이 분석 과정에서 AI가 지속적으로 동일한 분석 기준을 유지하는 덕분에 시간과 비용을 절약할 수 있게 되었습니다. 예를 들어, 요청이나 이벤트의 시작점과 종료점을 명확히 함으로써 시스템의 흐름을 더욱 이해하기 쉽게 조정할 수 있었고, 이로 인해 기존 시스템을 수정할 때도 보다 신속하고 안정적으로 기능을 개선할 방향을 찾아낼 수 있었습니다. 결국 이러한 변화는 개발자가 단순히 코드를 읽는 데서 벗어나, 시스템 전반을 이해하는 데 심층적으로 참여하게 하여 분석의 질을 높입니다. AI와의 협력은 예측 가능성과 속도를 향상시키며, 분석과 판단의 경계가 명확히 나뉘며 효율적인 업무 방식으로 이어지고 있습니다. AI와의 협업으로 이루어진 업무 구조 변화 AI는 단순한 도구가 아니라, 개발자의 업무 구조를 혁신적으로 변화시키는 파트너로 자리잡고 있습니다. 예를 들어, 여러 작업을 병렬로 처리할 수 있는 구조를 설계함으로써 개발자는 과거의 순차적인 작업 방식에서 벗어나, 각 티켓의 요구사항을 동시에 분석하고 처리할 수 있는 기회를 가지게 되었습니다. 이를 통해 개발 속도는 물론, 업무 품질도 높일 수 있는 장점을 ...

비즈니스 심각도 정의를 통한 장애 대응 개선

큐레이터 서비스는 인플루언서가 SNS를 활용해 상품을 소개하고, 그 경로를 통해 발생한 구매 성과에 대해 수수료를 지급받는 무신사의 공식 어필리에이트 서비스입니다. 이 블로그 글에서는 인플루언서 커머스가 성장함에 따라 발생한 비즈니스 심각도를 정의하고, 이를 바탕으로 장애 대응 우선순위를 개선한 과정을 다룹니다. 특히 '이 장애, 얼마나 심각한가요?'라는 질문을 해결하기 위한 체계적인 접근 방식에 대해 알아보겠습니다. 비즈니스 심각도를 정의하며 장애 대응의 중요성 큐레이터 서비스는 인플루언서가 자신의 콘텐츠를 통해 상품을 추천하고, 그로 인해 발생하는 수익을 통해 수수료를 받는 매우 중요한 비즈니스 모델입니다. 서비스의 비즈니스적 중요도가 커짐에 따라, 장애 대응의 우선순위를 명확히 정의하려는 필요성이 강해졌습니다. 기존에는 기술적인 지표를 기반으로 장애의 심각도를 판단했지만, 이는 비즈니스의 실제 영향을 반영하지 못했습니다. 예를 들어, 특정 페이지의 오류가 발생했더라도 수익에 직접적인 영향을 미치지 않는 경우가 있을 수 있기 때문에, 단순하게 기술적 크기만으로 판단하기 어려웠습니다. 이러한 문제를 해결하기 위해, 우리는 비즈니스 심각도를 정의하기 위한 명확한 기준을 설정했습니다. 핵심 사용자 여정(Critical User Journey)과 같은 비즈니스 모델의 기본 구조를 바탕으로, 장애의 심각도를 판단할 수 있는 기준을 마련했습니다. 즉, 장애가 비즈니스에 미치는 실질적 영향을 고려하여, 장애의 우선순위를 효율적으로 관리할 수 있는 시스템을 구축했습니다. 장애 대응 체계의 방향성 강화 비즈니스 심각도를 기반으로 한 장애 대응 우선순위를 정립함으로써 우리는 서비스 운영에서 발생하는 다양한 장애를 보다 효과적으로 관리할 수 있었습니다. 구체적으로, CSP(Critical Serving Path)를 정의하여 매출과 전환에 직결되는 경로를 구분하고, 이를 통해 장애 발생 시 반응할 수 있는 우선순위 체계를 설정했습니다. CSP의 ...

AI 기반 SLO 자동화로 배포 안정성 향상 역량 강화

O4O 팀은 AI를 활용하여 SLO(Service Level Objective) 자동화를 통해 배포 안정성을 획기적으로 향상시켰습니다. 이를 위해 각 서비스에 맞는 SLO를 설계하고, 실시간 모니터링을 통해 오류 예산을 자동으로 보호할 수 있는 시스템을 구축했습니다. 본 가이드를 통해 여러분은 O4O 팀이 7일 만에 완성한 실전 사례를 살펴보고, 이러한 혁신적인 접근이 어떻게 이루어졌는지 이해할 수 있을 것입니다. AI 기반 SLO 시스템 구현으로 배포 안정성 확보 O4O 팀은 다양한 서비스의 안정성 관리를 위해 AI를 기반으로 한 SLO 자동화 시스템을 구축했습니다. 전통적인 모니터링 방식은 HTTP 상태 코드에 의존하고 있었지만, 이는 정확하지 않은 알림과 비즈니스의 실제 성과를 반영하지 못하는 문제점을 가지고 있었습니다. 이를 개선하기 위해, O4O 팀은 APM(Application Performance Monitoring) 도구를 활용하여 서비스의 실제 성공 여부를 측정하는 새로운 기준을 마련했습니다. 이 시스템은 sales-api, moss-api, mpos-api 등 서로 다른 특성을 가진 서비스에 각각 적용되어, 안정성을 한층 강화했습니다. AI는 과거의 데이터 분석을 통해 각 서비스의 정상 운영 기준을 세우고, 지속적으로 성과를 모니터링하여 실시간으로 알림을 갱신합니다. 결과적으로, O4O 팀은 배포 중 발생할 수 있는 오탐 알림을 zero로 줄이는 성과를 얻었고, 실제 비즈니스 실패를 즉시 탐지할 수 있는 체계를 마련했습니다. 이러한 AI 기반 SLO 시스템의 구현은 팀의 배포 안정성 및 운영 효율성을 크게 증가시켰습니다. 자동화된 SLO 운영으로 팀의 효율성 증가 SLO 자동화 시스템은 O4O 팀의 운영 효율성을 극대화하는 데 큰 역할을 했습니다. 배포 시 오류 예산을 자동으로 보호하는 기능은 개발자들이 장애 발생 여부를 즉시 판단할 수 있는 환경을 마련해줍니다. 이를 통해, 팀원들은 작은 알림들에 대해 신속히 대응하는 대신...

무신사 오프라인 체험기와 운영 개선 경험

무신사 O4O팀은 오프라인 리테일 제품을 책임지고 있으며, 팀원들은 직접 매장에서 파트타임 체험을 통해 오프라인 사업의 현황과 개선점을 관찰했습니다. 이를 통해 무신사 매장의 운영 단계와 문제점, 제품 디자인 관점을 이해하게 되었고, 팀원들은 아프다. 이러한 경험은 앞으로의 오프라인 비즈니스를 발전시키기 위한 중요한 토대가 될 것입니다. 무신사 오프라인 사업의 확장기 무신사는 현재 오프라인 사업의 확장기에 진입했습니다. 이 단계에서 가장 중요한 것은 매장을 안정적으로 운영할 수 있는 시스템입니다. O4O팀은 팀원들이 파트타임으로 매장에서 실제 경험을 쌓도록 하여, 운영 효율성을 높일 수 있었습니다. 그 중에서도 매장의 다양한 업무에 대해 빠짐없이 학습하고, 그 과정을 통해 새로운 인사이트를 얻는 기회를 가졌습니다. 매장에서는 각 팀원에게 이름표와 워키(무전기)를 제공하여 온보딩 과정을 거쳤습니다. 이 과정에서 팀원들은 오픈 전 재고 소팅 업무부터 오픈 후 POS 결제, 피팅룸 관리, 재고 반출 등의 업무를 직접 체험했습니다. 현장을 경험하면서 매장 운영이 단순히 돌아가는 게 아니라, 수많은 매니저와 크루들의 노력이 필요한 복잡한 시스템임을 알게 되었습니다. 현장 파트타임 경험은 팀원들에게 매장의 운영 구조를 이해하는 데 큰 도움이 되었습니다. 이전에는 온라인에서만 교육받고 경험했지만, 실제로 매장에서 고객을 맞이하면서 그 필요한 업무의 중요성을 깊이 이해하게 되었습니다. 이러한 경험은 앞으로의 오프라인 사업에서 진행해야 할 여러 과제들을 해결하는 데 큰 자산이 될 것입니다. 운영 프로세스에서 발견한 문제점 무신사 매장에서의 파트타임 경험을 통해 몇 가지 주요 문제점을 발견했습니다. 첫 번째는 수기 및 수동 작업으로 인한 운영 비효율입니다. 새로운 바코드 체계의 도입으로 인해 매장 내 혼용되는 바코드가 존재하게 되면서 일부 상품에 대한 관리가 어려워지는 문제가 발생했습니다. 추가로, 매일 아침 수십 개의 박스를 수작업으로 분류하는 문제도...

무신사 AI 코드 리뷰 도입과 운영 과정 공유

안녕하세요. 무신사에서는 AI 코드 리뷰를 도입하고 운영 가능한 인프라와 표준화된 프로세스를 구축하기 위한 과정을 공유하고자 합니다. 이 글에서는 LLM 기반 코드 리뷰의 필요성과 그 효과, 그리고 무신사가 실제로 수행한 구축 과정에 대해 설명합니다. AI 기술을 활용한 코드 리뷰의 도입과 정착은 기술 조직 내에서 혁신을 촉진하고 생산성을 높이는 필수적인 요소가 되고 있습니다. AI 코드 리뷰 도입의 필요성 무신사는 최근 AI 코드 리뷰의 필요성을 절감하면서 이 기술을 도입하기로 결정했습니다. 과거에는 AI를 활용한 코드 리뷰가 고비용, 복잡한 인프라 문제가 있어 실무에 적용하기 어려웠으나, 이제는 기술적 진입 장벽이 크게 낮아졌습니다. Anthropic의 클로드(Claude)가 GitHub Actions을 공식 지원하면서, 복잡한 시스템 구축 없이도 AI 코드 리뷰를 간편하게 도입할 수 있는 환경이 마련되었습니다. AI 코드 리뷰의 주요 가치는 팀의 워크플로우를 개선하는 데 있습니다. AI는 단순히 코드를 생성하는 것에 그치지 않고, 협업 과정 전체를 매끄럽게 만드는 데 기여합니다. 코드 리뷰는 일반적으로 높은 품질을 유지해야 하는데, AI는 반복적으로 발생하는 실수와 패턴을 효과적으로 잡아내어 리뷰어의 부담을 줄입니다. 이를 통해 개인 개발자의 작업 속도가 빨라질 뿐 아니라, 팀 단위의 개발 사이클이 보다 유연하게 연결되는 구조적 효율성이 생길 것입니다. AI 코드 리뷰는 "고차원 의사결정"을 요구하지 않고도, 반복적으로 발생하는 오류를 효율적으로 걸러내는 역할을 합니다. 이러한 효과를 바탕으로 무신사는 AI를 도입했으며, 팀 전체의 코드 품질 기준을 일정 수준 이상으로 유지할 수 있도록 하였습니다. 이제 인프라가 마련된 만큼, AI 코드 리뷰를 통해 팀의 효율성을 높여나갈 시점에 있습니다. AI 코드 리뷰의 효과와 가치 AI 코드 리뷰의 효과는 여러 측면에서 나타납니다. 우선 AI는 반복적이고 규칙적인 코드 리뷰를...

AI 아키텍처 규칙 자동 검증을 위한 ArchUnit 도입

무신사 물류 플랫폼팀은 AI가 생성한 코드에서 자주 발생하는 아키텍처 규칙 위반 문제를 해결하기 위해 ArchUnit을 도입하게 되었습니다. 아키텍처 규칙을 자동으로 검증함으로써 AI와의 협업을 향상시키고 코드 리뷰에서의 부담을 줄였습니다. 이러한 변화는 단순한 요청을 넘어서서 AI의 아키텍처 위반을 사전에 차단하는 체계로 발전하게 되었습니다. AI와 ArchUnit의 시너지를 창출하다 무신사 물류 플랫폼팀은 AI인 Claude가 생성하는 코드에서 아키텍처 규칙을 준수하지 않는 문제가 빈번히 발생하는 것을 목격했습니다. 이를 해결하기 위해 ArchUnit을 도입하기로 결정했으며, 이 도구는 깔끔하게 아키텍처 규칙을 검증할 수 있는 능력을 가지고 있습니다. ArchUnit은 JUnit 테스트처럼 작동하여 코드가 규칙을 위반하면 테스트가 실패하도록 설정할 수 있습니다. 이렇게 하면 AI가 생성한 코드에서 아키텍처 위반이 발생할 경우 즉시 알려주며, AI는 실패 메시지를 통해 어떤 부분에서 문제가 발생했는지 이해하고 스스로 수정할 수 있게 됩니다. ArchUnit의 특징은 아키텍처 규칙의 자동 검증을 통해 팀의 개발 생산성을 크게 향상시킬 수 있다는 점입니다. 과거에는 코드 리뷰에서 아키텍처 규칙 준수 여부를 검토할 때 많은 시간이 소요되었지만, 이제는 ArchUnit이 이를 자동으로 수행하므로 리뷰어는 비즈니스 로직의 정확성과 엣지 케이스 처리에 집중할 수 있게 되었습니다. 이는 팀의 전반적인 업무 효율성을 높여주었습니다. 특히, ArchUnit은 자연어로 제시된 아키텍처 규칙을 이해하고, 이를 기반으로 테스트 코드를 생성할 수 있는 능력을 지니고 있어 AI와의 연동이 용이합니다. 사람이 간단한 비즈니스 규칙을 자연어로 설명하면, AI가 이를 ArchUnit 테스트 코드로 변환하여 적용 가능한 구조를 마련하게 됩니다. 자동화된 검증 체계는 코드 품질을 유지하고 효과적인 협업을 이룰 수 있는 기반이 됩니다. 아키텍처 규칙 자동 검증의 필요성 AI...

스케줄 안정성을 위한 Temporal 도입 이유

우리는 출고지시 스케줄의 불안정성 고민 끝에 Temporal을 선택하게 되었습니다. 초기의 Jenkins crontab으로는 급증하는 물량과 요구 사항을 충족할 수 없었고, 이로 인해 발생하는 다양한 문제들에 직면하게 되었습니다. 이러한 이유로 우리는 Temporal을 도입하여 안정적이고 자동화된 시스템을 구축하려고 하였습니다. 실패 대응 시스템 구축의 필요성 무신사의 OMS(주문관리시스템)에서 출고지시의 중요성은 말할 필요도 없습니다. 이는 물류센터의 하루를 시작하는 신호이기도 하며, 스케줄의 실행이 실패할 경우 배송 지연으로 이어질 수 있습니다. 초기에는 Jenkins의 cron 스케줄로 충분했지만, 점차 물류량이 증가함에 따라 점점 더 많은 문제가 발생했습니다. Jenkins 기반 스케줄은 문제가 발생해도 자동으로 알려주지 않아 별도의 모니터링 job을 만들어야 했습니다. 하지만 이 모니터링조차 Jenkins의 한계로 인해 더 이상의 신뢰를 받을 수 없게 되었습니다. 우리는 어떻게든 이러한 실패를 보다 효과적으로 관리해야 할 필요성이 커졌고, 이를 통해 우리의 시스템이 실패에 민감하지 않도록 구축해야겠다는 결론에 도달했습니다. وقت이 지연되는 배달로 인해 고객의 신뢰를 잃는 것은 결코 바람직하지 않다는 것을 명심하며, 안정성을 위한 새로운 시스템이 절실히 요구되었습니다. Temporal은 장기 실행되는 비즈니스 프로세스를 관리하는 데 적합한 솔루션입니다. 자동 재시도 및 상태 관리와 같은 기능이 있어, 우리가 기대했던 실패 대응 시스템을 구축하는 데 큰 도움이 될 것으로 판단하였습니다. 이 시스템은 단순히 스케줄을 실행하는 데 그치지 않고, 전체적인 비즈니스 프로세스를 아우르는 기능을 제공합니다. 따라서 출고지시 스케줄의 안정성을 보장하는 데 최적의 선택이었습니다. 결론적으로, 실패를 놓치지 않고, 재시도를 통해 실패한 지점에서 자동으로 복구될 수 있는 Temporal의 기능은 우리 팀의 운영 리스크를 현저히 줄여줄 것이라 기대합니다. 가시성 ...

정산 시스템 단계적 오픈과 성과 분석

이번 포스팅에서는 무신사의 정산 시스템 단계적 오픈과 실제 운영 성과를 심층적으로 분석합니다. 막대한 양의 데이터를 처리하는 정산 시스템을 성공적으로 구현함으로써 발생한 변화를 살펴보며, 더 이상 야근하지 않아도 되는 환경을 만들어낸 비결을 소개합니다. 정산 시스템의 효과적인 혁신으로 인해 무신사는 운영 효율성을 크게 향상시킬 수 있었습니다. 정산 시스템의 단계적 오픈 전략 정산 시스템은 복잡한 데이터 처리와 다양한 규정이 얽혀 있어 한 번에 오픈하기에 리스크가 큰 시스템입니다. 이러한 이유로 무신사는 단계적 오픈 전략 을 채택하였습니다. 정산 시스템은 원천 데이터를 기준으로 단계적으로 기능을 오픈하며, 각 단계에서 발생하는 데이터 품질 이슈와 예외 케이스를 사전에 수정하는 과정이 필요했습니다. 이 전략의 첫 단계로는 원천 데이터 적재 모듈을 선배포하여 실제 운영 환경에서 발생하는 모든 케이스를 수집하였습니다. 이를 통해 수집 과정에서 발생할 수 있는 데이터 품질 문제와 오류를 미리 발견하고 수정할 수 있었습니다. 실제 운영 데이터의 세세한 수집이 이루어짐으로써, 정산 정책 수립에 필요한 엣지 케이스를 정리하고 기준을 확립할 수 있었습니다. 두 번째 단계는 실제 데이터 기반 QA 및 시뮬레이션입니다. 정산 시스템의 검증은 바로 실 운영 데이터를 활용한 리허설을 통해 이뤄졌습니다. 하드웨어 환경을 운영 환경과 동일하게 설정하여, 실제 데이터를 이용한 반복적인 정산 테스트가 이루어졌으며 이 단계에서 발생한 오류는 즉시 수정하여 시스템의 신뢰성을 높였습니다. 최종적으로, 모든 검증이 완료된 후에 전체 정산을 실행하고 이 과정을 통해 무결한 정산이 가능해졌습니다. 이러한 철저한 단계적 오픈 전략 덕분에 시스템 일정을 맞추며 정산 업무를 안정적으로 수행할 수 있었던 것입니다. 정산 시스템 성과 분석 정산 시스템의 성공은 단순히 기술적 오류가 없는 배치 마감에 그치지 않습니다. 정산의 성공률을 ‘완전한 정합성’으로 정의하고, 이를 기반으로 다양한 성공...

정산 시스템 설계와 구현 과정 분석

이번 글에서는 정산 시스템 구축 과정과 그에서의 설계 원칙과 기술 선택에 대해 자세히 살펴보겠습니다. 정산 시스템은 문제 해결이 복잡한 도메인으로, 이를 안정적인 구조로 구현하는 것이 핵심 과제입니다. 특히, 멱등성과 결정적 계산이라는 원칙을 바탕으로 정산 시스템이 어떻게 설계되었는지를 알아보겠습니다. 정산 시스템의 멱등성 기반 설계 정산 시스템의 가장 중요한 설계 원칙 중 하나는 바로 멱등성입니다. 멱등성이란 같은 연산을 여러 번 수행해도 결과가 변하지 않는 성질을 말합니다. 이를 기반으로 한 시스템 설계는 장애 발생 시 데이터의 무결성을 보장할 수 있는 중요한 요소로 작용합니다. MASS 정산 시스템은 이벤트 기반으로 운영되며, 이러한 이벤트는 종종 중복 수집이나 재처리를 겪게 됩니다. 따라서 이 시스템에서는 다음과 같은 조건을 갖추게 됩니다. 첫째, 이벤트 재시도(Retry)와 격리(DLT)를 명확히 분리하여 처리하는 것입니다. 이를 통해 복구 작업이 원활하게 이루어질 수 있습니다. 둘째, 서비스 수준에서 트랜잭션 식별자를 기준으로 멱등 갱신을 수행하여, 동일 이벤트가 여러 번 처리되더라도 결과는 항상 일정하도록 합니다. 이를 통해 정산 시스템은 장애가 발생하더라도 안전하게 재처리할 수 있는 기반을 마련하게 됩니다. 셋째, DLT가 발생하면 해당 이벤트는 정산 흐름에서 즉시 제외됩니다. 각 이벤트는 모니터링 시스템을 통해 관리되며, DLT 발생 시 운영자는 이를 즉시 인지할 수 있습니다. 이러한 설계 원칙을 통해 시스템은 더욱신뢰할 수 있는 환경으로 거듭나게 되며, 문제가 있는 이벤트가 전체 정산 흐름을 방해하는 것을 방지할 수 있습니다. 정산 시스템은 이처럼 밀접하게 설계된 멱등성 기반으로 운영됨으로써, 상시적인 데이터 무결성을 유지합니다. 정산 프로세스의 배치 처리 구조 정산 시스템에서 또 하나의 중요한 요소는 배치 처리입니다. MASS에서는 정산 집계, 마감, 리포트 생성을 담당하는 배치 애플리케이션이 설계되어, 전반적인 정산 프로세...

2025년 첫 번째 29QA 컨퍼런스 진행 후기

2025년 29CM QE팀은 첫 번째 29QA 컨퍼런스를 성공적으로 개최하였습니다. 이번 컨퍼런스는 팀원들의 고유한 레슨 러닝을 공유하고 외부 QA 팀과의 네트워킹을 도모하는 자리가 되었으며, 다채로운 주제로 총 13개의 세션이 진행되었습니다. 이 글에서는 29QA 컨퍼런스의 진행 과정과 의미, 강연 내용을 정리해 보겠습니다. 1. 컨퍼런스 준비와 팀워크의 중요성 29QA 컨퍼런스 준비는 한 달이라는 짧은 기간 동안 이루어졌습니다. 4명의 팀원이 각각 3개 이상의 세션을 준비해 총 13개의 세션을 진행하기 위해 모든 팀원이 협력하였습니다. 이러한 팀워크는 컨퍼런스의 성공에 결정적인 역할을 했습니다. 팀원들은 각자의 강점을 살려 질 좋은 발표 자료를 만들어내기 위해 긴밀하게 소통하였고, 결국 이 모든 과정이 훌륭한 컨퍼런스로 이어졌습니다.  컨퍼런스 준비 과정에서 팀원 각각의 역할이 중요했습니다. 준비 과정에서 세션 주제를 선정하고 자료를 준비하며 시간을 조율하는 등, 참석자들에게 의미 있는 콘텐츠를 제공하기 위해 많은 노력을 기울였습니다. 팀의 마스코트인 '큐엉이'가 포함된 굿즈와 홍보 배너의 제작은 행사 분위기를 더욱 고조시켰고, 이는 단순한 발표를 넘어서 하나의 이벤트로 자리잡는 데 큰 도움이 되었습니다. 각 발표가 진행될 때마다 팀원들은 서로 응원하며 발표의 질을 더욱 높이려 했습니다. 2. 다양하고 풍부한 세션 진행 이번 29QA 컨퍼런스의 가장 큰 특징 중 하나는 총 13개의 다양한 세션이 진행되었다는 점입니다. 각 세션은 주제의 다양성 뿐만 아니라, 발표자들의 전문성과 열정이 돋보이는 시간들이었습니다. 첫 번째 세션부터 열세 번째 세션까지 각각의 발표는 현업에서의 실질적인 경험과 노하우를 바탕으로 하여 참석자들에게 큰 영감을 주었습니다.  예를 들어, '25년 자동화 유지보수 여정' 세션에서는 지난 몇 년 간의 경험을 공유하며, 실수로 인한 Fail에 대한 원인 분석과 해결 방안을 제시하는 것이 인상 깊었습...

정산 시스템 설계와 신뢰성 확보 방안

정산 시스템의 필요성에 대한 고민은 단순한 계산을 넘어 효율성과 신뢰성을 확보하는 방향으로 발전해야 합니다. MASS는 이러한 요구를 충족시키기 위해 설계되었으며, 복잡한 정산 과정을 시스템이 완벽하게 처리하도록 돕습니다. 본 기사는 정산 시스템 설계의 중요성과 함께 신뢰성 확보 방안을 짚어보겠습니다. 정산 시스템 설계의 필요성 정산 시스템을 설계하는 것은 복잡한 계산 과정을 자동화하여 오류 가능성을 최소화하기 위해 매우 중요합니다. 특히, 기존의 수기 작업과 엑셀 검증으로 인한 높은 업무 부담은 조직의 효율성을 저해하고 오류를 증가시키는 요인으로 작용해 왔습니다. MASS는 이러한 문제의식에서 출발하여, 정산이 시스템의 책임으로 이관되는 방안에 초점을 맞추었습니다. 따라서, 정산 시스템은 수작업의 부담을 덜고 실시간으로 데이터를 처리하여 파트너 업체와의 정산 결과를 투명하게 공유하기 위한 필수적인 도구로 자리잡게 되었습니다. 이로 인해, 모든 관련자는 동일한 기준의 정산 결과를 확인할 수 있으며, 이를 기반으로 논쟁의 여지를 최소화할 수 있습니다. 결국, 정산 시스템은 단순한 숫자의 집계가 아니라, 복잡한 데이터와 다양한 기준을 조율하는 중추적인 역할을 하게 됩니다. 그러므로 정산 시스템 설계를 보다 철저하게 진행하여, 모든 구성원이 신뢰할 수 있는 결과를 얻는 것이 필수적입니다. 신뢰성을 확보하는 설계 원칙 정산 시스템의 신뢰성을 확보하기 위해 MASS는 몇 가지 핵심 설계 원칙을 설정했습니다. 첫 번째로, 정합성과 멱등성 을 강조했습니다. 이는 시스템이 동일한 원천 데이터와 계산 기준을 사용할 경우, 언제 다시 계산하더라도 동일한 결과를 내도록 보장하는 것입니다. 이를 위해 모든 원천 이벤트에 대해 트랜잭션 식별자를 활용하여 중복 수신이나 재처리로 인한 오류를 방지하는 구조를 마련했습니다. 두 번째는 결정적 계산 입니다. 모든 계산 로직은 입력값에만 의존하며, 외부 요인에 의해 영향을 받지 않도록 순수 함수 형식으로 설계되었습니다. 이는 정산 ...

Redis 대역폭 초과 장애와 대응 과정 공유

안녕하세요. 29CM의 Customer Engagement Engineering 팀에서 상품 전시 영역을 책임지고 있는 김송이입니다. 2025년 겨울, 29CM 최대 규모의 블랙프라이데이 행사인 이구위크에서 발생한 Redis 대역폭 초과 장애에 대한 이야기와 그 대응 과정에 대해 공유하고자 합니다. 이 글에서는 장애의 원인 분석, 즉각적인 대응 조치, 그리고 향후 재발 방지를 위한 개선 작업에 대해 자세히 설명하겠습니다. Redis 대역폭 초과 장애: 원인 분석 과정 이구위크가 시작된 첫날, 상품 전시 화면에서 장애가 발생했습니다. 초기에는 검색 결과와 상품 리스팅을 담당하는 서버의 일부 파드가 다운되면서 트래픽을 수용하지 못하게 되었습니다. 남아있는 파드는 처리 가능한 트래픽을 초과했고 결국 Netty 이벤트 루프의 포화 상태를 초래했습니다. 여기서 주목해야 할 점은, Redis의 헬스체크 실패 로그가 나타났다는 것입니다. 시스템 메트릭을 확인한 결과, CPU와 메모리는 정상 범위에 있었지만 Redis와의 통신에 실패한 이유를 찾기 위해 네트워크 지표를 살펴보았습니다. 이 과정에서 Redis 노드 타입이 cache.r7g.large로 설정되어 있었고, 이는 기본 네트워크 대역폭이 0.937Gbps라는 것을 알게 되었습니다. 이는 하루 동안 불규칙적인 트래픽의 증가로 인해 순간적으로 이 대역폭을 초과하게 되는 상황이 발생했습니다. 결과적으로 Redis의 버스트 크레딧이 소진되면서 Throttling이 제대로 작동하게 되었고, 이로 인해 장애가 발생했습니다. 대응 과정: 즉각적인 조치 및 수정 장애가 발생한 후, 신속하게 원인을 파악하고 대응하기 위해 노력했습니다. 장애가 발생한 시간인 20:58에 크레딧이 고갈되면서 발생한 Throttling으로 인해 Redis 연결과 명령 처리에 큰 지연이 발생하였습니다. 이 시점에서 획기적인 조치를 취하기로 결심했으며, Redis 노드를 스케일업하기로 결정했습니다. 기존의 cache.r7g.larg...

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과의 연결이 끊어지는 상황이 종종 발생하였습니다. 이를 ...

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

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