소스 인수 빌드 확인하기 - 재현 절차와 인수 목록
“소스만 인수 빌드는 실패”
인수 회의실 테이블에 USB 하나가 올라옵니다. 폴더를 열면 소스는 2만 파일이 넘는데, 발주사 PC에서는 빌드가 한 번도 성공하지 않죠. 수행사 노트북에만 있는 로컬 설정, 비공개 저장소, 손으로 넣은 라이브러리가 목록에서 빠졌기 때문입니다. 소스를 받았다는 사인만 있으면 검수는 닫히고, 다음 해 장애 수정은 그 폴더로 시작하지 못하죠. 빌드 로그가 없으면 받은 폴더는 수정 때 다시 견적이 돼요. 빈 PC 한 대에서 같은 날 재현되지 않으면 인수가 아닙니다. 글은 깨끗한 환경에서 빌드를 다시 만드는 절차와, 인수 목록에 넣을 여섯 칸을 적습니다. 안정화 전에 소스 인수를 끝내야 하는 일정이라면 사인 전에 읽어 보시면 됩니다.
| 칸 | 확인 방법 | 실패 시 |
|---|---|---|
| 저장소 | 발주 계정으로 읽기 | 수행사 망에서만 보임 |
| 태그 | 문서의 이름과 서버의 이름 | 다음 주 커밋과 섞임 |
| 명령 | 문서 문장을 그대로 실행 | 구전 옵션이 빠져 실패 |
| 설정 샘플 | 비밀 값이 없는지 | 비밀번호가 소스에 남음 |
| 의존성 | 외부 망 없이 받아지는지 | 타임아웃으로 빌드 중단 |
| 성공 로그 | 재현 PC, 시각, 성공 문장 | 파일 수령과 인수가 섞임 |
파일을 받았는데 왜 인수라고 보기 어렵나?
인수의 기준은 파일 개수가 아닙니다. 발주 쪽 환경에서 같은 빌드가 한 번 성공하는 것입니다.
묶음을 열면 소스 트리, 화면 캡처, 회의록이 있습니다. 그 상태로 인수증에 사인하면 산출물 목록의 체크는 채워지죠.
다음 분기 장애 수정 때 그 트리를 빌드하면 설정 파일 3개가 없고, 사설 라이브러리 저장소 주소는 수행사 망을 가리킵니다. 저장소가 닫혀 있으면 빌드는 첫 의존성에서 멈춥니다.
멈춘 빌드를 고치는 데 중급 2명이 5일을 쓰는 현장이 있어요. 5일은 안정화 잔여에서 빠지거나, 빠질 수 없으면 다음 해 유지보수 견적이 됩니다.
PM이 인수 회의에서 볼 증거는 폴더 용량이 아니라 빌드 로그의 성공 한 줄입니다. 성공 시각, 수행한 PC, 사용한 명령.
세 가지가 없으면 그 사인은 파일 수령이지 인수 완료가 아니에요.
깨끗한 환경이란 어떤 PC인가?
수행사 노트북이 아닙니다. 새로 받은 계정과 문서에 적힌 도구만 설치된 PC입니다.
재현은 매일 개발하던 PC에서 하면 항상 성공합니다. 그 PC에는 작년에 수동으로 넣은 인증서와 환경 변수가 남아 있죠.
재현용은 그 흔적이 없는 쪽이어야 합니다. 운영체제 설치 직후이거나, 빌드용으로 비워 둔 가상 머신 1대.
설치할 도구는 인수 문서의 버전과 같아야 해요. 문서가 자바 17인데 PC가 11이면 실패는 정상입니다.
실패를 숨기려고 버전을 슬쩍 바꾸지 마세요. 바꾼 버전은 다음 사람 PC에서 다시 실패합니다.
QA vs QC 점검에 빌드 재현을 넣으면, 시험 케이스 통과와 별개로 산출물 재생산이 닫힙니다. 재생산이 안 되는 코드는 시험 결과가 있어도 수정 가능성이 낮아요.
수정 가능성이 낮은 인수는 안정화 이후 장애에 대응하지 못합니다.
인수 목록의 여섯 칸은 무엇인가?
저장소, 브랜치, 빌드 명령, 설정 샘플, 의존성 위치, 성공 로그. 하나라도 빈 칸이면 재현이 끊깁니다.
여섯 칸을 표로 고정하면 회의가 짧아집니다. 첫째, 저장소 주소와 읽기 권한을 받은 계정.
둘째, 인수 시점의 브랜치 또는 태그 이름. 셋째, 빌드와 실행에 쓰는 명령.
넷째, 비밀번호를 뺀 설정 샘플. 다섯째, 라이브러리를 받는 위치와 막혔을 때의 대체.
여섯째, 재현 PC에서 받은 성공 로그. 태그가 없으면 다음 주에 어느 커밋을 받았는지 말이 갈라져요.
설정 샘플에 운영 비밀번호가 들어 있으면 그 파일은 소스 인수가 아니라 비밀 반출입니다. 비밀은 별도 보관으로 빼고, 샘플은 값의 이름만 남기세요.
WBS에 소스 인수를 오픈 다음 날 한 칸으로 두면 이 여섯 칸을 채울 시간이 없습니다. 오픈 14일 전에 초안, 7일 전에 1차 재현, 인수 당일 최종 로그만 확인하는 쪽이 현실적입니다.
외부 라이브러리 저장소가 막히면 어떻게 하나?
당일 인터넷에 의존하지 않는 묶음을 함께 넘깁니다. 주소만 적힌 목록은 망이 다르면 빈 목록입니다.
공공 발주 망에서는 외부 패키지 저장소가 막힌 경우가 많습니다. 수행사 사무실에서는 되던 명령이 발주 PC에서 타임아웃 나죠.
타임아웃을 도구 결함으로 적으면 해결이 안 됩니다. 인수 묶음에 그 시점의 라이브러리 파일을 함께 넣거나, 발주가 허용한 내부 저장소에 미리 올립니다.
올리는 작업은 재현 7일 전에 끝내세요. 당일 업로드는 권한 신청 2일이 붙어 실패합니다.
라이선스 파일은 소스와 같은 폴더에 넣지 않습니다. 좌석 수와 만료일이 인수 조건이면 그 숫자만 별도 칸에 적어요.
만료가 인수 후 30일 이내면 안정화 계획 기간 중에 빌드가 다시 멈춥니다. 멈춘 뒤에 라이선스를 찾으면 수정 일정이 라이선스 구매 일정으로 바뀝니다.
사인 전에 당일 확인할 것은 무엇인가?
빈 PC에서 명령 한 번, 로그의 성공 문장, 태그 이름 일치. 이 세 가지가 아니면 사인을 미루는 편이 낫습니다.
인수 회의 90분 중 60분을 목차 설명에 쓰면 빌드를 볼 시간이 없습니다. 순서를 뒤집으세요.
처음 20분에 재현 PC에서 문서의 명령을 그대로 실행합니다. 성공 문장이 나오면 그때 목록의 나머지 칸을 봅니다.
실패하면 회의는 설명회가 아니라 미비 목록 회의예요. 미비 항목마다 담당과 재확인 날짜를 적고, 사인란은 비웁니다.
빈 사인이 불편해서 조건부 사인을 남긴다면, 조건의 기한을 영업일 5일처럼 숫자로 적으세요. 기한 없는 조건은 안정화가 끝날 때까지 열려 있습니다.
열린 인수는 완료보고서의 첨부로는 부족해요. 다음 사업의 수행사는 그 조건부 폴더를 받고 같은 실패를 반복합니다.
반복을 끊는 증거는 성공 로그 1장입니다.
자주 묻는 것
- 빌드 없이 소스만 보관하면 계약 산출물은 충족되나요?
- 계약 문장이 파일 제출이면 형식은 맞을 수 있습니다. 수정이 목표면 재현 성공이 없는 제출은 다음 장애 때 다시 비용이 됩니다. 특수조건에 재현 1회를 넣어 두는 편이 낫습니다.
- 수행사 PC를 회의실에 가져와 보여 주면 되나요?
- 그 PC의 성공은 환경이 딸려 온 성공입니다. 발주가 지정한 빈 환경에서 한 번 더 성공해야 인수 증거가 됩니다.
- 비밀번호가 들어 있는 설정 파일은 어떻게 넘기나요?
- 샘플에서는 값을 빼고 이름만 남깁니다. 실제 비밀은 소스 저장소 밖에 두고 보관 담당과 만료일을 따로 적으세요.
- 재현을 오픈 다음 주로 미루면 어떤 문제가 생기나요?
- 오픈 주에는 장애 대응이 우선이라 재현이 계속 밀립니다. 밀린 재현은 인수 사인이 이미 끝난 뒤라 미비를 꺼내기 어렵습니다. 오픈 7일 전 1차 재현이 안전합니다.
관련 용어
출처
다른 가이드