← 개발 로그 목록

website: main → dev 동기화 (모바일 타임라인 핫픽스 역병합)

/ 3분 분량 / 개발 로그

브랜치가 어긋난 걸 발견하고 main에서 dev로 다시 맞춘 PR이다.

평소 dev에서 작업하고 검증이 끝나면 dev → main으로 승격하는 흐름을 쓰고 있었다. 그런데 커밋 로그를 훑다가 PR #440(fix/plan-mobile-timeline)이 이 흐름을 타지 않고 main에 바로 머지된 걸 발견했다. 8월 7일에 들어간 걸로 보아 모바일 타임라인이 깨져 보이는 문제를 급하게 고치면서 dev를 거치지 않고 main에 바로 올린 것으로 보였다. 문제는 그 다음이었다. dev는 이 핫픽스를 받지 못한 상태로 남아있었고, 이후 dev → main 승격 PR들(#444, #464, #467)이 계속 쌓이면서도 이 간극은 그대로였다. 언젠가 dev 쪽에서 Plan.tsx를 다시 건드릴 일이 생기면 이 핫픽스가 조용히 덮어써질 수 있는 상황이었다.

그래서 main → dev 방향으로 동기화 PR을 새로 만들었다. dev가 main의 상위 집합이라 별도 충돌 없이 fast-forward로 처리될 거라 예상했고, 실제로 변경된 파일도 Plan.tsx 하나뿐이라 테스트 계획도 fast-forward 확인 정도로 충분했다.

역병합된 내용 자체는 PR #440에서 이미 끝난 작업이다. 모바일에서 연간 활동 계획을 2열 그리드로 눌러 표시하다 보니 타임라인 연결선이 중간에 끊겨 대롱대롱 떠 보이는 문제가 있었는데, 6월을 기준으로 상/하반기를 나눠 각각 세로 타임라인으로 만들고 이 둘을 좌우로 배치하는 방식으로 바꿔놓은 상태였다.

- <div className="relative mt-4 flex w-full max-w-[1417px] flex-col gap-14 md:mt-8 md:gap-24">
+ <div className="relative mt-4 grid w-full max-w-[1417px] grid-cols-2 gap-5 md:mt-8 md:flex md:flex-col md:gap-24">
    <Timeline months={firstHalf} side="top" />
    <Timeline months={secondHalf} side="bottom" />
  </div>

각 월 셀은 gap 대신 pb로 여백을 주는 방식으로 바꿔서 border-l 하나로 선이 끊기지 않고 이어지게 했고, 하이라이트 배경도 모바일에서 옆 칸으로 넘치던 걸 폭을 줄여 잡았다. 색상은 기존 accent 토큰을 그대로 썼다. 이번 PR에서는 이 코드를 새로 짠 게 아니라 dev에 그대로 가져오는 작업만 했다.

브랜치 두 개를 운영하다 보면 이런 식으로 핫픽스가 한쪽에만 들어가고 반대편은 놓치는 경우가 생긴다. 이번엔 다행히 diff가 파일 하나, fast-forward로 깔끔하게 끝났지만, 다음엔 급한 수정이라도 가능하면 dev를 거쳐서 main으로 올리는 쪽으로 정리해두는 게 나을 것 같다. 부득이하게 main에 바로 올려야 한다면 이번처럼 곧바로 역병합 PR을 만들어 두 브랜치를 맞춰두는 걸 습관으로 삼아야겠다.