Etc29CM 테크 블로그가 팀 무신사로 이사갑니다29CM 테크 블로그가 팀 무신사 테크 블로그로 이전한다는 소식을 알리는 글입니다. 2025년 6월 2일부터 29CM의 새로운 기술 관련 글은 무신사 테크 블로그에서 발행될 예정입니다. 이는 두 회사의 기술 커뮤니티 간의 협력 및 정보 공유를 강화하려는 움직임으로 해석됩니다. 구체적인 이전 일정과 함께 새로운 플랫폼에서의 활동에 대한 기대감을 나타내고 있습니다.29CM무신사기술 블로그29CM·2025년 6월 1일
Etc이구위크 회고이 글은 '이구위크'라는 개발자 컨퍼런스 또는 이벤트에 대한 회고입니다. 하지만 본문 내용이 '410 Deleted by author' 오류 메시지만을 포함하고 있어, 실제 행사 내용이나 기술적인 정보는 전혀 담고 있지 않습니다. 따라서 이 글은 특정 기술이나 개발 방법론을 다루기보다는, 행사에 참여했거나 주최했던 경험에 대한 간략한 기록 또는 후기일 가능성이 높습니다. 구체적인 기술적 내용은 확인할 수 없으므로, 이벤트 자체의 성격이나 참여 경험에 대한 전반적인 내용을 다루는 글로 분류됩니다.회고이벤트개발 문화29CM·2025년 5월 21일
Backend쿠폰, 어디에 쓸 수 있어요? — 이벤트 기반 적용 상품 조회 시스템 구축29CM 백엔드 개발자가 쿠폰 적용 가능 상품 목록 조회 기능을 구축한 경험을 공유하는 글입니다. 기존에는 사용자가 보유한 쿠폰을 확인할 수만 있었고, 어떤 상품에 적용 가능한지는 직접 확인해야 하는 불편함이 있었습니다. 이 문제를 해결하기 위해 쿠폰 설정과 상품 개별 설정을 모두 고려하고, 실시간으로 변화하는 쿠폰 적용 조건을 반영하는 이벤트 기반 시스템을 설계했습니다. 이를 통해 사용자는 쿠폰함에서 바로 적용 가능한 상품 목록을 확인할 수 있게 되어 사용자 경험을 크게 개선했습니다. 이 시스템은 복잡한 쿠폰 및 상품 정책을 효율적으로 처리하고 실시간 동적 데이터를 관리하는 백엔드 기술의 중요성을 보여줍니다.쿠폰 시스템상품 조회이벤트 기반29CM·2025년 4월 20일
DevOpsSwiftLint 캐싱을 통한 Incremental Build 최적화하기본 글은 29CM iOS팀에서 SwiftLint 사용 시 발생하는 증분 빌드 시간 문제를 해결하기 위한 과정을 다룹니다. 모듈화 과정에서 SwiftLint가 빌드 속도에 미치는 영향을 파악하고, 로컬 캐싱 도입을 통해 증분 빌드 성능을 크게 향상시킨 경험을 공유합니다. 초기 SwiftLint 사용 방식의 문제점을 진단하고, 캐싱 전략을 적용하여 빌드 시간을 단축하는 구체적인 방법을 설명합니다. 또한, 캐싱 도입 후 발생할 수 있는 부작용과 이를 보완하기 위한 추가적인 개선 방안을 제시하며, 궁극적으로 SwiftLint 사용성을 개선하고 팀 생산성을 높인 사례를 소개합니다.SwiftLintIncremental BuildCaching29CM·2025년 1월 22일
Frontend당신2 9하던 디자인 시스템? 0.5인 리소스로 효율적으로 구축하기29CM 프론트엔드 플랫폼 팀에서 0.5인 리소스라는 제한된 환경에서 디자인 시스템을 효율적으로 구축하고 관리하는 방법을 공유합니다. 디자인 시스템을 하나의 제품으로 간주하고, 도널드 노먼의 사용자 중심 디자인 원칙을 적용하여 개발자와 사용자 모두에게 가치를 제공하는 것을 목표로 합니다. 초기에는 MVP(Minimum Viable Product) 접근 방식을 통해 빠르게 구축하고 반복적인 개선을 추구하며, TailwindCSS와 ANTD와 같은 라이브러리를 활용하여 생산성을 높이는 실무적인 경험과 인사이트를 제공합니다.디자인 시스템29CMTailwindCSS29CM·2025년 1월 15일
FrontendMergeable libraries 로 29% 빠르게 앱 실행하기29CM 모바일팀은 iOS 앱의 Cold Start 시간을 개선하기 위해 성능 측정 및 개선 과제를 진행했습니다. Sentry 도입 결과, 앱 시작 시간이 p50 기준 1.5초, p90 기준 2.3초로 다소 느린 것을 확인하고 개선에 집중하기로 했습니다. 애플 개발자 문서에서 Dynamic libraries와 Static libraries의 차이점을 확인했으며, 특히 Debug 빌드 환경에서 Dynamic libraries가 빌드 시간을 단축하고 Release 빌드 환경에서는 Static libraries와 유사한 앱 시작 시간을 제공한다는 점에 주목했습니다. 29CM iOS 프로젝트는 Tuist의 Modular Architecture를 적용하고 있으며, 80개 이상의 모듈이 Dynamic library로 구성되어 있습니다. Mergeable libraries 도입을 통해 앱 시작 시간을 크게 개선할 수 있을 것이라는 확신을 얻었습니다. Static library는 빌드 시 앱 실행 파일에 병합되어 빌드 시간과 파일 크기가 커지는 반면, Dynamic library는 앱 실행 파일 크기를 줄이고 앱 시작 시 동적 링커에 의해 연결됩니다.앱 실행 시간Cold Start성능 개선29CM·2025년 1월 7일
DevOps29CM QA팀은 테스트 자동화 사용률을 극적으로 상승 시키기 위해 무엇을 바꿨을까?29CM QA팀은 테스트 자동화 사용률을 높이기 위한 여정을 공유합니다. 기존에는 테스트 자동화 도입 및 활용에 어려움이 있었으나, 팀의 노력으로 사용률을 극적으로 상승시켰습니다. 이 글에서는 구체적으로 어떤 변화를 시도했고, 어떤 결과가 있었는지 상세히 다룹니다. CI/CD 파이프라인과의 연동, 자동화 스크립트 작성 및 관리 방식 개선, 팀원들의 참여 독려 등 다양한 측면에서의 노력을 통해 테스트 자동화의 실질적인 효용성을 높이고 QA 프로세스를 효율화한 경험을 공유합니다. 이를 통해 다른 조직에서도 테스트 자동화 도입 및 활용률을 높이는 데 참고할 만한 인사이트를 제공합니다.테스트 자동화CI/CDQA29CM·2024년 9월 26일
Backend(youtube)Event Streaming 도입과 앞으로의 활용본 글은 29CM 팀이 Event Streaming을 도입하게 된 배경과 과정, 그리고 앞으로의 활용 방안에 대해 설명합니다. 기존의 동기식 API 통신 방식이 가진 한계를 극복하고, MSA 환경에서 서비스 간의 결합도를 낮추며 비동기적인 데이터 처리를 가능하게 하기 위해 Event Streaming 도입을 결정했습니다. 특히 Kafka를 중심으로 시스템을 구축하며, 데이터베이스와의 연동 및 다양한 서비스에서 발생하는 이벤트를 효과적으로 관리하는 방법을 다룹니다. Event Streaming을 통해 실시간 데이터 처리, 이벤트 기반 아키텍처 구축, 그리고 향후 추천 시스템 등 다양한 분야로의 확장 가능성을 제시하며 기술적 인사이트를 공유합니다.이벤트 스트리밍KafkaMSA29CM·2024년 8월 21일
Backend(youtube)도메인 정의부터 시작하는 검색 개발29CM TEAM의 유튜브 채널에 올라온 '도메인 정의부터 시작하는 검색 개발' 영상 내용을 요약한 글입니다. 이 글은 검색 시스템 개발의 시작점을 도메인 정의에서 찾고, 이를 기반으로 한 리팩토링 과정과 속성 패싯 자동 추출 기법을 다룹니다. 특히, 복잡한 도메인 모델을 명확하게 정의하고, 이를 실제 검색 기능 구현에 어떻게 적용하는지에 대한 구체적인 방법론을 제시합니다. 검색 성능 향상과 유지보수성 증대를 위한 실질적인 접근 방식을 공유하며, 기술적인 깊이와 함께 실제 서비스 개발 경험을 엿볼 수 있는 내용을 담고 있습니다.검색 개발도메인 정의리팩토링29CM·2024년 8월 12일
EtcEngineering이 QA에게 미치는 영향력본 글은 무신사(29CM) QA Engineer 홍해진 님이 작성한 회고록입니다. QA 엔지니어로서의 경험을 되돌아보며, 개발(Engineering) 문화가 QA 직무에 미치는 영향에 대해 이야기합니다. 특히, 개발팀과의 협업 방식, 코드 리뷰 참여, 테스트 자동화 도입 등 엔지니어링 관점에서의 접근이 QA의 전문성과 효율성을 어떻게 향상시킬 수 있는지에 대한 통찰을 공유합니다. 이를 통해 QA 엔지니어는 단순히 버그를 찾는 역할을 넘어, 제품 품질 향상에 적극적으로 기여하는 전략적 파트너로 성장할 수 있음을 강조합니다.QAEngineering무신사29CM·2024년 7월 30일
EtcFail률 감소 목표 집요하게 달성하기 — Android UI 자동화이 글은 Android UI 자동화 테스트에서 발생하는 Fail률을 감소시키기 위한 집요한 노력과 그 과정에서 얻은 경험을 공유하는 회고 글입니다. 구체적인 기술이나 방법론보다는, 문제 해결 과정에서의 시행착오, 팀원들과의 협업, 그리고 목표 달성을 위한 끈기 있는 접근 방식에 초점을 맞추고 있습니다. 자동화 테스트의 안정성을 높이고자 하는 개발자들에게 문제 해결에 대한 통찰과 동기 부여를 제공할 수 있습니다. 다만, 본문 내용이 'Apologies, but something went wrong on our end.' 메시지로 인해 제공되지 않아 상세한 기술적 내용은 파악하기 어렵습니다. 따라서 카테고리는 'else'로 분류되며, 태그는 글의 제목과 설명에서 유추할 수 있는 내용을 기반으로 선정되었습니다.AndroidUI 자동화Fail률29CM·2024년 7월 30일
DevOps29CM QA팀은 어떻게 테스트 자동화 지표를 활용하여 신뢰성을 확보할 수 있었을까?29CM QA팀은 앱 테스트 자동화의 신뢰성 하락 문제를 해결하기 위해 테스트 자동화 지표를 활용하는 방안을 모색했습니다. 앱은 UI/UX 변동이 잦아 테스트 자동화 실패율이 높았고, 이는 테스트 결과의 신뢰성을 떨어뜨리는 주요 원인이었습니다. 이 문제를 해결하기 위해 2분기 OKR로 설정하고, Postgresql과 Grafana를 활용하여 데이터를 시각화하고 지표를 추적하는 시스템을 구축했습니다. 이를 통해 테스트 자동화의 정확도를 높이고 전반적인 서비스 신뢰성을 확보하는 데 기여했습니다. 이 글은 QA팀이 실제 데이터를 기반으로 문제점을 진단하고 개선해나가는 과정을 공유합니다.테스트 자동화QA지표29CM·2024년 7월 30일
Backend출고준수율 개발기: 정의부터 구현 및 성능 개선까지29CM 주문배송팀의 백엔드 엔지니어가 출고준수율 지표를 개발하고 성능을 개선한 경험을 공유하는 글입니다. 출고준수율은 출고 기한 내 출고 완료 비율을 나타내는 지표로, 파트너가 출고 일정을 관리하는 데 도움을 줍니다. 개발 초기에는 이해관계자 간의 복잡한 계산 정책 소통 문제로 어려움을 겪었으나, 이를 해결하기 위한 노력을 기울였습니다. 또한, 대량의 데이터를 효율적으로 처리하기 위해 데이터베이스 쿼리 최적화 및 캐싱 전략을 도입하여 성능을 개선했습니다. 이 글은 출고준수율이라는 구체적인 비즈니스 지표를 어떻게 정의하고, 기술적으로 구현하며, 실제 운영 환경에서 성능 문제를 해결해 나가는지에 대한 실질적인 개발 과정을 담고 있습니다.출고준수율주문배송데이터베이스29CM·2024년 7월 17일
Etc(youtube)29CM 행성에 떨어진 UX 리서처이 글은 29CM의 UX 리서처가 하는 일과 UX 리서치의 필요성에 대해 설명하는 유튜브 발표 내용을 소개합니다. 무신사테크 유튜브 채널은 무신사와 29CM 서비스를 만들어가는 과정을 공유하며, 이번 발표는 UX 리서처의 역할과 그 중요성을 강조합니다. UX 리서치가 왜 필요한지에 대한 질문에 답하며, 사용자 경험을 개선하고 더 나은 서비스를 만들기 위한 UX 리서치의 가치를 전달합니다. 기술적인 내용보다는 조직 문화와 직무 소개에 가까운 내용으로, UX 리서처의 관점에서 서비스 개발 과정을 조명합니다.UX 리서치29CM무신사테크29CM·2024년 6월 25일
Etc우리만의 일하는 이야기 : 설계부터 개발까지29CM 배송경험팀 백엔드 개발자가 1년간 팀에서 경험한 설계부터 개발까지의 일하는 방식을 공유하는 글입니다. 팀원들과의 협업을 통해 어떻게 아이디어를 구체화하고, 설계하며, 개발을 진행하는지에 대한 과정을 상세히 설명합니다. 특히, 개발 초기 단계에서의 논의와 의사결정 과정, 그리고 이를 바탕으로 실제 코드를 작성하고 시스템을 구축해나가는 경험을 생생하게 전달합니다. 이 글은 기술적인 내용보다는 팀의 문화와 개발 프로세스에 초점을 맞춰, 독자들에게 긍정적인 개발 문화를 구축하는 데 대한 인사이트를 제공하고자 합니다.29CM백엔드 개발협업29CM·2024년 6월 13일
Frontend잘 쓰이는 디자인 시스템을 위한 여정29CM의 프론트엔드 개발팀은 MFA(Micro Frontend Architecture) 구조에서 발생하는 UI 파편화 문제를 해결하기 위해 디자인 시스템 'Ruler'를 개발했습니다. 여러 목적 조직이 독립적으로 제품을 개발하는 환경에서 UI 일관성을 유지하고 개발 생산성을 높이는 것이 목표였습니다. 디자인 시스템 도입 전, 29CM 앱에서는 버튼 등 UI 요소들이 사용자에게 다양한 형태로 노출되어 혼란을 야기하고, 내부적으로는 의사소통 및 개발 비용 증가로 생산성 저하를 초래하는 문제가 있었습니다. 이러한 문제를 해결하고자 Ruler 디자인 시스템을 통해 일관된 UI 경험을 제공하고 개발 효율성을 증대시키고자 합니다.디자인 시스템UI 파편화MFA29CM·2024년 6월 10일
Etc데이터 엔지니어의 온보딩 이야기(feat. 29CM은 처음이라)이 글은 29CM 데이터 플랫폼 팀에 새로 합류한 데이터 엔지니어의 온보딩 경험을 공유합니다. 저자는 새로운 조직에 적응하는 첫 단계로 문화 이해를 강조하며, 슬랙 대화와 위키 문서 관찰, 문서화 습관, 그리고 팀 스터디 및 활발한 정보 공유 문화를 통해 팀에 녹아드는 과정을 설명합니다. 두 번째 단계에서는 데이터 엔지니어로서 넓은 기술 스케일에 적응하는 어려움과 매력을 언급하며, 인프라, 데이터 파이프라인, CI/CD, 데이터 퀄리티 등 다양한 영역을 다루게 됨을 이야기합니다. 특히 주니어 개발자로서 많은 기술을 익혀야 하는 도전을 언급하며, 온보딩 과정에서의 문화 적응과 기술 학습의 중요성을 강조합니다.온보딩데이터 엔지니어조직 문화29CM·2024년 4월 24일
Backend정교한 노출 이벤트 적재를 위한 여정 Part 1 — XML 탐지하기29CM Android 팀은 클릭율 및 전환율 분석을 위해 노출 이벤트를 정교하게 적재하는 과정을 개선하고 있습니다. 기존에는 스쿼드별로 이벤트 적재 기준이 통일되지 않아 혼선이 있었으나, 데이터팀 주도로 기준을 정의하고 실시간 데이터 파이프라인을 구축하면서 개선의 기회를 맞았습니다. 본 글(Part 1)에서는 XML 기반의 UI에서 노출 이벤트를 탐지하는 과정을 다룹니다. 이벤트 적재 파이프라인은 View 탐지, 데이터 연산, 최종 적재의 3단계로 설계되었으며, 특히 View 탐지 단계에서 정의된 threshold에 따라 데이터를 반환하는 방식에 초점을 맞춥니다. 향후 Compose 탐지 및 이벤트 중복/예외 로직 제어에 대한 내용이 이어질 예정입니다.이벤트 적재데이터 파이프라인Android29CM·2024년 4월 16일
Etc함께 성장하는 팀 운영 시스템 구축하기29CM 프로덕트디자인팀은 목적 조직과 기능 조직이 협업하는 프로덕트 조직 체계 안에서 팀원 모두가 함께 성장할 수 있는 운영 시스템 구축 과정을 소개합니다. 기존 위클리 미팅 방식이 팀원 성장에 실질적인 도움이 되지 못한다는 문제점을 인식하고, 소수에게 의견이 집중되거나 피드백 수준이 편차를 보이는 등의 문제를 해결하고자 했습니다. 이를 위해 모든 구성원에게 동등한 피드백 기회를 제공하고, 업무 이해도를 높여 높은 수준의 피드백을 가능하게 하며, 제품 전반에 대한 논의를 활성화하는 것을 목표로 삼았습니다. 구체적인 해결책으로, 팀원들이 주간 업무를 최대 두 가지 주제로 요약하여 작성해 오는 방식을 도입하여 효율적인 정보 공유와 생산적인 미팅을 도모했습니다.팀 운영프로덕트 조직위클리 미팅29CM·2024년 4월 16일
Etc임시 테스팅(Ad-hoc Testing)과 탐색적 테스팅(Exploratory testing)을 활용한 테스트 전략본 글은 소프트웨어 개발 과정에서 테스트 전략 수립의 중요성을 강조하며, 특히 임시 테스팅(Ad-hoc Testing)과 탐색적 테스팅(Exploratory Testing)을 효과적으로 활용하는 방안을 제시합니다. 테스트 계획 수립 단계에서부터 이러한 유연한 테스팅 기법들을 통합함으로써, 예상치 못한 결함을 발견하고 테스트 커버리지를 넓힐 수 있음을 설명합니다. 또한, 두 테스팅 기법의 특징과 장점을 비교 분석하고, 실제 프로젝트에 적용할 때 고려해야 할 사항들을 공유합니다. 이를 통해 개발팀은 보다 효율적이고 체계적인 테스트 프로세스를 구축하여 소프트웨어 품질을 향상시킬 수 있습니다.테스트 전략임시 테스팅탐색적 테스팅29CM·2024년 4월 3일