서비스 운영

로컬 화면이 운영과 달랐던 날: QA 기준 소스를 하나로 맞추기

BABY DAY 수정 사항을 로컬에서 확인하던 중 이상한 일이 있었다. 운영에는 이미 있는 기능이 로컬에서는 보이지 않았고, 관리자 페이지도 이전 버전처럼 보였다.

개발 서버 주소는 정상적으로 열렸다. 그래서 처음에는 새 작업이 반영되지 않은 문제라고 생각했다.

하지만 확인해야 할 것은 기능 코드보다 먼저 그 포트가 어떤 소스를 실행하고 있는가였다.

포트가 열려 있다는 사실은 최신 빌드라는 뜻이 아니다

여러 작업 디렉터리와 개발 서버를 함께 쓰면 같은 프로젝트 이름을 가진 프로세스가 서로 다른 소스를 보고 있을 수 있다.

예를 들어 새 브랜치에서 파일을 수정했어도 브라우저가 오래 전에 띄운 다른 디렉터리의 dev server를 보고 있다면 화면은 바뀌지 않는다.

이 상황에서 화면만 보고 다시 코드를 수정하면 이미 맞는 코드를 또 고치게 된다.

운영을 기준으로 유지해야 할 부분을 먼저 적었다

운영에 이미 반영되어 있고 유지해야 하는 헤더, 기록 카드, 관리자 기능 같은 요소를 기준선으로 잡았다.

새 작업은 그 기준선 위에 추가되어야 한다. 로컬이 운영보다 오래된 상태라면 새 기능만 cherry-pick하는 식으로 해결하지 않고, 먼저 로컬 소스 자체가 올바른 기준을 갖고 있는지 확인한다.

QA 전에 확인할 항목도 더 구체적으로 만들었다.

  • 현재 실행 중인 프로세스의 작업 디렉터리
  • 브랜치와 HEAD
  • 로컬 서버를 시작한 명령
  • 운영 기준 기능이 로컬에도 존재하는지
  • 새 수정 사항이 그 위에 추가됐는지

“코드 완료”와 “내가 확인 가능한 화면”을 분리했다

AI가 파일을 수정하고 테스트를 통과했다고 해도 사용자가 보는 URL에서 그 코드가 실행되지 않으면 QA는 시작할 수 없다.

그래서 완료 보고에는 실제 확인 가능한 주소와 실행 상태까지 포함하는 편이 낫다.

이 문제를 겪은 뒤 로컬 QA의 첫 질문은 기능이 동작하느냐가 아니라 다음으로 바뀌었다.

지금 이 화면은 정확히 어느 소스에서 만들어졌는가?

개발 자동화가 많아질수록 포트 번호보다 소스, 브랜치, 프로세스의 연결을 명확하게 관리해야 했다.

How this note was made

이 글은 실제 개발 기록을 바탕으로 작성했습니다

일반적인 개발 팁을 재구성한 글이 아니라 Yeomflow의 실제 제품 개발, 배포, 장애 대응, 자동화 과정에서 나온 문제와 결정을 정리합니다. 이후 구현이나 운영 기준이 바뀌면 기존 글도 보강합니다.

작성 원칙과 프로젝트 소개 보기 →