logo
logo
협업툴
Flow
마드라스체크에서 만든 업무관리 협업툴
사용 기업
기술 블로그 글
숨고
모바일 앱 매주 배포하기: 규칙 정하기
Photo by NASA on Unsplash안녕하세요. 숨고 모바일 챕터에서 리액트 네이티브 앱 개발을 하는 Jimmy입니다.숨고에서는 매주 수요일마다 정기적으로 제품을 배포하고 있는데요. 모바일 앱, 웹, 서버 모두 예외는 없습니다. 각기 다른 목표를 가진 여러 스쿼드에서 작업한 일감들이 병합된 뒤 함께 배포되고 있습니다.이 글에서는 숨고의 배포 일정과 모바일 챕터에서 매주 모바일 앱을 배포하기 위해 정한 규칙들에 대해 소개합니다.배포 일정먼저 배포 일정입니다. 매주 수요일 배포하기 위해 아래 단계들을 순서대로 거치고 있습니다.스쿼드별로 작업한 코드가 병합되어 배포됩니다배포 준비: 매주 금요일까지 스쿼드별로 다음 주 수요일에 배포할 내용이 있다면 자체적으로 QA를 진행하고 각 스쿼드 작업분을 병합(모든 스쿼드가 매주 배포하는건 아닙니다)통합 QA: 월, 화요일 이틀간 병합한 상태를 기준으로 QA를 진행배포: 통합 QA에서 배포 승인받은 후 수요일에 배포각 단계의 기간을 달력에 나타낸다면 이런 양상입니다Git 브랜칭 모델매주 여러 스쿼드에서 작업한 내용을 일관되게 병합하고 배포하기 위해서는 규칙이 필요했고, 이 규칙이 될 Git 브랜칭 모델은 Git flow를 기반으로 조금 변형한 것을 선택했습니다.Github flow 아닌 Git flow를 기반으로 하는 이유는 모바일 앱 특성상 여러 버전을 지원해야 하는데 이를 더 잘 표현하기 때문이었고, 변형이 필요했던 이유는 우리의 요구사항을 Git flow가 커버하지 못하기 때문이었습니다. 요구사항은 다음 두 가지였습니다.매주 정해진 요일에 배포할 수 있어야 할 것하나 이상의 스쿼드에서 작업한 내용이 배포하지 못하게 될 경우에도 나머지 스쿼드에서 작업한 내용은 계획대로 배포되어야 할 것Git flow는 롤백하는 경우를 지원하지 않기 때문에 두 번째 요구사항을 해결하기 어려웠습니다.특정 스쿼드의 작업내용을 배포할 수 없게 되는 경우통합 QA 단계에서 특정 스쿼드의 작업내용을 배포할 수 없게 되는 경우는 발견된 버그가 빠르게 수정될 수 없거나 스쿼드 내부사정으로 배포를 연기해야 하는 등의 상황에 발생합니다. 나머지 스쿼드의 작업이 계획대로 배포되려면 이미 병합된 상태에서 해당 스쿼드의 변경 점만 롤백해야 합니다. 하지만 Git flow는 이런 상황을 지원하지 않고 있습니다.통합 QA 단계에서 특정 스쿼드의 작업을 배포할 수 없게 된 경우우리는 나머지 스쿼드의 작업을 계획대로 배포할 수 있도록 해야 했고, 이를 브랜칭 모델을 통해 해결하고 싶었습니다. 그래서 Git flow의 develop 브랜치를 없애고, 스쿼드별 develop 브랜치를 사용하도록 했습니다. (네이밍 규칙은 squad/{스쿼드명}입니다) 이때 배포과정에서 일어나는 브랜칭은 아래와 같습니다.통합 QA 단계에서 문제가 발생하지 않았을 경우통합 QA 단계에서 배포 불가능한 스쿼드 작업이 발생한 경우스쿼드별로 다음 배포에 포함할 내용을 스쿼드별 develop 브랜치에 병합다음 배포를 준비하기 위해 메인 release 브랜치와 스쿼드별 r
flow
매스프레소
After the Frontend framework war, here is the State management one…
I have been hired at Mathpresso as the lead frontend developer a year and a half ago.I can handle things with vanilla Javascript but I am mostly a React developer.I hopped on the React hype train few years back and havent really switched framework since then.When I joined Mathpresso, there were already few internal tools developed in Angular and Vue.js but none in React.I tried Angular1 and 2 way back but havent really checked it out since then (boooo!).https://blog.hyperiondev.com/In one phrase, Angular is a very built-in approach using a lot of new HTML attributes to handle things like conditions, loops etc, React is a very programmatical way to develop web UI/UX using JS(X) as much as possible and Vue.js is the one in the middle trying to get the best of both worlds.Dont get me wrong, I am not saying that one is better than another. It is obviously up to you to decide which one to use depending on your needs (learning curve, performance, longevity, ).So since I joined, most of the web based projects are powered by React. From web views to bigger full on website where I sometimes had to use Redux, the state management library, also made by Facebook to go with React.And as Javascript is an untyped language (your variable is just a variable and can be an integer, a string, an array or an object without you explicitly declaring it as such), Facebook (again?) implemented Flow as their version of type checking.Angular uses Typescript, React can use it too but Facebook created Fl
flow
mobx
reactjs
redux
연관 기술 스택
techstack-logo
Jandi
Copyright © 2025. Codenary All Rights Reserved.