Selenium Playwright 비교: 3개월 마이그레이션 회고와 실측 데이터
Selenium 스위트가 CI에서 평균 18분에 주 2~3회 flaky 실패로 PR을 막던 상태에서 Playwright로 옮긴 3개월의 기록. 의사결정 과정과 중간에 부순 것, 결국 남겨둔 70개까지 시간 순서로 풀었다.
Selenium 스위트가 CI에서 평균 18분에 주 2~3회 flaky 실패로 PR을 막던 상태에서 Playwright로 옮긴 3개월의 기록. 의사결정 과정과 중간에 부순 것, 결국 남겨둔 70개까지 시간 순서로 풀었다.
ARG와 ENV를 같은 것처럼 쓰다가 docker history에 시크릿 30개가 평문으로 털렸다. 3개월 마이그레이션을 거치며 두 변수의 차이와 안전한 분리 패턴을 다시 잡은 회고다.
AWS S3 정적 웹사이트 배포는 버킷 켜는 것으로 끝나지 않는다. CloudFront OAC, us-east-1 인증서, 캐시 무효화 세 지점에서 거의 다 막힌다. 그 지점을 중심으로 풀어본다.
docker build에서 한 줄짜리 문서 수정만 해도 매번 npm install이 다시 도는 이유는 레이어 캐시가 깨졌기 때문이다. 명령어 순서 한 번 바꾸고 .dockerignore 채우는 것만으로 빌드 시간을 1/5로 줄일 수 있다.
동일한 Next.js 앱을 Vercel과 Netlify에 각각 배포해 빌드 시간, 엣지 함수 응답, 무료 플랜 한도를 비교한다. 한국 사용자 입장에서 어떤 워크로드에 어디가 더 잘 맞는지 살핀다.
docker compose 서버 배포는 작다고 무시할 게 아니다. Nginx 리버스 프록시, 환경변수 분리, 무중단 배포까지 작은 팀에 필요한 모든 게 한 파일 안에 들어간다.
Docker multi-stage build는 빌드 환경과 런타임 환경을 분리해 최종 이미지에서 불필요한 도구를 제거하는 표준 패턴이다. 측정값과 함께 실제 적용 방법을 본다.
GitHub Actions 캐시 최적화는 CI 비용을 가장 빠르게 깎는 수단이다. actions/cache 동작 원리부터 Docker layer 캐싱, 키 설계와 10GB 한도 운영까지 신입한테 설명하듯 풀어본다.
정부 보안 기관도 GitHub에 클라우드 키를 올렸다. 5명 팀이 3개월간 secrets 관리 체계를 만들면서 마주친 시행착오와 우회 사건, 6개월 운영 결과를 시간순으로 정리한다.
GitHub Actions의 GITHUB_TOKEN 기본 권한은 의외로 넓다. write-all로 시작해 줄이라는 조언은 사실상 줄이는 시점이 안 온다. 워크플로우와 잡 레벨 권한을 어떻게 나눠야 안전한지 실전 사례로 정리한다.
Fargate는 비싸다는 말이 정설처럼 돈다. ephemeral runner 구조에서는 그 통념이 깨지는 지점이 있다. ECS Fargate 기반 self-hosted runner 설정과 실제 비용을 본다.
GitHub Actions에서 Docker 빌드 캐시 CI를 손봤더니 12분 걸리던 워크플로가 5분 30초로 떨어졌다. type=gha mode=max와 scope 분리만으로 절반 이하가 됐다.