E2E 테스트를 CI에 안정적으로 붙이기: Playwright 병렬 실행
E2E 테스트는 로컬에서는 잘 도는데 CI에 붙이는 순간 무너지는 경우가 유독 많다. 어제까지 초록불이던 파이프라인이 오늘은 같은 코드로 빨간불이 뜨고, 재실행하면 통과한다. 이 “가끔 실패(flaky)”가 쌓이면…
E2E 테스트는 로컬에서는 잘 도는데 CI에 붙이는 순간 무너지는 경우가 유독 많다. 어제까지 초록불이던 파이프라인이 오늘은 같은 코드로 빨간불이 뜨고, 재실행하면 통과한다. 이 “가끔 실패(flaky)”가 쌓이면…
CI 파이프라인이 클라우드에 배포하려면 인증이 필요하다. 가장 흔한 방식은 콘솔에서 장기 액세스 키를 발급받아 CI 시크릿 저장소에 넣어두는 것이다. 처음엔 간단하지만, 시간이 지나면 “누가 언제 발급했는지…
쿠버네티스의 기본 Deployment는 롤링 업데이트를 제공하지만, 실무에서 배포를 두려워하게 만드는 문제는 여기서 시작된다. 롤링 업데이트는 새 버전 파드를 순차 교체할 뿐 “새 버전이 정말 건강한가”를 판단하지…
배포 자동화를 도입하면 코드가 병합되는 순간부터 프로덕션까지 사람 손을 거치지 않고 흘러갑니다. 대부분의 변경에는 이것이 바람직하지만, 결제 로직이나 데이터 마이그레이션처럼 실수의 대가가 큰 배포에는 중간에 멈춰…
몇 년 전만 해도 도커 이미지는 사실상 amd64(x86_64) 하나면 충분했다. 하지만 이제 개발자 노트북은 arm64로 바뀌었고 클라우드에서도 arm64 인스턴스가 같은 성능을 더 싼 값에 제공하면서, 로컬에서…
배포할 때마다 누군가 손으로 버전을 올리고, 체인지로그를 정리하고, 태그를 붙이고, 릴리스 노트를 작성하는 팀이 여전히 많다. 이 과정은 지루할 뿐 아니라 실수가 잦다. 어떤 릴리스는 버전이…
CI 파이프라인이 느려지는 과정은 대개 조용하다. 처음엔 3분이던 빌드가 어느 날 8분이 되고, 머지 큐가 밀리는 시점이 되어서야 문제가 드러난다. 이때 흔히 저지르는 실수는 감으로 최적화하는…
컨테이너 이미지를 레지스트리에 올리는 순간, 우리는 암묵적으로 “이 태그로 pull 한 이미지가 내가 빌드한 그 이미지일 것이다”라고 믿습니다. 하지만 태그는 언제든 다른 다이제스트를 가리키도록 덮어쓸 수…
기능 브랜치에서 UI를 고쳤는데 리뷰어가 그 변화를 확인하려고 브랜치를 체크아웃해 로컬에 띄워봐야 한다면 리뷰의 마찰이 크게 늘어난다. 코드 diff만 보고 “버튼 정렬이 실제로 어떻게 보이는지”, “이…
쿠버네티스에 애플리케이션을 배포하다 보면 매니페스트가 순식간에 수십 개로 불어난다. Deployment, Service, ConfigMap, Ingress, HPA가 환경마다 조금씩 다르고, 이미지 태그 하나 바꾸려고 여러 파일을 손대다 보면 “지금…