서비스가 커지는 만큼 인프라도 함께 만들어온 경험
수동 배포를 자동화하고 컨테이너로 표준화해 어디서든 동일하게 실행되도록 만들었습니다. 서버가 늘어 수동 관리가 한계에 닿자 쿠버네티스를 도입했고, 손으로 반복하던 구축 절차는 쉘 스크립트로, 다시 Ansible로 옮기며 버전 관리되는 코드로 만들었습니다. 덕분에 KARI·국가보안기관·NIPA처럼 제약이 다른 기관마다 처음부터 만드는 대신, 검증된 구조를 조정해 배포할 수 있었습니다. 서비스가 여러 개로 쪼개진 뒤에는 서비스 사이에서 유실되던 데이터를 큐로, 흩어진 시크릿을 중앙화로 정리했습니다.
반복되는 작업은 자동화로 걷어냅니다
CRUD 보일러플레이트를 자동 생성 도구로, 작업 이력 정리·업무 보고를 팀 전체가 쓰는 에이전트로 없앴고, ML 실험에서는 GPU 상태와 학습 결과를 시각화하고 데이터셋 정리를 LLM으로 자동화하는 도구를 만들었습니다. 최근에는 CLAUDE.md와 Jira·Bitbucket을 연동해 개발 워크플로우 전체를 자동화했습니다. 백엔드·프론트엔드·AI를 직접 개발해본 경험이, 각 자리에서 무엇이 반복되는지 알아보는 눈이 됐습니다.
장애의 근본 원인을 끝까지 추적해 해결합니다
에어갭 환경이라 장애가 사용자 신고 후에야 드러나던 구조에 Zabbix 관측을 직접 도입해 사전 감지 체계를 갖췄습니다. 디스크 부족 표면 에러를 컨테이너→마운트→디바이스→펌웨어까지 추적해 NVMe 펌웨어 이관 로직 누락을 찾아냈고, Debezium replication slot이 반복 파손되는 근본 원인(상태 판정 우선순위 오류)까지 추적해 Outbox 아키텍처로 근본 전환했습니다. 표면 증상에서 멈추지 않고 원인을 끝까지 따라가는 편입니다.