
Jenkins 파이프라인 정의의 계층: UI 스크립트에서 Shared Library까지
Jenkins Item을 만들면서 Pipeline script 박스에 Groovy를 붙여넣은 적이 있다면, 그 스크립트가 지금 어디에 있는지 한 번 생각해 보아야 합니다. Jenkins 컨테이너 안의 설정 파일 안에 있습니다. git으로 관리되지 않고, 코드 리뷰를 거치지 않으며, Jenkins를 재구축하면 사라집니다. 파이프라인을 고치려면 Jenki...

Jenkins Item을 만들면서 Pipeline script 박스에 Groovy를 붙여넣은 적이 있다면, 그 스크립트가 지금 어디에 있는지 한 번 생각해 보아야 합니다. Jenkins 컨테이너 안의 설정 파일 안에 있습니다. git으로 관리되지 않고, 코드 리뷰를 거치지 않으며, Jenkins를 재구축하면 사라집니다. 파이프라인을 고치려면 Jenki...

Jenkins Operator를 운영하다 보면 이런 상황을 만납니다. JCasC 설정을 변경했는데 Jenkins에 반영되지 않습니다. Operator 로그를 보면 같은 에러가 반복되다가 어느 순간 조용해집니다. CR을 지우고 다시 만들면 동작합니다. 왜 그런지 이해하려면 Operator가 한 패스(pass)에서 무엇을 어떤 순서로 수행하는지 소스 코드...
npm install로 lodash를 설치하는데 갑자기 404가 떨어진다. npmjs.com에서 패키지가 삭제됐거나 maintainer가 계정을 바꿨을 수 있다. 실제로 2016년 left-pad 사건처럼 단일 패키지 삭제가 수천 개 프로젝트의 빌드를 멈춘 사례가 있다. 팀이 internal하게 공유하는 사내 패키지는 공개 registry에 올릴 수 ...

마이크로서비스가 여러 VPC와 AWS 계정에 흩어져 있으면 서비스 간 연결이 복잡해집니다. 팀 A의 서비스는 계정 X에, 팀 B의 서비스는 계정 Y에 배포되고, 두 서비스가 통신하려면 VPC Peering이나 Transit Gateway를 설정하고 보안 그룹을 조정하고 DNS를 구성해야 합니다. 서비스가 늘어날수록 이 연결망은 거미줄처럼 얽히고, 한쪽...

프로젝트가 커질수록 dev server 시작이 느려집니다. webpack 기반 dev server는 애플리케이션 전체를 사전에 번들링한 뒤 브라우저에 서빙하므로, 모듈이 수백 개를 넘어가면 npm run dev 한 번에 수십 초를 기다려야 합니다. 파일 하나를 저장할 때마다 HMR이 전체 번들을 다시 만들지는 않지만, dependency graph를 ...

인시던트가 발생하면 CloudWatch 지표, APM 트레이스, 로그, 배포 기록을 번갈아 확인하며 원인을 좁혀나가는 과정에 시간이 걸립니다. AWS DevOps Agent는 알림이 감지된 순간 이 조사를 자율적으로 수행하고, 근본 원인과 완화 조치를 Slack이나 PagerDuty에 정리해 전달합니다. Production Operations는 202...

WAF에서 IP 기반 rate limit, managed rules, JavaScript Challenge를 차례로 배치했는데도 curl이나 Python requests로 만든 단순 스크래핑 봇이 계속 들어온다면, TLS 핸드셰이크 단계에서 클라이언트의 정체를 식별하는 방법을 검토할 시점이다. JA4는 TLS Client Hello 패킷을 기반으로 클...

WHERE dt BETWEEN '2026-07-10' AND '2026-07-11'를 넣었는데도 Athena의 DataScannedInBytes가 기대만큼 줄지 않는 경우가 있습니다. SQL 문법은 맞아도, 조건이 partition column에 직접 적용되고 그 값이 등록된 partition location 또는 projection의 location...

setTimeout(fn, 0)과 setImmediate(fn)을 같은 위치에서 등록했는데 실행 순서가 바뀌면, timer가 고장 난 것처럼 보일 수 있습니다. 하지만 두 API는 같은 queue에 들어가지 않고, callback을 등록한 위치도 같습니다. 순서를 판단할 때 먼저 봐야 할 것은 delay 값이 아니라 어느 scheduling bound...

Node.js와 Spring Boot를 “싱글 스레드 대 멀티 스레드” 또는 “어느 쪽이 더 빠른가”로 비교하면 실행 모델을 잃기 쉽습니다. Node.js는 JavaScript runtime이고, Spring Boot는 Servlet 기반 MVC 또는 reactive WebFlux 같은 웹 스택을 구성합니다. 이 글은 같은 HTTP server라는 표...